Используете StopLimit в реальной торговле?
Понятно что в тестере StopLimit работает неадекватно.
В реальной торговле есть ли смысл использовать? Какие преимущества и недостатки?
А что не так в тестере?
Видимо никто не использует,
ордер открывается по несуществующим ценам:
простенький пример для проверки:
//+------------------------------------------------------------------+ //| StopLimit_Test.mq5 | //+------------------------------------------------------------------+ #include <Trade\Trade.mqh> CTrade trade; input int Deviation = 100; //+------------------------------------------------------------------+ void OnTick() { MqlTick tick; SymbolInfoTick(_Symbol,tick); trade.SetTypeFilling(ORDER_FILLING_RETURN); double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE); if(OrdersTotal()==0) trade.OrderOpen( _Symbol, // символ ORDER_TYPE_BUY_STOP_LIMIT, // тип ордера 1.0, // объем ордера tick.ask+Deviation*ticksise, // цена исполнения tick.ask+10*ticksise, // цена стоплимита 0, // цена stop loss 0 // цена take profit ); } //+------------------------------------------------------------------+
Видимо никто не использует,
ордер открывается по несуществующим ценам:
простенький пример для проверки:
BuyStopLimit-ордер работает таким образом:
- Выставляется ордер BuyStop выше цены (значение price в структуре торгового запроса = цена + дистанция установки стопового ордера)
- При срабатывании ордера BuyStop выставляется ордер BuyLimit ниже цены
(по цене stoplimit в структуре торгового запроса, которую нужно правильно рассчитать: stoplimit = price - дистанция установки лимитного ордера) - При срабатывании ордера BuyLimit совершается вход в рынок по цене ордера BuyLimit
Пример:
BuyStopLimit-ордер работает таким образом:
- Выставляется ордер BuyStop выше цены (значение price в структуре торгового запроса = цена + дистанция установки стопового ордера)
- При срабатывании ордера BuyStop выставляется ордер BuyLimit ниже цены
(по цене stoplimit в структуре торгового запроса, которую нужно правильно рассчитать: stoplimit = price - дистанция установки лимитного ордера) - При срабатывании ордера BuyLimit совершается вход в рынок по цене ордера BuyLimit
Пример:
Кагда BuyLimit ниже цены то нормально работает в тестере.
Кагда BuyLimit выше цены, должен открываться по цене аск. На бирже, на реале, так работает.
Использовать СтопЛимит, чтобы поставить BuyLimit ниже цены, не имеет никакого смысла.
Кагда BuyLimit ниже цены то нормально работает в тестере.
Кагда BuyLimit выше цены, должен открываться по цене аск. На бирже, на реале, так работает.
Использовать СтопЛимит, чтобы поставить BuyLimit ниже цены, не имеет никакого смысла.
Поле | Описание |
action | Тип торговой операции. Значение может быть одним из значений перечисления ENUM_TRADE_REQUEST_ACTIONS |
magic | Идентификатор эксперта. Позволяет организовать аналитическую обработку торговых ордеров. Каждый эксперт может выставлять свой собственный уникальный идентификатор при отправке торгового запроса |
order | Тикет ордера. Требуется для модификации отложенных ордеров |
symbol | Имя торгового инструмента, по которому выставляется ордер. Не требуется при операциях модификации ордеров и закрытии позиций |
volume | Запрашиваемый объем сделки в лотах. Реальное значение объема при открытии сделки будет зависеть от типа ордера по исполнению. |
price | Цена, при достижении которой ордер должен быть исполнен. Для рыночных ордеров по инструментам с типом исполнения "Market Execution" ( SYMBOL_TRADE_EXECUTION_MARKET), имеющих тип TRADE_ACTION_DEAL, указание цены не требуется |
stoplimit | Цена, по которой будет выставлен отложенный Limit ордер, при достижении ценой значения price (это условие является обязательным). До этого момента отложенный ордер в торговую систему не выводится |
sl | Цена, по которой сработает Stop Loss ордер при движении цены в неблагоприятном направлении |
tp | Цена, по которой сработает Take Profit ордер при движении цены в благоприятном направлении |
deviation | Максимально приемлемое отклонение от запрашиваемой цены, задаваемое в пунктах |
type | Тип ордера. Значение может быть одним из значений перечисления ENUM_ORDER_TYPE |
type_filling | Тип ордера по исполнению. Значение может быть одним из значений ENUM_ORDER_TYPE_FILLING |
type_time | Тип ордера по по истечению. Значение может быть одним из значений ENUM_ORDER_TYPE_TIME |
expiration | Срок истечения отложенного ордера (для ордеров типа ORDER_TIME_SPECIFIED) |
comment | Комментарий к ордеру |
position | Тикет позиции. Следует заполнять при изменении и закрытии позиции для ее однозначной идентификации. Как правило, соответствует тикету ордера, в результате которого позиция была открыта. |
position_by | Тикет встречной позиции. Используется при закрытии позиции встречной — открытой по тому же инструменту, но в противоположном направлении. |
Надеюсь, вы знаете что такое лимитный ордер. И стоповый тоже, надеюсь, не вызывает у вас сомнений.
И вот что тут написано про работу StopLimit-ордера: когда цена достигнет уровня Stop-ордера (а он ставится выше цены для Buy), только в этом случае будет выставлен Limit-ордер (а он ставится ниже цены для Buy).
Кагда BuyLimit ниже цены то нормально работает в тестере.
Кагда BuyLimit выше цены, должен открываться по цене аск. На бирже, на реале, так работает.
Использовать СтопЛимит, чтобы поставить BuyLimit ниже цены, не имеет никакого смысла.
Простите, чем вы выставляете BuyLimit-ордер выше цены?
Он не должен вообще выставлятся при таком раскладе.
Если вы используете СБ-торговый класс, то там есть проверка на ошибочные параметры, и в такой ситуации не выставляется отложенный ордер, а открывается позиция маркет-ордером.
Поле | Описание |
action | Тип торговой операции. Значение может быть одним из значений перечисления ENUM_TRADE_REQUEST_ACTIONS |
magic | Идентификатор эксперта. Позволяет организовать аналитическую обработку торговых ордеров. Каждый эксперт может выставлять свой собственный уникальный идентификатор при отправке торгового запроса |
order | Тикет ордера. Требуется для модификации отложенных ордеров |
symbol | Имя торгового инструмента, по которому выставляется ордер. Не требуется при операциях модификации ордеров и закрытии позиций |
volume | Запрашиваемый объем сделки в лотах. Реальное значение объема при открытии сделки будет зависеть от типа ордера по исполнению. |
price | Цена, при достижении которой ордер должен быть исполнен. Для рыночных ордеров по инструментам с типом исполнения "Market Execution" ( SYMBOL_TRADE_EXECUTION_MARKET), имеющих тип TRADE_ACTION_DEAL, указание цены не требуется |
stoplimit | Цена, по которой будет выставлен отложенный Limit ордер, при достижении ценой значения price (это условие является обязательным). До этого момента отложенный ордер в торговую систему не выводится |
sl | Цена, по которой сработает Stop Loss ордер при движении цены в неблагоприятном направлении |
tp | Цена, по которой сработает Take Profit ордер при движении цены в благоприятном направлении |
deviation | Максимально приемлемое отклонение от запрашиваемой цены, задаваемое в пунктах |
type | Тип ордера. Значение может быть одним из значений перечисления ENUM_ORDER_TYPE |
type_filling | Тип ордера по исполнению. Значение может быть одним из значений ENUM_ORDER_TYPE_FILLING |
type_time | Тип ордера по по истечению. Значение может быть одним из значений ENUM_ORDER_TYPE_TIME |
expiration | Срок истечения отложенного ордера (для ордеров типа ORDER_TIME_SPECIFIED) |
comment | Комментарий к ордеру |
position | Тикет позиции. Следует заполнять при изменении и закрытии позиции для ее однозначной идентификации. Как правило, соответствует тикету ордера, в результате которого позиция была открыта. |
position_by | Тикет встречной позиции. Используется при закрытии позиции встречной — открытой по тому же инструменту, но в противоположном направлении. |
Надеюсь, вы знаете что такое лимитный ордер. И стоповый тоже, надеюсь, не вызывает у вас сомнений.
И вот что тут написано про работу StopLimit-ордера: когда цена достигнет уровня Stop-ордера (а он ставится выше цены для Buy), только в этом случае будет выставлен Limit-ордер (а он ставится ниже цены для Buy).
с чего вы взяли, что BuyLimit ордер обязательно должен быть ниже цены?
я говорю про биржу, форекс не интересен
Простите, чем вы выставляете BuyLimit-ордер выше цены?
Он не должен вообще выставлятся при таком раскладе.
Если вы используете СБ-торговый класс, то там есть проверка на ошибочные параметры, и в такой ситуации не выставляется отложенный ордер, а открывается позиция маркет-ордером.
Я же привел пример кода выше.
Выставляться должен и выставляется.
Если бы открывалась маркетом, то в тестере не было бы проблем, открылась бы по цене Ask. А открывается по несуществующей цене, на картинке выше видно же.
p.s. просто сами попробуйте вышеприведенный код на биржевом счетеlimit должен задавать проскальзывание маркет ордера, а не установку лимитного :))
"Офигенный" stoplimit в стандартной библиотеке, слов нет :))
limit должен задавать проскальзывание маркет ордера, а не установку лимитного :))
Проскальзывание задаётся параметром deviation в торговом запросе.
А уровень stoplimit - это уровень установки Limit-ордера относительно уровня Stop-ордера.
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Используете StopLimit в реальной торговле?
Понятно что в тестере StopLimit работает неадекватно.
В реальной торговле есть ли смысл использовать? Какие преимущества и недостатки?