Блог им. Mackenna

Математическая модель рынка. Метод определения "справедливых" цен

    • 25 сентября 2019, 09:29
    • |
    • Mackenna
  • Еще

Здравствуйте, дамы и господа!

Думаю, что всем хочется покупать финансовые инструменты подешевле, а продавать подороже. Реакция участников торгов на новости, как правило, непропорциональна и чрезмерна: пессимисты склонны недооценивать актив, а оптимисты, напротив, его переоценивают. В определении текущих «перекупленности» или «перепроданности» активов теханализ помогает мало. Предположим, что золото подорожало и его цена в USD на историческом максимуме. Означает ли это, что его цена «несправедливо» завышена? Совсем необязательно. Она может вырасти, например, если девальвировался доллар, и тогда самая высокая его цена остается справедливой и обоснованной. А если ВСЕ основные валюты постепенно теряют покупательскую способность? Тогда девальвация USD может быть незаметна, но цена золота (и многих других активов) «справедливо» вырастет из-за инфляции.

Несколько перефразируя Дядю Федора, можно сказать, что чтобы купить что-нибудь ненужное, инвесторам надо продать что-нибудь ненужное. Деньги «перетекают» из акций в золото и облигации, из драгметаллов в кеш, из одной валюты в другую (и обратно).  Поэтому для «справедливой» оценки актива его цену нужно сравнивать с ценами максимально широкого набора финансовых инструментов и построить математическую модель взаимных зависимостей их стоимости.

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

Для своей модели я выбрал следующие десять: евро, франк, йена, канадский доллар, золото, серебро, медь, фьючерс на S&P, нефть Brent, природный газ. В датафрейм включил также в качестве одного из факторов, влияющих на цены, даты наблюдений в целочисленном формате (как в Excel) для учета влияния долгосрочных тенденций и инфляции.

Данные взял из MT4 (Forex Club) с 01.01.2014 по настоящее время (D1, 1483 строки):

Математическая модель рынка. Метод определения "справедливых" цен

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

Математическая модель рынка. Метод определения "справедливых" цен

Для каждой строки датафрейма сгенерил в столбце «Random» случайное число. Для обучающей выборки взял значения, меньшие 0.8 по модулю, а для тестовой – все остальные. Получилось 1164 и 319 строк соответственно.

Математическая модель рынка. Метод определения "справедливых" цен

По данным обучающей выборки создал три модели для расчета «справедливой» цены евро: с помощью нейросети, линейную регрессионную и «мою модель». Рассчитанные моделями значения EUR по данным тестовой выборки внес в таблицу, добавив три столбца «PrNN», «PrLM» и «PrMM»:

Математическая модель рынка. Метод определения "справедливых" цен

Схема нейросети:

Математическая модель рынка. Метод определения "справедливых" цен
Для сравнения качества моделей рассчитал RMSE (Root mean square error):

Математическая модель рынка. Метод определения "справедливых" цен

Как видно на скриншоте выше, традиционные модели, нейросеть и линейная регрессионная, дали дали близкую по величине ошибку – чуть более полутора процентов. Причем, качество регрессионной модели высокое: коэффициент детерминированности R2 = 0.92, что примерно соответствует коэффициенту корреляции 0.85. Распределение ошибок – нормальное, проверял тестом Шапиро-Уилка и критерием Пирсона («хи-квадрат»): 

Математическая модель рынка. Метод определения "справедливых" цен  Математическая модель рынка. Метод определения "справедливых" цен
Но какой результат дал алгоритм «Моей модели»! Ошибка менее 0.4% (!).

Математическая модель рынка. Метод определения "справедливых" цен Математическая модель рынка. Метод определения "справедливых" цен

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

Я, как когда-то один из классиков М-Л, «пошел другим путем»:  я создал из выборки в 1483 строки данных 500 «субвыборок»,  в которые случайным образом включал 90% данных. В исключенные 10% данных иногда попадали «выбросы» и построенная по такой субвыборке модель становилась качественнее. Построив 500 регрессионных моделей и рассчитав 500 значений моделируемого показателя, я принимал к в качестве прогнозного его значения среднее арифметическое из 500 смоделированных значений. Результат работы такого алгоритма приведен выше.

Так как распределение «ошибок» нормальное, то с вероятностью 67% текущее фактическое значение цены финансового инструмента будет находиться в интервале +-RMSE, а с вероятностью 95% в интервале +-2*RMSE.

Модель вполне годится для расчета «справедливых» цен финансовых инструментов с приемлемой точностью. Можно использовать в торговле: если текущая цена выше (ниже) рассчитанных по модели значения «справедливой» цены и разница превышает два RMSE – нужно продавать (покупать). Можно также анализировать динамику «справедливой цены».

С помощью предложенного метода также можно определять «справедливые» цены компаний по показателям ФХД, но с учетом ситуации на рынке – «аппетита к риску», стоимости валюты, в которой акция номинирована, цен на сырье и т.п.

