Обновить

Комментарии 12

Отличная статья!

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

А вот с остальными цифрами из статьи согласен почти полностью. Очень похожие и у себя наблюдал. Тейки и подходы из статьи, - по сути все полностью справедливо. Даже с, казалось бы, спорным

Переписал кусок. Было 50 мс, стало 0.5 мс. Гордый, замерил общий roundtrip. Был 150 мс, стал 100.5 мс. Месяц работы ради 33%. На daily-стратегии это технически интересно, но фактически бесполезно

По опыту абсолютно согласен.

Про 97% - справедливое уточнение. Тайвань и Бразилия это другие комиссии. В первой статье я это оговаривал, тут упростил. Но порядок величин, думаю, всё равно примерно такой - большинство в минусе

Почему просто не взять готовые решения для бэктестов типа backtrader, Backtesting.py, не изобретать велосипед и не наступать на одни и те же грабли каждый раз (это про look-ahead bias). Тот же TA-lib для расчётов индикаторов? Зачем гнаться за скоростью, если HFT не является целью? Сомневаюсь, что на часовых свечах при ограниченном наборе инструментов подобные оптимизации имеют большое значение

backtrader и Backtesting.py не решают проблему. Они тоже по умолчанию исполняют по close того же бара. Look-ahead bias никуда не девается, а просто прячется внутри библиотеки
TA-lib для индикаторов сам использую. Но индикаторы это 5% задачи, остальное моделирование исполнения
Про скорость согласен. В статье как раз об этом и говорю. Для daily-стратегий гнаться за миллисекундами бессмысленно. Но event-driven архитектура нужна не ради скорости, а чтобы физически не дать себе заглянуть в будущее.

Backtrader - по умолчанию сделка происходит по цене открытия следующего бара

Backtesting.py - тоже по умолчанию по цене открытия следующего бара

Научитесь читать документацию. С++ не нужен даже если на 5мин торговать, может и на 1мин не нужен, но надо проверить. В HFT смысла нет, нет там денег на MOEX.

У Backtesting.py хорошая скорость работы, плюс можно распараллелить на несколько процессов.

Проверил. Был неправ. Спасибо за поправку.
Основной тезис статьи это не отменяет: pandas-бектесты с ручной логикой легко ломаются на shift(-1). Но конкретно про эти библиотеки - мой косяк.

returns = prices.pct_change().shift(-1)

Эта ошибка очень простая. Странно ее не заметить при кодировании стратегии. А так, конечно, надо внимательно быть с разными нюансами. И не забывать о возможности переподгонки.

Согласен ошибка глупая. Тем и обиднее. Нл такие вещи иногда проскакивают. А когда видишь на бектесте красивый Sharpe и не возникает желания искать баг в работающем коде.
Собственно, статья как раз об этом

Я лично очень подозрительно отношусь к слишком красивой картинке эквити. Если слишком красиво, то всегда есть некая ошибка.

Да, хорошая мысль. Но мне за это знание пришлось заплатить

Причем здесь питон или библиотеки, если дело в прокладке между стулом и монитором?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации