Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если запустить этот советник на счете, где нет текущих позиций и ордеров.
и затем закрыть руками открытую советником позицию, то появятся три открытые позиции на хедже (на неттинге позиция тройного объема).
Это правильное поведение? Скорее всего, неверно понимаю работу Терминала. Тогда прошу пояснить.
Для начала надо прочитать справку.
https://www.mql5.com/ru/docs/event_handlers/ontrade
Обратите внимание:
Проще говоря, обработчик OnTrade() может вызываться для каждой отдельной торговой транзакции. Следствием закрытия позиции может быть приход нескольких отдельных транзакций.
Это легко проверить - достаточно добавить Print() в OnTrade() вашего примера.
Плюс хочу обратить ваше внимание, по предыдущему вашему тесту, что вы зря рассчитываете узнать тикет ордера через OrderSendAsync().
Плюс хочу обратить ваше внимание, по предыдущему вашему тесту, что вы зря рассчитываете узнать тикет ордера через OrderSendAsync().
Вроде, этого нигде нет там. Показаны только лаги HistorySelect в OnTrade.
Вроде, этого нигде нет там. Показаны только лаги HistorySelect в OnTrade.
Для начала надо прочитать справку.
https://www.mql5.com/ru/docs/event_handlers/ontrade
Обратите внимание:
Проще говоря, обработчик OnTrade() может вызываться для каждой отдельной торговой транзакции. Следствием закрытия позиции может быть приход нескольких отдельных транзакций.
Это легко проверить - достаточно добавить Print() в OnTrade() вашего примера.
Делал, конечно, распечатку. Вопрос был не в количестве вызовов OnTrade, а в количестве открытых позиций.
После первого OnTrade выставляется маркет-ордер. На следующих OnTrade этот маркет-ордер по условию не должен позволять открывать еще ордера. Но и в последующих OnTrade получается нулевой сумма OrdersTotal() + PositionsTotal(). Правильно ли это?
Спасибо, копи-пасты кусок не увидел.
Вроде, этого нигде нет там. Показаны только лаги HistorySelect в OnTrade.
Кеширование выборок ордеров сегодня еще улучшили, через несколько часов будет бета.
Кеширование выборок ордеров сегодня еще улучшили, через несколько часов будет бета.
Имеется в виду HistorySelect? Просто авто-ссылка ведет не OrderSelect.
Any idea why mt5 does not feature the 'Commissions' tab? They only pop up after a trade is closed.
Есть идеи, почему в mt5 нет вкладки «Комиссии»? Они появляются только после закрытия сделки.
Делал, конечно, распечатку. Вопрос был не в количестве вызовов OnTrade, а в количестве открытых позиций.
После первого OnTrade выставляется маркет-ордер. На следующих OnTrade этот маркет-ордер по условию не должен позволять открывать еще ордера. Но и в последующих OnTrade получается нулевой сумма OrdersTotal() + PositionsTotal(). Правильно ли это?
Все есть в справке: https://www.mql5.com/ru/docs/trading/ordersendasync
Все есть в справке: https://www.mql5.com/ru/docs/trading/ordersendasync
https://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_state
Каждый ордер имеет статус, описывающий его состояние. Для получения информации используйте функцию OrderGetInteger() или HistoryOrderGetInteger() с модификатором ORDER_STATE. Допустимые значения хранятся в перечислении ENUM_ORDER_STATE.
ENUM_ORDER_STATE
Идентификатор
Описание
ORDER_STATE_STARTED
Ордер проверен на корректность, но еще не принят брокером
Разве Started-состояние не возникает после успешного OrderSendAsync?