Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4715
Beiträge: 42147
Benutzer: 7.067
Aktive Benutzer: 154
Links: 83
Wir begrüßen unseren neuesten Benutzer: caps4476
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 21:38).
Neue Benutzer:
vor 3 Tagen
- caps4476
vor 4 Tagen
- michi023
vor einer Woche
- severus
vor einer Woche
- droyo33
vor 2 Wochen
- Jonam

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 27
Gesamt: 27
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Apr 2017
Beiträge: 16
Mr_Snow befindet sich auf einem aufstrebenden Ast
Standard Heikin Ashi einer höheren Zeitebene.

Hi,

nach 5 Stunden Suche, bin ich am Ende. Was in MQL4 mit 4 Codezeilen zu machen ist, scheint in MQL5 einfach unlösbar.

Was habe ich vor: Ich will an jeder Kerze im Chart (M5) prüfen, wie der entsprechnde Heikin Ashi auf Zeitebene M30 aussieht.

Code:
//Holt das Handle
int handleHA = iCustom(Symbol(),PERIOD_M30,"Examples\\Heiken_Ashi");

//Trägt Open und Close für alle Kerzen im Chart in den Buffer
CopyBuffer(handleHA,0,0,Bars(Symbol(), PERIOD_CURRENT),bufferOpen); 
CopyBuffer(handleHA,1,0,Bars(Symbol(), PERIOD_CURRENT),bufferClose);

//Holt für die jeweilige abzufragende Kerze den Wert aus dem Array 
openH = bufferOpen[shiftHA];
closeH = bufferClose[shiftHA];
Mein Problem ist, das diese Werte für openH und closeH immer Null sind - egal was ich versuche. Das Handel liefert 10 zurück. Wo liegt mein Fehler? Kann da jemand helfen?

Danke vorab.
Mit Zitat antworten
  #2 (permalink)  
Alt vor 4 Wochen
Benutzerbild von Indikator-Trading
Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 237
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Code:
//Holt das Handle
int handleHA = iCustom(Symbol(),PERIOD_M30,"Examples\\Heiken_Ashi");
Das ist jetzt das Handle von dem Heiken_Ashi in M30. Also nur in M30, in keiner anderen Timeframe


Code:
//Trägt Open und Close für alle Kerzen im Chart in den Buffer
CopyBuffer(handleHA,0,0,Bars(Symbol(), PERIOD_CURRENT),bufferOpen); 
CopyBuffer(handleHA,1,0,Bars(Symbol(), PERIOD_CURRENT),bufferClose);
Hier kommen wir zu dem ersten Problem. Was ist PERIOD_CURRENT? M30, M15, D1 ???
handleHA bezieht sich nur auf M30. Die verfügbaren Bars aus einer anderen Timeframe als M30 abzufragen, macht also keinen Sinn. Auch stellt sich mir die Frage, ob du wirklich alle HA Bars abfragen musst, oder evtl. nur die letzen X Bars um dein Signal zu generieren.
Bei der Abfrage der aller ersten Bars im M30 TF wirst du sowieso keine sinnvollen Werte erwarten können. Der HA-Indikator braucht ein paar Bars um seine Berechnungen durchzuführen, ich glaube es sind in der Standardeinstellung 6 Bars. Vorher werden keine Sinnvollen Werte aus dem HA Indikator kommen. Das selbe gilt für jeden "laggy" Indikator, also einen Indikator, welcher Daten aus der Vergangenheit zur Ermittlung seiner Signale benötigt. Einfachstes Beispiel: SMA 10, also der Mittelwert von den letzten 10 Werten. Willst du jetzt den Wert vom aller ersten Bar abfragen, dann wird das im Idealfall einfach nur genau dieser Wert sein, was noch der Beste Fall wäre. Dies hängt davon ab wie schäbig das der jeweilige Programmiere umgesetzt hat. Bar 2 wäre dann schon der Mittelwert von den letzten beiden Bars, mehr aber auch nicht. Damit du also immer sinnvolle Werte deiner Indikatoren abfragst, musst du wissen wie viele Bars der jeweilige Indikator mindestes zu Berechnung benötigt. Dies sollte dann im Idealfall bei der Abfrage Rechnung getragen werden.

Code:
//Holt für die jeweilige abzufragende Kerze den Wert aus dem Array 
openH = bufferOpen[shiftHA];
closeH = bufferClose[shiftHA];
ist das Array Serial oder nicht, also in welcher Reihenfolge beschrieben?
Dies wird durch den Aufruf von ArraySetAsSeries() mit den entsprechenden Parametern definiert.
Welchen Wert hat shiftHA?

Gruß Timo
Mit Zitat antworten
Antwort

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 +1. Es ist jetzt 16:00 Uhr.





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