Блог им. elab

Синтетический инструмент как основа автоматической торговой системы

    • 01 сентября 2014, 20:14
    • |
    • ELab
  • Еще
Продолжаю развивать идею торговли композитом. Все таки рынок огромный у этого рынка (рассматриваю с точки зрения поставшика услуг рынок).
Вообщем, все просто. Беру некоторое кол-во акций (10… 15), формирую синтетический инструмент с наименьшей дисперсией (никаких анализов корреляций и тд — можно даже из разных секторов акций набрать). Затем вхожу по трехкратному среднеквадратичному отклонению. Пересчет делаю каждый день (не бэктест). Для результата использовал 10 акций из DowJones30. Конечно, кол-во таких инструментов зашкаливает — можно расчитывать 100 000 таких синтетиков каждый день и входить в 3-5 лучших синтетиков каждый день, что в теории должно улучшить результат.
В моем случае стрижка только начата и стакан наполовину полон :)
Немного посчитал композит и вот получил что. Для расчета использовал условный капитал в $100000 и проскальзывания в $0,02.

Синтетический инструмент как основа автоматической торговой системы

С
ами понимаете можно использовать любые торг. системы. Так как полученный инструмент близок к стационарному ряду, то можно в каждый момент входить удобный. Скажем если среднеквадратичное отклонение больше 0,33, входим с профит таргетом 0,33 без ограничения по времени нахождения в позии.  Вот что может получиться.


Синтетический инструмент как основа автоматической торговой системы


PS: Отмечу, что система с массовой посылкой ордеров использует невроятно большой капитал. И без плеча 1/10 хотя бы теряет всякий практический смысл. Дает от силы 3-4% в год без плеча. Позже подправлю пост и добавлю график используемого капитала в ходе торгов.
★41
72 комментария
шкала слева это что?
Тимофей Мартынов, доход в $
avatar
ELab, это все в экселе посчитано??? Каааак??

Я так понимаю, вы берете minimum variance portfolio, далее считаете плюс-минус 3 стандартных отклонения и потом мин-ревом входите в трейд?
avatar
siva, вы наверное считаете что я упоролся? просто график в excel построил. считаю просто. нормирую цены и мат. методом коэф. синтетика нахожу
avatar
ELab, Опишите пожалуйста методику тестирования. Какую маркет-дату использовали?
avatar
SECRET, у меня девелоперская подписка на TradeStation — скачал 5минутные котировки и их использую. Тестировал в режиме симуляции торгов. Т.е. сначала считаю, а потом накатываю уже на систему результат. Т.е. не бэктест, который имеет только прикладное значение. Слиппейдж 0,02 положил на каждый лот.
avatar
а выход из сделки как регламентирован?
avatar
dcm12, ProfitTarget или выход по времени нахождения в позиции.
avatar
Что значит «инструмент с наименьшей дисперсией »? Раскройте, пожалуйста.
avatar
tradeformation, берете 10 инструментов, подбираете коэфициенты не нулевые в диапозоне от -1 до +1 так чтобы их сумма по модулю была равна 1. Делаете из этих 10 акций синтетик и находите коэфиценты таким образом, что полученный синтетик имеет наименьшую дисперсию (т.е. грубо говорят H-L наименьший) с учетом озвученных выше ограничений. Все очень просто — в инете полно информации как это сделать.
avatar
ELab, что Вы называете коэффициентами?
avatar
ELab, все равно не очень понятно. Первый коэф чему равен? Приращению нормированного ряда за период?
avatar
quant_trader, все коэфиценты это константы. В итоге получаю синтетический инструмент вида 0.25555*KO — 0.355555*IBM — 0.4999*MCD
avatar
ELab, а как они рассчитываются? Подбором на всем периоде?
avatar
quant_trader, 1444 бара. Нет мат. методом нахожу оптимальные коэффициенты
avatar
ELab, так мат методом находятся за какой период?
avatar
quant_trader, 1444 бара 5 минутных. Это не принципиально
avatar
ELab, спасибо, понял.
avatar
quant_trader, погуглите про mean variance portfolio и global minimum variance portfolio. В данном случае, насколько я понимаю, речь идет о minimum variance portfolio. Есть математические методы для расчета весов таких портфелей. В конечном счете, насколько я помню, все сводится к задаче квадратичного программирования (но можно и тупо перебором :) ). Думаю, можно и с помощью Excel'евского Solver'а это сделать…
avatar
Marco, спасибо за ссылки, это был бы следующий вопрос. Я как человек простой предпочел бы перебор.

Теперь примерно понятно, считаем синтетики за 2 недели подбором, выбираем маловолатильный, тарим ниже трех сигм, выход по тейкпрофиту.

Ок, вошли, пересчитали синтетик и приводим портфель к ноаому?
avatar
quant_trader, а что такое «тарим ниже трех сигм»?
У тебя получается низковолатильный инструмент.
Далее ты считаешь типа на 5 минутках стандартное отклонение в обе стороны и мин.ревом заходишь?

