Thema: Hedge EA
Einzelnen Beitrag anzeigen
  #5 (permalink)  
Alt 25.04.20
TogoTiger TogoTiger ist offline
Mitglied
 
Registriert seit: Dec 2015
Beiträge: 85
TogoTiger befindet sich auf einem aufstrebenden Ast
Standard

Noch ein Rat:
Bau sowas in deinen Code ein:


Code:
#include <stderror.mqh>
#include <stdlib.mqh>

int      Fehlercode;
string   Fehlerbeschreibung;
string   Fehlerausgabe;

// nach OrderSend oder OrderClose oder wann du willst:

      if(TiBuy == -1)
      {
         Fehlercode = GetLastError();
         Fehlerbeschreibung = ErrorDescription(Fehlercode);
         Fehlerausgabe = StringConcatenate("Eröffnung Kauf-Order:",Fehlercode,": ",Fehlerbeschreibung);
         Print(Fehlerausgabe);
      }
Ich habe deinen Code mit dem DAX ausprobiert, und es ist wirklich so, dass Lotserhöhung mehrmals aufgerufen wird. Damit kann, wenn das oft passiert, Lotsize bis rieisg gross erhöht werden.
Aber ganz genau weiss ich auch nicht, wann das passiert. Dein Code ist nicht so programmiert, dass er sicher läuft, wenn Fehler passieren. Da musst du schon selber suchen. Wenn du Prints in dein Programm einbaust, sieht du in der Console ja, wann was abläuft.
Es gibt genügend Beispiele im Netz, wie man sicheren Code programmiert und wie man Fehler abfängt. Merk dir: Errorhandling ist etwas vom Wichtigsten bei sauberer Programmierung. Und du machst da genau nichts.

Geändert von TogoTiger (25.04.20 um 10:19 Uhr)