Новая версия платформы MetaTrader 5 build 4040: Улучшения и исправления - страница 35
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ДЦ: Ал-ри, хедж, ECN счет.
Не сталкивался, чтобы MQ что-то воспроизвели на сервере, отличном от MQ-Demo. Попробуйте там.
У самого нет в А... счета.
Да - так красивее будет)
Правильнее. Например, 12 миллисекунд.
П.С. Вместо работы над советником уже 3-й раз за последние 8 дней, трачу время на баги ((. Не туда время уходит, куда хотелось бы. Черный ящик тяжелее исследовать, чем свой код.
Удивляет, что такая ситуация не у всех. Видимо, слишком доскональный подход.
Удивляет, что такая ситуация не у всех. Видимо, слишком доскональный подход.
Из за Report-a заметил, сразу число сделок и сумма стали отличаться, со своим вариантом Virtual-а. А соответствие уже почти точное. Исправляю все. Вот и это нашел и предложил исправить...
Другие не смотрят на милисекунды, тестер их и не печатает. А ваш Report - контролирует.
Из за Report-a заметил, сразу число сделок и сумма стали отличаться, со своим вариантом Virtual-а. А соответствие уже почти точное. Исправляю все. Вот и это нашел и предложил исправить...
Другие не смотрят на милисекунды, тестер их и не печатает. А ваш Report - контролирует.
Если открывать/закрывать позиции на инструменте отличном от того на котором проводишь тестирование, то разница бывает и в десяток секунд, а на малоликвидных акциях разница времени сделки в тестере может быть больше минуты.
Я об этом писал пару раз, меня тоже никто не услышал или не понял. Забейте.
Нашелся ещё баг со временем закрытия сделки по СЛ в миллисекундах (DEAL_TIME_MSC). Эксперт:
Торгует в коде на GBPUSD, а запускаем на другом инструменте EURGBP. ДЦ: Ал-ри, хедж, ECN счет.
Забыли обновить время закрытия сделки в мс 15:00.139, оно получается раньше времени открытия 15:00.488 .Предполагаю, что время закрытия не обновляется, только в случае, если сделка открылась и закрылась по цене тика, который был раньше первого тика основного инструмента EURGBP. Т.к. все последующие тики (как видно по 2-му, имеют правильное время закрытия)
Немного изменил код, чтобы быстрее встретить ошибку - СЛ сразу ставлю = Bid. Чтобы как и в первом случае на Ал-ри, стоп сработал сразу при открытии сделки.
На Ал-ри все по прежнему.
На Demo MQ - уже по другому!
Печать результатов:
2023.05.29 00:02:40 --Main (EURGBP) tick time=2023.05.29 00:02:40.743
...
2023.05.29 00:02:40 ===Buy GBPUSD. Tick time=2023.05.29 00:02:12.789 ask=1.2354 bid=1.2333
...
2023.05.29 00:02:41 --Main (EURGBP) tick time=2023.05.29 00:02:41.108
2023.05.29 00:02:41 ===Buy GBPUSD. Tick time=2023.05.29 00:02:12.789 ask=1.2354 bid=1.2333 - новых тиков по GBPUSD не было
...
2023.05.29 00:03:16 stop loss triggered #2 buy 1 GBPUSD 1.23540 sl: 1.23330 tp: 1.23550 [#4 sell 1 GBPUSD at 1.23330]
2023.05.29 00:03:16 stop loss triggered #3 buy 1 GBPUSD 1.23540 sl: 1.23330 tp: 1.23550 [#5 sell 1 GBPUSD at 1.23330]
2023.05.29 23:54:58 POSITION_ID:0 deal #1 at 2023.05.29 00:00:00.000 Price:0.00000 DEAL_TYPE: 2
2023.05.29 23:54:58 POSITION_ID:2 deal #2 at 2023.05.29 00:02:40.743 Price:1.23540 DEAL_TYPE: 0
2023.05.29 23:54:58 POSITION_ID:3 deal #3 at 2023.05.29 00:02:41.108 Price:1.23540 DEAL_TYPE: 0
2023.05.29 23:54:58 POSITION_ID:2 deal #4 at 2023.05.29 00:03:16.321 Price:1.23320 DEAL_TYPE: 1
2023.05.29 23:54:58 POSITION_ID:3 deal #5 at 2023.05.29 00:03:16.321 Price:1.23320 DEAL_TYPE: 1
Ситуация точно такая же. К моменту тика основного инструмента ( EURGBP ) 02:40.743 уже был тик по торгуемому инструменту ( GBPUSD) 02:12.789 . До второго тика основного инструмента - новых тиков по торгуемому GBPUSD не было (как и в 1м примере на Ал-ри).
По первому тику открылась позиция, но НЕ закрылась сразу же по СЛ == Bid = 1.23330 . На Ал-ри она сразу же закрылась. В этом отличие!
Думаю, что закрывать по СЛ позицию, сразу же при открытии - правильно. Условие для срабатывания СЛ==Bid выполнилось же. А на демо MQ не закрылась.
Я за одинаковую логику срабатывания ТП/СЛ. Или эта логика меняется в зависимости от ДЦ? Неужели со стороны ДЦ можно влиять на логику тестера?
Итого имеем:
- на Ал-ри закрывает сразу же. что логически правильно. Но ошибка в том, что ставит время закрытия < времени открытия)
- на демо MQ - не закрывает сразу же при открытии, хотя СЛ == Bid. Ошибка в том, что не закрыл сразу же. Или такая логика все же правильная и её везде надо применить? Скажите. Тогда ошибка у Ал-ри, потому-что сразу закрыл.
Впрочем обратное правило (когда СЛ не срабатывает сразу же на тике открытия) я обнаружил в тестере (с ДЦ Ал-ри) для сделок, если они открыты когда тики по основному и торгуемому символу пришли в одну миллисекунду. А если в разные мс, то закрывает сразу. Если это неправильное поведение, то сообщите (если вы мотрудник MQ и хотите починить) - покажу моменты, когда такое случается. Тоже весьма запутанный момент... пару дней еще буду помнить, где искать.
Если открывать/закрывать позиции на инструменте отличном от того на котором проводишь тестирование, то разница бывает и в десяток секунд, а на малоликвидных акциях разница времени сделки в тестере может быть больше минуты.
Вы про проскальзывания наверное? А я про то, что время закрытия сделки установили раньше времени открытия. Такое в жизни невозможно.
Других разниц я не заметил - все четко. Кроме той, что в предыдущем посте описал.
Я об этом писал пару раз, меня тоже никто не услышал или не понял.
Итого имеем:
- на Ал-ри закрывает сразу же. что логически правильно. Но ошибка в том, что ставит время закрытия < времени открытия)
- на демо MQ - не закрывает сразу же при открытии, хотя СЛ == Bid. Ошибка в том, что не закрыл сразу же. Или такая логика все же правильная и её везде надо применить? Скажите. Тогда ошибка у Ал-ри, потому-что сразу закрыл.
Впрочем обратное правило (когда СЛ не срабатывает сразу же на тике открытия) я обнаружил в тестере (с ДЦ Ал-ри) для сделок, если они открыты когда тики по основному и торгуемому символу пришли в одну миллисекунду. А если в разные мс, то закрывает сразу. Если это неправильное поведение, то сообщите (если вы мотрудник MQ и хотите починить) - покажу моменты, когда такое случается. Тоже весьма запутанный момент... пару дней еще буду помнить, где искать.
Сделал еще один тест для сравнения.
ДЦ Ал-ри, Осн инструмент != торгуемому. Было (с первого поста на эту тему):
2023.05.29 23:54:58 POSITION_ID:0 deal #1 at 2023.05.29 00:00:00.0 Price:0.00000 DEAL_TYPE: 2
2023.05.29 23:54:58 POSITION_ID:2 deal #2 at 2023.05.29 00:15:00.488 Price:1.23441 DEAL_TYPE: 0
2023.05.29 23:54:58 POSITION_ID:2 deal #3 at 2023.05.29 00:15:00.139 Price:1.23402 DEAL_TYPE: 1
2023.05.29 23:54:58 POSITION_ID:4 deal #4 at 2023.05.29 00:15:16.417 Price:1.23441 DEAL_TYPE: 0
2023.05.29 23:54:58 POSITION_ID:4 deal #5 at 2023.05.29 00:16:01.617 Price:1.23402 DEAL_TYPE: 1
ДЦ Ал-ри, основной инструмент = торгуемому.
Стало:
2023.05.29 00:15:00 --Main (GBPUSD) tick time=2023.05.29 00:15:00.139
2023.05.29 00:15:00 ===Buy GBPUSD. Tick time=2023.05.29 00:15:00.139 ask=1.23452 bid=1.23402
2023.05.29 00:15:00 --Main (GBPUSD) tick time=2023.05.29 00:15:00.189
2023.05.29 00:15:00 ===Buy GBPUSD. Tick time=2023.05.29 00:15:00.189 ask=1.23441 bid=1.23431
2023.05.29 23:54:46 POSITION_ID:0 deal #1 at 2023.05.29 00:00:00.000 Price:0.00000 DEAL_TYPE: 2
2023.05.29 23:54:46 POSITION_ID:2 deal #2 at 2023.05.29 00:15:00.139 Price:1.23452 DEAL_TYPE: 0
2023.05.29 23:54:46 POSITION_ID:3 deal #3 at 2023.05.29 00:15:00.189 Price:1.23441 DEAL_TYPE: 0
2023.05.29 23:54:46 POSITION_ID:2 deal #4 at 2023.05.29 00:16:01.617 Price:1.23402 DEAL_TYPE: 1
2023.05.29 23:54:46 POSITION_ID:3 deal #5 at 2023.05.29 00:16:01.617 Price:1.23402 DEAL_TYPE: 1
1-й сделке время открытия установилось в то самое 15:00.139 (в 1-м случае его неправильно поставили как время закрытия).
Т.е. в 1-м примере при тесте по инструменту отличному от торгуемого, было использовано в качестве времени закрытия, не время срабатывания СЛ, а время последнего тика торгуемого инструмента 15:00.139, с которого копировалась цена для открытия сделки.
Загадка разгадана!!! - осталось исправить.
Возможное дополнительное условие, как раньше писал " если сделка открылась и закрылась по цене тика, который был раньше первого тика основного инструмента EURGBP ".
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 4040: Улучшения и исправления
Forester, 2023.12.19 11:42
Забыли обновить время закрытия сделки в мс 15:00.139, оно получается раньше времени открытия 15:00.488 .
Думаю, это типичная ошибка мультивалютных тестеров, когда вместо внутреннего времени для закрытия используется время последнего тика закрываемого символа.
Сам учитываю подобное через SwapTime-механизм.
Любые Order-операции на символе нужно делать с последним его тиком, но при этом время в нем выставлять равным текущему (внутреннее окружения).