Блог им. Roman_016

Торговая система. Часть 2 

Пайплайн создания простых торговых систем.

Так как путем использования логики я уже понял, что систематическое извлечение прибыли из финансовых рынков возможно.

Следующий шаг — это создание торговой системы, конечным результатом которой и будет та самая прибыль. Базовые принципы, на которых строится торговая система, давно известны, так что изобретать колесо к счастью мне не пришлось. Лично я все это нашел в материале Александра Горчакова, в одном видео он подробно описал всю базовую структуру.

Как ни странно, за 8 лет — 8,3 тыс. просмотров. Ссылка на видео.

https://www.youtube.com/watch?v=kYSkbzjm9FY

Этапы 

Вооружившись базовыми знаниями о теории вероятностей и путем проведения большого количества попыток, а что-то минимально рабочее у меня получилось только с 39-й попытки, я пришел к следующим этапам создания торговой системы.

1. Сбор и подготовка данных

2. Событийное поле, разметка и анализ

3. Построение векторов

4. Психологическая устойчивость

5. Формирование функции

6. Базовый технический стек

7. Постобработка как метод анализа Edge 

8. Предобработка как метод улучшения Win Rate

9. Циклические итерации для оптимизации параметров

10. MVP

11. Отладка

12. Полноценный запуск и интеграция в КСУП

13. Использование и мониторинг

1. Сбор и подготовка данных

Первое, с чего я начал, — это поиск данных. В моём случае всё просто, я могу скачать данные с Bybit. Если вы торгуете в Америке, то знаете, что данные — это то, за что надо платить, и скачать их просто так очень сложно. Особенно когда нужны минутные свечи по всем тикетам за всю историю. Сам пока Америку не скачивал, но, наверное, буду брать отсюда: massive.com, вроде не так дорого.

Я скачал всю историю Bybit в минутных свечах за всё время, используя REST API. Важно брать именно минутки, так на них и будет запущено ядро бэктеста. В моём случае оно построено на C++ и CUDA.

Для дальнейшего использования этих данных был написан скрипт, который агрегирует эти данные во все необходимые диапазоны от 5-минутных до дневных баров.

Важный момент на этом этапе — это валидация данных. То есть, сделали себе датасет, не поленитесь скачать неделю данных с биржи, чтобы сравнить их.

Проверка временной последовательности, пропусков, нормальности данных.

Я делал систему 4 дня, а потом результаты нанёс на график TradingView через Pine Script и очень удивился, когда увидел сделки там, где нет баров — просто в разрозненных местах стопы и тейки на экране. Было, скажем так, очень неприятно, а ошибка была в агрегации данных. То есть я просто сделал кривой скрипт и собрал кривой датасет. И на нём делал 4 дня систему. Важно не пренебрегать этим.

Я не буду углубляться в техническое исполнение, просто напишу, что скрипт был на Python, БД на ClickHouse, всё на моём сервере скачивалось около 7 дней и 2 650 000 миллионов баров.

Скрипт стартует при каждом запуске сервера через systemd для поддержания данных в актуальном состоянии.

Всего 479 тикетов, только перпы, так как мне нужен leverage, а на споте его нет.

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

Дальше я сформировал бины для временного слоя.

Один бин — это один торговый день, и в нём сразу минутные данные по всем тикетам.

Такой подход позволяет избежать look-ahead bias (заглядывания в будущее) и позволяет торговать как будто вы торгуете в реальности: данные поступают минута за минутой, сразу по всем тикетам. То есть схожесть с реальным торговым днём почти 100 процентов, только в тысячи раз быстрее.

Стандартные библиотеки вроде Backtrader я выкинул после того, как бэктест крутился 3 часа. C++ и CUDA сделали этот тест за 78 секунд. Так я понял, что движок для бэктестов нужен свой.

Можно ещё сделать бины для каждого тикета для индивидуальной оптимизации, но я пока не дошёл до этого.

Как итог, у меня есть 3 слоя данных:

1. Сырые в Click House.

2. Агрегированные через Python для анализа событийного поля.

3. Временной слой в бинах для тестов.

Продолжение в след. статье

    249

    Читайте на SMART-LAB:
    Фото
    X5 МСФО 1 кв. 2026 г. - каким может быть ближайший дивиденд?
    Компания X5 опубликовала финансовые результаты за 1 кв. 2026 года. Выручка выросла на 11,3% до 1,19 трлн руб. Валовая прибыль выросла на...
    Обвал рубля отменяется: Минфин планирует купить совсем немного валюты
    Пара CNY/RUB на Мосбирже 6 мая консолидируется у 11. Пара USD/RUB на внебиржевых торгах котируется по 75, пара EUR/RUB находится немного выше 88.К...
    Фото
    Индекс уже 2600. Что купить на просадке?
    Индекс МосБиржи впервые с ноября опустился ниже 2600 пунктов, потеряв больше 12% от максимумов марта. Определенные причины для такой...
    Фото
    Газпром: рекордная квартальная прибыль или оставь надежду всяк сюда входящий, но сентимент разворачивается вместо цены акции?
    Газпром недавно отчитался по МСФО за 2025 год и по РСБУ за 1-й квартал Рассмотрим все сразу, обновим модель + сравним прогноз-факт, как...

    теги блога Roman_016

    ....все тэги



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