MT5 - Unerwartetes Verhalten beim automatischen Handel

 

Wie schon im Titel erwähnt, verhält sich der MT5 vollkommen unerwartet beim automatischen Handel.

Im Journal wird mir beim Start des MT5 'nettingmode' angezeigt.
Das funktioniert auch im manuellen Handel & Einklickhandel, die Positionen werden zusammengezogen (hedging nicht möglich , martingale geht).

Jetzt ist mir gerade mein fast fertiger EA quasi durchgegangen und hat jede Menge Orders, sowohl Buy als auch Sell abgesetzt!
(Natürlich auf dem Demokonto und nur MikroLots, also egal).

Die Orders werden via StandardLibrary 'Trades\Trades.mqh' geöffnet.
Es kann sich doch da wieder einmal nur um einen Bug handeln!? Denn so ist Hedging mit dem MT5 definitiv möglich!
Heute ist der deutschsprachige Servicedesk von ActivTrades nicht mehr besetzt, ich werde morgen Kontakt aufnehmen.

Ist auf alle Fälle ein wichtiger Punkt für automatisches/semiautomatisches Trading!
Vielleicht weiß da jemand genaueres.

LG Otto

 

Guten Morgen Otto , 

 

lass uns das Problem Finden :-)

 

Das hört sich nach einer Schleife an in der nicht richtig geprüft ist ob die EINE Position für das Symbol korrekt im Markt ist. 

Wenn du aber mehrere Positionen für ein Symbol auf hast sollte er nicht im Netting Mode sein. Andernfalls könnte es ein BUG sein .  

Ein wenig mehr Infos musst du da aber bringen. Poste doch bitte mal beide Logs.

 

Gruß Christian 

 

Ich fürchte das Problem liegt bei mir, bzw bei meinem EA, das waren Orders für verschiedene Symbole.

War doch schon etwas spät gestern.

Ich Prüfe das Log.

Habe jetzt einen Termin, berichte später!

Danke für Feedback

 
Hat sich alles erledigt!
Der Fehler lag bei mir, bzw. bei dem EA der noch nicht fertig ist und einfach losgelegt hat.
Waren verschiedene Symbole, habe blos die Panik bekommen, der EA war in 10 Charts geladen.

Bin bei diesem Vorfall draufgekommen, daß die verschiedenen Instanzen des EAs miteinander kommunizieren müssen.
Wieder was dazugelernt. C++ zu können ist halt in diesem Falle zuwenig, man muß auch das System verstehen und lernen.

Liebe Grüße

Otto

 
Kommunizieren können sie ganz einfach über Globale Variablen Otto.
 

Ja Christian, ist schon klar, über die 'globalen' haben wir ja schon gesprochen, wenn ich mich recht erinnere, oder war das im 'expert-advisor.com/forum'. Bin schon ganz durcheinander.

Auf alle Fälle habe ich 2 hilfreiche Funktionen meiner 'MyUtils.mqh' hinzugefügt:

bool GlobalVarGetAsBool(string aVarName, bool aDefault=false)
{
   if(GlobalVariableCheck(aVarName))                        // Variable vorhanden ?
      return(GlobalVariableGet(aVarName)==0.0?false:true);  // JA - Wert lesen und als bool übergeben
   else
      {                                                     // NEIN
       GlobalVariableSet(aVarName, aDefault?1.0:0.0);       // Wert auf aDefault setzen
       return(aDefault);                                    // aDefault übergeben
      }
}

datetime GlobalVarSetAsBool(string aVarName, bool aValue)
{
   return(GlobalVariableSet(aVarName,aValue?1.0:0.0));      // Variable auf 1.0 oder 0.0 setzen
}

Die verwende ich dann so:

#define ProgName "OPA-Trader"  // oder halt irgendein VariablenName zB "Hugo". Definiere ich gerne, weil ich mich mehrfach darauf beziehe.

trading_enabled=GlobalVarGetAsBool(ProgName, true)

Ist doch recht hilfreich, finde ich.

Es wäre super wenn es eine Bibliothek von solchen CodeSnippets (wie ich sowas bezeichne) gäbe, ich könnte viel dazu beitragen.

LG Otto

 

Fein aber das war ein anderer Christian. Ich bin da im Forum noch nicht.