Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1451
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пожалуйста, покажите чем пользуетесь вы!
Выставляю через OrderSend или OrderSend Async, сохраняю в отсортированном по цене массиве выставленные ордера (или только один ордер - если рыночный) и отслеживаю их судьбу через OnTrade или OnTradeTransaction
Плюс, периодически и при старте, проверки на предмет пропущенных событий - сверка массива со списком действующих ордеров.
Может ли быть такое , когда обратные связи свидетельствуют о том, что успех по открытию позиции
2023.04.21 13:06:24.961 MAllTradeV_0(черновик) (EURUSD,M1) Метод PositionOpen() выполнен успешно. Код возврата=10008 (placed)0 595 1682055000 lot 0.05000000
2023.04.21 13:06:25.952 MAllTradeV_0(черновик) (EURUSD,M1) Метод OrderOpen() выполнен успешно. Код возврата=10008 (placed)0 595 1682055000 lot 0.01000000
2023.04.21 13:18:03.075 MAllTradeV_0(черновик) (EURUSD,M1) Метод PositionOpen() выполнен успешно. Код возврата=10008 (placed)0 595 1682055000 lot 0.04000000
А на деле нет одного.
в истории не закрывалась.
использую стандартный класс для торговли
Подскажите как поймать Код возврата=10009 ???????
Кто знает как отследить конкретно ордер, исполнился он или нет? Я так понял код возврата по запросу 10008 это не конечный ответ.
А почему вы отложенный ордер ищете среди позиций?
А почему вы отложенный ордер ищете среди позиций?
Спасибо, похоже разобрался. Мне надо было открыть позицию по текущей цене, а ставил отложники, по этому они не выставлялись, потому что цену указывал текущую.
Использовал
а надо
Не пойму , почему в PositionOpen ENUM_ORDER_TYPE , а не ENUM_POSITION_TYPE ?
Не пойму , почему в PositionOpen ENUM_ORDER_TYPE , а не ENUM_POSITION_TYPE ?
Потому, что позицию открыть нельзя.
Вы отправляете на сервер брокера торговый приказ (ордер) для совершения сделки.
Позиция открывается только в случае если сделка была совершена.
Тот факт, что ордер был успешно отправлен (10008), не гарантирует заключения сделки и соответственно открытия позиции (10009).
Коды возврата торгового сервера
Если вы отправляете торговый приказ (ордер) на совершение торговой операции TRADE_ACTION_DEAL - то есть совершить сделку по текущей рыночной цене, то любой код возврата (m_result.retcode) отличный от 10009 будет говорить о том, что сделка не состоялась.
На всякий случай проверяйте ещё тикет сделки m_result.deal.
Если вы отправляете торговый приказ (ордер) на совершение торговой операции TRADE_ACTION_DEAL - то есть совершить сделку по текущей рыночной цене, то любой код возврата (m_result.retcode) отличный от 10009 будет говорить о том, что сделка не состоялась.
Увы, не совсем так. Показывал тут уже, как получил код 10012, нулевой тикет ордера, но ордер при этом исполнился. MQ хранят молчание по этому поводу.
Написал под это костыль, но проверить его можно будет только получив снова 10012 )
Увы, не совсем так. Показывал тут уже, как получил код 10012, нулевой тикет ордера, но ордер при этом исполнился. MQ хранят молчание по этому поводу.
Написал под это костыль, но проверить его можно будет только получив снова 10012 )
военное дело. приказал, получил ответ как поняли. получил ответ как исполнили, получил подтверждение что исполнили как приказал))) Все по людски)))
военное дело. приказал, получил ответ как поняли. получил ответ как исполнили, получил подтверждение что исполнили как приказал))) Все по людски)))
А следующий приказ можно будет отдать только завтра. Кому нужна такая торговля???
господа, служители!)
Как же организовать проверку, на выставленный или исполненный ордер или позицию.
Если пришёл код 10008, как дальше отследить что именно тот ордер выставлен в список ордеров или позиций?
Чтобы исключить вариант, что код пришёл , а позиции или ордера нет
господа, служители!)
Как же организовать проверку, на выставленный или исполненный ордер или позицию.
Если пришёл код 10008, как дальше отследить что именно тот ордер выставлен в список ордеров или позиций?
Чтобы исключить вариант, что код пришёл , а позиции или ордера нет
Попробуйте вместо OnTrade() использовать OnTradeTransaction()