Стратегии
Бэктест стратегии пар TqSdk с фильтром Калмана для нержавеющей стали и никеля: точная спецификация, требуется поддержка платформы
Итог: Отменено
TqKalmanSsNiPairs
Сводка по итогам
TqKalmanSsNiPairs перенесла демо-стратегию TqSdk торговли парой с фильтром Калмана — сделку лонг-шорт по фьючерсам на нержавеющую сталь и никель SHFE. При переносе необычные уравнения Калмана, расчёт числа лотов и порядок событий из исходника оставлены без изменений. В самой гипотезе указано, что точный запуск на платформе невозможен: конфигурация бирж платформы не поддерживает SHFE и не содержит данных, маржинальных требований и комиссий по этим контрактам. Как и ожидалось, работу прекратили на первой итерации с причиной «SS2209.SHFE: биржа не моделируется», поэтому результаты бэктеста или оптимизации не получены, а оценить результативность нельзя.
Гипотеза
Конкретная стратегия лонг-шорт по паре, автор — Shinny (TqSdk), лицензия Apache-2.0. В исходнике торгуются SHFE.ss2209 как Y и SHFE.ni2209 как X с использованием секундных kline-серий по 3600 в период с 2022-07-04 по 2022-08-31. Предоставленная реализация сохранена без изменений, включая нестандартные уравнения Калмана, расчёт размера позиции и время обработки событий. Проверенная конфигурация бирж платформы не поддерживает SHFE, а в задании не подтверждены ни исторические данные по этим контрактам, ни их маржинальные требования и комиссии. Поэтому реализовать на платформе исполняемую гипотезу, точно соответствующую исходнику, с имеющейся инфраструктурой невозможно. Замена инструментов на криптовалюты или использование сигналов по закрытым барам дали бы другой эксперимент.
Требование точно следовать исходнику важнее диверсификации портфеля. Замена этой пары промышленных металлов на недостаточно представленную криптовалютную биржу означала бы постановку другой исследовательской задачи. Это исполняемый торговый код в исходной среде, а не утилита или абстрактное описание, однако возможность его запуска на платформе и приемлемость комиссий не подтверждены.
SS2209.SHFE: биржа не моделируется
Реализация
Точный перевод kalman_filter_pairs_trading из TqSdk. Y = SHFE нержавеющая сталь ss2209 (основной инструмент), X = SHFE никель ni2209 (дополнительная нога), бары по 1 часов. Скалярный фильтр Калмана (Q=STATE_VAR, R=OBS_VAR, начальные среднее/дисперсия 1.0) запускается с 11-го бара и оценивает коэффициент хеджирования. Спред равен y - beta*x; z-оценка рассчитывается по последним 60 значениям спреда с использованием генерального стандартного отклонения. Стратегия открывает лонг по Y / шорт по X при z < -2 и шорт по Y / лонг по X при z > 2. Позиция закрывается при |z| < 0.5, неблагоприятном изменении z на 3 от уровня входа или после 10 наблюдаемых смен дат во время удержания. Число лотов Y = капитал*POS_PCT/margin_per_lot, а X = int(lots*beta*py*mult_y/(px*mult_x)); обе формулы сохранены как в исходнике.
Сводка по итогам
Прежде чем кодировать гипотезу, проверь, поддерживает ли платформа нужную биржу, данные, комиссии и маржинальные требования. Если исходный код работает только на неподдерживаемой бирже (здесь SHFE), сначала нужно добавить поддержку: замена инструментов на криптовалюты превратила бы это в другой эксперимент.
Работу прекратили на итерации 1 с причиной «SS2209.SHFE: биржа не моделируется»: на платформе нет биржи SHFE, исторических данных по этим контрактам, а также маржинальных требований и комиссий SHFE. В самой гипотезе уже отмечалась эта невозможность, поэтому до проверки бэктеста, анализа аналитиком и оценки рисков дело не дошло.
Точная адаптация парной стратегии Shinny (TqSdk, Apache-2.0) с фильтром Калмана: она оценивает динамический коэффициент хеджирования между нержавеющей сталью SHFE (ss2209, Y) и никелем (ni2209, X) на барах длительностью 3600 секунд, затем торгует скользящей z-оценкой спреда: открывает позиции, когда z-оценка выходит за ±2, и закрывает их, когда она возвращается внутрь ±0.5. Также применяются правило стопа по спреду и ограничение максимального срока удержания в днях.
Данных о результативности нет. Отчёт бэктеста пуст, оптимизация не запускалась, показатели доходности, коэффициента Шарпа и числа сделок не рассчитаны.
Анализ
kalman_filter_pairs_trading
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.