Fehler, Irrtümer, Fragen - Seite 3132

 
Yury Lemeshev #:

Es gibt nur ein Problem: Es taucht zufällig und gelegentlich auf.

Erscheint, wenn man im Tester mit mehreren Währungen arbeitet.

In jedem Zyklus fordere ich aktuelle Preise für Symbole an. Wenn das Prüfgerät aus irgendeinem Grund keine Kurse für ein bestimmtes Symbol erhält, verwendet es die zuvor für ein anderes Symbol erhaltenen Kurse.

Ich sollte eine Position eröffnen, wenn der Preis höher als der angegebene Preis ist. Ich sollte eine Position eröffnen, wenn ich falsche Daten von einem anderen Symbol erhalten habe.

Das EURCAD-Symbol öffnet sich, wenn der Preis über 1,45117 liegt. 1,74425>1,45117? Ja, er ist höher, aber es ist der Preis eines anderen Symbols.

Wir haben 7 von 500 fehlerhaften Aufträgen entdeckt.

Ich kann nur vermuten, dass die Preisanfrage vom Symbol, die Antwort in ein und dieselbe Umgebungsvariable geworfen wird. Ich prüfe nur kurz, ob er mit dem vorherigen Wert übereinstimmt. Wenn es ein anderes Symbol ist, ist es sehr selten.

 
Yury Lemeshev #:

Es gibt keinen Fehler im Code, der Code wurde umgeschrieben, um den Fehler zu beseitigen, und der Fehler tritt nicht regelmäßig auf, er ist völlig chaotisch

In dieser Welt gibt es keine Wunder... Hier ist einer der Telepathen, der noch nicht auf einem Saufgelage ist und auch über einen Fehler spricht.

 
Yury Lemeshev #:

Es gibt nur ein Problem: Es taucht zufällig und gelegentlich auf.

Erscheint, wenn man im Tester mit mehreren Währungen arbeitet.

In jedem Zyklus fordere ich aktuelle Preise für Symbole an. Wenn das Prüfgerät aus irgendeinem Grund keine Kurse für ein bestimmtes Symbol erhält, verwendet es die zuvor für ein anderes Symbol erhaltenen Kurse.

Ich sollte eine Position eröffnen, wenn der Preis höher als der angegebene Preis ist. Ich sollte eine Position eröffnen, wenn ich falsche Daten von einem anderen Symbol erhalten habe.

Das EURCAD-Symbol öffnet sich, wenn der Preis über 1,45117 liegt. 1,74425>1,45117? Ja, er ist höher, aber es ist der Preis eines anderen Symbols.

Wir haben 7 von 500 fehlerhaften Aufträgen entdeckt.

Die Antwort liegt in der Frage selbst. Der Roboter kann irrelevante Zitate oder falsche Daten von einem anderen Symbol verwenden. Ich weiß nicht, was genau die Idee ist. Aber irgendetwas stimmt offensichtlich nicht mit dem Code...

 
Mihail Matkovskij #:

Die Antwort liegt in der Frage selbst. Der Roboter kann irrelevante Zitate oder falsche Daten von einem anderen Symbol verwenden. Ich weiß natürlich nicht, was die Idee dahinter ist. Aber irgendetwas stimmt offensichtlich nicht mit dem Code.

