steyr6155:
Hallo zusammen,
ich habe nen Multisymbol EA kreiert.
Leider stellte ich fest, dass dieser nur trades in einem Währungspaar abfeuert.
Ich konnte auch schon den Fehler eingrenzen. Der EA ist so aufgebaut, dass er im "1mOHLC" Modus läuft, ich diesem aber mit der folgenden funktion nur die Öffnungspreise der neuen M1 Kerze übermittle:
Der EA ist so generiert, dass er mit einer For-Schleife sämtliche währungspaare und deren Einstiegssignale durchgeht. Demnach wird diese Funktion bei jedem 1mOHLC Tick für das jeweilige Währungspaare aufgerufen.
Wenn ich den EA auf einem Währungspaar teste, läuft er tadellos, sobald ich aber mehrere Währungspaare testen möchte, tradet er nur mit dem jeweils zuerst gelisteten paar. Nach einer kontrolle der checkNewM1CandleShort() fiel mir auf, dass diese lediglich für das zuerst gewählte Währungspaar (sagen wir CADJPY) "true" ist. für den rest bleibt es dauerhaft auf false.
Leider kenne ich mich noch nciht genau mit dem Aufbau des Mt5 aus. ich vermute allerdings, dass wenn dieser die checkNewM1CandleShort() aufruft, diese nur einmal true sein kann, da alle M1 kerzen für alle währungspaare gleichzeitig true sind und nicht bei jedem Durchlauf meiner for schleife
Für eure Hilfe wäre ich euch wie immer sehr dankbar!
Hallo zusammen,
ich habe nen Multisymbol EA kreiert.
Leider stellte ich fest, dass dieser nur trades in einem Währungspaar abfeuert.
Ich konnte auch schon den Fehler eingrenzen. Der EA ist so aufgebaut, dass er im "1mOHLC" Modus läuft, ich diesem aber mit der folgenden funktion nur die Öffnungspreise der neuen M1 Kerze übermittle:
Der EA ist so generiert, dass er mit einer For-Schleife sämtliche währungspaare und deren Einstiegssignale durchgeht. Demnach wird diese Funktion bei jedem 1mOHLC Tick für das jeweilige Währungspaare aufgerufen.
Wenn ich den EA auf einem Währungspaar teste, läuft er tadellos, sobald ich aber mehrere Währungspaare testen möchte, tradet er nur mit dem jeweils zuerst gelisteten paar. Nach einer kontrolle der checkNewM1CandleShort() fiel mir auf, dass diese lediglich für das zuerst gewählte Währungspaar (sagen wir CADJPY) "true" ist. für den rest bleibt es dauerhaft auf false.
Leider kenne ich mich noch nciht genau mit dem Aufbau des Mt5 aus. ich vermute allerdings, dass wenn dieser die checkNewM1CandleShort() aufruft, diese nur einmal true sein kann, da alle M1 kerzen für alle währungspaare gleichzeitig true sind und nicht bei jedem Durchlauf meiner for schleife
Für eure Hilfe wäre ich euch wie immer sehr dankbar!
Schau dir den Artikel an:
Das MQL5-Kochbuch: Mehrwährungsfähiger Expert Advisor – eine einfache, saubere und schnelle Herangehensweise
- www.mql5.com
In diesem Beitrag wird die Umsetzung einer einfachen Herangehensweise an einen mehrwährungsfähigen Expert Advisor beschrieben. Das heißt, Sie werden in der Lage sein, den Expert Advisor für das Testen/den Handel unter identischen Bedingungen aber mit unterschiedlichen Parametern je Symbol einzurichten. Als Beispiel erstellen wir ein Muster für zwei Symbole auf eine Weise, mit der Sie nach Bedarf zusätzliche Symbole hinzufügen können, indem Sie kleine Änderungen am Code vornehmen.
Poste doch mal den relevanten code
ich habe aich multipair eas die funktionieren gut
Hallo Amando,
Ich habe den Fehler bereits gefunden, bzw. mit einer funktionierenden Funktion ausgegrenzt.
Falls jemand das Multismybol Gerüst möchte, schreibt mir
Für die interessenten: Diesen Code habe ich mit dem obigen "fehlerbehafteten" Code ersetzt
//+------------------------------------------------------------------+ //| lässt den EA nur mit 1m Close Price rechnen | //+------------------------------------------------------------------+ bool CheckNewM1Bar(string CurrentSymbol, int SymbolLoop) { datetime lastM1Bar²[]; //--- Get the opening time of the current bar // If an error occurred when getting the time, print the relevant message if(CopyTime(CurrentSymbol,PERIOD_M1,0,1,lastM1Bar²)==-1) Print(__FUNCTION__,": Error copying the opening time of the bar: "+IntegerToString(GetLastError())); //--- If this is a first function call lastM1Bar[SymbolLoop] = lastM1Bar²[0]; if(newM1Bar[SymbolLoop]==NULL) { //--- Set the time newM1Bar[SymbolLoop]=lastM1Bar[SymbolLoop]; Print(__FUNCTION__,": Initialization ["+CurrentSymbol+"][" +TimeToString(lastM1Bar[SymbolLoop],TIME_DATE|TIME_MINUTES|TIME_SECONDS)+"]"); return(false); } //--- If the time is different if(newM1Bar[SymbolLoop]!=lastM1Bar[SymbolLoop]) { //--- Set the time and exit newM1Bar[SymbolLoop]=lastM1Bar[SymbolLoop]; return(true); } //--- If we have reached this line, then the bar is not new, so return false return(false); }
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
ich habe nen Multisymbol EA kreiert.
Leider stellte ich fest, dass dieser nur trades in einem Währungspaar abfeuert.
Ich konnte auch schon den Fehler eingrenzen. Der EA ist so aufgebaut, dass er im "1mOHLC" Modus läuft, ich diesem aber mit der folgenden funktion nur die Öffnungspreise der neuen M1 Kerze übermittle:
Der EA ist so generiert, dass er mit einer For-Schleife sämtliche währungspaare und deren Einstiegssignale durchgeht. Demnach wird diese Funktion bei jedem 1mOHLC Tick für das jeweilige Währungspaare aufgerufen.
Wenn ich den EA auf einem Währungspaar teste, läuft er tadellos, sobald ich aber mehrere Währungspaare testen möchte, tradet er nur mit dem jeweils zuerst gelisteten paar. Nach einer kontrolle der checkNewM1CandleShort() fiel mir auf, dass diese lediglich für das zuerst gewählte Währungspaar (sagen wir CADJPY) "true" ist. für den rest bleibt es dauerhaft auf false.
Leider kenne ich mich noch nciht genau mit dem Aufbau des Mt5 aus. ich vermute allerdings, dass wenn dieser die checkNewM1CandleShort() aufruft, diese nur einmal true sein kann, da alle M1 kerzen für alle währungspaare gleichzeitig true sind und nicht bei jedem Durchlauf meiner for schleife
Für eure Hilfe wäre ich euch wie immer sehr dankbar!