Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 18.09.20
MarkusWilhelm89 MarkusWilhelm89 ist offline
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 64
MarkusWilhelm89 befindet sich auf einem aufstrebenden Ast
Standard Schleife oder Bedingung einbauen

Hallo,
ich möchte in meinem EA eine Schleife oder Bedingung einbauen, weiß aber aktuell nicht wie die richtigen CodeZeilen sind.

Grund-Idee:
EA soll zB eine BUY-Order (TP 100 / SL 200) eröffnen, gleichzeitig eine SELL-STOP auf halbem Weg vom BUY StopLoss setzen mit doppelter LotSize.

Sobald entweder die BUY-Order oder die SELL-Order im TakeProfit landen,
ALLE offnen Orders schließen.

CodeBsp.:

for (int i=0; i<=OrdersHistoryTotal()-1; i++)
if(OrderSymbol()==_Symbol)
if(OrderMagicNumber()==MagicNumber)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true )
if(OrderProfit()>0)
{
for (int c=0; c<=OrdersTotal()-1; c++)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==_Symbol)
if(OrderMagicNumber()==MagicNumber)

if(OrderType()==OP_BUYSTOP) bool close=OrderDelete(OrderTicket());
if(OrderType()==OP_SELLSTOP) bool close=OrderDelete(OrderTicket());
if(OrderType()==OP_BUY) bool close=OrderClose(OrderTicket(),OrderLots(),Bid,10, clrNONE);
if(OrderType()==OP_SELL) bool close=OrderClose(OrderTicket(),OrderLots(),Ask,10, clrNONE); };


Jetzt ist keine Position mehr offen.
Sobald ein neues Signal kommt, öffne wieder zB BUY & SELL-STOP

Problem
Der EA schließt sofort wieder die neuen Positionen, da die Bedingung "History: OrderProfit()>0" ja immer noch erfüllt ist...

Lösungssuche
Die "neuen" Positionen sollen nicht automatisch geschlossen werden sondern erst dann, wenn eine davon wieder im TP landet...


Hat jemand eine Idee oder Lösungsansatz wie ich das Problem umgehen kann?
Bisherige Gedankengänge:
- dem EA sagen, wenn die letzte Order(History) "delete" ist, überspring den Block
- wenn die neue OrderOpenTime() jünger ist als die im TP gelandete Position