Im Code ist etwas falsch. Es gibt Lücken in der Logik. Die flackernden Pfosten sind im Allgemeinen schwer vorherzusehen und abzuwehren.

 
2021.12.31 22:14:19.911 2019.01.24 18:50:09 -2117- EURGBP 0.86993
2021.12.31 22:14:19.912 2019.01.24 18:50:10 -2117- EURGBP 0.86994
2021.12.31 22:14:19.912 2019.01.24 18:50:10-2117- EURGBP 1.5969
2021.12.31 22:14:19.912 2019.01.24 18:50:10 Sofortkauf 0,01 EURGBP zu 0,86993 (0,86985 / 0,86993 / 0,86985)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 Geschäft #13 buy 0.01 EURGBP at 0.86993 ausgeführt (basierend auf Auftrag #13)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 Geschäft abgeschlossen [#13 buy 0.01 EURGBP at 0.86993]
2021.12.31 22:14:19.912 2019.01.24 18:50:10 Order ausgeführt Kauf 0,01 zu 0,86993 [#13 Kauf 0,01 EURGBP zu 0,86993]

Jeder Zyklus ist in Ordnung, aber im Moment werden die Daten von einem anderen Symbol ersetzt. 1,5969>0,88506 ja, Position eröffnet. Es handelt sich nicht um einen Codefehler. Dies ist ein Fehler im Testgerät.

euSY01b=0;euSY01a=0;
   if(SymbolInfoDouble(euSY01,SYMBOL_BID,euSY01b)==true && SymbolInfoDouble(euSY01,SYMBOL_ASK,euSY01a)==true && euSY01b>0 && euSY01a>0)
      {
      GlobalVariableSet("["+MAGICs+"] "+euSY01+" LAST BID",euSY01b);GlobalVariableSet("["+MAGICs+"] "+euSY01+" LAST ASK",euSY01a);
      }
 
Valeriy Yastremskiy #:

Im Code ist das alles so. Es gibt Lücken in der Logik. Flackernde Gelenke sind im Allgemeinen schwer vorherzusehen und abzuwehren.

Was ist Ihrer Meinung nach Logik ohne Code?

 
Yury Lemeshev #:
2021.12.31 22:14:19.911 2019.01.24 18:50:09 -2117- EURGBP 0.86993
2021.12.31 22:14:19.912 2019.01.24 18:50:10 -2117- EURGBP 0.86994
2021.12.31 22:14:19.912 2019.01.24 18:50:10-2117- EURGBP 1.5969
2021.12.31 22:14:19.912 2019.01.24 18:50:10 Sofortkauf 0,01 EURGBP zu 0,86993 (0,86985 / 0,86993 / 0,86985)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 Geschäft #13 buy 0.01 EURGBP at 0.86993 ausgeführt (basierend auf Auftrag #13)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 Geschäft abgeschlossen [#13 buy 0.01 EURGBP at 0.86993]
2021.12.31 22:14:19.912 2019.01.24 18:50:10 Order ausgeführt Kauf 0,01 zu 0,86993 [#13 Kauf 0,01 EURGBP zu 0,86993]

Jeder Zyklus ist in Ordnung, aber die Daten eines anderen Symbols werden im Moment ersetzt. 1,5969>0,88506 ja, Position eröffnet. Es handelt sich nicht um einen Codefehler. Dies ist ein Fehler im Testprogramm.

Prüfen Sie dann das Symbol auf das richtige Timing, bevor Sie die Signalsuche starten.

 
Mihail Matkovskij #:

Was ist Ihrer Meinung nach Logik ohne Code?

Problemstellung/Lokalisierung - Lösungsalgorithmus oder Lösungslogik - Code. Leider wird dies hier im Modus "Einer für alle" oft nicht verstanden. Die Codierung beginnt, bevor das Problem klar formuliert ist, noch nicht einmal der Lösungsalgorithmus. Natürlich ist die Logik, dass jede Abfrage immer ausgeführt wird, nicht nur im Tester falsch, sondern auch in der Realität. Daher müssen wir die richtigen Maßnahmen ergreifen, um toxische Folgen von flackernden Ereignissen zu vermeiden))) Fröhliche Feiertage!!!!

 
Valeriy Yastremskiy #:

Fröhliche Feiertage!!!!

Ich danke Ihnen. Das Gleiche gilt für Sie!

Im Kern der Frage habe ich oben geschrieben, was getan werden muss. Und dann wird die Logik funktionieren.

 
Mihail Matkovskij #:

dann prüfen Sie das Symbol auf Synchronisation, bevor Sie die Signalsuche starten.

   if(SymbolIsSynchronized(euSY01)==true && SymbolInfoDouble(euSY01,SYMBOL_BID,euSY01b)==true && SymbolInfoDouble(euSY01,SYMBOL_ASK,euSY01a)==true && euSY01b>0 && euSY01a>0)

Wenn Sie dies tun und es gibt 7 solcher Zeilen im Code für sieben Paare, dann wird die Marktübersicht nur Kurse für eine Währung enthalten.


Grund der Beschwerde: