Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 09.01.19
MA-EA MA-EA ist offline
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard Geschlossene Order auslesen

Hallo.

Ich versuche, von der zuletzt geschlossenen Order den Profit raus zu finden. Wenn der 0 oder größer ist, soll die vorher selektierte Stop-Order gelöscht werden. Ist das so richtig?

1. Die gerade offene Buy-Market-Order selektieren und schließen:

Code:
for(i=OrdersTotal()-1;i>=0;i--){
  if(OrderSelect(i,SELECT_BY_POS)){

    if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_Market_MN&&OrderSymbol()==Symbol()){
       if((CP_1<Slow_MA)||(Close_all_Orders_after_Time_O_Clock==true&&TC>CA))OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,DarkBlue);}
2. Ist dann aber noch nen Sell-Stop offen, der geschlossen werden soll, wenn der dazu gehörige Buy-Market Gewinn, bzw. keinen Verlust gemacht hat. Also die Stop-Order selektieren:
Code:
    if(OrderType()==OP_SELLSTOP&&OrderMagicNumber()==Sell_Stop_MN&&OrderSymbol()==Symbol()){
3. Jetzt soll also raus gefunden werden, ob der Buy-Market Verlust gemacht hat. Wenn nicht, soll die Sell-Stop-Order gelöscht werden.
Code:
      for(i=OrdersTotal()-1;i>=0;i--){
        if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){

          if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_Market_MN&&OrderSymbol()==Symbol()){

            double old_Buy_Mark_OrPr = OrderProfit();}
              
                if((Buy_Mark_inv==false&&old_Buy_Mark_OrPr >= 0 )||(Close_all_Orders_after_Time_O_Clock==true&&TC>CA))OrderDelete(OrderTicket(),OrangeRed);} } }
Und irgendwo fehlt noch ne Klammer oder so.

Ist das ansonsten richtig?
Angehängte Dateien
Dateityp: mq4 Valerius_2MA_StopOrd_AutoLots_EA_MT4.mq4 (41,8 KB, 0x aufgerufen)