проблема в установке СтопЛосса

 

extern double StopLoss    = 100;

extern double TakeProfit  = 50;

if(Digits==3 || Digits ==5)

   {

      TakeProfit*=10;

      StopLoss*=10;

   }

 

point=MarketInfo(pairs[MaxIndex],MODE_POINT);

dig=MarketInfo(pairs[MaxIndex],MODE_DIGITS);

CurrentPriceBid=MarketInfo(pairs[MaxIndex],MODE_BID);
CurrentPriceAsk=MarketInfo(pairs[MaxIndex],MODE_ASK);

to SELL

StopLoss=NormalizeDouble(CurrentPriceAsk+StopLoss*point,dig);

TakeProfit=NormalizeDouble(CurrentPriceBid-TakeProfit*point,dig);

 OrderSend(pairs[MaxIndex], OP_SELL, Lots,CurrentPriceBid, Slippage, StopLoss,TakeProfit,"Sell",Magic,0,Blue)

 

to BUY

StopLoss=NormalizeDouble(CurrentPriceBid-StopLoss*point,dig);

TakeProfit=NormalizeDouble(CurrentPriceAsk+TakeProfit*point,dig);

OrderSend(pairs[MaxIndex],OP_BUY, Lots, CurrentPriceAsk,Slippage, StopLoss,TakeProfit,"Buy",Magic,0,Green) 

 

получаю ожидаемые TakeProfit +/- Slippage (47, 49 - 50) но СтопЛосс всегда малость больше 107, 109, что я не так делаю? 

 
А зачем от разных цен ТП и СЛ считать? Подозреваю, что СЛ как раз на спред отличается от нужного.
 
Ну так селл по бид. В коде стоплосс считается от аск, тейкпрофит от бид. Аск выше бида, поэтому стоплосс дальше получается. 
Причина обращения: