Комментарии 7
Вы представляете, а я ведь буквально уже реализовал вашу рекомендацию)
https://github.com/tripolskypetr/backtest-kit/tree/master/packages/pinets

Я может не очень понимаю?
Wall-clock span (first → last event) 2.9 сек?
У меня бот на go принимает решение за 100-300 микросекунд, не милисекунд. Как вообще это может в секундах измеряться?Или метрика не та?
Плюс я одновременно держу в памяти сокет на 100+ монет на 4 биржах L2 стакан и BBO. У тебя похоже размеренная какая-то торговля на долгосрок? Я просто в детали кода не вдавался. Только итоговую табличку посмотрел.
Совершеннно верно! Я не пытаюсь в HFT, я анализирую новостной сентимент чтобы открыть позицию на 1 час. Это требует использовать LLM, хранить много данных в базе, другой кейс.
У тебя похоже размеренная кака-то торговля на долгосро
Эта метрика хорошо работает в сравнении с реализацией на freqtrade, метрики которой я не добавлял в статью
Вся статья сквозит болью про freqtrade - может вместо забега по его граблям стоит запилить свой велосипед - сначала максимально простой под минимум функционала, а далее донавесить что еще требуется по ходу дела?
Также рекомендую при разработке ядра движка стратегий смотреть в сторону pinescript как на самую лаконичную базу api. Тогда вынося всякие радости типа установки стоплосса, параметризации лесенки ордеров в торговое ядро, получите более простой и наглядный код вместо boilerplate.
Но это конечно если задача - пилить сложные и разнообразные стратегии. Если в активе несколько относительно несложных алгоритмов - намного результативнее переложить их на go или rust и получить максимальную скорость работы, как у комментатора выше. Ибо приводимые цифры скорости бектеста сейчас выглядят откровенно слабо. Лучше вычислять более понятные метрики вида "прогон стратегии за 3 месяца на 10 секундных свечах за 10 секунд, из которых 2 секунды ушло на DB I/O".
Вы представляете, а я ведь буквально уже реализовал вашу рекомендацию)
https://github.com/tripolskypetr/backtest-kit/tree/master/packages/pinets

Молоток!) Следующие шаги - взять сервер на 256-512 ядер, запараллелить прогоны там, обнаружив новые грабли вроде необходимости разделяемого кеша исходных данных, выбора адекватных алгоритмов поиска в многомерном пространстве вариантов и т.д.

Архитектура монорепозитория для параллельного исполнения торговых стратегий