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);}}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
} } }