Описание: постепенно работаю над этим разделом, описание будет дополняться. Планирую тут разместить описание моего подхода, картину “охвата рынка” торгуемых мною бумаг и другое.
Описание торгового подхода
Торговля ведется на восходящих ценовых движениях (только в «лонг»). Открытые позиции сохраняются до нескольких месяцев при благоприятном ценовом движении. В случае неблагоприятного движения цен, позиция быстро закрывается. Одно из основных условий моего торгового подхода – максимально широкая диверсификация по инструментам.
Я осуществляю торговлю на фондовой секции ММВБ акциями отечественных компаний. При отсутствии инфраструктурных рисков, география торговли будет расширена на другие рынки. До февраля 2022 года был готов к запуску портфель для рынка США и Европы.
В основе используемых мною торговых стратегий заложены следующие основные положения:
- вся информация известная в момент принятия решения уже учтена в цене;
- биржевая торговля — это «игра с нулевой суммой»;
- движение цен обусловлено движением капитала;
- капитал обладает инерцией;
- инерция капитала прямо пропорциональна его размеру.
Хорошая торговая стратегия:
- использует минимальное количество переменных (не больше трех);
- работает на всех рынках, инструментах и временных диапазонах за счет использования базовых законов функционирования рынка;
- извлекает стабильную позитивную «альфа» к торгуемому инструменту независимо от состояния рынка.
Архитектура торговой системы
С точки зрения программной архитектуры верхний уровень – это торговая система. Под торговой системой я понимаю совокупность следующих блоков:
- блок принятия торговых решений;
- блок управления денежными средствами;
- блок управления рисками;
- блок управления портфелем;
- блок оценки и мониторинга;
- другие вспомогательные блоки.
В рамках торговой системы по каждому торгуемому инструменту функционирует одновременно несколько торговых стратегий. Торговая стратегия — это комбинация инструментов статистического/технического анализа в результате взаимодействия которых происходит генерирование торговых сигналов покупки и продажи. Каждая торговая стратегия по инструменту – это отдельный торговый робот. Совокупность роботов формирует портфель роботов. Портфель роботов сопровождает система портфельного управления, в рамках которой отслеживаются параметры портфеля, лимиты между отдельными роботами с учетом удельных весов каждой акции и многое другое. Используемый мною подход позволяет обеспечивать очень высокую емкость, что критически важно для масштабирования торговли.
Торгуемые инструменты
До 2016 года торговля велась фьючерсами, так как фьючерс позволяет использовать «бесплатное плечо», имеет низкие комиссионные расходы по сравнению с торговлей акциями. В 2016 году пришел к выводу, что для моей торговой системы фьючерсы неудачный инструмент по многим причинам. Основные причины: небольшое количество инструментов с достаточной ликвидностью, необходимость постоянно переходить на новые контракты.
С 2017 года торговля ведется исключительно акциями. Сейчас в рамках торговой системы по основному портфелю торговля осуществляется 136 акциями ММВБ, на публичных счетах количество акций ограничено правилами сервисов. Я регулярно веду мониторинг доступных инструментов для включения их в работу.
В ближайшее время этот раздел будет расширен и добавлена аналитика покрытия рынка с графиками и таблицами.
Программное обеспечение
Вся моя торговля осуществляется в полностью автоматизированном режиме (алгоритмический трейдинг) с использованием программы «TSLab». Для написания торговых роботов я использую язык C#. Несмотря на возможности «TSLab» использую его я исключительно как коннектор к бирже, для расчетов, оптимизации, анализа, получения и обработки данных и много другого, я использую собственные программы написанные на языке «R».
Историческое тестирование
В алгоритмической торговле историческое тестирование используется для оценки работы стратегии на выбранном участке временного ряда. Для тестирования стратегии нужно четкое описание ключевых блоков: условие входа, условие выхода, управление деньгами, управление рисками. После того как стратегия определена и запрограммирована, появляется возможность решать задачу поиска оптимальных значений параметров в пространстве вариантов (оптимизация). Графически задача сводится к нахождению «лучшей точки» в пространстве вариантов, в котором количество измерений равно количеству используемых переменных (2 параметра — это плоскость, если параметра 3 — это трехмерное пространство и так далее). Для исторического тестирования и оптимизации, как правило, используют готовые программные решения. Если задача “нетипичная”, то помочь может только собственная программа. Процесс исторического тестирования и оптимизации достаточно сложный и комплексный.
Отдельно по сложности стоит задача исторического портфельного тестирования и оптимизации. Сложность задачи в том, что речь идет о множестве стратегий на множестве инструментов. При портфельном тестировании требуется воспроизвести механизм движения капитала между активами и используемого набора стратегий, при этом необходимо рассчитать движение займов, собственных средств, прибылей и убытков от сделок, дивидендов, комиссий, рассчитать маржинальные требования и многое другое. Расчеты необходимо выполнить “кассовым методом” и “методом начисления”. Решение задачи портфельного тестирования позволит выполнить оценку работы портфеля систем, определить предельные и оптимальные характеристики портфеля.
Портфельное тестирование и оптимизация – это сложная и мало освещаемая в литературе область. Вдобавок это сложная вычислительная задача и для ее решения требуется специфического программное обеспечение. Для портфельного тестирования и оптимизации я использую собственные алгоритмы написанные на языке «R».
Результаты исторического портфельного тестирования
В данном разделе приведены результаты портфельного тестирования моего основного портфеля. Результаты моих остальных портфелей имеют схожие характеристики с учетом выбранного риск-профиля.
Допущения:
- Дата актуализации: 31/12/2023
- Диапазон тестирования: 01/01/2005 – 31/12/2023 (19 лет)
- Таймфрейм: 1 час
- Кол-во акций: 136
- Кол-во торговых стратегий: 7
- Общее количество роботов в портфеле: 952
- Риск-профиль: 3.0
- Комиссия с оборота: 0.1% (фактическая 0,05%)
Результаты:
- Количество сделок: 117 001
- Доля прибыльных сделок: 42.12%
- Доля убыточных сделок: 57.88%
- Средняя прибыльная сделка: 9.94%
- Средняя убыточная сделка: -2.37%
- CAGR: 69.9%
- MDD: 20.5% (2009 год)
- CVAR: 14.4%
- Фактор восстановления: 7.8
- Коэффициент Кальмара: 3.5
- Коэффициент Сортино: 6.1
- Коэффициент детерминации (R^2): 0.97