ошибка 4051

 

Пожалуйста, подскажите - где ошибка неправильного параметра функции в строке:

SellTicket = OrderSend(Symbol(), OP_SELL, 0.03, Bid, 5, Bid+30*Point, Bid-300*Point, "Sell Order", 0, 0, Green);

 

0.03, Bid, 5, Bid+30*Point, Bid-300*Point

Лот нужно проверять через МаркетИнфо. Если он менее допустимого, то переменную лота ставим равной минимально-допустимому. Цену открытия прогоняем через

PR=NormalizeDouble(Bid,Digits); - как ни странно, но если этого не сделать, то нередко выскакивают всякие ошибки.

То же самое со стоплосом и тейком.

int MinLevel=MarketInfo(Symbol(),MODE_STOPLEVEL); int StopLoss=30;

if ( StopLoss <MinLevel) StopLoss=MinLevel;

double SL=NormalizeDouble(PR+ StopLoss *Point,Digits); - тоже нужно проверять на минимально-допустимое расстояние. Если Ваш ДЦ расширил спреды, то вполне может оказаться, что 30 пунктов стопа это очень мало - это менее допустимого.

 
Большое спасибо за подсказки :)
Причина обращения: