Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   SetIndexDrawBegin (http://www.expert-advisor.com/forum/showthread.php?t=6795)

AVT 05.10.20 14:28

SetIndexDrawBegin
 
Ich habe Probleme mit SetIndexDrawBegin bei einem Indikator.
Die Dok sagt:
1. Setzt die Barnummer, wo die Zeichnung des Indikators anfangen soll, und zwar die Barnummer ab Begin der Daten.
2. Wir zeichnen von links nach rechts (Chartanfang bis aktuelle Bar)
3. Normalerweise wird ein Wert von 0 angenommen, das heißt alle Bars werden gezeichnet.
Das bedeutet doch, daß die gemalten Bars in NOtimeseries nummeriert werden (also 0=ChartAnfang bis Bars=CurrentBar).

Was sind in "from the data beginning" die "data"?
Sind das die ausgerechneten und damit zu zeichnenden Werte oder sind das die im Chart verfügbaren Bars?

Egal wie ich versuche, den korrekten Wert für DrawBegin auszurechnen, das Ding baut nur Sch...
Kann jemand mir bitte dazu mal ne Hilfe geben.
AVT

Indikator-Trading 06.10.20 07:02

SetIndexDrawBegin() setzt den Zeitpunkt ab wann dein Indikator angezeigt werden darf. Nehmen wir mal den AVR Indikator mit der Periodenlänge von 14.
Du hast in deiner ganzen Historie z.B. 1014 Bars. Wenn der AVR Indikator jetzt die Periodenlänge von den Bars 1014 bis 1000 Anzeigen würde, dann würde nur Quatsch bei rauskommen, der nicht zu gebrauchen wäre.
Mit SetIndexDrawBegin(0,14) werden somit die ersten 14 Bars dann nicht angezeigt.
Am besten testest du da mit dem W1 Chart aus, da der ja nur eine relativ kurze Historie (bezogen auf die Anzahl der Bars) bei den meisten Brokern hat.
Du wirst wahrscheinlich bei dir keinen Einfluss der Funktion bisher erkennen können, da du in kleineren Zeiteinheiten unterwegs bist und dir nie das Ende deiner verfügbaren Historie anschaust.

Danke für deine Frage. Da hab ich auch wieder was für mich mitnehmen können!

AVT 06.10.20 10:08

Zitat:

Zitat von Indikator-Trading (Beitrag 44534)
SetIndexDrawBegin() setzt den Zeitpunkt ab wann dein Indikator angezeigt werden darf. Nehmen wir mal den AVR Indikator mit der Periodenlänge von 14.
Du hast in deiner ganzen Historie z.B. 1014 Bars. Wenn der AVR Indikator jetzt die Periodenlänge von den Bars 1014 bis 1000 Anzeigen würde, dann würde nur Quatsch bei rauskommen, der nicht zu gebrauchen wäre.
Mit SetIndexDrawBegin(0,14) werden somit die ersten 14 Bars dann nicht angezeigt.

Wir reden hier also nicht "from the data beginning", sondern "from the charts beginning", "data" ist für mich etwas anderes als "int Bars" - nun gut, nehmen wir das mal so als gegeben.
Zitat:

Zitat von Indikator-Trading (Beitrag 44534)
Am besten testest du da mit dem W1 Chart .....

Ich hatte einen MA zum ersten Test verwendet, mit gleichen Ergebnissen.
Danach habe ich einen Indikator versucht anzupassen, bei dem der "Vorlauf" (nicht zeichenbaren Müllwerte) eben nicht so einfach ersichtlich ist; gleichzeitig habe ich als Prüfung in der Berechnung nur diejenigen Mal-Buffer mit Werten belegt, die außerhalb des Vorlaufs sind.
Die Idee dahinter war, die Berechnung einfach durchlaufen zu lassen und den Vorlauf nur über DrawBegin einzuschränken.

In Deinen Beispielzahlen:
data=Bars=1014
LookBackBars=500 (davon sind 14 Müll)
NeededBars=14
Begin=LookBackBars+NeededBars=500+14=514
Starte also anstatt bei Bar 14 bei Bar 514 (und zeichne weiter bis zur aktuellen Bar=1014).

Das Ergebnis war ok, wenn ich den Vorlauf in der Berechnung rausgenommnen habe; wenn ich aber nur den Vorlauf nur mit SetIndexDrawBegin einschränken wollte, wurde trotzedem der Müll gezeichnet - also sobald der Malbuffer einen Wert hatte, wurde der auch gemalt.

Im Moment lasse ich die Berechnungsmethode erst mal drin, die funzt.
Vielen Dank für Deine Ausführungen. :)
AVT


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:07 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum