Automatische Trendlinie
Da das Thema in letzter Zeit wohl etwas eingeschlafen ist, möchte ich mal folgenden Ansatz zur Diskussion stellen. Wer mag, ist herzlichst eingeladen den Indikator auszuprobieren, zu kritisieren, Verbesserungsvorschläge zu machen und/oder seine Weiterentwicklung vorzustellen...
(Insbesondere haben ja vielleicht einige bessere Ideen zur Ermittlung der Auflagepunkt der Unterstützungslinie.)
Thomas
Hier der VB-Code für eine automatische Unterstützungslinie (einfach einen Indikator erstellen und einfügen, Parameter sind nicht erforderlich):
GetDaten "High", High
GetDaten "Low", Low
GetDaten "Close", Close
GetDaten "Open", Open
StartI = ErsteDatenPeriode(Close)
EndI = LetzteDatenPeriode(Close)
Dim DiffBars, DiffLow, Linie, WP
ReDim DiffBars(EndI), DiffLow(EndI), Linie(EndI), WP(EndI, 7)
For i = StartI+200 To EndI
'Anfangswerte
WP(StartI+200, 5) = StartI+200 'Bar Aktuell
WP(StartI+200, 6) = Close(StartI+200) 'Wert Aktuell
WP(StartI+200, 7) = 0 'Steigung Aktuell
Linie(StartI+200) = Low(StartI+200)
'Übernahme der alten Werte
WP(i, 0) = WP(i-1, 0) 'Bar des ersten Wendepunkts
WP(i, 1) = WP(i-1, 1) 'Wert des ersten Wendepunkts
WP(i, 2) = WP(i-1, 2) 'Bar des zweiten Wendepunkts
WP(i, 3) = WP(i-1, 3) 'Wert des zweiten Wendepunkts
WP(i, 4) = WP(i-1, 4) 'Steigung
WP(i, 5) = WP(i-1, 5) 'Bar Aktuell
WP(i, 6) = WP(i-1, 6) 'Wert Aktuell
WP(i, 7) = WP(i-1, 7) 'Steigung Aktuell
'Geradengleichung
Linie(i) = WP(i, 6) + WP(i, 7)*(i-WP(i, 5))
'Ermittlung neuer und Fortschreibung alter Wendepunkte
If Low(i-2) > Low(i-1) then
If Low(i-1) < Low(i) then
WP(i, 2) = i-1
WP(i, 3) = Low(i-1)
WP(i, 0) = WP(i-1, 2)
WP(i, 1) = WP(i-1, 3)
'Berechnung der Steigung
DiffBars(i) = WP(i, 2) - WP(i, 0)
DiffLow(i) = WP(i, 3) - WP(i, 1)
If DiffBars(i) <> 0 then
WP(i, 4) = DiffLow(i)/DiffBars(i)
Else
WP(i, 4) = 0
End If
End If
End If
'Berechnung neuer Unterstuetzungslinie bei Bruch
If Close(i) < Linie(i) AND WP(i, 4) > 0 then
WP(i, 5) = WP(i, 2) 'Bar Aktuell
WP(i, 6) = WP(i, 3) 'Wert Aktuell
WP(i, 7) = WP(i, 4) 'Steigung Aktuell
End If
Next
For i = StartI+200 to EndI
Ergebnis(i) = Linie(i)
next