Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
После удачного вызова CopyTicks в оффлайне GetLastError возвращает 4403.
Сделаю через CopyTicksRange, но поведение CopyTicks видится правильным изменить.
CopyTicks (build 1881) возвращает более старые данные, чем были запрошены, если запрашивать не свежие тики. Т.е. возвращает данные старее, чем параметр from. Баг плавающий - проявляется в разное время, поэтому написал небольшой код, который воспроизводит. Запускал в тестере на EURUSD H1, 2017.08.01 - 2018.08.01.
Вот выхлоп:
2018.10.17 21:31:26.221 2017.08.01 12:00:00 dt[0]=2017.08.01 03:00:00
2018.10.17 21:31:26.221 2017.08.01 12:00:00 cnt=2000
2018.10.17 21:31:26.221 2017.08.01 12:00:00 ERROR: i=0, ticks[i].time_msc=1501552175606 (2017.08.01 01:49:35)
Т.е. запросили мы с 03 часов, а получили с 01:49. В реальных условиях разница была больше месяца.
Вопрос к бывалым. Какие потенциальные ошибки могут быть при таком способе получения свежих тиков?
Порядок тиков с одинаковым временем не гарантирован, вроде бы.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Тики в реальном времени
Andrey Khatimlianskii, 2020.01.31 14:40
Кстати, по корректному сбору тиков была прекрасная статья Василия Соколова. Там подробно разбирается процесс синхронизации (которого у меня нет, из-за чего иногда принтуются одинаковые тики):
Но функция CopyTiks не позволяет запрашивать N последних тиков. Вместо этого она предоставляет все тики, пришедшие с указанного момента времени. Это усложняет задачу. Мы должны выполнить запрос, получить массив тиков и сравнить его с массивом тиков, полученным на предыдущем обновлении. При этом мы выясним, какие из вновь пришедших тиков не входили в "прошлую поставку", то есть являются новыми. Но сравнивать тики между собой напрямую невозможно, просто потому что видимых различий между ними может вообще не быть. Например, обратимся к нижеприведенной таблице сделок:
Рис. 5. Таблица всех сделок с примером одинаковых сделок.
Мы сразу же видим две группы абсолютно одинаковых тиков. Они помечены красными рамками, у них одинаковые время, объем, направление и цена. Так мы убеждаемся в том, что сравнивать отдельные тики друг с другом нельзя.
Но можно сравнить группу тиков. Если две группы тиков равны между собой, можно сделать вывод, что эти и последующие тики уже были проанализированы при прошлом обновлении цен.
Порядок тиков с одинаковым временем не гарантирован, вроде бы.
Если речь про группы тиков, то, вроде, в коде с этим все в порядке.
Результат (запускать на холодную - сразу после старта Терминала).
Можно выключить советник, ничего не изменится по потреблению Терминалом.