Блог им. Saro

Моделирование цены, hft

      Сразу оговорюсь, что все исследования проводились в программе EViews 3 и TSLab 1.2  
       Торговля в классическом виде корреляции двух инструментов, постепенно давно вымирает, в арбитраже, конкуренция высока, а в парном трейдинге для реально существенного дохода, необходимы большие капиталы!
         Еще со студенчества любил эконометрику, и решил проверить в трейдинге как будет выглядеть моделирование цены, и насколько это реально эффективно. Прежде всего, необходимо определиться, что нам необходимо:
  • Либо мы делаем модель цены для краткосрочных спекуляций, или же hft алгоритм или же скальперский, обычно для создания модели необходимы данные цены ohlc так же объем, ои, любой индикатор, постоянная переменная и любые значения, исходя из которых можно проследить зависимость ценового движения!
  • Если модель ценового движения построить, исходя из движения любого другого инструмента, то можно проследить взаимозависимость двух цен, и использовать это для парной торговли.


Разберем первый вариант, создания скальперских или высокочастотных алгоритмов.
         Для начала нам необходимо создание модели, естественно можно сделать разные ценовые модели, отдельно для цены открытия, закрытия, хая или лою. Создание модели для бида и аска смысла не имеет практически, так как в течении таймфрейма они могут меняться даже если тайм выбран самый маленький (тиковый).
         Раз создается модель по одному инструменту, то полет фантазии у нас неограниченный! Ввиду того, что моделирование регрессионное, а оно бывает линейным или нелинейным, парным и многофакторным, то наилучшая модель все же будет нелинейный многофакторный анализ, но проще собрать (если нет особых навыков прораммиста и математика) линейную многофакторную модель. В качестве факторов выбрать лучше логически связанные элементы цены, как качественные, так и  количественные элементы! Например фиктивные (они принимают обычно фиксированные значени типа 1 и 0, или 1, 2 ,3,1,2,2,3 и тд)  для этого лучше всего подходит условие растущая/падающая свеча, большой хвост/тень или нет, большая свеча или маленькая, коллерируемая свеча с другим инструментом или нет и тд и тп. В качестве количественных берем, объем, цену закрытия/о/х/л так же можно брать со старшего таймфрейма, ои, любой индикатор,  так же любые другие бумаги.
        Математическо-экономическое обоснование: Исходя из исторических данных, мы прогнозируем цену новой свечи, и так как данные постоянно обновляются, мы получаем модель цены на основе которой, можно не только увидеть текущие смоделированные ценны, но и оттестировать как будет выглядеть результат алгоритма на истории.
        Формулы расчета писать не буду, в интернете много материала, или же в книге Доугерти по эконометрике, а так же в статистике Булашева, скажу только что использовать стоит метод наименьших квадратов. 
 Моделирование цены, hft                           
В расчетах самый важный показатель, это R-squared либо коэфициент детерминации, который показывает насколько модель соответствует реальности, чем ближе к единице тем лучше! На примере используется выборка из 655 баров, и чем больше она тем лучше (надежнее расчеты).
К примеру с такой выборкой модель Газпрома (акции) выглядет следующим образом
GAZ = 0.07955123122*LKOH + 0.02769130859*ROSN + 1.06873875*SBER — 72.10589351, и в идеале должно получиться так, чтобы коэффициенты можно было бы использовать не только на исторических данных, но и на вновь поступающих барах. При выборке 655 эти коэффициенты будут работать в ближайшие 10-20 баров, если же использовать выборку в 655000 баров, то данные будут работать ближайшие 10000 баров, НО качество R^2 будет меньше, она все так же будет значима, но погрешность будет постепенно нарастать, поэтому не совсем правильно будет использовать большую выборку, так как по отношению ко всему графику модель будет лучше, но в текущий момент торговать будет не совсем верно, так как есть более близкая модель к графику, которую можно построить  на меньших входящих данных.
 Моделирование цены, hft
         На рискунке (ниже по тексту) демонстрация того, что модель к графику построенному по выборке из 65292 (больше в эксель не влазит)барам, остается адекватной и на 75000-м баре, но она бессмысленна, так как для построения модели нам необходимо свечи за несколько лет.
 Моделирование цены, hft
 
        Следом на рисунке, видно как при неизменяемых коэффициентах модель резко уходит от реальной цены (еще один показатель что газик должен был быть много выше его реального значения, если моделировать ее значение по смежным акциям)
 Моделирование цены, hft
 
     Поэтому останавливаемся на том, что используем данные за последние N-баров. И в качестве точки входа используем погрешность расчетов, а именно отклонение от модели для открытия позиции. В таком варианте получаем сделки вида, и это самый простой способ совершения сделок по модели.
 Моделирование цены, hft
         Статистика за квартальный фьюч ВТБ с комисом 2р на круг.  Касается это всех бумаг, но больше всего касается малоликвидных бумаг, так как свеча на ней рисуется по первой сделке, которая может пройти на спреде в 10-20р, но алгоритм сразу в стакане будет держать свою заявку, поэтому она пройдет именно по заданной цене, а не случайной сделке спреда.
