Новая версия платформы MetaTrader 5 build 2715: Общие улучшения - страница 26
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот тут МТ4Orders мог бы просто игнорить повторную отправку закрывающих ордеров, наверное.
Игнорить торговые приказы - нельзя, т.к. есть нюансы.
Вот этот запись в логе
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 2715: Общие улучшения
Andrey Khatimlianskii, 2021.01.12 14:41
говорит, что Вы спамили сервер. Ошибку возвращал сам сервер. Если сделать OrderCheck на стороне Терминала, то он вернет true.
Нюанс такой. MT4Orders не просто так Алертит, потому что чревата такая ситуация.
А после определенного тайм-аута — сам пытаться отменить старый закрывающий ордер (хотя, не факт, что это ему удастся).
Таймауты не нужны. Понимаю, как реализовать. Но отладить не получится, если не научиться воспроизводить баг брокера/MT5.
CreateBlock вызывается исключительно с передачей константных 0 и 1.
В Release-варианте ошибка есть?
по моему несложно сделать временную переменную целого типа и присвоить datetime, чтобы посмотреть под отладчиком
Да, не очень сложно. При желании можно даже усложнить.
по моему несложно сделать временную переменную целого типа и присвоить datetime, чтобы посмотреть под отладчиком
Во время отладки не сделать. А если несколько полей структуры datetime, то еще и запаришься делать временные переменные.
В отладчике хотелось бы видеть для datetime не только строку типа D'2020.09.27 00:00:00', но и целое число.
В общем - хочется видеть и "сырые" и "выходные" данные.
Частные случаи -
datetime (1601164800 + D'2020.09.27 00:00:00' )
char[] (20, 56, 34... + "String").
Игнорить торговые приказы - нельзя, т.к. есть нюансы.
Вот этот запись в логе
говорит, что Вы спамили сервер. Ошибку возвращал сам сервер. Если сделать OrderCheck на стороне Терминала, то он вернет true.
Но ордер-то был виден в терминале. Почему отправка на сервер?
Баг брокера, безусловно, нужно обходить, если такая возможность есть.
Таймауты не нужны. Понимаю, как реализовать. Но отладить не получится, если не научиться воспроизводить баг брокера/MT5.
Предполагаю, что у этого брокера на демо будет то же самое на границах торговых сессий (как минимум, для этого инструмента).
Но не уверен, что стоит тратить время — MQ это не интересно, для себя обход я написал. Всего не предусмотрим.
Спасибо!
В Release-варианте ошибка есть?
Не стал экспериментирвать, откатился...
Не стал экспериментирвать, откатился...
Так а предупредить коллег?
Но ордер-то был виден в терминале. Почему отправка на сервер?
Потому что валидно отправлять еще закрытие, когда висит закрытие. Валидно из-за соображений лага: пинг и прочее.
Из другой области: можете отправить 10 асинхронных OrderCloseAsync. Все они уйдут на сервер.
для себя обход я написал. Всего не предусмотрим.
Хорошо бы код посмотреть.
Если закрывающий ордер висит, то, конечно, попытка выставить еще один будет вызывать ошибку.
В этой ситуации валидно сдвинуть тейк на текущую позицию. Но будет ли MT5 исполнять такой тейк, когда висит закрывающий ордер - вопрос.
Хорошо, если MT5-Server не проявит в этой ситуации непредсказуемый баг. Например, позиция закроется, а закрывающий ордер останется висеть.