Блог им. surgutandrey
Всем, Добрый день!
Меня зовут Андрей Счастливый. Пишу на Python. Месяц назад разбираясь с одним пакетом для бэктестинга торговых стратегий на C был очень разочарован в низкой скорости. А ведь в пакете для бэктестинга самое главное скорость и вообще возможность массово пакетами тестировать торговые стратегии. Решил написать на Python свой бэктестер с GPU.
За месяц написал пакет и вот ближе к делу, хочу рассказать о нём. Тянуть не буду сразу в лоб, цифры в факты.
WarpTrade — высокопроизводительный GPU-бэктестинг торговых стратегий, написанный на Python с использованием Taichi. Проект построен на модульной архитектуре с универсальным движком, способным запускать любые торговые стратегии через систему регистрации ядер. В основе лежит алгоритм собственной разработки.
Писал и тестировал пакет на следующем железе, цифры будут относиться к тестам на данном железе: рабочая станция Lenovo P15, процессор Xeon W-10885M 8/16 ядер, 64 Gb ram, видео Nvidia Quadro RTX5000 с 16 Gb видеопамяти.
Тестирование производилось на наборах данных для тикеров MOEX: RTS, Si, BR, NG и для каждого тикера наборы данных по 152-155 тыс баров по 1 минуте, это 9 месяцев торгового времени, с начала 2025 года. Торговля только внутри дня, чтобы Гэпы не ловить.
Факты, цифры:
А под подъехал и пример вывода рабочего просчёта за 1 заход на 4 тикера 1,47 млрд стратегий за 2 часа:
<code>Загрузка файлов завершена Комбинаций к просчёту: RTS - 308,689,920 Si - 255,011,328 BR - 325,061,100 NG - 258,552,000 Всего комбинаций: 1,147,314,348 Расчётное время просчёта: 2ч 7м 28с Расчётное время окончания: 15ч 12м 22с [Taichi] Starting on arch=cuda Загрузка файлов завершена Направление сделок: all, Режим торговли: Интрадей, Файлов: 4 ✅ Зарегистрированы ядра: SMA_RSI Файл 1: Min1\BR.txt, Баров: 153,020, Период: 06.01.25-12.09.25 ГО на 20.09.25: 10,000 rub. Объём торговли: x1. Депозит: 120 usd 🚀 Запуск стратегии SMA_RSI 📊 Первый проход: вычисление прибыли для 325,061,100 стратегий Выполнение первого прохода: 41м 28с | Стратегий/сек: 130,637 📈 Отобрано: 500 лучших стратегий по прибыли 📈 Второй проход: показатели для 500 лучших стратегий Файл 2: Min1\RTS.txt, Баров: 151,548, Период: 06.01.25-12.09.25 ГО на 20.09.25: 27,000 rub. Объём торговли: x1. Депозит: 33,000 rub 🚀 Запуск стратегии SMA_RSI 📊 Первый проход: вычисление прибыли для 308,689,920 стратегий Выполнение первого прохода: 29м 33с | Стратегий/сек: 174,063 📈 Отобрано: 500 лучших стратегий по прибыли 📈 Второй проход: показатели для 500 лучших стратегий Файл 3: Min1\Si.txt, Баров: 151,598, Период: 06.01.25-12.09.25 ГО на 20.09.25: 7,500 rub. Объём торговли: x1. Депозит: 9,000 rub 🚀 Запуск стратегии SMA_RSI 📊 Первый проход: вычисление прибыли для 255,011,328 стратегий Выполнение первого прохода: 29м 25с | Стратегий/сек: 144,402 📈 Отобрано: 500 лучших стратегий по прибыли 📈 Второй проход: показатели для 500 лучших стратегий Файл 4: Min1\NG.txt, Баров: 154,812, Период: 06.01.25-12.09.25 ГО на 20.09.25: 8,500 rub. Объём торговли: x1. Депозит: 100 usd 🚀 Запуск стратегии SMA_RSI 📊 Первый проход: вычисление прибыли для 258,552,000 стратегий Выполнение первого прохода: 25м 1с | Стратегий/сек: 172,178 📈 Отобрано: 500 лучших стратегий по прибыли 📈 Второй проход: показатели для 500 лучших стратегий Всего для 4 файлов просчитано стратегий: 1,147,314,348 Общее время выполнения: 2ч 5м 37с | Стратегий/сек: 152,212 ✓ Ресурсы Taichi очищены [+] Сохранение pickle-файла с данными статистики топ стратегий: data\stats\stats.pkl [+] Отчет с ТОП-500 стратегиями сохранен в: data\output\intraday_top_strategies.xlsx [+] Созданы графики частоты попадания значений в список топ стратегий [+] Данные для графиков сохранены в файл: data\stats\dict_for_plot.pkl </code>
Пробежимся по остальным деталям. Оптимальная полная загрузка видео карты:

Вывод метрик ТОП-500 стратегий в excel для удобного дальнейшего анализа:

Таблица со сделками выбранной топ стратегии:

Интерактивный график с показом сделок и отдельно графика прибыли с разделением на short и long для выбранной топ стратегии:

Мультиграфик для одновременного анализа графиков прибыли до 20 стратегий:

Ну собственно и всё)) Дальше в пакет буду добавлять ядра с разной логикой торговых стратегий. Если пост наберёт 50 голосов, то запишу и выложу видео с работой пакета.
Кому интрадей стратегий со средней доходностью на протяжении 9 месяцев в 50% в месяц к депозиту?))
На-вайбкодил же, это ж видно по текстам, вы б хоть не палились и тексты правили.
А это векторный бэктестер или итерационный/событийный?