Главная » Хабрахабр » [Из песочницы] Ищем закономерности на бирже

[Из песочницы] Ищем закономерности на бирже

Если вы решили научиться торговать на бирже, то вам нужно научиться находить на ней закономерности. Закономерность — это определённое условие (например характерное движение цены или какое-то событие), после выполнения которого вы будете знать, куда дальше пойдёт цена.

На обучающих курсах брокеры учат начинающих трейдеров находить и использовать закономерности. Но практически все новички в конце-концов проигрывают свои деньги. Ниже я покажу, почему это происходит.

Основы

Вся индустрия обучения торговле на бирже крутится вокруг двух методов прогнозирования цен:

  • технического анализа;
  • фундаментального анализа;

Технический анализ гласит, что движение цены можно спрогнозировать исходя из её предыдущего движения. Например если график цены вырисовывает фигуру «Голова и плечи», то вероятность того, что цена развернётся, повышается.

Рисунок 1 — фигура «Голова и плечи»

В противовес ему, фундаментальный анализ гласит, что движение цены можно спрогнозировать, анализируя внешние информационные факторы (например финансовую отчётность, произошедшие события и т. д.).

Проверим, работает ли технический анализ

Существуют тысячи способов прогнозирования цен. Это различные модели движения (паттерны), индикаторы, осцилляторы, нейронные сети и т. д.
Всех их объединяет одна общая черта: они позволяют предсказать будущее движение цены, опираясь на её предыдущие значения.

Выдвинем гипотезу

Теперь представьте себе ситуацию, что в течение ближайшего часа цена будет двигаться также, как она двигалась в течение часа 3 года назад.

Если внутри этих одинаковых участков графика вы примените одинаковые методы технического анализа, то они выдадут одинаковые показания.

Этот мысленный эксперимент доказывает, что вместо поиска работающего способа технического анализа, можно искать схожие участки графика, после которых цена ведёт себя схожим образом. Далее я буду называть такие участки «моделями».

Очевидное преимущество поиска моделей состоит в том, что вы экономите время на поиске работающего метода технического анализа. Существуют тысячи таких методов и каждый день брокеры, дилеры и различные «преподаватели» биржевой торговли придумывают ещё несколько новых способов. Проблема заключается в том, что вам не хватит жизни на то, чтобы проверить на работоспособность все методы торговли, которые вам предлагют (кстати, на это и сделан расчёт).

Проведём эксперимент

Для поиска моделей мы напишем программу, которая проанализирует минутные графики интересующих нас активов за последние несколько лет и выявит закономерности.

1. Подготовка данных

Скачаем графики по интересующему нас инструменту. В своём примере я использовал поминутную котировку валютной пары EUR/USD за последние 10 лет.

Предварительно обработаем данные: спарсим из выгрузки только цену закрытия каждой минуты, разобьём график на недельные участки и устраним резкие скачки цен из-за нерабочего времени бирж.

Теперь разобьём этот график на 2 половины по 5 лет. На первой половине мы будем искать работающие модели, а на второй — проверять, на сколько хорошо найденные модели будут работать в реальности.

2. Поиск моделей

На первом 5-летнем отрезке мы:

  1. переберём все значения графика;
  2. для каждого значения запомним N предыдущих значений (N будем последовательно изменять от 10 до 1000) и M последующих (можно брать любое значение <= N, в данном эксперименте M = 0.3*N);
  3. каждый полученный в (п. 2) участок графика (длиной N) сравним со всеми другими участками этого 5-летнего графика (длиной N), а его продолжения (длиной M) сравним с продолжениями соответствующих участков;

Примечание по п. 3: Для сравнения пар участков графика я использовал метод наименьших квадратов, минимизируя квадратичное отклонение (далее — СКО). Чем оно ниже — тем более схожи 2 фрагмента графика.

Рисунок 2 — Иллюстрация сравнения двух участков графика длиной N

СКО вычисляется по формуле:

, где:

  • Х1i — значение первого участка графика в момент времени i;
  • Х2i — значение второго участка графика в момент времени i;
  • Х0 — сдвиг точки начала отсчёта по вертикальной оси (вычисляется из этой же формулы);
  • i — время;
  • n — длина сравниваемых участков графика;

В результате такого перебора (см. п. 3) мы получим большое количество результатов сравнений для каждого участка графика и его продолжения (см. п. 2). Далее эти участки мы будем называть потенциальными моделями.

Для того, чтобы понять, является ли потенциальная модель работающей, для каждого перебора (см. п. 3) нужно определить, есть ли зависимость между:

  • Величиной СКО между потенциальной моделью и сравниваемым участком графика (далее — СКО1);
  • и величиной СКО между продолжением потенциальной модели и продолжением сравниваемого участка графика (далее — СКО2);

