algo_rts
algo_rts личный блог
07 ноября 2018, 15:26

Статистический арбитраж на Санкт-Петербургской Бирже, первая неделя.

   Прошла неделя с момента отслеживания стратегии, основанной на торговли спреда между JPM и BAC на Санкт-Петербургской Бирже. За эту неделю робот MultiConnect как всегда был на высоте, никаких технических сбоев и отключений не было. Оптимизированная стратегия(портфель) 218 сделок, комиссии 675 долл, финрез с учетом комиссий – 350 долларов; базовый портфель 254 сделки, комисс 864 доллара, финрез с учетом комиссии -440 долларов. Торговля ведется полными лотами — 100 акций.

 

   Сегодня расскажу о самой стратегии, ее принципах и начнем подробнее знакомиться с роботом MultiConnect.

   Принцип торговли, как я говорил ранее, заключается в торговле спреда или раздвижки инструментов как одного актива. Считается, что спред менее подвержен трендовым движениям и более склонен к возврату к своему среднему значению. Торговля ведется по принципу постепенного набора позиции при движении в одну сторону и раздаче позиции на откатах. Сразу договоримся, что под сделкой мы будем подразумевать одновременную покупку одного актива и продажу другого, робот делает это автоматически, в зависимости от настроек. Раздвижка считается по заданной нами формуле: актив1-к*актив2, где актив1 — исторически более дорогая акция, актив2 – менее дорогая, к – коэффициент, показывает в какой пропорции торгуются бумаги. У нас из более дорогого (по стоимости) JPM вычитается менее дорогой (по стоимости) BAC, коэффициент пока возьмем 3. Итак: при включении робот получает текущее значение раздвижки на покупку и на продажу. Например, продать мы можем по 24, 87 и купить по 25,4; при движении раздвижки выше 24, 87 на определенную величину (шаг) мы продадим, при движении раздвижки ниже на шаг 25,4 – купим. При этом робот «знает» и отслеживает значение, где выйти из позиции. Пока все просто, купили дешевле, продали дороже. Что же произойдет при наборе позиции? Пример: возьмем шаг набора от начального уровня равный 1. Запустились, продажи будут происходить по 24, 87+1=25,87, следующая 25,87+1=26, 87 и тд… при этом выходить будем не дожидаясь возврата к начальному, «нулевому» уровню, а раньше, тейкпрофит с коэффициентом 0,8. Итак, два раза продали по 25,87 и по 26,87 – тейкпрофит ближний =26,07, дальний 25,27. Выйдя по ближнему тейкпрофиту, робот получает и начинает контролировать следующий уровень тейкпрофита, при этом опять увеличит позицию по 26,87. Тоже и при покупке раздвижки. Возникает сразу вопрос – как долго набирать позиции, сколько входов делать? Тут надо найти «золотую середину» — чем больше сделок, тем для нас лучше, вся прибыль сосредоточена в открыть-закрыть позицию, поэтому нет смысла набирать много входов и ждать, это может длиться долго, или же раздвижка может «улететь», при этом позиция и убытки будут максимальны. Применяем ограничение количества входов и стоп-лоссы по значению раздвижки. Например продали три раза (наш максимальный набор) – раздвижка 27,87  и ушли от цены последнего входа на значение стопа – закрываемся, получаем новые «нулевые» уровни продажи и покупки, таким образом мы всегда следуем за рынком.

   Как же устроен робот MultiConnect и какие имеются настройки?

   Торговый робот, “Arbitrage robot” состоит из двух частей – серверной и клиентской. Серверная часть робота – это то место, где непосредственно выполняется торговый алгоритм, клиентская часть робота — это графический интерфейс пользователя. Отделение графического интерфейса от торгового алгоритма позволяет разнести по разным физическим устройствам торговую часть и интерфейс пользователя, так торговый алгоритм может быть запущен на физическом сервере в зоне колокации или виртуальной машине под управлением ОС Linux, в то время как графический интерфейс пользователя устанавливается на персональный компьютер. Клиентская, графическая часть без загруженных портфелей (торговых алгоритмов). Ничего лишнего, контроль позиции, настроек, расписания торговли. 
Статистический арбитраж на Санкт-Петербургской Бирже, первая неделя.
   В оптимизированной стратегии параметры подбирали с помощью тестера-оптимизатора Viking Strategy tester, который на высокоточных исторических данных позволяет проверить арбитражные и не только идеи, оптимизировать параметры. 
Статистический арбитраж на Санкт-Петербургской Бирже, первая неделя.

   С помощью тестирования на этом ПО были созданы успешные, в том числе HFT стратегии, так же впоследствии успешно зарекомендовавшие себя на реальных торгах.

   В следующей статье подробно расскажу о настройках торговых стратегий (портфелей), на примере параметров торгуемых на Санкт-Петербургской Бирже портфелей JPM/BAC.




12 Комментариев
  • Андрей Кольцов
    07 ноября 2018, 16:39
    Судя по скрину ниже, робот работает в убыток...
    Или тире не хватает, или «минусы» лишние...
    Или я ошибаюсь?




  • Андрей Кольцов
    07 ноября 2018, 16:43
     А в этой фразе нет ошибки?
    тейкпрофит с коэффициентом 0,8. Итак, два раза продали по 25,87 и по 26,87 – тейкпрофит ближний =26,07, дальний 25,27.

    26,87-0,8=26,07 все верно, но
    25,87-0,8 не равно 25,27 Будет 25,07
    Или я не прав?
      • Сергей
        08 ноября 2018, 16:50
        algo_rts, Если настроек много, может проще видео сделать и выложить? И немного комментов. 
  • Сергей
    08 ноября 2018, 16:49
    Не хотите сделать ежедневно анализ торговли, так было бы более понятно? Иначе много чего непонятного для среднестатистического
  • Arbitrg
    08 ноября 2018, 17:03
     который на высокоточных исторических данных позволяет проверить арбитражные и не только идеи
    Тестер считал, что если есть цена, то мы ее точно успеем забрать? ну и снять, соответственно, когда ушла цена поводыря? Т.е. считалось что задержка ноль? или задавали Latency искуственное?
        • Arbitrg
          08 ноября 2018, 19:05
          algo_rts, 2000 не мало ли? С такой задержкой получится реально торговать?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн