Великий и ужасный МТ4 навсегда (или как грамотно выработать стратегию перехода) - страница 20
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Языком молоть — не мешки ворочать. Взяли бы и научили. Меня, пожалуйста.
Проблема есть, и проявляется не только на этом брокере.
И проблема не в том, что нужно ждать исполнения конкретного ордера (это из другой плоскости), а в том, что в момент исполнения ордеров они на время пропадают из всех списков (открытые, закрытые, сделки, позиции).
Подпереть еще одним костылем можно, конечно. Но хочется человеческого решения. Над коим fxsaber и трудится публично, выслушивая лай проходящих мимо доброжелателей.
Лично вам, я надеюсь, достаточно вникнуть в такие слова документации
Лично вам, я надеюсь, достаточно вникнуть в такие слова документации
и это касается не только обработчика события OnTradeTransaction(), но и любой части кода после отправки OrderSend(). Ждите завершения сделки. Других вариантов нет и вряд-ли будет… Просто задумайтесь почему в mql4 всё так просто? Да потому, что эти ожидания заложены далеко от ваших глаз. А в MQL5 вы все проверки и ожидания почему-то считаете костылями. Почему???Алексей, Вы не в теме. Извините, нет ни времени ни желания объяснять все еще раз.
попробовал так:
5 раз запускал свой код, пока ровно 10 позиций открывает
попробовал так:
5 раз запускал свой код, пока ровно 10 позиций открывает
Выглядит, как ошибка в задании входных HistorySelect.
Выглядит, как ошибка в задании входных HistorySelect.
идея достучаться до сервера и синхронизироваться
переписал как скрипт:
несколько раз запустил, тоже открывает 10 позиций, добавил текущее время старта скрипта
идея достучаться до сервера и синхронизироваться
переписал как скрипт:
несколько раз запустил, тоже открывает 10 позиций, добавил текущее время старта скрипта
Что покажет такое изменение?
Что покажет такое изменение?
2021.05.09 21:35:06.210 tst (ETHUSD,H1) Benchmark.mqh: TimeAvg[GetMicrosecondsCount()] = 0 mcs.
2021.05.09 21:35:06.211 tst (ETHUSD,H1) Benchmark.mqh is On.
2021.05.09 21:35:06.211 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start)] = 20 mcs.
2021.05.09 21:35:06.308 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start)] = 6 mcs.
2021.05.09 21:35:06.404 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start)] = 10 mcs.
2021.05.09 21:35:06.501 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start)] = 13 mcs.
2021.05.09 21:35:06.597 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start)] = 10 mcs.
2021.05.09 21:35:06.694 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start)] = 3 mcs.
2021.05.09 21:35:06.792 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start)] = 4 mcs.
2021.05.09 21:35:06.888 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start)] = 3 mcs.
2021.05.09 21:35:06.989 tst (ETHUSD,H1) Alert: Bench_Stack = 0, 1 <= Time[tst.mq5 16 in OnStart: HistorySelect(TimeCurrent(),t_start)] = 4 mcs.
позиций пока все равно 10 шт, удвоений пока не было
По времени выполнения HistorySelect хорошо видно, что она ничего не запрашивает с Торгового сервера.
Несколько версий.
Попробуйте таким же способом избавиться от задвоения здесь.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Великий и ужасный МТ4 навсегда (или как грамотно выработать стратегию перехода)
fxsaber, 2021.05.05 02:04
Запустите этот код на пустом демо-счете и убедитесь в открытии двух позиций через несколько секунд.
вот зашел случайно, почитал - это какой-то позор !
никому нельзя верить !По времени выполнения HistorySelect хорошо видно, что она ничего не запрашивает с Торгового сервера.
Несколько версий.
Попробуйте таким же способом избавиться от задвоения здесь.
1. увы, в нашем деле без этого не выживешь ))
2. узнавал несколько дней назад какой билд (не бета) актуальный, тишина, решил не актуально, на ноуте и на ПК фиг поймешь, что актуально из билдов - не занимался пару месяцев терминалами, не слежу. Сейчас на ПК build 2903
3. я пасс, этим банкетом Вы заведуете, разработчики молчат, мои предположения... пальцем в небо, я думаю, что проблема в сетевых задержках, и в нескольких сокетах? терминала, синхронизации нет, по одному сокету цены, по другому OrderSend, еще где OnTrade()..... вот и летят пакеты откуда и куда
4. сейчас робофорекс + 100 Мбит оптика( ETTH ), ранее на ноуте плохой мобильный интернет и фхопен
попробовал - 2 минуты скрипт молотил, всегда одна позиция, задвоений не было, снял руками скрипт