Статья Сергея Тарасова
В этой статье я хотел бы объяснить разницу между программным обеспечением Timing Solution (TS) и другими пакетами программного обеспечения, доступными для финансовых аналитиков, трейдеров и инвесторов.
С одной стороны, это программные пакеты технического анализа (далее сокращенно - TA), такие как Trader Station, Metastock, Wave59 и т. д.; с другой стороны, это чисто математические пакеты для исследователей, например, Mathlab, Maple, Wolfram Mathematica.
Поставщикам программного обеспечения TA необходимо предоставить максимальные источники данных и процедуры для работы с брокерами, поскольку вам необходимо увидеть ценовые графики для всех финансовых инструментов, с которыми вы работаете. Есть даже тиражируемый образ трейдера как человека, окруженного несколькими мониторами, на которых котировки в реальном времени. Вам (трейдеру) необходимо постоянно проводить быстрый анализ перспектив торгуемых тиккеров, в основном, на основе теханализа. На все остальное у вас практически нет времени.
Говоря о программном обеспечении на основе математики (обозначим это как Math), вы ожидаете увидеть диаграммы и таблицы, которые позволят вам увидеть поведение котировок на фондовом рынке в более подробном разрезе.
Timing Solution - это еще один вид программного обеспечения: это не совсем программное обеспечение на основе TA, и не совсем не программное обеспечение на основе математики. Основное внимание у нас уделяется ПРОГНОЗИРОВАНИЮ; и эта работа невозможна с использованием программного обеспечения работающем только с использованием TA или математики.
Расчеты, которые делаются при помощи Timing Solution, намного сложнее, чем те, которые возможны при помощи TA. При составлении прогноза Timing Solution учитывает гораздо больше параметров. Например, модуль Composite (который позволяет выявлять и проверять астрономические циклы в финансовых данных) содержит не менее 200 различных параметров. Если вы попытаетесь создать код, который включает такое количество параметров, используя одни лишь язык скриптов, такой как EasyLanguage в Trader Station, это будет огромное полотно кодов, и все это будет работать очень, очень медленно. Добавьте к этому проблему настройки всех этих 200 параметров наилучшим образом. Это огромная работа. Я работаю над этим (только для этого модуля!) 20 лет, и все еще есть место для улучшения.
К чему же мы, все-таки ближе, к теханализу или математике? На данный момент, Timing Solution, похоже, ближе к математическому программному обеспечению, хотя и не совсем. Программное обеспечение на основе математики позволяет создавать прогнозную линию; это верно. Однако, если вы хотите построить линию прогноза, которая подошла бы для торговли, этого недостаточно. Математическое программное обеспечение предназначено для поиска общих тенденций, корреляций и т. д. Это хорошо для работы лишь с событийным рядом, который уже имел место быть в некотором прошлом. Для торговли вам нужно что-то другое; программное обеспечение, которое хорошо объясняет события прошлого (как математические программы) - это одна история. И то время как программное обеспечение, которое прогнозирует будущие движения цен - это совершенно другая история, потому что цена ошибки велика: используя свой прогноз, вы планируете инвестировать свои с трудом заработанные деньги. Это требует другого подхода, и стандартные математические процедуры вам не помогут. Поверьте мне, я знаю, о чем говорю. В моем научном прошлом, в Институте ядерных исследований, я много работал с математическим программным обеспечением, решая различные задачи в качестве физика-исследователя. Мы можем назвать эту ветвь математики ПРОГНОЗИРУЮЩЕЙ или ПРОГНОСТИЧЕСКОЙ математикой. Timing Solution относится именно к математике прогнозирования.
В этой статье вы найдете два примера, которые помогут нам понять специфические моменты этой математики прогнозирования.
В первом примере мы рассмотрим циклы, основанные на астрономии, во втором - регулярные циклы. Я должен добавить, что эта статья адресована всем заинтересованным лицам, особенно пользователям Timing Solution: я надеюсь, что это поможет вам понять некоторые важные вещи и увидеть разницу между простой подгонкой кривой (чем занимается математика) и, собственно, прогнозом.
Пример # 1. Сравниваем прогностическую способность (forecast-ability) с методом подгонки кривой.
Позвольте мне начать с годового (сезонного) цикла. Иногда сезонный цикл работает довольно хорошо, иногда нет. Это факт. Возникает вопрос: можем ли мы как-то проанализировать периоды, чтобы понять, когда годовой цикл работает достаточно хорошо, а когда не очень? Кто знает, может быть, в этом можно уловить некоторую закономерность.
20 лет назад я бы решил эту задачу, используя вейвлет-анализ, никаких сомнений. Вот вейвлет-диаграмма для годового цикла:
Красные полосы здесь показывают периоды, когда годовой цикл был сильным, а синие - периоды, когда годовой цикл давал слабые результаты. Как вы видите, ежегодный цикл давал хорошие результаты с 1997 по 2002 год (мы анализируем индекс S&P500).
Как мы получили эти результаты? Мы запустили стандартную математическую процедуру, которая показала нам наличие годовой волны в наших финансовых данных. Вейвлет - это, по сути, волна, видимая в течение некоторого ограниченного времени. Вот как это выглядит (вейвлет Морлета):
Сейчас я попытаюсь объяснить общую идею вейвлет-анализа, применяемого в нашем случае: программа пытается наложить этот вейвлет, с периодом один год, поверх нашего ценового графика и наблюдает, как этот вейвлет соответствует ценовому графику. В течение некоторых годовых периодов вейвлет хорошо соотносится с котировками, и мы отмечаем эти периоды как красные области. Иногда не очень - и тогда у нас получаются синие области. Мы можем назвать эту процедуру процедурой подбора кривой, потому что мы пытаемся найти периоды, когда вейвлет-волна соотносится с ценовым графиком наилучшим образом.
Все это можно легко сделать с помощью любой стандартной математической программы. Но появляется большой вопрос: можем ли мы построить торговую стратегию на основе этого подхода? Ответ - нет. Мы сделали все правильно, и этот метод действительно показывает присутствие годовой волны в наших данных. Однако для торговли нам нужно что-то еще. Причина в том, что циклы не работают постоянно. Они существуют все время, это правда, хотя их присутствие более очевидно в некоторые моменты, в то время как в другие периоды они словно бы вообще исчезают. Это происходит из-за интерференции цикла с другими циклами (об интерференции можно почитать
здесь). К примеру, мы замечаем некоторый отличный цикл, присутствующий в истории цен (т. е. в прошлом), но когда мы пытаемся применить его в нашей торговой стратегии (начнем торговать по нему) - он вдруг исчезает. Циклы в финансовых данных не живут вечно. Поэтому, вместо того, чтобы искать оптимальные настройки при подгонке кривой, нам нужно иметь что-то другое. Назовем это прогнозной способностью. Это то, что должно помочь нам предсказать будущее поведение наших котировок.
Чтобы найти прогнозные циклы, мы должны применять совершенно другую математику: Walk Forward Analysis (WAV). По-русски - форвардный анализ. Это другой стиль мышления. Более того, в форвардном анализе есть некоторые нюансы, которые обычно игнорируются, когда мы решаем такие задачи классическим математическим способом. Подобные нюансы могут изменить всю картину таким образом, что, казалось бы, очень перспективная модель не может быть применена к реальной торговле. Поэтому вам следует отделить модели, хорошо объясняющие прошлое движение цен (подгонка кривой) от моделей, которые прогнозируют будущее (прогнозная способность, forecast-ability); это два совершенно разных подхода.
Хорошо, давайте посмотрим, как одна и та же задача поиска прогнозируемых зон для годовых циклов решается при помощи процедуры форвардного анализа (далее для краткости - WFA).
Основная идея WFA объяснена в этом веб-уроке:
http://www.timingsolution.com/Doc/level_2/WFA/index.htm Это быстрый пример того, как работает WFA.
К примеру, сегодня 4 декабря 2017 года. Перенесемся на год назад, в 4 декабря 2016 года. В этот день вы решили поспорить с лучшим другом, и сделали ставки на прогноз по SNP500 на основе годового цикла. Итак, в воскресенье, 4 декабря 2016 года, вы рассчитали линию прогноза на основе годового цикла, и ваш прогноз заканчивается 4 декабря 2017 года. Вы вручаете свой прогноз некоему независимому арбитру, и сегодня, 4 декабря, 2017, ваш друг забирает этот прогноз у этого арбитра и накладывает прогноз на график SNP500, чтобы проверить верность прогноза (зеленая линия - тот самый годовой цикл, красная - осциллятор RPO (1,73,73) и черный - график цены SNP500):
Для оценки этой прогнозной линии мы вычисляем коэффициент корреляции между ним и соответствующим осциллятором. В нашем случае эта цифра составит 21%. Как вы видите, эта прогнозная линия действительно ловит некоторые движения рынка, но не все из них, конечно.
Чтобы получить более точную картину эффективности этой модели, мы должны иметь аналогичные ставки на 2015 год (прогноз с декабря 2015 года по декабрь 2016 года), на 2014, на 2013, на 2012 и т.д. Предположим, у нас все этот есть. Объединяя все все вместе, мы получаем результат применения форвардного анализа для годового цикла. Красные полосы показывают периоды, когда прогноз, основанный на годовом цикле, был хорошим, синие - когда прогноз был не очень:
Глядя на красную полосу в 2017 году, вы можете видеть, что точность совпадения (коэффициент корреляции) линий прогноза и линии котировок составляет 21,3%. Это удовлетворительный показатель (важно понимать, что здесь используются не понятия прибыли/убытка, и именно математико-статистическая величина; чтобы понять что подразумевается под коэффициентом корреляции, почитайте вот
здесь или
здесь).
В 2016 году мы имеем синюю зону, т.е. коэффициент корреляции НЕГАТИВЕН = -24,7%. В 2015 году мы опять получили ярко-красный бар: это означает, что годовой цикл достаточно хорошо прогнозирует цену (коэффициент корреляции составляет 43,1%).
Таким образом, вы можете видеть периоды, когда годовой цикл прогнозирует цену достаточно хорошо или же не очень хорошо. Обратите внимание, мы говорим здесь в терминах ПРОГНОЗИРОВАНИЯ, а не с точки зрения метода фитинга кривой (CURVE-FITTING). Этот метод показывает зоны, где, используя годовой цикл, мы можем получить некоторые результаты с точки зрения прогноза.
А вот как выглядит подробная диаграмма годовой или сезонной активности, рассчитанная при помощи процедуры форвардного анализа (WFA):
Как вы видите, годовая циклическая активность, рассчитанная в классическом стиле (т.е. вейвлет-диаграмма) и она же, рассчитанная с использованием форвардного анализа, дает совершенно разные результаты. Вот эти диаграммы:
На практике это означает, что между двумя методами анализа - методом подгонки кривой и методом составление прогноза - существует большая разница:
Основная идея форвардного основана на технологии NON FUTURE LEAKS (отсутствие утечек из будущего). В нашем конкретном случае эта технология работает так: когда вы забиваетесь на пари со своими друзьями, вы отдаете свой прогноз независимому арбитру, и этот прогноз вы трогаете, не корректируете/не изменяете/не улучшаете в течение прогнозируемого периода. Этот принцип показывает основную особенность программного обеспечения Timing Solution - мы очень осторожны в отношении проверки прогнозной линии, ставка должна быть справедливой. С моей точки зрения, это еще один вид программирования: проверка должна основываться на некоторой ставке типа пари, а не на подгонке кривой. Я держу в голове такую картину: некто строит линию прогноза, используя данные, доступные в момент ставки, а другой проверяет эту линию прогноза, используя другие данные, полученные после. Они как бы контролируют друг друга. Это снижает риск "неверной ставки" в трейдинге.
Пример №2. Циклический анализ Q-Spectrum в области финансов
В 2016 году я применил технологии форвардного анализа в циклических данных - в модуле Q-Spectrum, и сразу стало ясно, что мы на правильном пути. Этот модуль является одним из наиболее используемых в Timing Solution.
Но самое интригующее, что Q-Spectrum показывает инвертированные циклы. Для меня стало неожиданностью, что применяя классический циклический анализ для финансирования, мы просто не видим, игнорируем половину Вселенной - инвертированную Вселенную. Объяснение перевернутым циклы невозможно найти в терминах классического циклического анализа. С точки зрения подхода подгонки кривой существуют только два крайних случая: 1) соответствие цикла (корреляция = 100%) и 2) цикл не подходит (корреляция = 0%). Классический циклический анализ применяет только два этих варианта, понятие отрицательной корреляции (соответствие цикла, но с отрицательной корреляцией) здесь невозможно.
Когда мы применяем форвардный анализ в области финансовых данных, нам приходится иметь дело с инвертированными циклами. Это математическая необходимость, мы не можем игнорировать факт их регулярного появления в котировках. Это как положительные и отрицательные значения в арифметике или электронах и позитронах в ядерной физике. Чтобы увидеть всю картину, мы должны принять инвертированную Вселенную, и в отношении циклического анализа эта инвертированная Вселенная проявляется, если только мы применим технологию форвадного анализа с ее non-future leaks (отсутствия утечек из будущего).
Подробнее об анти-циклах можно прочитать здесь:
Анти-информация или работа с инвертированными циклами.
Интересным фактом является то, что десять лет назад я столкнулся с перевернутыми циклами, делая повторное тестирование моделей. В тот момент я считал их математической бессмыслицей и попросту игнорировал их. Теперь все вернулось на круги своя.
Оригинал статьи Сергея Тарасова:
Science of forecasting