Микаелян Саро
Микаелян Саро личный блог
13 июня 2013, 14:44

Моделирование цены, 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
       И как выше говорил, статистика только историческая, в реальном времени будет исполняться половина сделок или меньше в зависимости от инфраструктуры.
На основе регрессионного моделирования, можно делать не только торговлю одного инструмента, но и создание арбитража и парной системы, но это будет отдельная статья.
49 Комментариев
  • Марина
    13 июня 2013, 14:45
    Отличная статья!) Крутяк!
      • Марина
        13 июня 2013, 14:50
        Микаелян Саро, я только начал, но понял, что уже здорово! Сам стараюсь разобраться в эконометрике!)
      • Silent Hamster
        13 июня 2013, 14:51
        Микаелян Саро, Точно, 1 мин 40 сек понадобилось Максиму разобраться в статье. Мне бы такую проворность, а то был бы не профессором, а академиком РАН!)))))
        • Марина
          13 июня 2013, 15:02
          Silent Hamster, 1 мин 40 сек мне понадобилось, чтобы понять, что статья интересная и здорово написана.

          Мне кажется для нормального человека это очень обычно!)
        • Андрей Коган
          13 июня 2013, 16:29
          Silent Hamster, уложился в норматив
  • Prosto_tak
    13 июня 2013, 15:02
    Если это круто, то чем я занимаюсь, вообще тогда за гранью тогда.
    Статья детская, методы детские.
    • Марина
      13 июня 2013, 15:07
      Northid, а чем, если не секрет?)
    • siva
      13 июня 2013, 15:11
      Northid, ну так напишите что-нибудь интересное о нелинейном факторном анализе с сегментацией данных и моделированием полученных кусочков с помощью арфимы-фигарч :)
  • siva
    13 июня 2013, 15:02
    Опуская полемику по поводу того, как плох линейный факторный анализ, сразу к делу:

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

        пробабилити не нужно улучшать, это бред. Что вы пишите-то? У вас роснефть не входит в уравнение регрессии, её нужно исключить! и забыть :) Она входит с коэффициентом 0.02, при этом сбер входит с коэффициентом 1.
          • siva
            13 июня 2013, 15:39
            Микаелян Саро, потому что роснефть вносит 0,02 * 200 = 4 пункта, а сбер с коэффициентом 1 * 95 рублей = 95 пунктов.
            То есть если роснефть изменится на 50 рублей (25%), это даст к цене газпрома только 1 пункт, а если сбер на 1 рубль (1%) — это даст к цене тот же 1 пункт.
            Вообще, так как сейчас компьютеры быстрые, то можно и не опускать. Но для упрощения модели, для снижения нагрузки (и чтобы не попасться на такую фигню, как была недавно с роснефтью) — можно исключать :)
  • SMA
    13 июня 2013, 15:32
    Вы извините, но без показанной методики расчета, очень смахивает на какую то рекламу(!!!
    Не могли бы Вы подробней описать что из чего считаете и откуда и почему берете коэффициенты?
    А то это знаете, показывали здесь ролик как нейронная сеть угадывает цвет следующего бара, но сразу сделали пометку что не покажут методику обучения сети!!! Так прошло уже наверно более двух месяцев, а я до сих пор их матом крою, типа нахера мне ваше видео если вся суть в методике обучения сети? вот как бы и с вашим постом то же самое проглядывается!!! По этому нельзя ли по подробней?
    • Марина
      13 июня 2013, 15:35
      SMA, изучайте методы прогнозирования, это все доступно в учебниках!
      • SMA
        13 июня 2013, 15:53
        Микаелян Саро, ок
  • Кан Делябр
    13 июня 2013, 15:38
    Что-то похожее уже сделано давно и работает в реале в виде советника и далее в виде робота. Правда подход более глобальный.
      • Кан Делябр
        13 июня 2013, 16:02
        Микаелян Саро, вы мыслите в правильном направлении, но до готового продукта еще путь большой.
    • SMA
      13 июня 2013, 15:52
      vlad330033, а Ваш робот не по такому принципу устроен? кстати как он поживает, в вместе с вам на личном острове?)
      • Кан Делябр
        13 июня 2013, 16:17
        SMA, здесь есть какие-то фрагменты. Все гораздо сложней у меня. Поживает он прекрасно. Но лучше с советником работать. Для робота еще нужно добавить систему распознавания образов.
  • broker25
    13 июня 2013, 16:00
    система нерабочая, тестировать минутки по close нельзя, можно только по бид-аску с добавлением костов на проскальзывание на объеме
  • Анатолий ПравИло
    13 июня 2013, 16:01
    кому интересно, почитайте Тараса Правдюка на стокпортале или как там..2стокс-было такое исследование пару лет назад
  • migs911
    13 июня 2013, 16:42
    EViews хорошая программка? она в целом для статистики или под финансовый анализ заточена? почему она, а не допустим, какой нибудь матлаб?
  • kirillman
    13 июня 2013, 17:53
    хорошая статья
  • YetiHairy
    14 июня 2013, 00:28
    Переменные связанны (предикторы и респонзер) через коэффициенты эластичности и значимости, а не на прямую через коэффициенты регрессии.
      • YetiHairy
        14 июня 2013, 01:26
        Микаелян Саро, это независимые и зависимая переменные, в общем фишка в том что после решения уравнения регрессии наиболее важным фактором является допустимый интервал а не прогнозируемая величина (она естественно находится в этом интервале), плюс сама модель это очень нежная структура которую нужно проверять многофакторно. Для начала независимые переменные должны быть действительно независимы друг от друга и корректировать (значимо ) с зависимой и так далее… ))
  • Rustam_TheTrader
    20 июня 2013, 02:17
    Отличная статья. Спасибо.
  • Мурен(а)
    22 июня 2013, 14:32
    целое исследование. наверно для студента, сдав такую работу, можно было получить «отл» за семестр. жаль, без фундаментальных знаний эту статью трудно понять.
  • love_to_trade
    10 июля 2013, 22:34
    Расшифруйте пожалуйста это предложение: «Касается это всех бумаг, но больше всего касается малоликвидных бумаг, так как свеча на ней рисуется по первой сделке, которая может пройти на спреде в 10-20р, но алгоритм сразу в стакане будет держать свою заявку, поэтому она пройдет именно по заданной цене, а не случайной сделке спреда.»
  • Jonah
    15 июля 2013, 22:27
    «по выборке из 65292 (больше в эксель не влазит)»
    освежите офис, там 1М строк на листе уже давно :)
      • Jonah
        17 июля 2013, 11:23
        Микаелян Саро, старая закалка — это SuperCalc )
        для новых гламурных офисов MS есть надстройка Classic Menu for Office, с ней все староверы работают и я в том числе

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

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