основной алгоритм :
Код
double buy_e,sell_e;
for(int Q=0;Q<OrdersTotal();Q++)
{
if(OrderSelect(Q,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol())
{
if( OrderMagicNumber()==MagicNumberLong || OrderMagicNumber()==MagicNumberShort ||OrderMagicNumber()==MagicNumber) {
if(OrderType()==OP_SELL)
{
sell_e+=OrderProfit()+OrderSwap();
}
if(OrderType()==OP_BUY)
{
buy_e+=OrderProfit()+OrderSwap();
}
}
//-----------------------------------считаем---------------------------------------------------------------
double PrcSELL=NormalizeDouble((sell_e*100)/AccountBalance(),2);
double PrcBUY=NormalizeDouble((buy_e*100)/AccountBalance(),2);
}
}
if(PrcSELL<0-PercentToNotTrade)SELLTRADE=false; else SELLTRADE=true;
if(PrcBUY<0-PercentToNotTrade)BUYTRADE=false; else BUYTRADE=true;
Новый параметр: extern int PercentToNotTrade=25; // Yjdsq параметр процент от Баланса просадки когда новые позы не открываются
дополнительные переменные
bool SELLTRADE,BUYTRADE;
Делал модификацию здесь:
Код
//dblPrice - не используется
int fOpenOrder(int iTypeOrder, double dblWorkLot, int iSlippage, int iStopLoss, int iTakeProfit, string strTradeComment, int iMagic, int iExpiration, color colorOrder)
//int fOpenOrder(int iTypeOrder, double dblWorkLot, double dblPrice, int iSlippage, int iStopLoss, int iTakeProfit, string strTradeComment, int iMagic, int iExpiration, color colorOrder) {
{
if(!SELLTRADE && iTypeOrder==OP_SELL)return(0);
if(!BUYTRADE && iTypeOrder==OP_BUY)return(0);