Исходя из скальперского принципа сделок, статистика на истории будет не верной, только лишь от 30 до 60% сделок будут реально проходить.
 Моделирование цены, hft
      Но кроме обычного отклонения лучше использовать наиболее адаптивные математические методы, например квантильное распределение, впрочем может и любые другие можно использовать, но я пробовал только квантили.
 Моделирование цены, hft
Желтая линия – верхний квантиль, черная – нижний, работаем по принципу на верхнем продали на нижнем купили. Ниже результаты за рим3
 Моделирование цены, hft
       И как выше говорил, статистика только историческая, в реальном времени будет исполняться половина сделок или меньше в зависимости от инфраструктуры.
На основе регрессионного моделирования, можно делать не только торговлю одного инструмента, но и создание арбитража и парной системы, но это будет отдельная статья.
★62
49 комментариев
Отличная статья!) Крутяк!
avatar
Максим, Спасибо… быстро прочли!
Микаелян Саро, я только начал, но понял, что уже здорово! Сам стараюсь разобраться в эконометрике!)
avatar
Максим, Отлично, значит будет критика и продуктивная работа.
Микаелян Саро, Точно, 1 мин 40 сек понадобилось Максиму разобраться в статье. Мне бы такую проворность, а то был бы не профессором, а академиком РАН!)))))
avatar
Silent Hamster, Ну бывает же мысль знакомая, встретил и отблагодарил, возможно дочитает до конца, и удалит благодарность))
Silent Hamster, 1 мин 40 сек мне понадобилось, чтобы понять, что статья интересная и здорово написана.

Мне кажется для нормального человека это очень обычно!)
avatar
Silent Hamster, уложился в норматив
Если это круто, то чем я занимаюсь, вообще тогда за гранью тогда.
Статья детская, методы детские.
avatar
Northid, а чем, если не секрет?)
avatar
Northid, я не академик и не доктор наук. естественно что методы как и статья получилась детская, возможно.
Northid, ну так напишите что-нибудь интересное о нелинейном факторном анализе с сегментацией данных и моделированием полученных кусочков с помощью арфимы-фигарч :)
avatar
Опуская полемику по поводу того, как плох линейный факторный анализ, сразу к делу:

1) У роснефти P-value >0.05 и коэффициент 0.02 — выкинуть СРАЗУ из уравнения!!!
2) Нет анализа качества модели, R-squared это хорошо, но хотелось бы ещё статистику льюнга-бокса и нормальность остатков :)
3) Если торговать без комиссий и на быстрых скоростях, то конечно это грааль :(
avatar
Станислав Иванов, Комиссию учитываю.
Пробабилити и так далее улучшать, и использовать все значимые данные, это возможно при интегрировании мат программы и программы для торговли, ну или же владея сишарпом, я же не программист.
Анализ качественной модели можно и самому сделать, правильно? я же не готового робота расписал…
Микаелян Саро, прикольно. это же граальный робот :)))
Скиньте исходнички в личку для тслаба, пожалуйста :)

