Новая версия платформы MetaTrader 5 build 4040: Улучшения и исправления - страница 36
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
на демо MQ - не закрывает сразу же при открытии, хотя СЛ == Bid. Ошибка в том, что не закрыл сразу же. Или такая логика все же правильная и её везде надо применить? Скажите. Тогда ошибка у Ал-ри, потому-что сразу закрыл.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Лимитники/тейки по текущей цене в Терминале (не в Тестере)
fxsaber, 2020.05.19 11:17
MT5
Другая платформа
На MT5 несколько раз пытался записать видео, т.к. хотелось, чтобы видео было коротким - исполнение произошло за несолько секунд.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Лимитники/тейки по текущей цене в Терминале (не в Тестере)
fxsaber, 2020.05.19 11:46
Вот так выглядит исполнение лимитника по текущей цене, когда надо подождать несколько дольше.
Когда исполнился.
Лог.
Исполнение длилось почти 100 секунд. На другой платформе - мгновенно.
Разные типы исполнения стоят.
Типы исполнения:
Теперь понятно, почему поведение у разных ДЦ разное.
Ал-ри с рыночным исполнением исполнил СЛ сразу, ему не важна точность цены, но она удачно оказалась точной.
А то что СЛ при Instant исполнении (на MQ Demo) не срабатывает сразу же - очень странно. Ведь именно такой Bid=СЛ и был несколько секунд до наступления следующего тика. Логичнее сразу же и исполнить, ведь на Instant главное - это точное совпадение цены. И это условие соблюдено. И как вы показали на видео - на других платформах он исполняется если цена ==СЛ и не ждет следущего тика (если я правильно понял).
Уважаемые разработчики, объясните пожалуйста, зачем тестер ждет следующий тик, если условие срабатывания ордера уже выполнилось при открытии позиции с указанными ТП/СЛ?
Надеюсь хотя бы время закрытия < времени открытия починят.На MQ Demo - Instant .исполнение, так что придется тестировать на др. ДЦ, где оно рыночное. Лучше всего на Ал-ри, т.к. сразу известен инструмент и дата, на которой ошибка точно появится. На др. серверах аозможно придется перебирать даты и инструменты.
b4098 починили - спасибо!
Forester #:Тест за 1 день по EURCHF начисляет свопы в конце дня для принудительно закрытых сделок в конце теста (end of test). Почему? Ведь в тестах по EURUSD и USDCHF не начисляет. Думаю надо или все символам начислять или всем не начислять, т.е. д.б. одинаковое поведение.
Проверил пару замеченных инструментов на нескольких датах. Похоже, что свопы тоже починили. Спасибо! (Жаль, что не пишите о сделанной работе, а приходится с новой бетой лазить по истории форума и проверять)
Радость о исправлении оказалась не долгой... Видимо не исправляли или исправили, но не полностью (т.к. на Ал-ри свопы в конце теста перестали замечаться):
ДЦ MQ Demo: b 4105
код - купили и держим до конца теста
Тест
Радость о исправлении оказалась не долгой... Видимо не исправляли или исправили, но не полностью (т.к. на Ал-ри свопы в конце теста перестали замечаться):
ДЦ MQ Demo: b 4105
код - купили и держим до конца теста
Тест
Будет так
Тест из предыдущего поста с 1 по 3 июня показывает 1 своп за переход с 1 на 2 и +1 своп за конец теста, без перехода на новые сутки. Т.е. 1 лишний своп.
Последняя релизная MT5. Есть такой скрипт, в цикле создаёт и удаляет кастомный символ.
При запуске этого скрипта на более чем 1 графике одновременно весь терминал зависает и перестаёт отвечать. Похоже, дело в синхронизации, на 1 графике работает нормально.
Последняя релизная МТ5. Есть такой советник:
Он на старте удаляет сразу все 100 кастомных символов, а потом создаёт их, остальное время просто висит и ничего не делает.
Вешаем его на график, смотрим в логе, что создал 100 символов, закрываем терминал, открываем терминал заново, он подхватит советник и сам подгрузит его на график, советник зависнет на удалении символов. Похоже, дело в том, что он рано запускается. Если руками запускать позже, отрабатывает нормально.
в цикле создаёт и удаляет кастомный символ.
Сделал еще один тест для сравнения.
ДЦ Ал-ри, Осн инструмент != торгуемому. Было (с первого поста на эту тему):
ДЦ Ал-ри, основной инструмент = торгуемому.
1-я сделка не закрылась сразу же, а после 2-й в 16:01.617 - время стопа . Т.е. логика НЕ закрывать сделку по СЛ при открытии принята основной. Но в 1-м случае она не выполнена. Давайте все сделаем по одной логике! Или 1 или 2. Но закрывать, если СЛ=bid - логичнее. Любой ДЦ с радостью примет такой подарок, если СЛ=bid для покупки или =ask для продажи. Да и биржа наверное исполнит.Стало:
1-й сделке время открытия установилось в то самое 15:00.139 (в 1-м случае его неправильно поставили как время закрытия).
Т.е. в 1-м примере при тесте по инструменту отличному от торгуемого, было использовано в качестве времени закрытия, не время срабатывания СЛ, а время последнего тика торгуемого инструмента 15:00.139, с которого копировалась цена для открытия сделки.
Загадка разгадана!!! - осталось исправить.
Возможное дополнительное условие, как раньше писал " если сделка открылась и закрылась по цене тика, который был раньше первого тика основного инструмента EURGBP ".
Подтверждение проблемы с первым тиком теста. На этот раз на ДЦ MQ Demo. b4105
Эксперт.
Тест с 30 по 31 мая
Дает такие сделки. Первая закрылась с временем раньше чем открылась, на скриншоте видно, что на той же минуте, ниже покажу в миллисекундах.
Посмотрим, как тестер поведет себя если,эта сделка будет не первой в тесте. Запустим на 1 день раньше. Тест с 29 по 31 мая. 2 первые сделки от 29 мая на них не смотрим и 2 первые сделки от 30 мая - первая из них закрылась, но уже не на той же минуте, на которой открылась, а на 4-й (и это правильно)
Смотрим подробности и сравниваем:
2023.05.30 00:01:28 --Main (EURGBP) tick time=2023.05.30 00:01:28.550 ask=0.86708 bid=0.86648
2023.05.30 00:01:28 ===Buy GBPUSD. Tick time=2023.05.30 00:01:28.497 ask=1.23629 bid=1.23435
2023.05.30 00:01:28 instant buy 1 GBPUSD at 1.23629 sl: 1.23435 tp: 1.23639 (1.23435 / 1.23629)
2023.05.30 00:01:28 stop loss triggered #2 buy 1 GBPUSD 1.23629 sl: 1.23435 tp: 1.23639 [#3 sell 1 GBPUSD at 1.23435]
2023.05.30 00:01:28 --Main (EURGBP) tick time=2023.05.30 00:01:28.550 ask=0.86838 bid=0.86631
2023.05.30 00:01:28 ===Buy GBPUSD. Tick time=2023.05.30 00:01:28.497 ask=1.23629 bid=1.23435
2023.05.30 00:04:01 stop loss triggered #4 buy 1 GBPUSD 1.23629 sl: 1.23435 tp: 1.23639 [#5 sell 1 GBPUSD at 1.23435]
2023.05.30 23:54:56 POSITION_ID:0 deal #1 at 2023.05.30 00:00:00.000 Price:0.00000 DEAL_TYPE: 2
2023.05.30 23:54:56 POSITION_ID:2 deal #2 at 2023.05.30 00:01:28.550 Price:1.23629 DEAL_TYPE: 0
2023.05.30 23:54:56 POSITION_ID:2 deal #3 at 2023.05.30 00:01:28.497 Price:1.23435 DEAL_TYPE: 1 !!!!!
2023.05.30 23:54:56 POSITION_ID:4 deal #4 at 2023.05.30 00:01:28.550 Price:1.23629 DEAL_TYPE: 0
2023.05.30 23:54:56 POSITION_ID:4 deal #5 at 2023.05.30 00:04:01.704 Price:1.23430 DEAL_TYPE: 1
2023.05.29 00:02:40 ===Buy GBPUSD. Tick time=2023.05.29 00:02:12.789 ask=1.23540 bid=1.23330
2023.05.29 00:02:41 --Main (EURGBP) tick time=2023.05.29 00:02:41.108 ask=0.86952 bid=0.86769
2023.05.29 00:02:41 ===Buy GBPUSD. Tick time=2023.05.29 00:02:12.789 ask=1.23540 bid=1.23330
2023.05.30 00:01:28 --Main (EURGBP) tick time=2023.05.30 00:01:28.550 ask=0.86708 bid=0.86648
2023.05.30 00:01:28 ===Buy GBPUSD. Tick time=2023.05.30 00:01:28.497 ask=1.23629 bid=1.23435
2023.05.30 00:01:28 instant buy 1 GBPUSD at 1.23629 sl: 1.23435 tp: 1.23639 (1.23435 / 1.23629)
2023.05.30 00:01:28 --Main (EURGBP) tick time=2023.05.30 00:01:28.550 ask=0.86838 bid=0.86631
2023.05.30 00:01:28 ===Buy GBPUSD. Tick time=2023.05.30 00:01:28.497 ask=1.23629 bid=1.23435
2023.05.30 00:04:01 stop loss triggered #6 buy 1 GBPUSD 1.23629 sl: 1.23435 tp: 1.23639 [#8 sell 1 GBPUSD at 1.23435]
2023.05.30 00:04:01 stop loss triggered #7 buy 1 GBPUSD 1.23629 sl: 1.23435 tp: 1.23639 [#9 sell 1 GBPUSD at 1.23435]
2023.05.30 23:54:56 POSITION_ID:0 deal #1 at 2023.05.29 00:00:00.000 Price:0.00000 DEAL_TYPE: 2
2023.05.30 23:54:56 POSITION_ID:2 deal #2 at 2023.05.29 00:02:40.743 Price:1.23540 DEAL_TYPE: 0
2023.05.30 23:54:56 POSITION_ID:3 deal #3 at 2023.05.29 00:02:41.108 Price:1.23540 DEAL_TYPE: 0
2023.05.30 23:54:56 POSITION_ID:2 deal #4 at 2023.05.29 00:03:16.321 Price:1.23320 DEAL_TYPE: 1
2023.05.30 23:54:56 POSITION_ID:3 deal #5 at 2023.05.29 00:03:16.321 Price:1.23320 DEAL_TYPE: 1
2023.05.30 23:54:56 POSITION_ID:6 deal #6 at 2023.05.30 00:01:28.550 Price:1.23629 DEAL_TYPE: 0
2023.05.30 23:54:56 POSITION_ID:7 deal #7 at 2023.05.30 00:01:28.550 Price:1.23629 DEAL_TYPE: 0
2023.05.30 23:54:56 POSITION_ID:6 deal #8 at 2023.05.30 00:04:01.704 Price:1.23430 DEAL_TYPE: 1
2023.05.30 23:54:56 POSITION_ID:7 deal #9 at 2023.05.30 00:04:01.704 Price:1.23430 DEAL_TYPE: 1
Как видно в тесте 29-30 мая есть сделки зарывающиеся ( 01:28.497 ) до времени открытия ( 01:28.550 ) - это время тика торгуемого инструмента, до времени открытия, с него взяты цены для торговли, как текущие. Цена срабатывания СЛ ( 1.23435 ) взята по цене на момент до открытия сделки в 01:28.497.
Многие первые сделки имеют эту проблему, при стартах в разные дни.Если этот момент времени сделать не первым в тесте, запустив его с 29 мая, то эта проблемная сделка закрылась правильно, по времени после открытия и с ценой на момент правильного закрытия, проскальзывание получилось другое 1.23430 -правильное, по тику после открытия сделки.
Удачно в этом тесте есть и вторая сделка, открывшаяся по другому тику на той же миллисекунде, она в обоих случаях закрылась правильно. Т.е. проблема именно с первой сделкой в тесте.
Эксперт тот же. Стартовые даты 5-6 июня, чтобы посмотреть 1-ю сделку и 2-6 июня, чтобы посмотреть на нее же, если она не 1-я в тесте.
--Main (EURGBP) tick time=2023.06.05 00:02:01.377 ask=0.86051 bid=0.85913
2023.06.05 00:02:01 ===Buy GBPUSD. Tick time=2023.06.05 00:03:30.000 ask=1.24736 bid=1.24422
2023.06.05 00:02:01 instant buy 1 GBPUSD at 1.24736 sl: 1.24422 tp: 1.24746 (1.24422 / 1.24736)
2023.06.05 00:03:09 --Main (EURGBP) tick time=2023.06.05 00:03:09.133 ask=0.86051 bid=0.85913
2023.06.05 00:03:09 ===Buy GBPUSD. Tick time=2023.06.05 00:03:30.000 ask=1.24736 bid=1.24422
2023.06.05 00:03:09 instant buy 1 GBPUSD at 1.24736 sl: 1.24422 tp: 1.24746 (1.24422 / 1.24736)
2023.06.05 00:03:44 stop loss triggered #2 buy 1 GBPUSD 1.24736 sl: 1.24422 tp: 1.24746 [#4 sell 1 GBPUSD at 1.24422]
2023.06.05 00:03:44 stop loss triggered #3 buy 1 GBPUSD 1.24736 sl: 1.24422 tp: 1.24746 [#5 sell 1 GBPUSD at 1.24422]
2023.06.05 23:54:58 POSITION_ID:0 deal #1 at 2023.06.05 00:00:00.000 Price:0.00000 DEAL_TYPE: 2
2023.06.05 23:54:58 POSITION_ID:2 deal #2 at 2023.06.05 00:02:01.377 Price:1.24736 DEAL_TYPE: 0
2023.06.05 23:54:58 POSITION_ID:3 deal #3 at 2023.06.05 00:03:09.133 Price:1.24736 DEAL_TYPE: 0
2023.06.05 23:54:58 POSITION_ID:2 deal #4 at 2023.06.05 00:03:44.524 Price:1.24422 DEAL_TYPE: 1
2023.06.05 23:54:58 POSITION_ID:3 deal #5 at 2023.06.05 00:03:44.524 Price:1.24422 DEAL_TYPE: 1
2023.06.02 00:01:23 ===Buy GBPUSD. Tick time=2023.06.02 00:01:22.976 ask=1.25390 bid=1.25221
2023.06.02 00:01:23 --Main (EURGBP) tick time=2023.06.02 00:01:23.023 ask=0.85953 bid=0.85843
2023.06.02 00:01:23 ===Buy GBPUSD. Tick time=2023.06.02 00:01:22.976 ask=1.25390 bid=1.25221
2023.06.05 00:02:01 --Main (EURGBP) tick time=2023.06.05 00:02:01.377 ask=0.86051 bid=0.85913
2023.06.05 00:02:01 ===Buy GBPUSD. Tick time=2023.06.02 23:54:59.168 ask=1.24508 bid=1.24500
2023.06.05 00:02:01 instant buy 1 GBPUSD at 1.24508 sl: 1.24500 tp: 1.24518 (1.24500 / 1.24508)
2023.06.05 00:03:09 --Main (EURGBP) tick time=2023.06.05 00:03:09.133 ask=0.86051 bid=0.85913
2023.06.05 00:03:09 ===Buy GBPUSD. Tick time=2023.06.02 23:54:59.168 ask=1.24508 bid=1.24500
2023.06.05 00:03:44 stop loss triggered #6 buy 1 GBPUSD 1.24508 sl: 1.24500 tp: 1.24518 [#8 sell 1 GBPUSD at 1.24500]
2023.06.05 00:03:44 stop loss triggered #7 buy 1 GBPUSD 1.24508 sl: 1.24500 tp: 1.24518 [#9 sell 1 GBPUSD at 1.24500]
2023.06.05 23:54:58 POSITION_ID:0 deal #1 at 2023.06.02 00:00:00.000 Price:0.00000 DEAL_TYPE: 2
2023.06.05 23:54:58 POSITION_ID:2 deal #2 at 2023.06.02 00:01:23.023 Price:1.25390 DEAL_TYPE: 0
2023.06.05 23:54:58 POSITION_ID:3 deal #3 at 2023.06.02 00:01:23.023 Price:1.25390 DEAL_TYPE: 0
2023.06.05 23:54:58 POSITION_ID:2 deal #4 at 2023.06.02 00:04:10.071 Price:1.25221 DEAL_TYPE: 1
2023.06.05 23:54:58 POSITION_ID:3 deal #5 at 2023.06.02 00:04:10.071 Price:1.25221 DEAL_TYPE: 1
2023.06.05 23:54:58 POSITION_ID:6 deal #6 at 2023.06.05 00:02:01.377 Price:1.24508 DEAL_TYPE: 0
2023.06.05 23:54:58 POSITION_ID:7 deal #7 at 2023.06.05 00:03:09.133 Price:1.24508 DEAL_TYPE: 0
2023.06.05 23:54:58 POSITION_ID:6 deal #8 at 2023.06.05 00:03:44.524 Price:1.24422 DEAL_TYPE: 1
2023.06.05 23:54:58 POSITION_ID:7 deal #9 at 2023.06.05 00:03:44.524 Price:1.24422 DEAL_TYPE: 1
На втором тесте, когда эти сделки не первые в тесте, цена для них взята с предыдущего дня в 02 23:54:59.168 т.е. по цене до времени открытия, это правильно. Закрылись тоже правильно. Получается, что тика в 03:30.000 не было, тестер ее сам придумал.
Смотрим. Нет тика в это время.
Как следствие - финансовый результат от этих сделок отличается из за разной цены открытия.
Будьте добры исправить ситуацию и сделать правильное тестирование по реальным тикам, а не сгенерированным. В данной ситуации при старте теста для первого тика надо не генерировать тик, а найти предыдущий в истории, который был 02 23:54:59.168.