Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 29.01.17
piptrade piptrade ist offline
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Question Trade-Ergebnisse aus OrderHistory auslesen

Hallo, liebe Programmier-"Gemeinde",

habe einen ersten kleinen EA erstellt, der weitestgehend sogar funktioniert. Da sich dieser "Robot" (performance- und equity-abhängig) unterschiedlicher Lot-Größen bedient, ist es allerdings recht schwierig, die erzielten Ergebnisse auch richtig auszuwerten. So reicht es an dieser Stelle nicht aus, die Profits/Losses nur in Form von Pips/Punkten zu ermitteln (dennoch hierzu script-Versuch 1).

Wichtiger wäre hier das Auslesen der tatsächlich erwirtschafteten Gewinne/Verluste, welche jeweils an einen Buffer übergeben und am Ende einfach aufaddiert werden (script-Versuch 2).
(Da MQL scheinbar keine Funktion "OrderLosses()" zur Verfügung stellt, werden die Verluste sicher mittels "OrderProfit()" geholt und entsprechend als Negativ-Betrag ausgewiesen. Ist das richtig?)

Meines Erachtens könnten erste Ansätze ggf. "SO" aussehen:

Code:
//+--- script_Versuch 1 --------------------------------------------+
//+--- get Profits and Losses as Points/pips -----------------------+

for(int i = OrdersHistoryTotal()-1; i>=0; i--)
   {
   OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);
   if(OrderSymbol() == Symbol())
     {
     if(TimeCurrent() - OrderCloseTime()==1)
       {
       if(OrderClosePrice() == OrderTakeProfit()) Print("TakeProfit");  //  or:  TakeProfit;
     else Print("StopLoss");                                            //  or:  StopLoss;
       }
     }
   }

//+--- script_Versuch 2 ---------------------------------------------+
//+--- get Profits and Losses as Money ------------------------------+

double Profit_OP_BUY,Losses_OP_BUY,Profit_OP_SELL,Losses_OP_SELL;

for (int i=OrdersHistoryTotal()-1; i>=0; i--)
    {
    OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);
    if(OrderSymbol() == Symbol())
     {
     if(OrderType()==OP_BUY)
       {
       if(OrderClosePrice()>OrderStopLoss())
         {
         if(OrderProfit()>0)   Print("Profit OP_BUY");   //  or:  Profit_OP_BUY;
       else 
         Print("Losses OP_BUY");                         //  or:  Losses_OP_BUY;
         }
       }
     if(OrderType()==OP_SELL)
       {
       if(OrderClosePrice()<OrderStopLoss())
         {
         if(OrderProfit()>0)   Print("Profit OP_SELL");  //  or:  Profit_OP_SELL;
       else 
         Print("Losses OP_SELL");                        //  or:  Losses_OP_SELL;
         }
       }
     }
   }
In der Hoffnung, dass ich nicht ganz "daneben liege", würde ich mich über Eure Resonanz, besonders aber über Eure Hilfestellung und Unterstützung, freuen.
Hierzu ein kleines "Danke" schon `mal im Vorraus.

LG. piptrade