Kann 1 EA mehrere Währungspaare von einem Chart aus überwachen und handeln? - Seite 2

 
angevoyageur:

Wenn Sie nicht auf seine Frage antworten wollen, antworten Sie nicht, so einfach ist das. Kein Grund, Leute zu beleidigen.

Und glauben Sie mir, es ist auch für mich möglich, wenn ich alles posten würde , was ich posten möchte, hätte ich mindestens 1000 Bewertungspunkte mehr.



wenn er etwas recherchiert und in Code Base nachgeschaut hätte, dann hätte er zum Beispiel https://www.mql5.com/en/code/11176 gefunden.

und man kann noch mehr solcher Beispiele finden, die Art und Weise wie er jetzt fragt, sieht für mich und ich denke für andere so aus

dass er nicht genug tut, um zu lernen, wie man programmiert und will von anderen zu bekommen, für ihn zu programmieren, um Beispiele zu bekommen, wie man einen EA verschiedene Symbole handeln kann

ohne selbst einen Versuch zu unternehmen...

Wie CodeMonkey an xennon schrieb

Das Problem hier ist nicht, dass es nicht möglich ist, sondern dass du dir nicht einmal die Mühe gemacht hast, es zu versuchen und es zu tun. '

.

Wenn xennon diese Antworten bekommt, die er nicht mag, dann ist es auch seine Art, darauf falsch zu reagieren

Ich denke, du verstehst die Situation so, wie ich sie sehe...

 
deVries:


wenn er ein wenig recherchiert hätte und in Code Base geschaut hätte, dann hätte er zum Beispiel https://www.mql5.com/en/code/11176 gefunden.

und Sie können mehr solche Beispiele die Art und Weise finden, die er jetzt fragt, sieht für mich und ich schätze für andere

dass er nicht genug tut, um zu lernen, wie man programmiert und will von anderen zu bekommen, für ihn zu programmieren, um Beispiele zu bekommen, wie man einen EA verschiedene Symbole zu handeln

ohne selbst einen Versuch zu unternehmen...

Wie CodeMonkey an xennon schrieb

Das Problem hier ist nicht, dass es nicht möglich ist, sondern dass du dir nicht einmal die Mühe gemacht hast, es zu versuchen und es zu tun. '

.

Wenn xennon diese Antworten bekommt, die er nicht mag, dann ist es auch seine Art, darauf falsch zu reagieren

ich denke, du verstehst die Situation, wie ich sie sehe...

Natürlich stimme ich zu.

Aber ich stimme auch zu, dass, wenn jemand antwortet, es keinen Grund gibt, den OP (oder einen anderen Benutzer) zu beleidigen. Ich denke, dieses Forum braucht eine bessere Atmosphäre.

 
deVries:

xennon: ist seit Januar 2012 registriert und kommt jetzt hier mit dieser Frage ?

es scheint mir, dass es Zeit für ihn ist, etwas Forschung zu betreiben, indem er liest und lernt

wenn er diesen EA machen will, dann muss er mit seinem Versuch kommen, wenn er Probleme hat, ihn zu machen

es ist möglich .... nach mehr als 2 Jahren weiß er das jetzt mit Sicherheit


Ja, 2 Jahre, na und?! Bedeutet nicht, dass ich aktiv in MQL herumgepfuscht habe, oder? - In der Tat ist meine kollektive Erfahrung mit MQL wahrscheinlich weniger als einen Monat, GESAMT. Ich schlage vor, dass Sie entweder etwas Positives und Nützliches beitragen oder xxxx. Was für eine dumme und idiotische Aussage.
 
xennon:

Ja, 2 Jahre, na und?! Bedeutet nicht, dass ich aktiv in MQL herumgepfuscht habe, oder? - In der Tat ist meine kollektive Erfahrung mit MQL wahrscheinlich weniger als einen Monat, TOTAL. Ich schlage vor, dass Sie entweder etwas Positives und Nützliches beitragen oder xxx. Was für eine dumme und idiotische Aussage.

Ich habe Ihnen bereits geraten, auf Ihre Sprache zu achten. Das ist meine letzte Warnung.

Ich danke Ihnen.

 
xennon:

Ja, 2 Jahre, na und?! Bedeutet nicht, dass ich aktiv in MQL herumgepfuscht habe, oder? - In der Tat ist meine kollektive Erfahrung mit MQL wahrscheinlich weniger als einen Monat, GESAMT. Ich schlage vor, dass Sie entweder etwas Positives und Nützliches beitragen oder xxxx. Was für eine dumme und idiotische Aussage.


das Beispiel aus der Codebase, auf das ich hingewiesen habe ???? https://www.mql5.com/en/forum/149766/page2#915892

 
xennon:

