Блог им. algo_rts

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

   Прошла неделя с момента отслеживания стратегии, основанной на торговли спреда между 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.




★8
12 комментариев
Судя по скрину ниже, робот работает в убыток...
Или тире не хватает, или «минусы» лишние...
Или я ошибаюсь?




Андрей Кольцов, стратегии были запущены раньше. https://smart-lab.ru/blog/502196.php 
Базовая к моменту первой публикации заработала 1850 долл, оптимизированная 550. Сейчас общий их результат +1500 и +110 с учетом комиссий. На следующей неделе сделаю графики.
avatar
 А в этой фразе нет ошибки?
тейкпрофит с коэффициентом 0,8. Итак, два раза продали по 25,87 и по 26,87 – тейкпрофит ближний =26,07, дальний 25,27.

26,87-0,8=26,07 все верно, но
25,87-0,8 не равно 25,27 Будет 25,07
Или я не прав?
Андрей Кольцов, да хорошо заметили! Есть такой параметр в настройках как коэффициент разгрузки, то есть при первом выходе следующий тейкпрофит выставляется на этот коэффициент от цены первого выхода. Если коэффициент равен тейкпрофиту то будет 26,87-0,8(тейк)=26,07 и 26,07-0,8(коэфф)=25,27. Обязательно напишу подробнее, настроек довольно много.
avatar
algo_rts, Если настроек много, может проще видео сделать и выложить? И немного комментов. 
avatar
Сергей, спасибо, с видео хорошая идея.
avatar
Не хотите сделать ежедневно анализ торговли, так было бы более понятно? Иначе много чего непонятного для среднестатистического
avatar
 который на высокоточных исторических данных позволяет проверить арбитражные и не только идеи
Тестер считал, что если есть цена, то мы ее точно успеем забрать? ну и снять, соответственно, когда ушла цена поводыря? Т.е. считалось что задержка ноль? или задавали Latency искуственное?
avatar
Arbitrg, да, задавали  Latency искусственно, тестер позволяет сделать это.
avatar
algo_rts, робот находится на колокации, Latency брали 2000 микросекунд.
avatar
algo_rts, 2000 не мало ли? С такой задержкой получится реально торговать?
avatar
Arbitrg, да, это показатели при реальной торговле. Робот постоянно мониторит задержку и выводит в специальном окне. Взята средняя.

avatar

теги блога algo_rts

....все тэги



UPDONW
Новый дизайн