Как Freya моделирует проскальзывание и комиссии в бэктестах
Самый быстрый способ выдать убыточную стратегию за прибыльную, это протестировать её с нулевыми издержками. Каждое исполнение по идеальной цене, без комиссий, без проскальзывания. Множество инструментов бэктестинга делают именно так, и стратегии, которые они благословляют, умирают при первом же контакте с реальной биржей.
Движок Freya так не делает. Он применяет проскальзывание, буфер исполнения и реальные комиссии maker-taker к каждой сделке, поэтому кривая эквити, которую вы видите, уже несёт в себе трение живой торговли. Понимание того, как именно это работает, показывает, насколько можно доверять вашим результатам и какие стратегии издержки тихо погубят.
Key Takeaways
- Рыночные и стоп-ордера исполняются с проскальзыванием 0,03% в невыгодную для вас сторону; исполнение всегда хуже, никогда не лучше.
- Лимитные ордера не получают проскальзывания, но цена должна пройти 0,01% за ваш лимит, прежде чем движок засчитает ордер исполненным.
- Каждое смоделированное исполнение ограничено максимумом и минимумом самой свечи, поэтому движок никогда не исполнит ордер по цене, которой на рынке не было.
- Комиссии используют реальные ставки maker и taker каждой биржи: лимитные ордера платят maker, рыночные ордера платят taker.
- Комиссии взимаются при входе, при каждом ордере безопасности и при выходе, и рассчитываются от размера позиции с учётом плеча.
- Высокочастотные и глубокие DCA-стратегии платят эти издержки многократно, поэтому в бэктесте они могут показывать положительную валовую прибыль и отрицательную чистую.
Чтобы понять более полную картину того, почему живая торговля всё равно отличается даже после всего этого, прочитайте бэктест против живых результатов.
Ставки ниже, это допущения моделирования движка, описанные для того, чтобы вы могли читать свои результаты, а не торговый совет. Торговля криптовалютой может привести к убыткам. Прочитайте Раскрытие рисков, прежде чем выходить на реальный рынок.
Проскальзывание: исполнение по реалистичной цене
Проскальзывание, это разрыв между ценой, которую вы хотели, и ценой, которую вы получили. На реальной бирже оно возникает из-за того, что стакан сдвигается в момент, когда ваш ордер попадает на рынок. Freya моделирует его простым и честным правилом, которое зависит от типа вашего ордера.
Рыночные и стоп-ордера исполняются с проскальзыванием 0,03 процента, которое всегда применяется в невыгодную для вас сторону. Покупаете, и ваше исполнение на 0,03 процента выше опорной цены. Продаёте, и оно на 0,03 процента ниже. Удачных исполнений не бывает. Это отражает реальность: рыночный ордер пересекает спред и платит за немедленность.
Лимитные ордера не получают никакого проскальзывания, потому что лимитный ордер исполняется по вашей цене или не исполняется вовсе. Но движок не выдаёт вам исполнение только потому, что цена на мгновение коснулась вашего уровня. Цена должна пройти 0,01 процента за ваш лимит, прежде чем исполнение будет засчитано. Этот небольшой буфер предотвращает классическую ложь бэктеста, допущение, будто каждая тень, задевшая вашу цену, исполнила бы ваш ордер в реальном конкурентном стакане.
Некоторые бэктестеры применяют проскальзывание симметрично, что тихо взаимозачитывается на многих сделках и занижает его истинное тормозящее влияние. Freya применяет его направленно, всегда против вас, потому что именно так ведёт себя реальный стакан. На сотнях сделок это разница между реалистичной издержкой и скрытой субсидией.
Ограничение по свече
Есть более тонкий способ, которым бэктесты жульничают: исполнение по цене, которой свеча никогда не достигала. Freya этому препятствует. Каждое смоделированное исполнение ограничено максимумом и минимумом свечи, в которой оно происходит. Движок физически не может исполнить ваш ордер выше максимума свечи или ниже её минимума, потому что этой цены в том баре не существовало.
Это важнее всего для стоп-лоссов и тейк-профитов на волатильных свечах. Без ограничения движок может предположить, что ваш стоп исполнился ровно на своём уровне, даже когда свеча проскочила прямо сквозь него гэпом. Ограничение удерживает каждое исполнение внутри цен, которые рынок действительно печатал, и это одна из тихих причин, почему числа Freya остаются ближе к живой торговле, чем в наивном бэктесте.
Комиссии: maker, taker и номинал с учётом плеча
Проскальзывание, это лишь половина трения. Каждое исполнение также платит комиссию, и Freya использует реальные ставки maker и taker каждой биржи, а не усреднённую догадку.
- Лимитный ордер, который лежит в стакане и исполняется, платит комиссию maker, которая ниже.
- Рыночный ордер, который пересекает спред ради немедленного исполнения, платит комиссию taker, которая выше.
Две детали определяют, во сколько комиссии вам действительно обходятся:
- Они взимаются за каждое исполнение, а не только за полный цикл сделки. Вы платите при входе, при каждом ордере безопасности, который добавляет DCA-бот, и при выходе. Бот, который усредняется через восемь ордеров безопасности, платит комиссию девять раз, прежде чем вообще закроется.
- Они рассчитываются от размера позиции с учётом плеча. При плече 10x маржа в $1 000 управляет позицией в $10 000, и комиссия взимается с $10 000. Плечо умножает ваши комиссии ровно так же, как умножает вашу экспозицию.
| Черта стратегии | Влияние на издержки | Что проверить |
|---|---|---|
| Много мелких сделок в день | Проскальзывание и комиссии taker платятся постоянно | Сравните валовую и чистую прибыль; разрыв, это тормозящее влияние ваших издержек |
| Глубокие DCA / мартингейл-лестницы | Комиссия за каждый ордер безопасности | Чистый PnL после всех комиссий за добавленные ордера |
| Высокое плечо | Комиссии взимаются с полного номинала с учётом плеча | Выживает ли преимущество после комиссий при таком плече |
| Преимущественно лежащие лимитные ордера | Комиссии maker, без проскальзывания | Обычно дешевле всего в использовании, если исполнения реалистичны |
Почему это делает некоторые стратегии убыточными
Стратегия может показывать здоровую валовую прибыль и отрицательную чистую, как только применяются эти издержки, и это движок делает свою работу. Обычные виновники, это частота и глубина: скальпер, платящий комиссии taker и проскальзывание на сотнях сделок, или глубокий DCA-бот, платящий комиссию за каждый из множества ордеров безопасности. Если ваш чистый результат намного ниже валового, издержки съедают преимущество, и никакая дисциплина в живой торговле не изменит эту математику.
Решение стратегическое, а не основанное на надежде: меньше сделок с большей убеждённостью, больше лежащих лимитных ордеров ради комиссий maker, меньше плеча или более широкий тейк-профит, который преодолевает барьер издержек. Бэктест говорит вам правду заранее, а это именно то, чего вы от него хотите.
Как применить это на практике
- Всегда сравнивайте валовую и чистую прибыль. Разрыв, это ваша полная стоимость торговли. Если он велик, проблема в частоте или плече.
- Предпочитайте лимитные входы, где можете. Комиссии maker и нулевое проскальзывание делают лежащие ордера существенно дешевле, чем погоня рыночными ордерами.
- Считайте свои ордера безопасности. Каждый из них, это ещё одна комиссия. Глубокие лестницы не бесплатны.
- Не путайте это с полным разрывом с живой торговлей. Даже при смоделированных проскальзывании и комиссиях живая торговля добавляет задержку, частичные исполнения, реальную глубину стакана и комиссию за результат Freya. Этот движок доводит вас большую часть пути к реалистичности; бэктест против живых результатов покрывает остальное.
Часто задаваемые вопросы
Какое проскальзывание предполагает Freya?
Рыночные и стоп-ордера исполняются с проскальзыванием 0,03 процента, всегда в невыгодную для вас сторону. Лимитные ордера не получают проскальзывания, но требуют, чтобы цена прошла 0,01 процента за ваш лимит, прежде чем исполнение будет засчитано. Каждое исполнение также ограничено максимумом и минимумом свечи, поэтому движок никогда не исполняет ордер по цене, которую рынок не печатал.
Включает ли бэктест торговые комиссии?
Да. Он использует реальные ставки maker и taker каждой биржи. Лимитные ордера платят более низкую комиссию maker, рыночные ордера платят более высокую комиссию taker, а комиссия взимается при входе, при каждом ордере безопасности и при выходе, рассчитываясь от размера позиции с учётом плеча.
Почему моя чистая прибыль намного ниже валовой?
Потому что проскальзывание и комиссии вычитаются, и они быстро накапливаются для высокочастотных стратегий и глубоких DCA-лестниц, которые платят комиссию за каждый ордер. Большой разрыв между валовой и чистой прибылью означает, что издержки стратегии съедают её преимущество. Снизьте частоту, используйте больше лимитных ордеров или уменьшите плечо.
Увеличивает ли плечо мои комиссии?
Да. Комиссии взимаются от размера позиции с учётом плеча, а не от вашей маржи. При плече 10x комиссия за позицию, обеспеченную маржой в $1 000, рассчитывается с экспозиции в $10 000. Более высокое плечо умножает ваши комиссии так же, как умножает ваш риск.
