Блог им. elektroyar

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

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

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

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

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

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

Читайте на SMART-LAB:
Фото
NZD/CAD: четверг под знаком быков. Повторится ли северное ралли?
Кросс-курс NZD/CAD протестировал линию восходящего тренда и, похоже, решил, что падать дальше — это плохая примета. Сессию четверга пара изо всех...
Фото
АПРИ: два ввода за одну неделю — Екатеринбург и Челябинск
🏗 АПРИ: два ввода за одну неделю — Екатеринбург и Челябинск Делимся новостями по проектам: сразу в двух регионах новые дома...
Фото
Аналитический центр ДОМ.РФ: цены на новостройки в августе выросли на 0,6% м/м
Цены на новостройки в августе выросли на 0,6% м/м Согласно Индексу цен ДОМ.РФ, в целом за восемь месяцев жилье на первичном...
Фото
Какие бизнесы на Мосбирже смогли успешно "впитать" инфляцию за 10 лет? Часть 2: банки и финансы
Инфляция за 10 лет составила 85% официальная, и около 100% по проверке моей потребительской корзины.  Какие инвестиции в акции, сделанные 10 лет...

теги блога elektroyar

....все тэги



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