Offene Positionen werden sofort geschlossen

 

Hallo,

Ich habe ein Problem mit meinem EA. Im Tester funktioniert es gut, aber plötzlich wird die geöffnete Position sofort nach dem Öffnen geschlossen (siehe Bild):

Die Position Nr. 68 auf USDJPY, die geschlossen werden soll, konnte ich bisher nirgendwo im Forum finden....

Dies ist mein Code zum Öffnen der Position:

//--- declare and initialize the trade request and result of trade request
   MqlTradeRequest request= {};
   MqlTradeResult  result= {};
   request.action = TRADE_ACTION_DEAL;
   request.magic = EXPERT_MAGIC;
   request.symbol = current_symbol;
   request.volume = NormalizeDouble(Lot_Size,2);
   request.type = ORDER_TYPE_BUY;
   request.price = SymbolInfoDouble(current_symbol, SYMBOL_ASK);
   request.deviation=20;                                    // allowed deviation from the price
//--- send the request
   if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());     // if unable to send the request, output the error code
//--- information about the operation
   PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);

Danke für Ihre Unterstützung!

 

Das ist leider viel zu wenig, um zu helfen.

Mehr Code und mehr logs vorher und nachher, zB. wo ist der Eintrag des PrintFormat(..)?

Es ist etwas verwirrend, aber order meint nicht nur pending order (schwebender Auftrag) sondern auch alle Aufträge des Händlers/Terminals an den Server des Brokers.

Order #69 ist also ein Auftrag nach er Position #68.

Siehe dazu: https://www.mql5.com/de/articles/211
Orders, Positions und Abschlüsse in MetaTrader 5
Orders, Positions und Abschlüsse in MetaTrader 5
  • www.mql5.com
Einen robusten Handelsroboter zu erzeugen geht nicht ohne das Verständnis der Mechanismen des MetaTrader 5 Handelssystems. Der Client-Terminal erhält vom Handelsserver Informationen über die Positions, Orders und Abschlüsse. Um diese Daten mittels MQL5 entsprechend verarbeiten zu können, ist ein gutes Verständnis der Interaktion zwischen dem mql5-Programm und dem Client-Terminal unabdingbar.
 
Schau mal mit dem debugger woran das liegt, da ist sicher was beim Order schließen
 
Genau. Im Code ist nur die Funktion fürs senden von Buy Orders und fällt Close Orders Code und Strategie, wann die Orders geschlossen werden.
 
habs lösen können. Ich hatte eine Funktion, isTradingTime, die meine Handelszeiten eingeschränkt hat und wenn keine Handelszeit war etwaige offene Orders gelöscht hat. Darin lag der Fehler.
Danke dennoch für Eure Unterstützung :)