Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43259
Benutzer: 7.223
Aktive Benutzer: 76
Links: 84
Wir begrüßen unseren neuesten Benutzer: patrickmsulzeay6506
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Stunde
- patrickmsu...
vor einer Woche
- AlbertZiz
vor einer Woche
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 90
Gesamt: 91
Team: 0
Team:  
Benutzer:  AM581
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 05.10.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard 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
  #2 (permalink)  
Alt 06.10.20
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

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!
  #3 (permalink)  
Alt 06.10.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Indikator-Trading Beitrag anzeigen
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 anzeigen
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
Thema geschlossen

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 15:23 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------