Советник не сразу выставляет SL/TP - страница 2

 
Alexey Gureyev:

Если он не может поставить стоп то и сделку пусть не открывает )) Вчера открылась сделка без стопов и тейков и улетела в минус. Я Этот робот на конструкторе сделал ENSED COR (мт4). Раньше только в ручную торговал, а последние недели прям одержим идеей создать прибыльного советника :-)) В коде пока не очень разбираюсь 

Если сделку можно пропустить, то выставление сл/тп при открытии должно решить проблему. При этом, желательно перед выставлением ордера проверить корректность сл/тп, что бы не отсылать на сервер некорректные приказы.

 
Смотрел в истории тиков, во время открытия ордера спред был 3п стоп лосс 5п. Но в ту же секунду цена ушла на пару, тройку пунктов. И видимо пока советник пытался поставить стопы, цена уже была за моим стопом в 5п
 
Vladislav Boyko:

Нет. SL и TP при открытии ордера можно как ставить, так и не ставить, не зависимо от того, по рынку вы входите, или используете отложенный ордер.

Ваш советник при открытии ордера не ставит SL и TP. А ставит их после его открытия. Это не потому что нельзя поставить сразу при открытии, а по тому что таков его алгоритм. Из каких соображений это сделано, я не знаю.

Тут проблема в том, что ему нужно поставить стоп туда, куда его поставить нельзя. Для начала, автору торговой стратегии нужно определится, что делать в случае, когда стоп слишком короткий и поставить такой стоп не получится.

При маркет исполнении нельзя открывать позицию с предустановленным стоплоссом. Сначала позицию, потом только стоплосс. 

Другое дело,  что в советнике должна быть проверка,  чтобы в случае неправильных стопов он их сам корректировал. 
 
Vladislav Andruschenko:
При маркет исполнении нельзя открывать позицию с предустановленным стоплоссом. Сначала позицию, потом только стоплосс. 

Другое дело,  что в советнике должна быть проверка,  чтобы в случае неправильных стопов он их сам корректировал. 

У меня SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_EXECUTION_MARKET возвращает true. При этом, я могу открывать рыночные ордера с предустановленными tp/sl. Подскажите, пожалуйста, почему так?

(MT4)
 
Vladislav Boyko:

У меня SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_EXECUTION_MARKET возвращает true. При этом, я могу открывать рыночные ордера с предустановленными tp/sl. Подскажите, пожалуйста, почему так?

(MT4)
Открываете не вы, а терминал. Но если исполнение маркет, то советнику запрещено открывать позицию с стоплоссом. 
 
Vladislav Andruschenko:
Открываете не вы, а терминал. Но если исполнение маркет, то советнику запрещено открывать позицию с стоплоссом. 

Не запрещено, а не реализовано в советнике.

 
Vladislav Andruschenko:
Открываете не вы, а терминал. Но если исполнение маркет, то советнику запрещено открывать позицию с стоплоссом. 

О том что это запрещено я читал (не только в этой ветке). Но я не могу понять, почему вот это открывает ордер, вопреки запрету?

Alert(SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_EXECUTION_MARKET); // true
   
OrderSend(_Symbol, 0, 0.01, NormalizeDouble(Ask, _Digits), 30, NormalizeDouble(Ask - 200 * _Point, _Digits), NormalizeDouble(Ask + 200 * _Point, _Digits));

Буду благодарен, если кто-нибудь поможет найти ответ.

 
SEM:

Не запрещено, а не реализовано в советнике.


пардон. 

а как реализовать? 

если брокер имеет маркет исполнение где "запрещено" открывать позицию с предустановленным стоплоссом?

как сразу открыть с предустановленным стоплоссом? 

 
Vladislav Andruschenko:


пардон. 

а как реализовать? 

если брокер имеет маркет исполнение где "запрещено" открывать позицию с предустановленным стоплоссом?

как сразу открыть с предустановленным стоплоссом? 

Пример как реализовать предустановленный S/T в справке  https://docs.mql4.com/ru/trading/ordersend

Изначально вопрос был в том, что в ручном режиме S/T можно выставить, а советник не выставляет.

Есть брокеры которые позволяют сразу выставить S/T для счетов типа маркет.

На скринах видно где брокер позволяет сразу выставить S/T, а где нет.

В данном случае счет у пользователя скорее всего Instant  (stoplevel больше 0). У моего брокера для счета типа маркет EURUSD stoplevel равен 0.



 
SEM:

Пример как реализовать предустановленный S/T в справке  https://docs.mql4.com/ru/trading/ordersend

Изначально вопрос был в том, что в ручном режиме S/T можно выставить, а советник не выставляет.

Есть брокеры которые позволяют сразу выставить S/T для счетов типа маркет.

На скринах видно где брокер позволяет сразу выставить S/T, а где нет.

В данном случае счет у пользователя скорее всего Instant  (stoplevel больше 0). У моего брокера для счета типа маркет EURUSD stoplevel равен 0.



Я говорил про брокеров, которые не разрешают ставить сразу. Поэтому и переспросил. Направляю в стандартную справку это жесть. Спасибо. 
Причина обращения: