Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Das ist der ganze Tag GBPAUD H4 3.12.2018! Und ich habe dieses Mal nicht bis zum Ende übersprungen.
Kann es sein, dass die Druckfunktion einige Berichte verliert, wenn sie zu viel zu drucken hat?
Ich vermute, ein weiteres Problem könnte sein, dass die Ticks dieser 3 Instrumente in unterschiedlichen Millisekunden herauskommen, so dass, wenn wir die Funktion start/OnTick auf GBPAUD verwenden, sie nur die Startfunktion ausführt, wenn der GBPAUD-Tick herauskommt. Und ich vermute, Ihr Code könnte sagen, dass alle diese 3 Paare Preise zurückgeben, wenn keiner von ihnen sind 0. Wenn ja, es wird zurückgegeben, wenn alle ask / bid Preise aller Instrumente kommen zur gleichen Zeit genau.
Die Daten sehen gut aus...
Du hast Recht mit der Druckfunktion... Ich sehe bei meinen Tests auch viele fehlende Zeilen. Aber wenn ich alles in eine Datei drucke, wird nichts ausgelassen.
Hier sind einige Informationen über den Code: die Zeit jedes GBPAUD-Ticks wird verwendet, um die neuesten Ticks der anderen Paare zu erhalten (bis zur gleichen Zeit), so dass es immer etwas zurückgeben wird, wird nicht Null sein.
Ich habe mich entschlossen, die Funktion in eine Klasse zu packen, was aufgeräumter sein sollte. Siehe Anhang. Legen Sie sie in Ihren Expertenordner, zusammen mit Ihrem EA. Sie können sie gerne modifizieren.
Das folgende Beispiel zeigt Ihnen eine Möglichkeit, die Funktion zu nutzen (die hervorgehobenen Zeilen sind wichtig):
Der Schlüssel ist also eigentlich nur diese Zeile:ticksInfo.getTick(<SYMBOL String>,<MqlTick Struct>). Wenn sie false zurückgibt, müssen Sie im Journal nach der Fehlermeldung suchen.
Die Daten sehen gut aus...
Du hast Recht mit der Druckfunktion... Ich sehe bei meinen Tests auch viele fehlende Zeilen. Aber wenn ich alles in eine Datei drucke, wird nichts ausgelassen.
Hier sind einige Informationen über den Code: die Zeit jedes GBPAUD-Ticks wird verwendet, um die neuesten Ticks der anderen Paare zu erhalten (bis zur gleichen Zeit), so dass es immer etwas zurückgeben wird, wird nicht Null sein.
Ich habe mich entschlossen, die Funktion in eine Klasse zu packen, was aufgeräumter sein sollte. Siehe Anhang. Legen Sie sie in Ihren Expertenordner, zusammen mit Ihrem EA. Sie können sie gerne modifizieren.
Das folgende Beispiel zeigt Ihnen eine Möglichkeit, die Funktion zu nutzen (die hervorgehobenen Zeilen sind wichtig):
Der Schlüssel ist also eigentlich nur diese Zeile:ticksInfo.getTick(<SYMBOL String>,<MqlTick Struct>). Wenn sie false zurückgibt, müssen Sie im Journal nach der Fehlermeldung suchen.
Ich danke Ihnen für Ihre Hilfe,
Ich habe alle diese Zeilen in die entsprechenden Bereiche kopiert. Aber da ich den Code nicht verstehe, raten Sie mir bitte, wie ich den Ask und Bid von SecondPair in Ask2,Bid2 und das gleiche für ThirdPair einfügen kann.
Hier ist mein globaler Bereich:
Und dieser Teil gibt beim Kompilieren 2 Fehler zurück. Was soll ich mit ihnen machen?
'SecondPair' - konstanter Ausdruck erforderlich MyEA!.mq4
ThirdPair" - konstanter Ausdruck erforderlich MyEA!.mq4
Vielen Dank für Ihre Hilfe,
Ich habe alle diese Zeilen in die entsprechenden Bereiche kopiert. Aber da ich den Code nicht verstehe, bitte ich um einen Rat, wie ich den Ask und Bid von SecondPair in Ask2, Bid2 und das gleiche für ThirdPair einfügen kann.
Hier ist mein globaler Bereich:
Und dieser Teil gibt beim Kompilieren 2 Fehler zurück. Was soll ich mit ihnen machen?
'SecondPair' - konstanter Ausdruck erforderlich MyEA!.mq4
ThirdPair" - konstanter Ausdruck erforderlich MyEA!.mq4
Dann deklarieren Sie Ihre otherPairs auf die gleiche Weise wie allPairs. Und in OnInit, tun Sie dies:
Und um Werte in Ask2, Bid2, Ask3, Bid3 zuzuweisen, tun Sie dies in OnTick:
Dann deklarieren Sie Ihre otherPairs auf die gleiche Weise wie allPairs. Und in OnInit, tun Sie dies:
Und um Werte in Ask2, Bid2, Ask3, Bid3 zuzuweisen, tun Sie dies in OnTick:
Es gibt mir wieder 00 :(
Mein globaler Bereich:
OnInit:
OnDeinit:
OnTick:
Journal:
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: GBPCAD Fehler
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: GBPUSD Fehler
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: GBPAUD Tick-Nummer 221179, um 2018.01.03 23:36:58 000 Ask = 1.72479 Bid = 1.72459
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: === Verarbeite jetzt Tick 221179
Wo liege ich falsch?
Es tut mir leid für meine nullkommanullen Fähigkeiten :D
Es gibt mir wieder 00 :(
Mein globaler Bereich:
OnInit:
OnDeinit:
OnTick:
Wo liege ich falsch?
Tut mir leid, dass ich keine Ahnung habe :D
Es tut mir leid, dass meine Kenntnisse gleich null sind :D
OnInit - die 3 neuen Zeilen sollten vor allem kommen.
Ich habe es getan. Aber es ist sehr seltsam: der Timer für diese zwei zusätzlichen Paare funktioniert nicht...
Ich habe es getan. Aber es ist sehr seltsam: der Timer für diese zwei zusätzlichen Paare funktioniert nicht...
Download-Geschichte in MQL4 EA - MQL4 und MetaTrader 4 - MQL4 Programmierforum
Korrigiert
Die Funktion, auf die verwiesen wird, öffnet ein verstecktes Diagramm für das betreffende Symbol/TF (falls nicht bereits geöffnet), wodurch die Historie aktualisiert wird und das Symbol vorübergehend auf Market Watch gesetzt wird (falls nicht bereits dort), damit SymbolInfoDouble(Symbol, SYMBOL_BID ) oder MarketInfo(Symbol, MODE_BID ) beim ersten Aufruf nicht auch Null zurückgeben.
Download-Geschichte in MQL4 EA - MQL4 und MetaTrader 4 - MQL4 Programmierforum
Korrigiert
Die Funktion, auf die verwiesen wird, öffnet ein verborgenes Diagramm für das betreffende Symbol/TF (falls nicht bereits geöffnet), wodurch die Historie aktualisiert wird und das Symbol vorübergehend auf Market Watch gesetzt wird (falls nicht bereits vorhanden), damit SymbolInfoDouble(Symbol, SYMBOL_BID ) oder MarketInfo(Symbol, MODE_BID ) beim ersten Aufruf nicht ebenfalls Null zurückgeben.
Sie haben Recht. Aber keine Sorge, denn das Einzige, was wir hier in OnInit tun, ist die Initialisierung von Arrays zum Speichern von Symbolnamen und die Vorbereitung einiger Dateihandles zum Lesen unserer eigenen Datendateien. Auf die Geld- und Briefkurse (d.h. "Tick"-Daten) greifen wir nur in OnTick zu, und zwar meist aus unseren eigenen Datendateien, da der MT4-Strategietester immer Nullen zurückgibt, wenn er solche Daten von anderen Symbolen abfragt (beachten Sie, dass sich dieses Verhalten von der Abfrage von OHLC-Daten unterscheidet, mit denen man besser vertraut ist).