Fehler, Irrtümer, Fragen - Seite 2127

 
Slava:

Was meinen Sie mit "wurde"?

Das war schon immer so. Seit dem Beginn der neuen 4.

Ich will es nicht bestreiten und beweisen, aber vor etwa 2-3 Wochen scheint es so gewesen zu sein. Ich habe für eine Person einen Expert Advisor mit Schaltflächen und Eingabefeldern erstellt.
Ich musste eine Schaltfläche und ein Eingabefeld hinzufügen. Um den Einzug von der Ecke aus zu bestimmen, habe ich das Objekt immer manuell erstellt, und nachdem ich es an der gewünschten Stelle platziert hatte, habe ich mir die Eigenschaften angesehen und diese Werte in den Code eingefügt. Schließlich hätte ich mir so etwas nicht träumen lassen...

Ich könnte annehmen, dass ich ein programmatisch erstelltes Objekt verschiebe. Aber auch das ist jetzt unmöglich: Das Objekt ist zwar markiert, aber man kann es nicht verschieben.

 
die Prüfmittel die Festplatte überfüllen. Was ist zu tun - was ist zu konfigurieren. Es gibt 8 Server mit je 120gb
 
MQL5 Cloud Europe 1     genetic pass  tested with error "wrong timeframe request in Open Prices mode in OnTick function (EURUSD,M1)" 


Hallo zusammen.

Ist jemand auf diesen Fehler gestoßen, wenn er in der Cloud nur auf Open Prices optimiert ?


Der Fehler ist nicht konstant. D.h. es tritt "sehr selten" auf, aber wenn ich 10.000 Ergebnisse durchführe, taucht es 50 Mal auf.

Ich ändere die TF während der Optimierung nicht.

 
Vladislav Andruschenko:

Der Fehler ist nicht konstant. D.h. es kommt "sehr selten" vor, aber wenn Sie 10.000 Ergebnisse abrufen, taucht es 50 Mal auf.

Sie müssen alle Informationen, die Sie vom Agenten benötigen, über den Rahmen erhalten, um sie zu analysieren.

 
fxsaber:

Sie müssen alle notwendigen Informationen über einen Analyserahmen aus dem Agenten herausholen.

Dies geschieht immer bei 19 %. Ich habe einen Thread gefunden, in dem es heißt, dass es an der Geschichte liegt.
Ich werde es ausprobieren.
 

Die gesamte Abfolge der OnTradeTransaction-Ereignisse folgt auf den Abschluss von OrderSend.

EA

void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest&, const MqlTradeResult& )
{ 
  static bool FirstRun = true;  
  static ulong StartTime;
  
  if (FirstRun)
  {
    StartTime = GetMicrosecondCount();
    
    FirstRun = false;
  }

  Print(EnumToString(Trans.type));
  Print((GetMicrosecondCount() - StartTime) / 1000);    
}

Manuelles Senden eines Handelsauftrags.

Protokoll

2018.02.14 09:41:46.671 '8854170': instant sell 1.00 EURUSD at 1.23673
2018.02.14 09:41:46.853 '8854170': accepted instant sell 1.00 EURUSD at 1.23673
2018.02.14 09:41:46.853 '8854170': deal #192088422 sell 1.00 EURUSD at 1.23673 done (based on order #208541700)
2018.02.14 09:41:46.853 '8854170': order #208541700 sell 1.00 / 1.00 EURUSD at 1.23673 done in 190.608 ms


Expert Advisor Ergebnis

2018.02.14 09:41:46.853 TRADE_TRANSACTION_ORDER_ADD
2018.02.14 09:41:46.853 0
2018.02.14 09:41:46.853 TRADE_TRANSACTION_DEAL_ADD
2018.02.14 09:41:46.853 1
2018.02.14 09:41:46.853 TRADE_TRANSACTION_ORDER_DELETE
2018.02.14 09:41:46.853 1
2018.02.14 09:41:46.853 TRADE_TRANSACTION_HISTORY_ADD
2018.02.14 09:41:46.853 2
2018.02.14 09:41:46.853 TRADE_TRANSACTION_REQUEST
2018.02.14 09:41:46.853 2


Anhand der Zeitspalte und der numerischen Daten des EA können wir sehr gut erkennen, dass die Dauer der Ausführung eines Handelsauftrags keinen Einfluss auf die Abfolge der OnTradeTransaction-Ereignisse hat. Die ganze Asynchronität geht zum Teufel! Sie haben es geschafft, es so sehr zu vermasseln. Baujahr 1755.

 

Das Symbol hat Ziffern == 3

mit viel mehr Ziffern, die im Protokoll angezeigt werden

'18000903': failed modify order #896199 buy limit 0.01 BTCUSD at 616.00100 sl: 0.00000 tp: 0.00000 -> 616.00100, sl: 0.00000 tp: 616.10100 [Invalid request]
 
Die Spalte "Kommentar" fehlt in der Ansicht "Aufträge und Abschlüsse" des Handelsverlaufs.
 
Dies ist kein Fehler des Terminals, sondern der MT5-Plattform
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, Bid);
  
//  OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask, 100, 0, 0);
}

Führen Sie MQ-Demo auf einem sich langsam bewegenden Symbol aus. Zum Beispiel EURHUF.

Das Skript eröffnet eine BUY-Position mit TP = Bid. D.h. die Position sollte sofort geschlossen werden. TP wird aber erst beim nächsten Häkchen auf die Einhaltung der Annahmebedingung geprüft!

Die Position wird nicht sofort geschlossen, bis der nächste Tick erfolgt. Und wenn der nächste Tick Bid < TP ist, bleibt der TP ohne Annahme.


Das Gleiche gilt für Limit-Aufträge (kommentierte Zeile). Ähnlich verhält es sich mit dem Tester.

 
fxsaber:
Es handelt sich nicht um einen Fehler im Terminal, sondern in der MT5-Plattform

Führen Sie MQ-Demo auf einem sich langsam bewegenden Symbol aus. Zum Beispiel EURHUF.

Das Skript eröffnet eine BUY-Position mit TP = Bid. D.h. die Position sollte sofort geschlossen werden. TP wird aber erst beim nächsten Häkchen auf die Einhaltung der Annahmebedingung geprüft!

Die Position wird nicht sofort geschlossen, bis der nächste Tick erfolgt. Und wenn der nächste Tick Bid < TP ist, bleibt der TP ohne Annahme.


Das Gleiche gilt für Limit-Aufträge (kommentierte Zeile). Ähnlich verhält es sich mit dem Strategy Tester.

Bei Fragen zu MQL5 fügen Sie bitte einen sauberen MQL5-Code bei.

Ich bin es leid, Ihre NASTY-Werbung immer wieder zu sehen.