пробабилити не нужно улучшать, это бред. Что вы пишите-то? У вас роснефть не входит в уравнение регрессии, её нужно исключить! и забыть :) Она входит с коэффициентом 0.02, при этом сбер входит с коэффициентом 1.
avatar
Станислав Иванов, Таааааак а вот тут можно и спорить))
Пробабилити обще принято допустимым брать либо 1% или 5%, не более поэтому исключить. а по какому критерию судить об исключении роснефти с таким коэфициентом я не понимаю в данный момент, так как это коэфициент построения урованения может быть любой! Или имелось ввиду не эта мысль?
Микаелян Саро, потому что роснефть вносит 0,02 * 200 = 4 пункта, а сбер с коэффициентом 1 * 95 рублей = 95 пунктов.
То есть если роснефть изменится на 50 рублей (25%), это даст к цене газпрома только 1 пункт, а если сбер на 1 рубль (1%) — это даст к цене тот же 1 пункт.
Вообще, так как сейчас компьютеры быстрые, то можно и не опускать. Но для упрощения модели, для снижения нагрузки (и чтобы не попасться на такую фигню, как была недавно с роснефтью) — можно исключать :)
avatar
Станислав Иванов, так в этом и смысл. принцип построения не предполагает равное влияние инструмента. это как вес бумаги в индексе.
Вы извините, но без показанной методики расчета, очень смахивает на какую то рекламу(!!!
Не могли бы Вы подробней описать что из чего считаете и откуда и почему берете коэффициенты?
А то это знаете, показывали здесь ролик как нейронная сеть угадывает цвет следующего бара, но сразу сделали пометку что не покажут методику обучения сети!!! Так прошло уже наверно более двух месяцев, а я до сих пор их матом крою, типа нахера мне ваше видео если вся суть в методике обучения сети? вот как бы и с вашим постом то же самое проглядывается!!! По этому нельзя ли по подробней?
avatar
SMA, изучайте методы прогнозирования, это все доступно в учебниках!
avatar
SMA, Можно все подробно рассписать, только это как обучить эконометрике. Вся информация есть в интернете, и как считается регрессия по мнк, какие критерии оценки и формула R-squared и тд. Все это описать равносильно что книгу переписать, ведь есть масса тестов, типа t-test, f-test и тд и тп. их масса. Если интересно, почитайте про регрессию и оставшиеся все вопросы освещу хоть в скайпе хоть тут на смарте хоть в личку и тд. просто чтобы говорили на одном языке.
Микаелян Саро, ок
avatar
Что-то похожее уже сделано давно и работает в реале в виде советника и далее в виде робота. Правда подход более глобальный.
vlad330033, не могу отрицать. все что мы хотели бы сказать, уже давно кто-то сказал!
Я так пол года изучал кластерный анализ а потом увидел кучу статей в инете… то есть сам изобрел велосипед получается.
Микаелян Саро, вы мыслите в правильном направлении, но до готового продукта еще путь большой.
vlad330033, почва для размышления лучше чем готовый продукт.
В дискуссии рождается истина или как то так…
vlad330033, а Ваш робот не по такому принципу устроен? кстати как он поживает, в вместе с вам на личном острове?)
avatar
SMA, здесь есть какие-то фрагменты. Все гораздо сложней у меня. Поживает он прекрасно. Но лучше с советником работать. Для робота еще нужно добавить систему распознавания образов.
система нерабочая, тестировать минутки по close нельзя, можно только по бид-аску с добавлением костов на проскальзывание на объеме
avatar
кому интересно, почитайте Тараса Правдюка на стокпортале или как там..2стокс-было такое исследование пару лет назад
EViews хорошая программка? она в целом для статистики или под финансовый анализ заточена? почему она, а не допустим, какой нибудь матлаб?
avatar
migs911, Да под рукой что было то и юзал. естественно матлаб в разы лучше будет так как, матлаб ближе к фондовому рынку.
А eviews в старых версиях очень удобна простотой своей, и скоростью обработки данных.
В целом же на любой матпрограмме тесты будут одинаковы.
хорошая статья
avatar
Переменные связанны (предикторы и респонзер) через коэффициенты эластичности и значимости, а не на прямую через коэффициенты регрессии.
avatar
YetiHairy, Не совсем понятно какой сделать вывод из этих слов? я самоучка, поэтому не оперирую понятиями такими как предикторы и респонзеры))
Микаелян Саро, это независимые и зависимая переменные, в общем фишка в том что после решения уравнения регрессии наиболее важным фактором является допустимый интервал а не прогнозируемая величина (она естественно находится в этом интервале), плюс сама модель это очень нежная структура которую нужно проверять многофакторно. Для начала независимые переменные должны быть действительно независимы друг от друга и корректировать (значимо ) с зависимой и так далее… ))
avatar
YetiHairy, описанный поцесс, направлен на улучшение модели.
По поводу допустимого или доверительного интервала, я его не учитываю потому как уже определил себе допустимое отклонение по квантилям!
Отличная статья. Спасибо.
avatar
целое исследование. наверно для студента, сдав такую работу, можно было получить «отл» за семестр. жаль, без фундаментальных знаний эту статью трудно понять.
avatar
Евгений Александрович-1, в ней легко разобраться если математический склад ума и близки понятия регрессии.
если нет то можно почитать на той же википедии, другой вопрос, что не всем нужны такие методы исследований, ведь у меня есть просто роботы на 10 блочных связях и торгует же.
Расшифруйте пожалуйста это предложение: «Касается это всех бумаг, но больше всего касается малоликвидных бумаг, так как свеча на ней рисуется по первой сделке, которая может пройти на спреде в 10-20р, но алгоритм сразу в стакане будет держать свою заявку, поэтому она пройдет именно по заданной цене, а не случайной сделке спреда.»
avatar
love_to_trade, Имеется ввиду что на ликвидных бумагах свеча от открытия до закрытия обычно наполненна объемом. а на малоликвидной бумаге к примеру фьюч гмк, свеча на 300р нарисовалась, а сделка одна прошла по биду другая по аску, а рисуется как будто свеча полная! Получается если мы открываемся лимиткой, то заработали 300р, а если по рынку то или 0 или -300 если цена вернулась.
«по выборке из 65292 (больше в эксель не влазит)»
освежите офис, там 1М строк на листе уже давно :)
avatar
Jonah, Спасибо)) уже пользовал программу, позволяющую анализировать 400млн строк, но для моего метода анализа не особо это нужно.
а вообще я человек старой закалки, хоть есть и офис 10 и 7 но люблю 2003))
Микаелян Саро, старая закалка — это SuperCalc )
для новых гламурных офисов MS есть надстройка Classic Menu for Office, с ней все староверы работают и я в том числе
avatar
Jonah, А вот этого не знал))) Спасибо, буду иметь ввиду!
На счет SuperCalc видимо был ранее меня)))

теги блога Микаелян Саро

....все тэги



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