Ich frage mich, ob es möglich ist, einen einzelnen EA zu haben, der auf jedem Währungspaar läuft, aber mehrere Währungspaare überwacht und auf Auslöser reagiert, wenn sie in jedem Paar auftreten.

Im Wesentlichen möchte ich einen EA, der alle Paare von Interesse abfragen wird, vorkonfigurierte Kriterien auf jedem und reagieren mit Kauf/Verkauf/Schließung/Alarme wie erforderlich.

Ich vermute, dass dies nicht möglich ist, wäre aber daran interessiert zu erfahren, ob jemand eine Idee hat, wie man dies erreichen kann, ohne viele Charts zu öffnen und den EA auf jeden Chart separat anzuwenden, vor allem im Interesse der Effizienz (besser ein Code-Block als ein Dutzend?)


Vielen Dank!


Mein Geld würde auf einem String-Array für die Symbole und dann gehen Sie durch eine Schleife für alle Symbole von Interesse sein

Etwas wie

string nameArray[]={"EURUSD","...","USDJPY"};

dann

for(x=numberOfSymbols;x>=0;x--)
   {
   string symbol=nameArray[x];
   CustomCondition(symbol)
   ....
   .....
//or something like that
 
xennon:

Ich frage mich, ob es möglich ist, einen einzelnen EA zu haben, der auf jedem Währungspaar läuft, aber mehrere Währungspaare überwacht und auf Auslöser reagiert, wenn sie in jedem Paar auftreten.

Im Wesentlichen möchte ich einen EA, der alle Paare von Interesse abfragen wird, vorkonfigurierte Kriterien auf jedem und reagieren mit Kauf/Verkauf/Schließung/Alarme wie erforderlich.

Ich vermute, dass dies nicht möglich ist, wäre aber daran interessiert zu erfahren, ob jemand eine Idee hat, wie man dies erreichen kann, ohne viele Charts zu öffnen und den EA auf jeden Chart separat anzuwenden, vor allem im Interesse der Effizienz (besser ein Code-Block anstelle eines Dutzends?)


Vielen Dank.

Hallo xennon,

die kurze Antwort auf Ihre Frage lautet: Ja.

Ich habe darüber nachgedacht, etwas Ähnliches zu machen, bin aber noch nicht dazu gekommen, etwas zu kodieren, also werde ich Ihnen den grundlegenden Überblick darüber geben, wie ich den Code strukturieren würde, aber keine Einzelheiten, da es wahrscheinlich besser wäre, wenn Sie recherchieren, wie Sie jeden Teil selbst kodieren, und auf die Codebasis und andere Quellen als Kodierungsbeispiele als Lernübung verweisen, da es Ihnen beim zukünftigen Schreiben von Code mehr helfen wird als das einfache Kopieren von Code aus Beispielen und das Einfügen einer Lösung, ohne wirklich zu verstehen, was vor sich geht und warum, und es wird beim Debuggen von Codefehlern helfen. Allerdings kann die Codebasis verwirrend sein, wenn Sie mit der Codierung nicht vertraut sind, da manche Terminologie schwer zu verstehen ist.

Da meine Idee noch nicht getestet oder implementiert wurde, gibt es möglicherweise bessere Möglichkeiten, sie zu kodieren, oder Fehler, die ich nicht vorhergesehen habe, da ich bei weitem kein Meisterkodierer bin und im Allgemeinen ziemlich eingerostet bin, wenn also jemand irgendwelche Vorschläge hat, bin ich ganz Ohr, und wenn es Fehler gibt, schießen Sie mich bitte nicht ab.

Die allgemeine Idee ist, die Millisekunde Timer-Ereignis zu verwenden, wie die OnTick-Ereignis wird nur für das Diagramm, das es angehängt ist, so Ticks für andere Währungspaare wird nicht ein Tick-Ereignis zu generieren und die EA wird nicht ausgeführt, aber die Millisekunde Ereignis Timer kann mehrere Male pro Sekunde auslösen und überwachen für Preisänderungen. Verwenden Sie außerdem drei Arrays, eines zum Speichern der Zeichenketten der Symbole, die Sie verwenden möchten, und ein weiteres zum Speichern der Preisdaten.

Ich werde versuchen, dies ein wenig zu erklären. Das Array nameArray speichert jedes Symbol als Array, aber noch wichtiger ist, dass das Element des Arrays verwendet werden kann, um die Position für die anderen beiden Arrays festzulegen, da sie keine Zeichenkette verwenden können, um eine Position in einem Array zu lokalisieren, aber der Indexwert kann es. Da die Ticks für jedes Symbol zu unterschiedlichen Zeiten empfangen werden, werden die Daten, die in das PriceArray geschrieben werden, nicht alle zur gleichen Zeit sein, da einige Symbole zu unterschiedlichen Zeiten aktiver sind, so dass das zweite Array den Index für das PriceData-Array speichert, so dass es schnell geschrieben werden kann, ohne vergangene Preisdaten zu überschreiben. Das dritte Array schreibt die erforderlichen Kursdaten, die Sie benötigen.

Der Code ist eine Kombination aus Code und Englisch mit dem, was hinzugefügt werden muss. Er ist sehr einfach, sollte Ihnen aber einen Ausgangspunkt für Ihre Idee bieten. Es gibt zahlreiche Lücken, wie z. B. die Frage, wie man mit den Arrays umgeht, wenn sie das Ende erreichen, aber das ist alles Teil der Lernkurve. Ich schlage vor, den Code mit einem Symbol und dann mit zwei Symbolen usw. zum Laufen zu bringen, damit Sie eventuelle Fehler im Code ausmerzen und beheben können. Wie ich schon sagte, ist dies nur ein grober Entwurf, also verwenden Sie ihn als solchen, und Verbesserungen sind möglich, zum Beispiel können Sie einen Struct-Datentyp oder ein Objekt anstelle der drei Arrays verwenden, um die Tick-Daten zu speichern, aber dieser Entwurf ist am Anfang etwas einfacher, und Sie können sich in einer späteren Phase der Programmierung mit Strukturen und objektorientierter Programmierung befassen.

Ich habe versucht, mich klar auszudrücken, aber das kann für Sie sehr verwirrend sein. Wenn Sie also weitere Fragen zur Klarheit haben, lassen Sie es mich wissen, und ich werde helfen, wo ich kann, aber leider habe ich keine Zeit, so etwas zu programmieren.

Hier ist der Pseudocode,

// OnInit ()
    {
     string nameArray[]={"EURUSD","...","USDJPY"};                         // As suggested by thrdel. Creates an array with currency pairs
     int TicksRecorded [#  of symbols monitored];                           // Records the required position in the PriceData array to write the next tick data to for each symbol
     double PriceData [#  of symbols monitored][Ticks][data to record];     // Stores price data for each symbol required for as many ticks as required

     Create the timer and set an appropriate interval
     Open a file to save data if required for future use
     
     for (x=0; x < #  of symboels; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {                                                               // Also adapted from thrdel's code example
            PriceData [x][0][0] = Ask;
            PriceData [x][0][0] = Bid;
            ... whatever else you want to record
           }

// EventSetMillisecondTimer()
    {
     Refresh all price data for all symbols
     for (x=0; x < #  of symbols; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {
            if ((current Ask != to previously recorded Ask for that x) or (current Bid != to previously recorded Bid for that x)... and every other price data you want)
                {
                 TicksRecorded [x]++;                                    // Increments the position in the PriceData array holding the latest tick data for that symbol
                 PriceData [x][TicksRecorded[x]][0] = Ask;
                 PriceData [x][TicksRecorded[x]][1] = Bid;
                 ... and whatever else you want to record
                 Flag to indicate a new tick has been received set to true
                }
            if (new data)
                {
                 Set new data flag to false
                 Do custom action
                }
           }
     }

// OnDeinit ()
     {
      Kill the timer
      Save data to a file if required
     }
 

Ich benutze einfach Globale Variablen, damit mein Ea die Trades von einem Chart aus überwachen/erstellen kann.

Obwohl Sie haben, um Ihre ea ein bisschen robuster und nicht spezifisch für ein Diagramm zu machen.

 

Warum funktioniert das Folgende nicht?


wenn (dies ist wahr){

ticket=OrderSend("GBPUSD",OP_SELL,lot,Bid,0,0,0,"",0,0,0,Red);

ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,0,"",0,0,Grün);

ticket=OrderSend("USDJPY",OP_BUY,lot,Ask,0,0,0,"",0,0,0,Grün);

}


Es erscheint ein Fehler 4106 Symbol unbekannt

 
Daniel Laverdiere: Warum sollte das Folgende nicht funktionieren?

wenn (dies wahr ist){

ticket=OrderSend("GBPUSD",OP_SELL,lot,Bid,0,0,0,"",0,0,Rot);

ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,0,"",0,0,Grün);

ticket=OrderSend("USDJPY",OP_BUY,lot,Ask,0,0,0,"",0,0,0,Grün);

}


Es erscheint ein Fehler 4106 Symbol unbekannt

  1. Wenn Sie den Code posten, benutzen Sie bitte die SRC-Taste!

  2. Wenn das Benennungsmuster Ihrer Charts nicht genau"BasQuo" ist, kann es nicht funktionieren.

  3. Handeln Sie nicht mehrere Währungen in einem EA.