Kod: Zaznacz cały
//--- input parameters
input string StopOut="% straty konta";
input double ProSL=30;
extern bool AlarmSL = True;
extern string AlarmSl = "timeout.wav";
input string TP="% zysku konta";
input double ProTP=5;
extern bool AlarmTP = True;
extern string AlarmTp ="news.wav";
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int start()
{
double sl = ProSL*0.01;
double tp = ProTP*0.01;
int Slip = 5;
double Balance = AccountBalance();
double EQ = AccountEquity();
double BSL = AccountBalance()*(1-sl);
double BTP = AccountBalance()*(1+tp);
if(BSL<=AccountEquity())
{ for(int P=OrdersTotal()-1;P>0;P--)
{ OrderSelect(P,SELECT_BY_POS);
int type = OrderType();
bool ON = false;
switch(type)
{ case OP_BUY : ON = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slip,Gold);
break;
case OP_SELL : ON = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slip,Gold);
}
return(0);
}
if(AlarmSL) PlaySound(AlarmSl);
Print("Stop określonego OUT konta niestety bardzo mi przykro");
}
else
if(BTP>=AccountEquity())
{ for(int P=OrdersTotal()-1;P>0;P--)
{ OrderSelect(P,SELECT_BY_POS);
int type = OrderType();
bool ON = false;
switch(type)
{ case OP_BUY : ON = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slip,Gold);
break;
case OP_SELL : ON = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slip,Gold);
}
return(0);
}
if (AlarmTP) PlaySound(AlarmTp);
Print("Gratuluje zamkniecie na zysku");
}
else
Sleep(1);
return(0);
}