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