Ich hab eine grundsätzliche Frage, die mir ziemlich einfach erscheint, die aber scheinbar keiner im MC Forum beantworten kann.
Trau mir fast wetten, dass ich hier bei uns innerhalb kürzester Zeit das erklärt bekomme, worum es mir geht...
Also, zu meinem Problem. Die Erklärung in der EL-Dokumentation zu currentbar und MaxBarsBack ist ja relativ eindeutig.
currentbar gibt mir einen Index des aktuellen Bars zurück, fängt aber erst nach MaxBarsBack zu zählen an. Wenn also MaxBarsBack auf 20 steht, dann hat der 21. Bar im Chart currentbar=1.
Jetzt will ich probehalber nichts anderes machen, als mir an jeden aktuellen Bar den Maximalkurs seit Chartbegin (also ganz links) anzeigen lassen. Das mach ich so:
variables:
HighValue(0),
cnt(0);
Print("CB:",currentbar," MB:", MaxBarsBack);
HighValue=0;
For cnt=currentbar downto 0
begin
if High[cnt]>HighValue then //High on position cnt higher then previous maximum?
Begin
HighValue=High[cnt]; //Store new Maximum
end;
end;
Plot1(HighValue);
Das merkwürdige: Der Indikator fängt erst beim 630. Bar im Chart zum zeichnen an (ich hab 1000 Bars im Chart) und das noch merkwürdigere ist, dass die Testausgabe
MaxBarsBack macht also in regelmäßigen Abständen (das Muster kann ich nicht wirklich erkennen) einen Sprung und zu dieser Zeit startet currentbar dann wieder bei 1.
MaxBarsBack hab ich über die Skripteigenschaften fest auf 20 gesetzt.
Das Problem ist doch nun wirklich nicht exotisch. Kann mir jemand erklären, wo mein Denkfehler ist, oder warum das Prinzip nicht so funktioniert, wie ich es mir vorstelle? Warum macht MaxBarsBack Sprünge?
Langsam bin ich ein bischen genervt von MC.
Ich hab eine grundsätzliche Frage, die mir ziemlich einfach erscheint, die aber scheinbar keiner im MC Forum beantworten kann.
Trau mir fast wetten, dass ich hier bei uns innerhalb kürzester Zeit das erklärt bekomme, worum es mir geht...
Also, zu meinem Problem. Die Erklärung in der EL-Dokumentation zu currentbar und MaxBarsBack ist ja relativ eindeutig.
currentbar gibt mir einen Index des aktuellen Bars zurück, fängt aber erst nach MaxBarsBack zu zählen an. Wenn also MaxBarsBack auf 20 steht, dann hat der 21. Bar im Chart currentbar=1.
Jetzt will ich probehalber nichts anderes machen, als mir an jeden aktuellen Bar den Maximalkurs seit Chartbegin (also ganz links) anzeigen lassen. Das mach ich so:
variables: HighValue(0), cnt(0); Print("CB:",currentbar," MB:", MaxBarsBack); HighValue=0; For cnt=currentbar downto 0 begin if High[cnt]>HighValue then //High on position cnt higher then previous maximum? Begin HighValue=High[cnt]; //Store new Maximum end; end; Plot1(HighValue);Das merkwürdige: Der Indikator fängt erst beim 630. Bar im Chart zum zeichnen an (ich hab 1000 Bars im Chart) und das noch merkwürdigere ist, dass die Testausgabe
Print("CB:",currentbar," MB:", MaxBarsBack);
folgenden Mist liefert:
MaxBarsBack macht also in regelmäßigen Abständen (das Muster kann ich nicht wirklich erkennen) einen Sprung und zu dieser Zeit startet currentbar dann wieder bei 1.
Das geht bei besagten 1000 Bars im Chart soweit:
MaxBarsBack hab ich über die Skripteigenschaften fest auf 20 gesetzt.
Das Problem ist doch nun wirklich nicht exotisch. Kann mir jemand erklären, wo mein Denkfehler ist, oder warum das Prinzip nicht so funktioniert, wie ich es mir vorstelle? Warum macht MaxBarsBack Sprünge?
Danke!
Wogo