Меня всегда удивляет, когда я в статьях вижу, что «вот тестирую торговую стратегию на истории и всё хорошо, а после издержек — в нуле».
Объясните, какой смысл симулировать стратегию без издержек?
Я сейчас разрабатываю стратегию, которая использует фьючерсы, акции, маржиналку, едп, фдр, а значит зависит от дивидендов и ruonia/КС.
Соответственно симулятор должен всё это учитывать.
Я наверное(да наверняка) изобретаю велосипед, делая такой симулятор, но меня очень пугает чужой код, если это касается моих финансов.
В общем, написал на python+numba симулятор, который помимо комиссии и проскальзывания:
1) Учитывает фандинги вечных фьючерсов. Данные берутся с мосбиржи из колонки SWAPRATE.
2) Учитывает дивидендные поправки в вечных фьючерсах. Данные берутся с мосбиржи.
3) Учитывает выплаты дивидендов с учётом налога на дивиденд в момент выплаты. Данные берутся из tbank api.
4) Учитывает ruonia и использует её для начисления процентов по маржинальному кредиту(с коэффициентом x2) и начисление вознаграждения за парковку свободных денег в фондах денежного рынка.
5) Производит клиринг каждый день, симулируя честный расчёт по вармарже и фандингу.
6) Производит годовой расчёт и списание налогов со счёта. Рассчитывает сальдирование по прибыли/убыткам того, что сальдируется. Переносит убытки прошлых лет в налоговую базу расчётного года.
7) Учитывает при расчёте налоговой базы FIFO порядок по сделкам с акциями.
И выдаёт отчёт при единичном прогоне с фиксированными параметрами стратегии:
Работаёт всё этого достаточно быстро, потому что это numba — это как писать на плюсах, только на питоне.
P.S. ничего не продаю и не покупаю, просто хвастаюсь.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
У меня брокерский счёт учитывает все это)))
Очень основательно, даже может чересчур — НОЛОГЕ и сальдирование их к стратегиям уж совсем не относится. Если цель — поиск стратегии, то подмешивание в компот всего, что нашлось на кухне, вряд ли сделает результат яснее.
А проскальзывание (у вас упомянуто бегло) как учитываете? Исполнение у вас лимитное или маркетное считается ?
Симуляция происходит с самой конской комиссией для трейдеров на рынке. Проскальзывание взято среднее для такого объёма. Тут писал про проскальзывание от объёма: smart-lab.ru/blog/1356317.php
Комиссия за исполнение считается по маркету.