NFA запрещает локирование с 15 мая 2009 - страница 40

 

Техническое преимущество лока (поправьте, если ошибаюсь):

Если, например, у нас StopLevel 20. То выставляя лимитник, вы не можете тэйк сделать ближе, чем на 20 пунктов. НО, если вы тэйк выставите, как лимитник, сразу после срабатывания основного, то сможете это сделать ближе, чем 20 пунктов. И при его срабатывании сделать простой close by, закрыв обе позы.
Например, при спреде 8 (на момент исполнения основного лимитника), вы сможете сделать тэйк в виде лимитника на растоянии от 12-и, а не от 20-и, как это было бы в стандартном случае тэйка.

 
mql4com >>:

Техническое преимущество лока (поправьте, если ошибаюсь):

Если, например, у нас StopLevel 20. То выставляя лимитник, вы не можете тэйк сделать ближе, чем на 20 пунктов. НО, если вы тэйк выставите, как лимитник, сразу после срабатывания основного, то сможете это сделать ближе, чем 20 пунктов. И при его срабатывании сделать простой close by, закрыв обе позы.
Например, при спреде 8 (на момент исполнения основного лимитника), вы сможете сделать тэйк в виде лимитника на растоянии от 12-и, а не от 20-и, как это было бы в стандартном случае тэйка.

Давайте упростим конструкцию. Раз мы тейк ставим как лимитник сразу после срабатывания первого лимитника, то нет разницы основной ордер у нас с рынка или лимитник. Итого, у нас есть ордер с рынка без тейка. Мы хотим поставить тейк на следующем тике после открытия этого ордера ближе, чем stoplevel. И не можем. Так как для лимитников работает limitlevel, равный stoplevel.

 

Лимитники, в отличие от маркет-ордеров, исполняются почти мгновенно, не имеют Requote и выставляются тоже мгновенно.

Насчет выставления тэйка для открытой позы ближе StopLevel - не ошибся. Простым скриптом можете это попробовать сделать.

Но ошибся, что нельзя сразу после срабатывания лимитника поставить стандартны тэйк ближе StopLevel. Можно.

Поэтому говорить про техническое преимущество лока в данном случае было не верно.

 
mql4com >>:

Насчет выставления тэйка для открытой позы ближе StopLevel - не ошибся. Простым скриптом можете это попробовать сделать.

Sell Limit или TP для buy ордера можно выставить от текущего Bid не ближе stoplevel/limitlevel.

Но ошибся, что нельзя сразу после срабатывания лимитника поставить стандартны тэйк ближе StopLevel. Можно.

Нельзя. Вы от какой цены считали?
 

Я про ограничение для лимитников:

void init()
{
  double open, tp;
  int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL); // если уменьшить на единицу, ордер не выставится
  int Offset = 100;
  
  open = NormalizeDouble(Ask - Offset * Point, Digits);
  tp = NormalizeDouble(open + StopLevel * Point, Digits);
  
  OrderSend(Symbol(), OP_BUYLIMIT, 1, open, 0, 0, tp);
  
  return;
}

void start()
{
}
 

А, с этим понял. Не понял вот про это:

Но ошибся, что нельзя сразу после срабатывания лимитника поставить стандартны тэйк ближе StopLevel. Можно.

Нельзя, если цена не отошла от цены, по которой сработал ордер, так как stoplevel для TP считается не от цены ордера, а от текущей цены. Так?

 

Значение тэйка считал так:

OrderTakeProfit() - OrderOpenPrice();
Для лимитников это значение не может быть меньше StopLevel. Но в момент открытия, можно его заменить на значение меньше.
 
Не в момент, а после. И только при условии, что цена ушла против позы, тем самым отошла на больше, чем StopLevel.
 

Пример:

- Spread = 8 (фикс.), StopLevel = 20;

- стоит BUYLIMIT c OpenPrice == 1.5020, TakeProfit == 1.5040 (меньше нельзя из-за StopLevel);

- цена Ask дошла до уровня 1.5020 (Bid == 1.5012) - сработал лимитник;

- следующий тик на пипс выше: Bid == 1.5013;

- на этом тике меняю TakeProfit отрытой позиции на Bid + StopLevel == 1.5033.

Итого:

OrderTakeProfit() - OrderOpenPrice() == 13, что меньше StopLevel. 

Причина обращения: