Добрый день, друзья.
Кто знает, сталкивался... подскажите. Мог бы и сам проверить, но сейчас рынки не работают, а узнать нужно сегодня.
Если ордер исполнился при отсутствии коннекта придут ли в терминал транзакции исполнения ордера, когда связь с сервером восстановится?
Или они остаются не доступны и где-то теряются на просторах?
Придут обязательно.
Можно ведь выставить отложенные ордера, закрыть терминал, выключить комп, потом через месяц вернуться с отпуска, включить комп, открыть терминал, а там сюрпрайз)))
Либо слитый депозит,либо можно опять ехать в отпуск)))
Понял, спасибо за ответ. Именно это имелось ввиду. Буду дополнительно тестировать в понедельник, проверю предположение насчёт серверной длинны очереди или определенного таймаута...
Я первый вопрос не правильно понял)
Похоже на то, что ничего потом не приходит.
Проверил.
Запустил советник TradeTransactionListener из статьи С чего начать при создании торгового робота для Московской биржи MOEX.
Выставил два лимитника, выключил терминал.
После включения оказалось что, один из ордеров сработал и открылась позиция, но ничего в OnTradeTransaction не пришло.
Единственная непонятка, что за модификация пришла через 10 минут после включения терминала, я никаких изменений позиции не делал.
14:41:50.184 TradeTransactionListener (XMRUSDT.fut,M1) LAST PING=93 ms 14:41:57.461 TradeTransactionListener (XMRUSDT.fut,M1) 1. OnTradeTransaction 14:41:57.461 TradeTransactionListener (XMRUSDT.fut,M1) MqlTradeTransaction: TRADE_TRANSACTION_ORDER_ADD order #33070212 ORDER_TYPE_BUY_LIMIT ORDER_STATE_STARTED 14:41:57.462 TradeTransactionListener (XMRUSDT.fut,M1) 2. OnTradeTransaction 14:41:57.462 TradeTransactionListener (XMRUSDT.fut,M1) MqlTradeTransaction: TRADE_TRANSACTION_ORDER_UPDATE order #33070212 ORDER_TYPE_BUY_LIMIT ORDER_STATE_PLACED 14:41:57.462 TradeTransactionListener (XMRUSDT.fut,M1) 3. OnTradeTransaction 14:41:57.462 TradeTransactionListener (XMRUSDT.fut,M1) MqlTradeTransaction: TRADE_TRANSACTION_REQUEST 14:41:57.462 TradeTransactionListener (XMRUSDT.fut,M1) MqlTradeResult: order #33070212 retcode=TRADE_RETCODE_DONE 14:42:00.100 TradeTransactionListener (XMRUSDT.fut,M1) 1. OnTradeTransaction 14:42:00.100 TradeTransactionListener (XMRUSDT.fut,M1) MqlTradeTransaction: TRADE_TRANSACTION_ORDER_ADD order #33070213 ORDER_TYPE_SELL_LIMIT ORDER_STATE_STARTED 14:42:00.101 TradeTransactionListener (XMRUSDT.fut,M1) 2. OnTradeTransaction 14:42:00.101 TradeTransactionListener (XMRUSDT.fut,M1) MqlTradeTransaction: TRADE_TRANSACTION_ORDER_UPDATE order #33070213 ORDER_TYPE_SELL_LIMIT ORDER_STATE_PLACED 14:42:00.101 TradeTransactionListener (XMRUSDT.fut,M1) 3. OnTradeTransaction 14:42:00.101 TradeTransactionListener (XMRUSDT.fut,M1) MqlTradeTransaction: TRADE_TRANSACTION_REQUEST 14:42:00.101 TradeTransactionListener (XMRUSDT.fut,M1) MqlTradeResult: order #33070213 retcode=TRADE_RETCODE_DONE 14:50:31.681 TradeTransactionListener (XMRUSDT.fut,M1) LAST PING=93 ms 15:00:00.690 TradeTransactionListener (XMRUSDT.fut,M1) 1. OnTradeTransaction 15:00:00.690 TradeTransactionListener (XMRUSDT.fut,M1) MqlTradeTransaction: Position #33070213 XMRUSDT.fut modified: SL=0.00000 TP=0.00000
Закрытие терминала - это-то ладно, это как бы сознательное действие. А вот после перебоя в связи - вот это действительно интересно.
И как удивительно, этот OnTradeTransaction существует уже 10 лет и больше... и вот, наконец, у кого-то возник этот вопрос.
Я-то хоть им не пользуюсь))
Закрытие терминала - это-то ладно, это как бы сознательное действие. А вот после перебоя в связи - вот это действительно интересно.
И как удивительно, этот OnTradeTransaction существует уже 10 лет и больше... и вот, наконец, у кого-то возник этот вопрос.
Я-то хоть им не пользуюсь))
Закрытие терминала и обрыв связи по сути в некоторых ситуациях похожи. Для эксперимента можно было отключить интернет, но я думаю, что результат был бы тот же.
Да, как оказалось весьма не надёжная функция, мне пришлось переделать уже несколько советников из за некоторых особенностей её работы.
Теперь стараюсь по возможности её не использовать.
Закрытие терминала - это-то ладно, это как бы сознательное действие. А вот после перебоя в связи - вот это действительно интересно.
И как удивительно, этот OnTradeTransaction существует уже 10 лет и больше... и вот, наконец, у кого-то возник этот вопрос.
Я-то хоть им не пользуюсь))
У меня робот хранит в файле состояния все свои действующие ордера, при старте и периодически сверяет с тем, что есть на сервере.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день, друзья.
Кто знает, сталкивался... подскажите. Мог бы и сам проверить, но сейчас рынки не работают, а узнать нужно сегодня.
Если ордер исполнился при отсутствии коннекта придут ли в терминал транзакции исполнения ордера, когда связь с сервером восстановится?
Или они остаются не доступны и где-то теряются на просторах?