Доброй ночи, коллеги!
Все мы знаем, что для расчета финансового результата эквити используются цены Close. Однако, реальные сделки проводятся совсем не по ценам Close, а по ценам Bid/Ask (близко к ним, с учетом комиссии etc.).
Disclaimer: Всем трейдерам, работающим на таймфрейме daily и более крупном рекомендуется сразу прекратить чтение данного документа. Трейдерам, работающим на ТФ 1m, к прочтению обязательно. Дальше тезисно:
1. Пусть мы реализуем алоготорговлю со стратегией/индикатором Id(n) на баре n (Id(n)=+1,0,-1). Тогда финрез последнего бара будет выглядеть как Id(n)*d(n), где d(n) — приращение цен close на баре n.
В реалии это не так. В любой момент времени на рынке существуют цены bid/ask, по которым и осуществляются реальные сделки. И если цены «close» меняются на каждом тике, то пары bid/ask на реальных рынках обновляются (примерно) с частотой 1 раз в 2.2 секунды (0.45 Герц!).
Поэтому, если аккуратно выписать финрез эквити, которая работает в реальном режиме «все сделки совершаются не по close, а по bid/ask, возможно, с некоторой премией за счет price improvement (NBBO на американском рынке)», то формула для финреза последнего бара будет выглядеть уже совсем по-другому.
2. В частости, цены close потеряют свою актуальность. Их заменят «синтетические» close ((bid+ask)/2) и «смешанные» close (0.5*(close+0.5*(bid+ask))). Все это очень несложно математически, но я сомневаюсь, что кто-то аккуратно делал похожие выкладки )))
СОВЕТ: Если вы работаете на таймфрейме 1 min и ниже — не дайте себя обмануть, и никогда не используйте публикуемые цены close как данность.
С уважением
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
Эквити по закрытию дней нормально только для алгоритмов со среднем временем в позиции 2+дня.
К счастью, история учит, что если купить за рупь и продать за три, то на вырученные два процента непритязательный человек вполне способен прожить.
Любой дополнительный объем ухудшает оценку проскальзывания, иногда в разы. Реально большой объем уже за пределами такого типа оценок.
Если поторговать на настоящей бирже заметным объемом, можно убедиться, что открыться/закрыться маркетной заявкой по ценам, хотя бы близким к Bid/Ask далеко не всегда возможно. Мечтающем о торговле на минутах или тиках с таргетом 500% в год полезно исследовать это странное явление как можно раньше.
Ну если уж в данных есть bid/ask, то неясен источник оптимизма с ценой в (bid+ask)/2 для любой стороны сделки. Маркетный ордер попадет в противоположную сторону спреда, а не куда-то в середину. Это если он единичного объема, иначе еще хуже будет.
С лимитными ордерами тоже не все мёдом намазано, хотя пересечение (а не касание) заявки H/L следующего бара дает более-менее адекватную картину. На практике лимитка заметного размера может легко продавливать какой-нибудь неликвид.
Ну а в общем в бэктестах надо смотреть на размер средней сделки в %, чтобы он был адекватен ликвидности в активе.
Вот пример, вчера нужно было купить BTCUSDT по 77950, не налили. Я 3 минуты, раз 20 двигал заявку за бидом.
Только на микрозадерге на 78000 наконец налили. Это не какой то неликвид, это фьюч BTCUSDT на байбит, по выходным, сайз 3. Да и в будни это типичная ситуация, если цена двигается, её не догнать лучшей заявкой, внутри спреда мелоч, тебя удовлетворят на микро-развороте. Такая вот особенность, Бид/Аск наполнен, дальше провал из мелочи. Стакан как гребенка.