Минимально допустимый уровень стоп-лосса/тейк-профита

 

Здравствуйте, подскажите пожалуйста, как правильно пользоваться минимальным допустимым уровнем стоп-лосса/тейк-профита в пунктах. Я написал следующее:

int MinLot=MarketInfo(Symbol(),MODE_MINLOT); - минимальный размер лота

double VMin=MarketInfo(Symbol(),MODE_POINT)*MarketInfo(Symbol(),MODE_STOPLEVEL); - минимально допустимый уровень стоп-лосса/тейк-профита в валюте котировки

double VStopLossLong=Ask- VMin ; - уровень стоп-лосса
double VTakeProfitLong=Ask+ VMin ; - уровень тейк-профита

int ticket=OrderSend(Symbol(),OP_BUY,MinLot,Ask,0,VStopLossLong,VTakeProfitLong,"BUY: min",16381,0,Green);

Но ордер не выставляется :(. Заранее спасибо.

 
В некоторых ДЦ не возвращается значение минимального уровня. Проверьте через Print () или Comment().
 

Проверил, возвращает, допустим MarketInfo(Symbol(),MODE_POINT)=0,01, а MarketInfo(Symbol(),MODE_STOPLEVEL)=30. Но ордер не ставиться.

А вообще, если я хотел установить минимальные значения, то написал по логике правильно?

И второе, если этот вариант не работает, то как можно установить по другому минимальные значение?

 
Профи, подскажите же пожалуйста, как установить миниальный стоп-лосс? Мне кажется здесь ничего тайного нет, если Вы поделитесь свои опытом. По логике же вроде написано все верно, н опочему ордер не выставляется?
 
int init()
{
  StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
  if(TP < StopLevel) TP = StopLevel;
  if(SL < StopLevel) SL = StopLevel;
  return(0);
}
И Трал и любое другое также... Удачи!
 
first_may:
Профи, подскажите же пожалуйста, как установить миниальный стоп-лосс? Мне кажется здесь ничего тайного нет, если Вы поделитесь свои опытом. По логике же вроде написано все верно, н опочему ордер не выставляется?
У вас косяк в переменной MinLot - тип должен быть double (а у вас в коде int).
 
Cmu4:
У вас косяк в переменной MinLot - тип должен быть double (а у вас в коде int).


Возможно, сейчас проверю.
 
Cmu4:
У вас косяк в переменной MinLot - тип должен быть double (а у вас в коде int).


Проверил, дело не в этом :(.
 
borilunad:
И Трал и любое другое также... Удачи!


StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL); - для примера я показал, что MarketInfo(Symbol(),MODE_POINT)=0,01, а MarketInfo(Symbol(),MODE_STOPLEVEL)=30. Для данного значение ордер выставился, но насколько я понимаю, 30 - это не минимальное значение стопа.

 
first_may:


Проверил, дело не в этом :(.

Лот должен быть double, остальное смотрите выше!
 
first_may:


StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL); - для примера я показал, что MarketInfo(Symbol(),MODE_POINT)=0,01, а MarketInfo(Symbol(),MODE_STOPLEVEL)=30. Для данного значение ордер выставился, но насколько я понимаю, 30 - это не минимальное значение стопа.


В любой момент может меняться. Поэтому перед нормализацией поставьте RefreshRates();
Причина обращения: