Сразу оговорюсь, что все исследования проводились в программе EViews 3 и
TSLab 1.2
Торговля в классическом виде
корреляции двух инструментов, постепенно давно вымирает, в арбитраже, конкуренция высока, а в парном трейдинге для реально существенного дохода, необходимы большие капиталы!
Еще со студенчества любил эконометрику, и решил проверить в трейдинге как будет выглядеть моделирование цены, и насколько это реально эффективно. Прежде всего, необходимо определиться, что нам необходимо:
- Либо мы делаем модель цены для краткосрочных спекуляций, или же hft алгоритм или же скальперский, обычно для создания модели необходимы данные цены ohlc так же объем, ои, любой индикатор, постоянная переменная и любые значения, исходя из которых можно проследить зависимость ценового движения!
- Если модель ценового движения построить, исходя из движения любого другого инструмента, то можно проследить взаимозависимость двух цен, и использовать это для парной торговли.
Разберем первый вариант, создания скальперских или высокочастотных алгоритмов.
Для начала нам необходимо создание модели, естественно можно сделать разные ценовые модели, отдельно для цены открытия, закрытия, хая или лою. Создание модели для бида и аска смысла не имеет практически, так как в течении таймфрейма они могут меняться даже если тайм выбран самый маленький (тиковый).
Раз создается модель по одному инструменту, то полет фантазии у нас неограниченный! Ввиду того, что моделирование регрессионное, а оно бывает линейным или нелинейным, парным и многофакторным, то наилучшая модель все же будет нелинейный многофакторный анализ, но проще собрать (если нет особых навыков прораммиста и математика) линейную многофакторную модель. В качестве факторов выбрать лучше логически связанные элементы цены, как качественные, так и количественные элементы! Например фиктивные (они принимают обычно фиксированные значени типа 1 и 0, или 1, 2 ,3,1,2,2,3 и тд) для этого лучше всего подходит условие растущая/падающая свеча, большой хвост/тень или нет, большая свеча или маленькая, коллерируемая свеча с другим инструментом или нет и тд и тп. В качестве количественных берем, объем, цену закрытия/о/х/л так же можно брать со старшего таймфрейма, ои, любой индикатор, так же любые другие бумаги.
Математическо-экономическое обоснование: Исходя из исторических данных, мы прогнозируем цену новой свечи, и так как данные постоянно обновляются, мы получаем модель цены на основе которой, можно не только увидеть текущие смоделированные ценны, но и оттестировать как будет выглядеть результат алгоритма на истории.
Формулы расчета писать не буду, в интернете много материала, или же в книге Доугерти по эконометрике, а так же в статистике Булашева, скажу только что использовать стоит метод наименьших квадратов.
В расчетах
самый важный показатель, это
R-squared либо коэфициент детерминации, который показывает насколько модель соответствует реальности, чем ближе к единице тем лучше! На примере используется выборка из 655 баров, и чем больше она тем лучше (надежнее расчеты).
К примеру с такой выборкой модель Газпрома (акции) выглядет следующим образом
GAZ = 0.07955123122*LKOH + 0.02769130859*ROSN + 1.06873875*SBER — 72.10589351, и в идеале должно получиться так, чтобы коэффициенты можно было бы использовать не только на исторических данных, но и на вновь поступающих барах. При выборке 655 эти коэффициенты будут работать в ближайшие 10-20 баров, если же использовать выборку в 655000 баров, то данные будут работать ближайшие 10000 баров, НО качество R^2 будет меньше, она все так же будет значима, но погрешность будет постепенно нарастать, поэтому не совсем правильно будет использовать большую выборку, так как по отношению ко всему графику модель будет лучше, но в текущий момент торговать будет не совсем верно, так как есть более близкая модель к графику, которую можно построить на меньших входящих данных.
На рискунке (ниже по тексту) демонстрация того, что модель к графику построенному по выборке из 65292 (больше в эксель не влазит)барам, остается адекватной и на 75000-м баре, но она бессмысленна, так как для построения модели нам необходимо свечи за несколько лет.
Следом на рисунке, видно как при неизменяемых коэффициентах модель резко уходит от реальной цены (еще один показатель что газик должен был быть много выше его реального значения, если моделировать ее значение по смежным акциям)
Поэтому останавливаемся на том, что используем данные за последние
N-баров. И в качестве точки входа используем погрешность расчетов, а именно отклонение от модели для открытия позиции. В таком варианте получаем сделки вида, и это самый простой способ совершения сделок по модели.
Статистика за квартальный фьюч ВТБ с комисом 2р на круг. Касается это всех бумаг, но больше всего касается малоликвидных бумаг, так как свеча на ней рисуется по первой сделке, которая может пройти на спреде в 10-20р, но алгоритм сразу в стакане будет держать свою заявку, поэтому она пройдет именно по заданной цене, а не случайной сделке спреда.
Исходя из скальперского принципа сделок, статистика на истории будет не верной, только лишь от 30 до 60% сделок будут реально проходить.
Но кроме обычного отклонения лучше использовать наиболее адаптивные математические методы, например квантильное распределение, впрочем может и любые другие можно использовать, но я пробовал только квантили.
Желтая линия – верхний квантиль, черная – нижний, работаем по принципу на верхнем продали на нижнем купили. Ниже результаты за рим3
И как выше говорил, статистика только историческая, в реальном времени будет исполняться половина сделок или меньше в зависимости от инфраструктуры.
На основе регрессионного моделирования, можно делать не только торговлю одного инструмента, но и создание
арбитража и парной системы, но это будет отдельная статья.
Мне кажется для нормального человека это очень обычно!)
Статья детская, методы детские.
1) У роснефти P-value >0.05 и коэффициент 0.02 — выкинуть СРАЗУ из уравнения!!!
2) Нет анализа качества модели, R-squared это хорошо, но хотелось бы ещё статистику льюнга-бокса и нормальность остатков :)
3) Если торговать без комиссий и на быстрых скоростях, то конечно это грааль :(
Пробабилити и так далее улучшать, и использовать все значимые данные, это возможно при интегрировании мат программы и программы для торговли, ну или же владея сишарпом, я же не программист.
Анализ качественной модели можно и самому сделать, правильно? я же не готового робота расписал…
Скиньте исходнички в личку для тслаба, пожалуйста :)
пробабилити не нужно улучшать, это бред. Что вы пишите-то? У вас роснефть не входит в уравнение регрессии, её нужно исключить! и забыть :) Она входит с коэффициентом 0.02, при этом сбер входит с коэффициентом 1.
Пробабилити обще принято допустимым брать либо 1% или 5%, не более поэтому исключить. а по какому критерию судить об исключении роснефти с таким коэфициентом я не понимаю в данный момент, так как это коэфициент построения урованения может быть любой! Или имелось ввиду не эта мысль?
То есть если роснефть изменится на 50 рублей (25%), это даст к цене газпрома только 1 пункт, а если сбер на 1 рубль (1%) — это даст к цене тот же 1 пункт.
Вообще, так как сейчас компьютеры быстрые, то можно и не опускать. Но для упрощения модели, для снижения нагрузки (и чтобы не попасться на такую фигню, как была недавно с роснефтью) — можно исключать :)
Не могли бы Вы подробней описать что из чего считаете и откуда и почему берете коэффициенты?
А то это знаете, показывали здесь ролик как нейронная сеть угадывает цвет следующего бара, но сразу сделали пометку что не покажут методику обучения сети!!! Так прошло уже наверно более двух месяцев, а я до сих пор их матом крою, типа нахера мне ваше видео если вся суть в методике обучения сети? вот как бы и с вашим постом то же самое проглядывается!!! По этому нельзя ли по подробней?
Я так пол года изучал кластерный анализ а потом увидел кучу статей в инете… то есть сам изобрел велосипед получается.
В дискуссии рождается истина или как то так…
А eviews в старых версиях очень удобна простотой своей, и скоростью обработки данных.
В целом же на любой матпрограмме тесты будут одинаковы.
По поводу допустимого или доверительного интервала, я его не учитываю потому как уже определил себе допустимое отклонение по квантилям!
если нет то можно почитать на той же википедии, другой вопрос, что не всем нужны такие методы исследований, ведь у меня есть просто роботы на 10 блочных связях и торгует же.
освежите офис, там 1М строк на листе уже давно :)
а вообще я человек старой закалки, хоть есть и офис 10 и 7 но люблю 2003))
для новых гламурных офисов MS есть надстройка Classic Menu for Office, с ней все староверы работают и я в том числе
На счет SuperCalc видимо был ранее меня)))