Я вроде как понял идею, но ведь каждые 5 минут портфель, лежащий около минимум global variance, будет меняться. А ты уже в позиции с определенными весами.

Приведу пример.

Посчитали 5-минутки за 1444 бара (Как указал аффтар) и получили портфель, равный 0.5*гугл + 0.5*мкд.

Далее смотрим, ниже или выше 3х сигм он сейчас. Если ниже, то покупаем. Если выше — продаем.

Допустим, он ниже 3х сигм — покупаем.

Далее ждем 5 минут и у нас уже другой minimum variance portfolio — 0.3*фб + 0.7*аиг. И что? Мы закрываем тот портфель, который был и открываем новый?

Это как-то тупо…
avatar
siva, продаем выше 3, откупаем на 0, покупаем ниже 3 откупаем на 0.
Инструмент должен быть вот такой _________________________________
с отклонениями вверх и вниз.
avatar
Макеев Евгений, то есть вы каждые 5 минут получаете новый инструмент с минимальной вариацией и каждые 5 минут заходите в новый трейд?

Ведь каждые 5 минут веса в портфеле буду меняться?
avatar
siva, по идее, расчет должен быть при каждом входе (почему вход каждые пять минут-то должен быть, как вышли, так и снова зашли). выходим при нужном отклонении. Но арбитраж на 5 минутках, это жесть конечно. Автор уверен, что он комиссию посчитал?
avatar
siva, а кривая такая милая именно потому, что коэфиценты на истории «подобрали» то есть собрали с помощью подбора идеальный «нулевой» иструмент, в реале конечно такой красоты не будет
avatar
Макеев Евгений, я правильно понимаю, что это всё работает до определенного момента (когда связь, лежащая в основе бета-нейтральности, нарушается) и затем у вас идёт слив депо? :)
avatar
siva, здесь основной параметр риска это капитал задействованный при усреднении. (опять таки если мы об арбитраже говорим), смотреть надо именно его, а не красивые эквити. Как он колебался на истории? (при сильном отклонении{резко поперла одна или несколько бумаг} от 0 — мы должны усредняться ) Хватит ли грубо говоря, бабла при негативном варианте. Торговля-то на все плечи идет, без этого приемлемой доходности не получить. Здесь делу поможет, я думаю, портфель из подобных синтетических индексов, которых даже на нашем рынке море может быть.
avatar
Макеев Евгений,



Ну вот как бы самый яркий пример, спред с 5 падает до 0.002

Никакого капитала никогда не хватит.
avatar
siva, если на рисунке пара, то у нас тут немного другой вариант, на инструменте собранном из 10 элементов, такой картины, в принципе не может быть, Вы же понимаете. А представьте если у нас, портфель синтетических инструментов…
avatar
Макеев Евгений, раз в год и палка стреляет :)))

В общем ясно, спасибо. Буду пробовать.

А как подогнать регрессией портфель, который будет иметь бету, равную 0?
avatar
siva, использую акции из DJ30 сейчас для расчёта. В моём случае вероятность такого коллапса близка к 0.
avatar
siva, для этого и ребалансируют. :)
avatar
Marco, как часто? что такое «ребалансируют»?
Спред просто ломается, вы не можете докупать бесконечно сломанный спред (см. картинку выше).
avatar
siva, я не сказал, что ребалансируют позицию. Позвольте мне не вдаваться в подорбности. Автор суть описал.
avatar
Marco, это что, такой грааль прям, что вы не можете подробности описать?
Воспроизвести эту систему смогут 5 человек из 20.000 здесь присутствующих.
avatar
siva, смотрите, у Вас есть некая модель рынка (например, в самом простом случае — регрессия, характеризующая зависимость цен различных инструментов). Объект моделирования нестационарный (рынок), следовательно нам надо постоянно идентифицировать параметры модели, чтобы она соответствовала текущему состоянию рынка. Если торговая система такова, что за время удержания позиции параметры Вашей системы существенно не меняются, вы торгуете с прибылью. Допустим, Вы в позиции, и рынок изменился. Параметры модели также изменятся, и Вы просто закроете позицию, основываясь на обновленной модели. Т.е. вы можете подстраивать модель, а не усреднять позицию. Иногда это работает. :)

Насколько я понял, здесь используется такой же подход. Т.е. позиция открывается-закрывается по постоянно пересчитываемому инструменту, но веса открытой позиции не меняются. (Как на самом деле — надо спрашивать у автора. :) )

P.S.: А что же тогда грааль? :) IMHO совокупность большого количества таких вот мелочей… Devil in the details.
avatar
Marco, не, подождите, если Вы в позиции, тут уже — только усредняться, балансировать поздно
avatar
siva, 0,02 тут слиппейдж заложен. можно и 0,03. пересчет весов каждый день. открытая позиция не меняется.
avatar
quant_trader, это у автора надо бы спросить. :) Но:

1. Если автор действительно имеет в виду минимально волатильный портфель (miminum variance portfolio), то такой портфель не снижает риск по рынку в целом (systematic risk). Торговать им можно IMHO как угодно, преимущества по сравнению с отдельными инструментами — разве что меньший шум за счет снижения идиосинкатического компонента риска.

