Блог им. elektroyar

Хранение статистики индикаторов для ускорения работы оптимизатора и тестирования на истории

Для ускорения тестирования и оптимизации стратегий я обычно заранее вычисляю результат прогноза индикатора для всего диапазона используемых параметров на всей дате тестирования.

В качестве результата прогноза индикатора можно использовать разные варианты. Первый вариант — использовать движение цены за определенное время. Например, для конкретной стратегии используется замер движения цены за три минуты после прогноза. Цена при этом может остаться на том же уровне, что и в начале прогноза, и это надо учитывать. Другой вариант результата прогноза индикатора — исход движения цены при использовании равнозначного фиксированного тейк-профита и стоп-лосса.

Структура хранения данных выглядит так:
Хранение статистики индикаторов для ускорения работы оптимизатора и тестирования на истории

Такой формат позволяет хранить направление движения цены, прогноз индикатора и исход его прогноза. В качестве базового таймфрейма я использую минутный график, а сами данные разделяю по торговым дням. Поэтому для хранения одной строки массива нужно 1440 бит. Всего строк нужно минимум четыре, если у нас используется только одно сочетание параметров индикатора. На хранение одного сочетания параметров индикатора мне нужно минимум 720 байтов, из которых 360 байтов занимает сам прогноз индикатора. Если у нас, например, 100 сочетаний параметров индикатора, то один торговый день займет 35.5 КБ. Чтобы уменьшить размер данных, я использую библиотеку zstd, предварительно обученную на файлах со статистикой индикаторов (исходники для обучения можно найти тут). Zstd позволяет сжимать данные более чем в 10 раз. К тому же на предварительно обученных данных он еще и быстрее работает. Для хранения несжатых данных я использую массивы тритов (трочиная логика: +1,0,-1), которые реализованы в этой библиотеке

Подписывайтесь на мой телеграм-канал , где периодически публикуются исходники и описывается ход «запуска» робота на «бинарках», а в перспективе и на других «настоящих» рынках.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.

| ★4
7 комментариев
1440 не делится на 64. Я бы еще прооптимайзил =))
avatar
Андрей К, зато делится на 32 и на 8
avatar
elektroyar, я когда говорил про 64, имел ввиду размер современной кеш линии проца =). Вы делаете преждевременный расчет для ускорения, почему бы не позаботиться про современную архитектуру, где данные лучше выравнивать на 64, пошустрее все будет.
avatar
Андрей К, не сразу понял тебя. Да, в общем-то несложно доработать. Спасибо за идею) 
avatar
Преждевременная оптимизация? Не, не слышал! ))
avatar
Бинарники и научный подход — это сильно
avatar
Это может облегчить задачу заглядывания в будущее :)
avatar

Читайте на SMART-LAB:
Фото
Дивиденды и закрытие гэпа: какие акции выбрать этим летом
Дивидендный сезон — время не только получить выплаты, но и заработать на росте акций после закрытия дивидендного гэпа. Мы решили...
Фото
❗️22 мая Совет директоров МГКЛ рассмотрит вопрос рекомендации выплаты дивидендов
ПАО «МГКЛ» сообщает, что 22 мая состоится заседание Совета директоров, на котором будет рассмотрен вопрос рекомендации выплаты дивидендов...
Фото
Скрипт сегодняшнего размещения ТЛК (ruBB-, 250 млн руб., YTM 29,34%)
🔵 Сегодня стартует размещение нового выпуска облигаций ТЛК ruBB- // 250 млн р. // 3 года // купон / доходность: 26% / 29,34%...
Мозговой штурм! Что нового на текущий момент?
Доброго дня, дорогие товарищи! Сегодня у нас в офисе прошел традиционный мозговой штурм. Делюсь  основным.

теги блога elektroyar

....все тэги



UPDONW
Новый дизайн