В этом посте продолжим отслеживать результаты торговли стратегий статистического арбитража JP и BAC на Санкт-Петербургской Бирже, которая сегодня предоставляет доступ к торговле более чем 560 американскими акциями. Торговля ведется с помощью робота MultiConnect, это HFT-робот, при этом он позволяет торговать практически с любой скоростью, в зависимости от настроек заложенной в него стратегии. Если стратегия рассчитана даже на несколько сделок в день, робот позволяет быть впереди, забирать рыночные неэффективности, что особенно важно в торговле различных видов арбитража. Сегодня посмотрим как выглядит профессиональное программное обеспечение для высокоскоростной торговли на фондовых рынках с точки зрения пользователя.
Напомню, что торгуем два портфеля с различными настройками – базовый и оптимизированный с помощью Viking strategy tester. Оптимизированный портфель вышел из просадки и его доход за прошедшую неделю составил 550 долларов, базовый портфель потерял 50 долларов (всё с учетом комиссий). В базовой стратегии за этот временной период прошло 146 сделок, в оптимизированной — 158. Торговля ведется минимальным американским лотом – 100 акций.
Продолжаю рассказывать о настройках стратегий-портфелей и возможностях робота.
Рекомендую посмотреть это видео по настройкам и функционалу клиентской части от создателей робота – компании Викинг.
Как видно, привычных по распространенным терминалам стаканов, графиков и новостных лент нет, но они и не требуются – теханализ и его производные в стратегиях, торгуемых на MultiConnect, не используются.
Для того чтобы создать свой портфель, нажимаем «создать новый» и переходим в настройки портфеля. Я вставил скрин с уже готовой стратегией (базовой).
Здесь мы видим две длинные горизонтальные строки настроек с названием бумаги в каждой и с параметрами торговли по этой бумаге. Одна бумага ведущая, флаг is_first, если по ней происходит сделка, тут же происходит сделка по ведомой бумаге. Направление сделок регулируется настройками Buy/Sell. При этом ведущей бумагой можно котировать при взведенном флаге Quote, в обеих наших стратегиях мы котируем по первой бумаге. Здесь задается количество бумаг в лоте, номер счета, отображается текущая позиция и задается формула раздвижки, размер комиссии для корректного отображения финансового результата роботом. Наиболее интересные параметры, раскрывающие суть стратегии, расположены выше: v_min, v_max максимальная позиция для лонга и шорта спреда, как видно – по четыре входа (100 акций лот).
Торговля в каждой из наших стратегий ведется по принципу постепенного набора позиции при движении в одну сторону и раздаче позиции на откатах. Сразу договоримся, что под сделкой мы будем подразумевать одновременную покупку одного актива и продажу другого, робот делает это автоматически, в зависимости от настроек. Раздвижка считается по заданной нами формуле: актив1-к*актив2, где актив1 — исторически более дорогая акция, актив2 – менее дорогая, к – коэффициент, показывает в какой пропорции торгуются бумаги. У нас из более дорогого (по стоимости) JP вычитается менее дорогой (по стоимости) BAC, коэффициент пока возьмем 3. При включении робот получает текущее значение раздвижки на покупку и на продажу.
Приведу небольшой наглядный пример, пусть заданы следующие параметры:
Lim_Sell=700 продаем 1 портфель, когда раздвижка >=700 это уровень продаж
Lim_Buy=600 покупаем 1 портфель, когда раздвижка <=600 это уровень покупок
TP=50 это тейкпрофит — наша цель, сколько мы хотим получить с одной сделки
К=10, К1=5, К2=3 это все параметры смещения Lim_Sell и Lim_Buy
Если раздвижка дает нагружаться по 700 и выше, будут происходить следующие сделки:
1 продажа по 700
2 продажа по 710
3 продажа по 720
… и т.д., увеличивая уровень входа на 10 (значение К)
7 я продажа по 760
Lim_Buy к моменту седьмой продажи будет подтягиваться каждый раз на 5 пунктов (К1), начиная со второй продажи. После первой продажи Lim_Buy примет значение 650 (Lim_Sell-TP). В итоге после! Седьмого входа уровни на вход/выход примут следующий вид:
Lim_Sell=760+K=770,
Lim_Buy=700-50+5+5+5+5+5+5=680,
Для разгрузки используется К2. При выходе из позиции по Lim_Buy сделки будут происходить на следующих уровнях:
1я покупка по 680
2я по 677
3я по 674
… и т.д., уменьшая уровень выхода на 3 (К2)
7я покупка по 662. Распродав позиции, мы получаем новый нулевой уровень и уровни входа и при этом следуем за рынком – ушли на 62 пункта от первого входа, заработали и сдали весь риск (всю позицию). И еще есть вот такое видео, которое объясняет движение раздвижек:
Есть также уровни стопа, ушли с максимальной позицией от уровня последнего входа на величину стопа — отдали. Это позволяет не пересиживать убытки, а совершать прибыльные сделки дальше. Это основные настройки, раскрывающие саму суть наших стратегий, существует в роботе еще масса более тонких настроек для подобных этим или других стратегий.
Так выглядит один из профессиональных HFT роботов, интерфейс как мы видим довольно юзерфрендли, постепенно будем разбираться дальше…
Успешной всем торговли!
А точнее? В HFT нет такого понятия «любая скорость» ;)
algo_rts, можно по подробней,
«реакция на событие» — время реакции робота, все расчёты?
«Лучший раунд трип 340 микросекунд на колокации» — 340 м.сек. это время между отправкой заявки роботом и получения результата по этой заявке? колокация на сервере питерской бирже?
в обоих случаях микросекунды не миллисекунды?
algo_rts, ДЦ НП РТС - дилинговый центр некоммерческого партнёрства РТС ?
а какой у вас средний раунд трип на ММВБ?