2. Если автор имеет в виду бета-нейтральный портфель — тогда это стандартный статистический арбитраж — продаем при росте более уровня, откупаем на нуле или ниже. Btw, оптимальный уровень, если не учитывать комиссии/проскальзывания и распределение отклонений от нуля более-менее нормально — одна сигма (доказывается аналитически ;) ). Веса инструментов в бета-нейтральном портфеле строят разными способами, самый простой и распространенный — линейная регрессия.
avatar
Marco, я думаю мы о п.2 говорим
avatar
quant_trader, о бетта коэфицентах можно послушать например здесь
y-dav.livejournal.com/8094.html
это очень интересная тема.
А вообще Автор не палили бы Вы грааль!
avatar
Макеев Евгений, это не грааль — просто исследование. с перспективой впарить 3-5 хедж фондам где-нибудь в Ирландии (там есть договоренности с одним парнем на эту тему)
avatar
ELab, Извините, дак мы о все-таки здесь о беттанейтральном арбитраже говорим?
avatar
ELab, где гарантия что это не подгонка под эквити?
10 инструментов с 10 параметрами это 10^10.
Смотрели на устойчивость в широком ряду параметров?
Может проще нормировать цену на скользящую среднюю? Тоже синтетика получится:)
avatar
Alex Hurko, как я сказал это симуляция. посчитал веса (каждый день пересчитываю) — жду, если есть момент вошел. потом по времени или по target profit выход (вариантов много). т.е. не бэктест на известных данных — там вообще красота небесная, но безполезная получается.
avatar
Громоздкие торговые конструкции имеют свойство быстро переставать быть актуальными. Надеюсь у автора получится в реале достаточно долгое время извлекать из стратегии профит
avatar
Алексей, это симуляция, а не бэктест. Все будет работать 146%
avatar
«это симуляция, а не бэктест. Все будет работать 146%» ©
Вот когда всё будет работать, тогда и расскажите. Очень интересно посмотреть на результат.
А пока что увы, система одна из миллиона, с непонятной перспективой работоспособности.
avatar
Николай Лазарев, я бы даже сказал с сомнительной. Если бы там было 2 параметра, то бектесту можно было бы доверять. С таким количеством параметров можно под любой рынок соптимизировать систему.
avatar
Николай Лазарев, одна из миллиарда. я тут скоро ничего говорить не буду — мешаю вам про плечи на графиках, наверное, говорить
avatar
ELab, ??? Про какие плечи? каких графиков? О чём это вы?
avatar
Николай Лазарев, про 99% постов на смартлабе
avatar
ELab, спасибо за статью! А можно узнать, как Вы все-таки веса строите?
avatar
Marco, беру кучу цен, логирифм, отнимаю мат. ожидание. потом весь этот бардак путем несложных вычислений приводится к вектору с весами. дальше веса привожу к лотовым единицам и синтетик готов. Все просто.
avatar
ELab, понял, спасибо. :)
avatar
ELab, очень похоже на www.mql5.com/ru/code/10096
avatar
Vkt, да, идея не оригинальная — её все развивают. Я только с практической точки зрения подхожу — делаю исследование устойчивости алгоритма путём симуляции торгов и тд.
avatar
ELab, симуляция торгов это как на практике выглядит? ГСЧ?
avatar
Vkt, не знаю что это такое ГСЧ. На практике так выглядит — в конце дня считаю коэфиценты синтетика. Потом жду условий для входа и открываю позицию.
avatar
ELab, Ваш пост определённо интересный. Я лишь высказал сомнения по самой системе.
avatar
там выше макро верно написал. вряд ли такой портфель (синтетик) будет стационарным. соответственно никакой реальной реверсии не будет. в любом случае надо сделать хотя бы формальный статистический тест на свойство возвратности
avatar
q-trader, симуляция торгов и есть своебразный статистичекий тест на свойство возвратности imho
avatar
q-trader, IMHO поэтому берется _три_ сигмы…
avatar
Marco, можно и масс трейд устроить (2й тест). беру от 0,66 до 1 сигмы
avatar
ELab, спасибо, интересно. :)
avatar
Интересно было бы посмотреть распределение приращений такого портфеля. Будет ли там что-то схожее с норм. распределением? Если нет, то считать сигмы не лучше, чем любая другая оценка дисперсии (к примеру, мин-макс за определенное окно).

PS смотрю, что ровно год прошел с написания поста. Интересно, запускали ли идею в продакшене?
avatar
Lafert, отказался от идеи. Найти пролжение не удалось (т.е. инвестора). Ушел в HFT. Не все успешно, но начало на Форекс было положенно. Потом и к СМЕ вернусь
avatar
ELab, а я как-то пытался найти методом минимальной дисперсии портфель на ФОРТС, который максимально точно опишет цену фьючерса на индекс РТС. Правда, предполагалась торговля только одной ногой — фьючем РТС. Тоже, идея себя не оправдала.
avatar

теги блога ELab

....все тэги



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