Что есть:
1) Потоковые данные (тики, весь стакан)
2) Стратегия
3) Пара тестеров
Создается некоторая стратегия, собирается статистика отработок сделок на тестере с учетом временного лага (отправки ордеров на биржу). Выставление заявок происходит лимитником на цену бест бид или офер (виртуальная позиция). Дальше отслеживается сколько ордеров проходит по цене прежде чем рынок даст закрыть позицию маркетом (!) определенную величину тейка, либо позиция достигнет стопа на заданную величину, закрытие по стопу опять же маркетом.
Пример: приходит сигнал на покупку, с учетом лага выставляется заявка на бест бид 1 контракт. Стоп 1 пункт, тейк 1 пункт. Далее отслеживается что происходит с бидом. Если бест бид опускается на 1 пункт — сработал стоп, бид поднимается на 1 пункт — сработал тейк. Если собрать статистику сделок и построить накопленное эквити с разными подборками параметров стопа и тейка то выходит:
Похоже, что то даже зарабатывается (прибыль/убыток в пунктах). Но не учтена комиссия. И главное не учтено заполнили лимитный ордер или нет. Добавляем комисс и считаем, что ордер срабатывает если за время жизни позиции (не достижения стопа или тейка) по цене установки ордера проходит маркетом хотя бы 50% от всего объема, что стоял на лимитке до выставления заявки. Получается след картина:
Многие ордера, что давали прибыль в первом случае, просто не будут исполнены на живом рынке. Теперь добавляем интересное условие: если после появления сигнала цена дает +1 пункт к любой виртуальной позиции без учета заполнили или нет заходим маркетом вместо лимитки. В данном случае сразу дополнительно теряется гарантированно 1 пункт на исполнение маркетом и 1 пункт на то, что цена уже ушла от теоретической цены исполнения лимитником. Проскальзыванием пока пренебрегаем. Эквити трейдов совершенные маркетом по описанной технологии:
Комиссия учтена. Количество сделок сократилось более чем в 2 раза — отсеились ситуации, когда рынок реагировал на сигнал движением цены против теор входа на 1 пункт.
прикол в том что ордера выставляются быстрее чем приходят данные… т.е например делаем бота который раз в 5 сек покупает по маркету… ты увидишь что цена исполнения ниразу не соответствует цене в терминале… т.к цена отстает от заяв
имхо это из-за того что цена идет пакетом, а заявка ставится дискретно