Блог им. AleksandrBaryshnikov
Недавно я прошёл курсы по дата-инжинирингу и почти полностью переписал своё решение для алгоритмической торговли. Ключевое изменение — полный переезд в облако.
Домашние компьютеры больше не участвуют в процессе. Теперь они либо на продажу, либо на выброс.
Я арендую облачные ресурсы примерно на 25 000 ₽ в месяц. Выбрал VK Cloud — провайдеров сейчас много, но по цене они плюс-минус одинаковые.
Хранилище данных
Свечные данные
Параметры инструментов
Результаты расчётов
Всё хранится в S3-совместимом объектном хранилище:
всегда доступно;
масштабируется бесконечно;
стоимость — около 0.20 ₽ за 10 ГБ.
Вычисления
Все расчёты выполняются в Kubernetes-кластере:
10 серверов;
на каждом — по 10 контейнеров, внутри каждого в один момент времени выполняется один расчёт или исследование;
итого ~100 параллельных потоков.
Главный плюс — эластичность. Нужно срочно посчитать больше — добавил ещё 50 серверов в пару кликов. Не нужно — отключил.
Стоимость — около 20 000 ₽ в месяц.
База данных
Отдельный сервер с PostgreSQL:
не для хранения рыночных данных;
используется как диспетчер очередей расчётов.
Стоимость — ~4 000 ₽.
Торговый сервер
Для самой торговли ещё в феврале арендован сервер на стороне брокера:
там крутится торговый движок;
он читает новые алгоритмы напрямую из S3;
задержки выставления ордеров минимальные.
Стоимость — ~7 000 ₽.
В итоге система работает 24×7×365.
Я не думаю про электричество, интернет, железо, бэкапы и отказы — всё это делает облако. Я просто плачу деньги. Очень удобно.
Обновление данных
Раз в сутки в Kubernetes запускаются задания:
обращаются к двум брокерам и Binance;
обновляют инструменты;
докачивают рыночные данные;
сохраняют всё в S3;
создают задания на расчёт в БД.
Диспетчеризация
В кластере постоянно работает диспетчер:
проверяет очередь расчётов;
при появлении задания сразу запускает его;
сам выбирает свободные хосты;
сам выделяет и освобождает ресурсы.
Расчёты
Алгоритмы запускаются в отдельных pods:
забирают данные из S3;
выполняют расчёты;
складывают результаты обратно в S3.
Формирование портфеля
Торговый движок каждое утро:
смотрит, какие новые алгоритмы появились;
обновляет портфель методом вытеснения:
худшие алгоритмы «увольняются»;
лучшие — включаются в торговлю.
Подход к тестированию тоже сильно изменился.
Раньше:
IS / OOS
WFO
Теперь к этому добавился Монте-Карло.
Мои торговые системы относятся к set-and-forget:
у них нет параметров;
оптимизировать в WFO нечего.
Поэтому WFO по сути свёлся к проверке найденного алгоритма на всей истории.
Текущий процесс:
Деление выборки на IS / OOS.
Поиск алгоритма на IS.
Отбрасывание всего, что на OOS уходит в минус.
Эмуляция торговли на всей истории → получаю цепочку сделок.
Монте-Карло:
много раз случайно переставляю сделки;
для каждого варианта считаю метрики (PF, DD, Sharpe, Sortino и т.д.).
Агрегация результатов:
строю распределения;
считаю доверительные интервалы;
анализирую «толстые хвосты».
На основе этого рассчитываю Deflated Sharpe Ratio.
Зачем он нужен:
обычный Sharpe переоценивает результат при множестве тестов;
DSR оценивает вероятность того, что результат статистически значим, а не получен случайно.
Интерпретация:
DSR ≈ 0 — результат незначим;
DSR → 1 — высокая вероятность, что стратегия реальна.
В результате я стал ещё на несколько шагов ближе к цели:
алгоритмы торгуют полностью автономно, без моего постоянного участия.
Инфраструктура масштабируется, расчёты автоматизированы, отбор стратегий статистически обоснован.
Я просто задаю направление — всё остальное система делает сама.
Второй вопрос — для контроля стратегий их данные нужно при тестирование не просто проверять а менять все параметры нон стопом, чтоб у вас появился график всех возможных результатов ( убирает подгон стратегий под фазу рынка)
Третий вопрос — не увидел математика кто разрабатывает стратегии ( одному нельзя быть алго трейдером, нужна команда с опытом, экономит время)
У меня все пока)) если нужен математик пишите)
Для многих это солидные деньги, столько арендная квартира приносит
Понятное дело что для юриков это не деньги но для частника вполне
zhorzh, ну тем более. Вообще облачный хостинг хорошая идея, но не для частника. Как по мне обслуживать физический сервер который под столом наоборот проще. Ну да могут быть простои, типа 2 раза в год обрыв связи на 30 минут. И что? Это не супер форс мажор для частного робо трейдинга
Курсы по дата инжинирингу — это вк, яндекс, или что-то другое?
поделитесь опытом )
много потом дописывали, чтобы это все обуздать? управление и распараллеливание. скриптованием и питоном?
или там у них в облаке макисум автоматизации? бац бац и готово
так все объять сложно, поэтому и спрашиваю. Вы ведь хорошо должны знать, что 100 потоков распараллелить по настоящему, это серьезный такой программистский подход.
поэтому и задал наводящие вопросы, как нынче такое автоматизируется и из чего строится экономика.
кстати 300 тыр в год, это не просто некий аналог видеокарты. Это в первую очередь, как написано в заголовке — автономность. Типа классификация по Tier: энергоусточивость, сетевая стабильность и другие плюшки. Нынче это все денег нормально стоит.