Если вы решили научиться торговать на бирже, то вам нужно научиться находить на ней закономерности. Закономерность — это определённое условие (например характерное движение цены или какое-то событие), после выполнения которого вы будете знать, куда дальше пойдёт цена.
На обучающих курсах брокеры учат начинающих трейдеров находить и использовать закономерности. Но практически все новички в конце-концов проигрывают свои деньги. Ниже я покажу, почему это происходит.
Вся индустрия обучения торговле на бирже крутится вокруг двух методов прогнозирования цен:
Технический анализ гласит, что движение цены можно спрогнозировать исходя из её предыдущего движения. Например если график цены вырисовывает фигуру «Голова и плечи», то вероятность того, что цена развернётся, повышается.
Рисунок 1 — фигура «Голова и плечи»
В противовес ему, фундаментальный анализ гласит, что движение цены можно спрогнозировать, анализируя внешние информационные факторы (например финансовую отчётность, произошедшие события и т. д.).
Существуют тысячи способов прогнозирования цен. Это различные модели движения (паттерны), индикаторы, осцилляторы, нейронные сети и т. д.
Всех их объединяет одна общая черта: они позволяют предсказать будущее движение цены, опираясь на её предыдущие значения.
Теперь представьте себе ситуацию, что в течение ближайшего часа цена будет двигаться также, как она двигалась в течение часа 3 года назад.
Если внутри этих одинаковых участков графика вы примените одинаковые методы технического анализа, то они выдадут одинаковые показания.
Этот мысленный эксперимент доказывает, что вместо поиска работающего способа технического анализа, можно искать схожие участки графика, после которых цена ведёт себя схожим образом. Далее я буду называть такие участки «моделями».
Очевидное преимущество поиска моделей состоит в том, что вы экономите время на поиске работающего метода технического анализа. Существуют тысячи таких методов и каждый день брокеры, дилеры и различные «преподаватели» биржевой торговли придумывают ещё несколько новых способов. Проблема заключается в том, что вам не хватит жизни на то, чтобы проверить на работоспособность все методы торговли, которые вам предлагют (кстати, на это и сделан расчёт).
Для поиска моделей мы напишем программу, которая проанализирует минутные графики интересующих нас активов за последние несколько лет и выявит закономерности.
Скачаем графики по интересующему нас инструменту. В своём примере я использовал поминутную котировку валютной пары EUR/USD за последние 10 лет.
Предварительно обработаем данные: спарсим из выгрузки только цену закрытия каждой минуты, разобьём график на недельные участки и устраним резкие скачки цен из-за нерабочего времени бирж.
Теперь разобьём этот график на 2 половины по 5 лет. На первой половине мы будем искать работающие модели, а на второй — проверять, на сколько хорошо найденные модели будут работать в реальности.
На первом 5-летнем отрезке мы:
Примечание по п. 3: Для сравнения пар участков графика я использовал метод наименьших квадратов, минимизируя квадратичное отклонение (далее — СКО). Чем оно ниже — тем более схожи 2 фрагмента графика.
Рисунок 2 — Иллюстрация сравнения двух участков графика длиной N
СКО вычисляется по формуле:
, где:
В результате такого перебора (см. п. 3) мы получим большое количество результатов сравнений для каждого участка графика и его продолжения (см. п. 2). Далее эти участки мы будем называть потенциальными моделями.
Для того, чтобы понять, является ли потенциальная модель работающей, для каждого перебора (см. п. 3) нужно определить, есть ли зависимость между:
Рисунок 3 — Иллюстрация поиска зависимостей между СКО1 и СКО2
а именно:
Исключим из перечня потенциальных моделей те, у которых при снижении СКО1 не снижается СКО2.
Таким образом, мы получим большое количество моделей, при помощи которых можно прогнозировать движения цен на рынке.
Теперь для каждой найденной модели посчитаем, сколько денег она бы заработала на первом 5-летнем участке (на нём мы обучали систему искать модели) и на втором 5-летнем участке (до текущего момента мы не трогали эти данные, поэтому проверка моделей на них позволит достоверно оценить потенциал заработка).
Нанесём полученные значения на координатную плоскость, где:
Для того, чтобы данные легче считывались невооружённым глазом, на графике ниже:
Рисунок 4 — график зависимости реальной прибыльности моделей (Y) от их прибыльности на участке, использовавшемся для обучения (X)
Как видите, чем лучше найденная модель работает на тестовом участке графика — тем лучше она работает в боевых условиях.
Получается, что на бирже есть модели, которые работают.
Прежде чем считать, сколько денег можно заработать на моделях, нужно добавить в наши расчёты спред и/или комиссию брокера.
По моим расчётам при торговле парой EUR/USD в среднем вы будете платить от 2 пунктов со сделки (около 0,015% от текущей стоимости валютной пары).
Для начала, давайте попробуем добавить в алгоритмы поиска и проверки моделей 1 пункт комиссий. Получим график:
Рисунок 5 — график зависимости реальной прибыльности моделей (Y) от их прибыльности на участке, использовавшемся для обучения (X) с учётом комиссий, размером в 1 пункт
Теперь увеличим размер комиссий до 2 пунктов
Рисунок 6 — график зависимости реальной прибыльности моделей (Y) от их прибыльности на участке, использовавшемся для обучения (X) с учётом комиссий, размером в 2 пункта
Получается, что если размер спреда и комиссий в сумме превышают 1 пункт — то торговля по моделям на валютной паре EUR/USD будет приносить убытки.
В данном эксперименте мы находили схожие участки графиков и проверяли, в какую сторону цена будет двигаться после их прохождения.
Те участки, после прохождения которых цена двигалась в одну и ту же сторону, мы считали закономерностями (моделями) и оказывались правы (см. Рисунок 4).
Однако используя те же модели в реальной ситуации мы не смогли получить прибыль, размер которой превышал бы размер спреда и комиссии брокера.
Исходя из этого можно сделать следующие выводы:
Если вам понравилась статья — могу выложить результаты ещё нескольких экспериментов.
К сожалению, не доступен сервер mySQL