Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 18.06.20
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 Werte auf Anfangs-Werte zurück setzen

Hallo.

Der EA im Anhang erhöht beim Schließen einer erfolgreichen Order die Lots. Allerdings soll er das (vorläufig) nur ein mal machen. Welche Wege gibts, den globalen Anfangswert nach 1 oder 2 Erhöhungen sozusagen auf seinen Anfangswert zurück zu setzen?

Anfangswerte sind ganz oben. Wenn die jeweilige Buy / Sell - Order mit Gewinn geschlossen wird, wird ihr jeweiliger Lot-Einsatz mit LotsPlus addiert. Das soll aber (vorläufig) nur ein mal gemacht werden. Bei der nächsten Order sollen wieder die jeweiligen Anfangswerte (0.01) benutzt werden.
Code:
extern double LotsBuy=0.01;
extern double LotsSel=0.01;

extern string esLPOCP1="Lots Buy/Lots Sell";
extern string esLPOCP2="+ LotsPlus";
extern string esLPOCP3="if Order close";
extern string esLPOCP4="with Profit";

extern double LotsPlus=0.01; //
Code:
for(int j=OrdersTotal()-1;j>=0;j--){
  if(OrderSelect(j,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

    
    if(OrderMagicNumber()==MN_Sel){


//         Ask - Dist                          Ask + Dist
      if( (CLsel_Lo_D >= OrderOpenPrice()) || (CLsel_Pr_D < OrderOpenPrice()) ){


//          Ask + Dist
        if( CLsel_Pr_D < OrderOpenPrice() )LotsSel = OrderLots() + LotsPlus;


        if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
        if(IsTradeContextBusy()==true)Sleep(Sl_MS);}}


//////////////////////////////////////////////////////////////////////////////////////////////////////////////

    
    if(OrderMagicNumber()==MN_Buy){


//         Bid + Dist                          Bid - Dist
      if( (CLbuy_Lo_D <= OrderOpenPrice()) || (CLbuy_Pr_D > OrderOpenPrice()) ){


//          Bid - Dist
        if( CLbuy_Pr_D > OrderOpenPrice() )LotsBuy = OrderLots() + LotsPlus;


        if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
        if(IsTradeContextBusy()==true)Sleep(Sl_MS);}}


//////////////////////////////////////////////////////////////////////////////////////////////////////////////


} } }
Angehängte Dateien
Dateityp: mq4 LoSh_Dist_v4.mq4 (23,9 KB, 2x aufgerufen)