Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
После починки кодобазы будет доступен CopyTicksRange, который потребляет на порядок меньше памяти (чем штатный) и работает быстрее.
Пример.
Заодно показан сразу дешевый по памяти сброс тиков в кастомный символ.
Результат.
Были запрошены тики за 5.5 лет. Это почти 500 миллионов тиков. Если бы был запрос через штатный CopyTicksRange, то потребовалось бы больше 28 Гб RAM. В данной реализации - в 10 раз меньше. Это позволило даже на очень старом компе полностью получить и хранить в памяти все 500 миллионов тиков.
Поскольку все тики хранятся в памяти, то с ними можно работать. В частности, фильтровать - см. исходник.
Столь дешевое наполнение тиками кастомных символов позволяет на этих символах получать в Тестере идентичную тиковой истории последовательность тиков. Что полностью исключает влияние рассинхронизированных баров реальных символов на генерацию тиков Тестером. Грубо говоря, Тестер выдает только те тики, что были записаны.
Напоминаю, что есть дешевый способ посмотреть данные по имеющимся тикам.
После починки кодобазы будет доступен CopyTicksRange, который потребляет на порядок меньше памяти (чем штатный) и работает быстрее.
Опубликован.
Опубликован.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: OnTickMulti
fxsaber, 2025.10.04 06:18
ЗЫ Это еще одна причина создавать кастомные символы - закидывать в историю только последний тик из последовательностей с одинаковым временем. В таком случае в моновалютном режиме будет всегда соблюдаться актуализация.
В полноценном примере выше замена этой функции будет создавать кастомные символы с условием актуализации.
Но надо всегда осознавать один нюанс.
The header file "TicksShort.mqh" provides an alternative implementation of 'TicksShort' tick compression library by fxsaber usig 'CBitBuffer' class.
https://www.mql5.com/en/code/61728
The header file "TicksShort.mqh" provides an alternative implementation of 'TicksShort' tick compression library by fxsaber usig 'CBitBuffer' class.
https://www.mql5.com/en/code/61728
Как Вы этого достигли?
После применения ZIP итоговое сжатие превышает 28x.
После применения ZIP итоговое сжатие превышает 28x.
Опередили даже tkc-формат.
Шикарный результат!
They even surpassed the tkc format.
A fantastic result!
This Delta + VLQ encoding is very efficient. It is also flexible to allow compressing other fields (volume, flags, etc..) by just adding few extra lines of code.
This Delta + VLQ encoding is very efficient. It is also flexible to allow compressing other fields (volume, flags, etc..) by just adding few extra lines of code.
Столь дешевое наполнение тиками кастомных символов позволяет на этих символах получать в Тестере идентичную тиковой истории последовательность тиков. Что полностью исключает влияние рассинхронизированных баров реальных символов на генерацию тиков Тестером. Грубо говоря, Тестер выдает только те тики, что были записаны.
При поиске внутрисуточных закономерностей имеет смысл модифицировать тиковую историю брокеров с европейским временем, чтобы время ролловера оставалось неизменным.
Пример такого изменения.
На скрине используется индикатор спреда для реального символа брокера с европейским временем и кастомного символа, полученного через скрипт выше.
Всплеск спреда хорошо идентифицирует время ролловера. На нижней половине видно, что DST-смещения не повлияли на время ролловера - полночь.