- Закрытие ордеров при срабатывании ТП
- Вопросы от начинающих MQL5 MT5 MetaTrader 5
- Подскажите пожалуйста название советника который при закрытии ордера (отложенного) в без убытке либо по стоплоссу выставлял отложенный stop ордер на эту же координату с этим же tp и sl
Либо, как в MT4, либо на событийной модели.
при смене отложенного ордера на реальный тикет меняется
Только на неттинге.
Либо, как в MT4, либо на событийной модели.
Только на неттинге.
А что такое неттинг?
Это на МТ5, одна совокупная позиция на инструменте, нет отдельных ордеров, как в МТ4 или хеджинге на МТ5
Подскажите пожалуйста: вот есть идея создать систему с отложенными ордерами на mql5, и как сделать чтобы советник отслеживал превращение отложенного ордера в реальный, а потом и его закрытие? С помощью теста было установлено, что при смене отложенного ордера на реальный тикет меняется
Когда отложенный ордер срабатывает - появляется позиция. Этот момент (появление позиции) отслеживается в OnTradeTransaction:
Всё. Момент появления позиции мы словили. То есть используется событийная модель и в таком случае не нужны никакие таймеры.ловим транцакцию с типом TRADE_TRANSACTION_DEAL_ADD
смотрим на направление сделки, которая породила транзакцию (ENUM_DEAL_ENTRY) - отлавливаем вход
Лично я - просто считаю количество отложенных ордеров вначале каждого бара.
Если стало меньше - стало быть, либо ордер сработал, либо его кто-то снял.
Лично я - просто считаю количество отложенных ордеров вначале каждого бара.
Если стало меньше - стало быть, либо ордер сработал, либо его кто-то снял.
Частичное исполнение так не поймать.
Ловить появление новой сделки в истории сделок.
Подскажите пожалуйста: вот есть идея создать систему с отложенными ордерами на mql5, и как сделать чтобы советник отслеживал превращение отложенного ордера в реальный, а потом и его закрытие? С помощью теста было установлено, что при смене отложенного ордера на реальный тикет меняется
//------ void OnTrade() { //определение сработки стопа или профита //--- select history for access HistorySelect(0,TimeCurrent()); //--- int orders=HistoryDealsTotal(); // total history deals ulong ticket=HistoryDealGetTicket(orders-1); double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT); //--- check profit if(profit<0.0)//если закрылась по стопу { } if(profit>=0.0)//если закрылась по профиту { } }Использую такой способ проверки закрытия позиции, но это для биржевого(неттингово) счета, проверяется факт закрытия счета и какой результат.
Можно переделать и для проверки открытия позиции, хотя для биржевого хватает и
void OnTick() { if(PositionSelect(_Symbol)) { } }
Можно переделать и для проверки открытия позиции, хотя для биржевого хватает и
Для определния сработал ли stop loss или take profit с недавних пор существует замечательное перечисление ENUM_DEAL_REASON
Идентификатор | Описание |
DEAL_REASON_CLIENT | Сделка проведена в результате срабатывания ордера, выставленного из десктопного терминала |
DEAL_REASON_MOBILE | Сделка проведена в результате срабатывания ордера, выставленного из мобильного приложения |
DEAL_REASON_WEB | Сделка проведена в результате срабатывания ордера, выставленного из веб-платформы |
DEAL_REASON_EXPERT | Сделка проведена в результате срабатывания ордера, выставленного из MQL5-программы – советником или скриптом |
DEAL_REASON_SL | Сделка проведена в результате срабатывания ордера Stop Loss |
DEAL_REASON_TP | Сделка проведена в результате срабатывания ордера Take Profit |
DEAL_REASON_SO | Сделка проведена в результате наступления события Stop Out |
DEAL_REASON_ROLLOVER | Сделка проведена по причине переноса позиции |
DEAL_REASON_VMARGIN | Сделка проведена по причине начисления/списания вариационной маржи |
DEAL_REASON_SPLIT | Сделка проведена по причине сплита (понижения цены) инструмента, по которому имелась позиция на момент проведения сплита |
Хорошее перечисление)
Не знал даже, спасибо.
Этот код пару лет назад где то "дернул", так и пользуюсь без изменений, в нового советника добавлю потом, в работающий сов не полезу править, лучшее враг хорошего)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования