Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 829
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
Der Multiwährungsexperte in der Schleife fragt die Daten nach Symbolen ab. Es gibt ein solches Fragment:
Alle Symbole gehen normal durch. Während des ersten Durchlaufs beträgt die Zeit etwa 120 ms, da die Indikatorpuffer gefüllt werden. Ab dem zweiten Durchlauf ist die Berechnungszeit für den aktuellen Balken kleiner als 1 ms.
Eine Besonderheit ist, dass ein bekannter Broker das Symbol EURRUR hat, für das es keine Daten gibt ("Warten auf Aktualisierung"). Daher bleibt die Berechnung 51 Sekunden lang in dieser Zeile stecken. Fehler 4806. 51 Sekunden sind nicht einmal für ein (erstes) Mal akzeptabel, geschweige denn für einen ganzen Zyklus.
Frage. Wie kann ich schnell herausfinden, dass es für ein bestimmtes Zeichen keine Daten gibt? Ich würde sie dann auswendig lernen und bei den folgenden Durchläufen einfach über sie hinweggehen und weitermachen, ohne das Tempo zu verlieren.
Kolleginnen und Kollegen, bitte beraten Sie mich, wie man ein Array vom Typ double in string konvertiert. Ich muss sie in eine Datei schreiben. Hier ist ein allgemeiner Ausbildungscode.
Informationen aus dem Artikel
Speichern und Laden von Arrays aus einer Datei
Beim Speichern und Laden eines Arrays aus einer Datei sollte die Differenz zwischen der ersten Dimension der Array-Größe und der Gesamtzahl seiner Elemente berücksichtigt werden. Wenn Sie ein Array speichern, sollten Sie zuerst die Größe des Arrays (die Gesamtzahl der Elemente, die durch ArraySize() bestimmt wird) in die Datei schreiben, dann das gesamte Array:
Hallo, ich stehe vor folgendem Problem.
Ich habe zwei EAs für dasselbe Instrument mit jeweils unterschiedlichen Magics. Ich stelle meine Magie über CTrade ein und eröffne eine Position ebenfalls über CTrade. Wenn ich eine offene Position des ersten EA habe, ist seine Magie dem zweiten EA zugewiesen (ich habe es nach dem Öffnen einer Position überprüft, siehe unten), so dass die Prüfung auf offene Positionen meine Magie nicht sieht und ich viele Positionen in eine Richtung öffne. Das Konto ist ein Demokonto, dies kann im Tester nicht erkannt werden. Wenn der Wert der Magie in der Klasse gespeichert wird, sollte er vielleicht auf Null gesetzt werden, aber ich weiß nicht, wie.
Hallo, ich stehe vor folgendem Problem.
Ich habe zwei EAs für dasselbe Instrument mit jeweils unterschiedlichen Magics. Ich stelle meine Magie über CTrade ein und eröffne eine Position ebenfalls über CTrade. Wenn ich eine offene Position des ersten EA habe, ist seine Magie dem zweiten EA zugewiesen (ich habe es nach dem Öffnen einer Position überprüft, siehe unten), so dass die Prüfung auf offene Positionen meine Magie nicht sieht und ich viele Positionen in eine Richtung öffne. Das Konto ist ein Demokonto, dies kann im Tester nicht erkannt werden. Wenn der Wert der Magie in der Klasse gespeichert ist, muss er vielleicht auf Null gesetzt werden, aber ich weiß nicht, wie.
Bittefügen Sie den Code korrektein, nicht als Textblatt.
Was den Code betrifft: Setzen Sie die Eingabeparameter für jeden EA mit seiner eigenen Magie. Nehmen wir an, Sie setzen den ersten auf 10001 und den zweiten auf 10002.
Bittefügen Sie den Code korrektein, nicht als Textblatt.
Wie für den Code: Setzen Sie die Eingabeparameter für jeden EA mit seiner eigenen Magie. Angenommen, Sie setzen die erste auf 10001 und die zweite auf 10002.
Vielen Dank für diese kurze Antwort. Aber genau das ist der Punkt, die Magie ist anders. Ich habe also festgestellt, dass der zweite Roboter die Positionen mit dem ersten Magier öffnet. Ich weiß nicht, wie das geschieht und wo er die magische Zahl des ersten EA speichert, aber ich würde es gerne herausfinden.
Vielen Dank für die schnelle Antwort. Aber das ist die Sache, die Magier sind anders. So habe ich herausgefunden, dass der zweite Roboter Positionen mit der magischen Zahl des ersten eröffnet. Ich weiß nicht, wie es passiert und wo er die erste Zauberernummer speichert, aber ich würde es gerne herausfinden.
In diesem Fall ist es besser, die Magie
// выставляем магик m_trade.SetExpertMagicNumber(Magic);
vor jeder Öffnung von Position/Order statt in OnInit.In diesem Fall ist es besser, eine Magie anzugeben
vor jedem Öffnen der Position, nicht in OnInit.In diesem Fall ist es nicht "besser", sondern genau das, was Sie brauchen - es ist eine Wrapper-Klasse für Standard-Handelsfunktionen. Er speichert keine Mehrfachmagie. Deshalb sollte jedes Mal eine Magie gesetzt werden, bevor und wenn man eine Position mit einer neuen Magie eröffnen will.
Im Allgemeinen ist die Reihenfolge wie folgt:
usw...
In diesem Fall ist es besser, eine Magie zu setzen
Vor jeder Eröffnung einer Position/eines Auftrags und nicht bei OnInit.Ursprünglich war es so, es hilft nicht. Aber in den Beispielen ist es normalerweise in OnInit und hat sich daher verschoben. Lange Zeit habe ich damit herumgespielt, Eulen im Test scheinen reibungslos zu laufen, dann öffne ich plötzlich den Server und es gibt 20 Positionen in eine Richtung. Kann die Tatsache, dass die Überprüfung für offene Stellen ist nicht durch Klassen?
Vielen Dank für die schnelle Antwort. Aber das ist die Sache, die Magier sind anders. So habe ich herausgefunden, dass der zweite Roboter Positionen mit der magischen Zahl des ersten eröffnet. Ich weiß nicht, wie das passiert und wo er die magische Zahl von EA zuerst speichert, aber ich will es herausfinden.
Da es keineGetExpertMagicNumber-Methode in der CTrade-Klasse gibt, drucken Sie bitte diesen Code nach der Handelsoperation aus:
Auf diese Weise können Sie überprüfen, ob beide EAs unterschiedliche Magie haben.