Профита всем!

Если статья вам понравилась, вместо кнопки «Хорошо» жмите сюда,

                                                                        А если нет, то сюда.









4.3К | ★23
26 комментариев
Выглядит круто. А результат торговли с использованием этого метода есть?
avatar

Fedia, есть, но делать какие-то обобщения рано.

Мониторинг счета здесь.

avatar
Ен, это ведь про квалификацию трейдеров ролик
avatar
Алексей, ага и про математиков, которые считают грибы в огурцах 
avatar
на мой взгляд, все эти расчёты можно использовать только в мультиактивной корзине инструментов, переливая объёмы из одного актива в другой. В противном случае для конкретной валютной или фьючерсной пары модель упускает из расчётов множество «субъективных» ценообразующих факторов, и догоняться придётся до бесконечности.
avatar
Eugene Logunov, я специально выбрал в модель инструменты, которые торгуются круглосуточно.
avatar
«Можно использовать в торговле: если текущая цена выше (ниже) рассчитанных по модели значения «справедливой» цены и разница превышает два RMSE – нужно продавать (покупать).»

И вот тут неплохо бы бектестинг что будет если продавать и закрывать скажем по справедливой цене.
avatar
quant_trader, есть результаты бэк-теста, но они настолько оптимистичные, что никто все равно в такую эффективность не поверит: по евро доходность около 40%, по йене чуть более 20%, а по золоту — более 50% (годовых, без учёта комиссий). 
avatar
Mackenna, неплохо, а просадки? Риск ограничен стопами или нет?
avatar
quant_trader, тестировал без стопов — не придумал, куда их ставить. Просадки серьезные, особенно по золоту в прошлом году, когда голда в рост поперла — система-то получается контртрендовая.
avatar
Mackenna, знакомо.

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

Наверно это можно опционами выруливать, спредами всякими.
avatar
quant_trader, + прибавить стоп = k* RMSE, где k = 1 или 2.
avatar
MS, у чистого контртренда обычно при удалении от средней МО скорее растет, т е взяв на минус два брать лося на минус три нелогично. На истории :)
avatar
quant_trader, кто что имел в виду. МО чего? А в контртрейде статистически есть зона, где МО результата (тейк и стоп равны) с учётом комиссии >0. И не слишком редко она достигается.
avatar
MS, сорян. Попробую на нормальном языке. Мы о разных вариантах.

Контртренд бывает как отклонение от справедливой и выход по тейку по этой справедливой. В таком варианте обычно МО сделки и профит фактор возрастают с удалением от справедливой. Там некуда поставить обоснованный стоп, о чем и пишет автор, или как я его понял. Т е мы взяли на минус два отклонения а на минус три средняя сделка еще лучше.

Ваш вариант со стопом и тейком (напоминает сеточные) тоже имеет место быть, но мне не удалось такое прикрутить именно к справедливой цене. Короче контртренд разный бывает.
avatar
из выборки в 1483 строки

Да вы просто издеваетеся ))))
avatar
Очень странный результат. То ли у вас со сдвигом проблемы, то ли валидационный тест обучается на контроле…
avatar
А можно построить регрессию цены нефти на момент (t+k) k=1,2… от цен остальных инструментов на момент t. В моем понимании, что если модель значима с точки зрения определения локальной перекупленности/перепроданности, то должна быть статистически значимая предиктивная сила. Или я не прав?
avatar
А что такое «перцептрон без обратной обработки ошибок»?
avatar
Михаил, самоуверенный очень перцептрон! )
avatar
Эти методы очень эффективно показывают среднюю температуру по госпиталю. То есть, когда начнется дисбаланс ваша модель будет отставать, а когда дисбаланса нет, модель будет его предсказывать.
avatar
avatar
Мне определенно нравится Ваш подход к трейдингу)
avatar

Читайте на SMART-LAB:
Фото
Календарь первички ВДО и розничных облигаций (ПКО СЗА купон 25,5%)
📍  ПКО СЗА БО-06   (для квал. инвесторов,  BB–|ru| , 200 млн руб., ставки купона 25,25%, YTM 28,39%, дюрация 2,14 года)....
Фото
🧸 Как российский рынок акций проводит День медведя?
27 февраля — Международный день белого медведя. Мы заглянули в историю с момента появления праздника в 2008 году и вот что обнаружили....
Инвестиции без спешки: торгуем в выходные
Рынок часто движется импульсами, и тем важнее оценивать активы без спешки, не отвлекаясь на инфошум. Для этого отлично подходят выходные дни. В...
Фото
Ростелеком. МСФО за Q4 2025г. Всё неплохо… но всё равно печально…
Компания Ростелеком опубликовала финансовые результаты за 4 квартал 2025г.: 👉Выручка — 270,5 млрд руб. (+15,6% г/г) 👉Операционные...

теги блога Mackenna

....все тэги



UPDONW
Новый дизайн