Рисунок 3 — Иллюстрация поиска зависимостей между СКО1 и СКО2

а именно:

  • Если при снижении СКО1, СКО2 тоже будет снижаться — значит потенциальная модель является рабочей и её можно использовать в торговле;
  • Если же при снижении СКО1, СКО2 будет изменяться случайным образом — значит потенциальная модель оказалась нерабочей;

Исключим из перечня потенциальных моделей те, у которых при снижении СКО1 не снижается СКО2.

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

3. Проверка моделей на реальных данных

Теперь для каждой найденной модели посчитаем, сколько денег она бы заработала на первом 5-летнем участке (на нём мы обучали систему искать модели) и на втором 5-летнем участке (до текущего момента мы не трогали эти данные, поэтому проверка моделей на них позволит достоверно оценить потенциал заработка).

Нанесём полученные значения на координатную плоскость, где:

  • по оси X отметим прибыль, которую бы получили найденные нами модели на первом 5-летнем участке графика;
  • по оси Y отметим прибыль, которую бы получили найденные нами модели на практике (на втором 5-летнем участке);

Для того, чтобы данные легче считывались невооружённым глазом, на графике ниже:

  • выведено только 0,1% от общего количества рассчитанных точек;
  • выведены только результаты тех моделей, торговля по которым принесла бы прибыль на первом 5-летнем участке;
  • горизонтальная ось разделена на 10 равных участков, для каждого из которых посчитано среднее значение (отмечены синими линиями)

Рисунок 4 — график зависимости реальной прибыльности моделей (Y) от их прибыльности на участке, использовавшемся для обучения (X)

Как видите, чем лучше найденная модель работает на тестовом участке графика — тем лучше она работает в боевых условиях.
Получается, что на бирже есть модели, которые работают.

4. Прогнозирование прибыльности торговли

Прежде чем считать, сколько денег можно заработать на моделях, нужно добавить в наши расчёты спред и/или комиссию брокера.
По моим расчётам при торговле парой EUR/USD в среднем вы будете платить от 2 пунктов со сделки (около 0,015% от текущей стоимости валютной пары).

Для начала, давайте попробуем добавить в алгоритмы поиска и проверки моделей 1 пункт комиссий. Получим график:

Рисунок 5 — график зависимости реальной прибыльности моделей (Y) от их прибыльности на участке, использовавшемся для обучения (X) с учётом комиссий, размером в 1 пункт

Теперь увеличим размер комиссий до 2 пунктов

Рисунок 6 — график зависимости реальной прибыльности моделей (Y) от их прибыльности на участке, использовавшемся для обучения (X) с учётом комиссий, размером в 2 пункта

Получается, что если размер спреда и комиссий в сумме превышают 1 пункт — то торговля по моделям на валютной паре EUR/USD будет приносить убытки.

Выводы

В данном эксперименте мы находили схожие участки графиков и проверяли, в какую сторону цена будет двигаться после их прохождения.
Те участки, после прохождения которых цена двигалась в одну и ту же сторону, мы считали закономерностями (моделями) и оказывались правы (см. Рисунок 4).
Однако используя те же модели в реальной ситуации мы не смогли получить прибыль, размер которой превышал бы размер спреда и комиссии брокера.

Исходя из этого можно сделать следующие выводы:

  1. На биржах есть закономерности и их можно находить при помощи технического анализа;
  2. Большинство из этих закономерностей не позволяют зарабатывать суммы, превыщающие размер спреда и комиссий брокера;
  3. Из первых двух пунктов следует, что большинство брокеров и дилеров, рекламирующих торговлю на бирже как средство заработка, обманывают людей. Они обращаются к нашим эмоциям, обещая лучшую жизнь, но на самом деле учат проигрывать деньги. Это — мое личное мнение.

Если вам понравилась статья — могу выложить результаты ещё нескольких экспериментов.


x

Ещё Hi-Tech Интересное!

Создание приложения на .NET Core и Kubernetes: наш опыт

Всем привет! Мы решили реализовать новое приложение под Linux с использованием . Сегодня расскажем об опыте одного из наших DevOps проектов. Net Core на микросервисной архитектуре. Поэтому он должен легко масштабироваться как по функционалу, так и по производительности. Мы рассчитываем, ...

База данных штрихкодов скачать бесплатно без регистрации (и прочей хурмы)

Добрый день. В открытом доступе наконец-то появился огромный справочник штрихкодов с наименованиями товаров, категориями и брендами. Мы работаем над ним лет 8 и теперь в нем около 3 миллионов штрихкодов в стандартах EAN (EAN-13, EAN-8) и UPC (UPC-A, UPC-E). Что ...