English 中文 Español Deutsch 日本語 Português
preview
Теория категорий в MQL5 (Часть 5): Эквалайзеры

Теория категорий в MQL5 (Часть 5): Эквалайзеры

MetaTrader 5Тестер | 12 мая 2023, 15:24
654 0
Stephen Njuki
Stephen Njuki

Введение

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


Эквалайзеры

В теории категорий эквалайзер определяется как домен в категории, который представляет "общее поведение" пары (или более) параллельных морфизмов для двух доменов. Точнее, для двух параллельных морфизмов (f, g): A --> B, уравнителем f и g является домен E в категории, удовлетворяющий следующим условиям:


  1. Имеется морфизм e: E --> A, такой что f . e = g . е.
  2. Для любого другого домена X (не указанного выше) с морфизмом h: X --> A, таким что f . h = g . h, существует единственный морфизм u: X --> E, такой что h = e . u.

Интуитивно эквалайзер — это поддомен "оптимального размера" домена A, который отображается как в A, так и в B через пару морфизмов f и g, фиксируя "общее поведение" f и g в том смысле, что только элементы A, которые отображаются в аналогичные элементы в B, включены в E. Это означает, что любой другой домен, подобный E, который отображается как в A, так и в B через f и g, может быть факторизован (составлен) через E с помощью единственного морфизма.

Отношения эквивалентности удовлетворяют хотя бы одному из трех свойств: рефлексивности, симметрии и транзитивности. Эти определения действуют как классификаторы эквивалентности. Они пытаются ответить на вопросы. В каком смысле домены эквивалентны? Или как можно описать их отношения? Попробуем посмотреть на их с точки зрения трейдеров. (x R y означает, что x имеет отношение R с y).

1.     Отношение R на множестве А рефлексивно тогда и только тогда, когда для каждого элемента a в A - a R a, то есть каждый элемент связан сам с собой.

Примеры:

  • Улыбка волатильности представляет собой рефлексивное отношение эквивалентности в торговле на рынке Форекс, потому что она симметрична относительно цены исполнения при деньгах (at-the-money, ATM), которая равна форвардному курсу валютной пары. Например, если цена исполнения ATM для валютной пары USDEUR составляет 1,10, то улыбка волатильности симметрична относительно цены исполнения 1,10. Таким образом, цена исполнения R спот-цена.
  • Для рефлексивных отношений не так много значимых примеров, но можно рассмотреть еще один очевидный пример — обменные курсы. Каждая валюта связана сама с собой через свой обменный курс, который всегда равен 1. Например, обменный курс USD к USD всегда равен 1. Другими словами USD R USD. 

2. Отношение R на множестве A симметрично тогда и только тогда, когда для каждой пары элементов a и b в A, если a R b, то b R a. Другими словами, если а связано с b, то b связано с a.

Пример:

  • Две валютные пары симметрично эквивалентны, если они представляют один и тот же обменный курс, но в противоположных направлениях. Например, пары EURUSD и USDEUR симметрично эквивалентны, поскольку обе представляют обменный курс между евро и долларом США, но одна котируется в евро, а другая в долларах США. Другими словами, EURUSD R USDEUR.
  • Длинные и короткие позиции являются симметрично эквивалентными понятиями. Длинная позиция предполагает покупку валюты с расчетом на то, что ее стоимость вырастет, а короткая позиция предполагает продажу валюты с расчетом на ее падение. Эти две позиции симметрично эквивалентны, поскольку они представляют противоположные взгляды на один и тот же курс обмена валюты.

3. Отношение R на множестве A транзитивно тогда и только тогда, когда для каждой тройки элементов: a, b и c в A, если a R b и b R c, то a R c. Иными словами, если a связано с b, а b связано с c, то a связано с c транзитивно.

Пример:

  • В торговле на рынке Форекс паритет процентных ставок — это теория, которая предполагает, что обменный курс между двумя валютами должен отражать разницу в процентных ставках между двумя странами. Если валюта A имеет более высокую процентную ставку, чем валюта B, а валюта B имеет более высокую процентную ставку, чем валюта C, то валюта A должна иметь более высокую процентную ставку, чем валюта C. Это пример транзитивной эквивалентности.
  • В торговле на рынке Форекс торговля Фибоначчи включает использование математических соотношений для определения потенциальных уровней поддержки и сопротивления в ценах валют. Если валютная пара откатывается на 38,2% от своего предыдущего движения, а затем откатывается на 50% от этого отката, то валютная пара, вероятно, продолжит откат до уровня 61,8%. Это пример транзитивной эквивалентности.

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

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

Гипотеза, первая из двух морф, просто сопоставляет значения индикатора с тем, чем они должны быть, в соответствии с теорией и академическим пониманием того, как работает индикатор. В нашем случае, поскольку мы используем ATR и хотим, чтобы он прогнозировал изменения диапазона, наша гипотеза может быть примерно такой: "Отрицательное изменение ATR трансформируется в отрицательное изменение диапазона бара. И наоборот, положительное изменение ATR трансформируется в положительное изменение ценового диапазона". Как видим, гипотеза изоморфна.

Значения как изменения ATR, так и изменения ценового диапазона обычно выражаются в пунктах, а это означает, что их необходимо нормализовать. Если бы мы использовали проценты, то было бы проще выполнить преобразование, поскольку, скажем, падение ATR на 20% можно легко преобразовать в падение ценового диапазона на 20%. Говоря кратко, если у нас есть эти проценты, основанные на значениях индикатора последнего бара, где:

При этом

            Dv - значения домена

            An - новый ATR

            Ao - старый ATR

            Ao’ - максимум между старым ATR и пунктом*

 

            Cv - значения кодомена

            Rn - новый ценовой диапазон

            Ro - старый ценовой диапазон

            Ro’ - максимум между старым ценовым диапазоном и пунктом*,

 *максимальное сравнение избегает деления на ноль.

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


 


У нас будет 10 полос шириной примерно 20% каждая. Теперь это означает, что мы можем с большей ясностью отображать элементы домена в кодомене. Так, например, вместо того, чтобы пытаться работать с данными домена, которые могут включать такие значения, как 12,7%, 28,5%, -74,8%, по сравнению с кодоменом с аналогичными данными с плавающей запятой, мы теперь имеем дискретные полосы в любом домене, которые можно легко преобразовать в пары.

Итак, формализуя первый морфизм, изменения гипотезы ATR имеют некоторое отставание (в нашем случае на один бар) и положительно коррелируют с изменениями диапазона ценового бара. Поскольку две наши точки данных домена нормализованы, морфизм нашей гипотезы будет изоморфным, как упоминалось выше. От -100% до -80% в домене будут отображаться как от -100% до -80% в кодомене, аналогично -80 до -60% будет отображаться как от -80 до -60% и так далее.

В случае со вторым морфизмом мы будем основывать отображение на количестве выборок в наборе обучающих данных. Итак, если мы проведем тесты с 01.01.2021 по 01.01.2022, скажем, на EURGBP, мы узнаем, сколько раз каждая полоса изменения ATR приводила к изменениям в каждом из аналогичных полос изменения ценового диапазона. Эти тесты основаны на 5-минутном таймфрейме, а отставание индикатора для сравнения составляет один бар. Это означает, что любое показание индикатора ATR сравнивается с изменениями ценового диапазона следующих 5-минутных баров.

 

В нашей таблице заголовки столбцов [,0],[,1] и т. д. представляют строки в нашей таблице размеров полос от превышающих -100% до -80%, от -80% до -60% и т. д. соответственно. Строки также следуют аналогичной закономерности. Глядя на результаты теста, становится ясно, что большинство процентных изменений ATR составляют менее 20% по величине. Это означает, что более осмысленный тестовый прогон может обеспечить большее количество делений (размеров полос) в этом диапазоне и меньшее количество в диапазонах за его пределами. Следовательно, это означает, что размеры полос для более "равномерно распределенных" выборок не будут одинаковыми. Однако если мы будем придерживаться выбранных нами размеров полос, мы определим самое высокое значение столбца для каждой строки (по всем столбцам), и это будет указывать на изменение ценового диапазона с наибольшей вероятностью для соответствующего изменения ATR.

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

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

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (-100% to -80%)|----->(-100% to -80%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (-80% to -60%)|----->(-80% to -60%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (-60% to -40%)|----->(-60% to -40%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (-40% to -20%)|----->(-40% to -20%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (-20% to 0%)|----->(-20% to 0%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (0% to 20%)|----->(0% to 20%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (20% to 40%)|----->(20% to 40%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (40% to 60%)|----->(40% to 60%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (60% to 80%)|----->(60% to 80%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (80% to 100%)|----->(80% to 100%)


В случае тестового прогона мы увидим следующее:

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (-100% to -80%)|----->(-100% to -80%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (-80% to -60%)|----->(-100% to -80%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (-60% to -40%)|----->(-100% to -80%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (-40% to -20%)|----->(-40% to -20%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (-20% to 0%)|----->(-40% to -20%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (0% to 20%)|----->(-40% to -20%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (20% to 40%)|----->(-40% to -20%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (40% to 60%)|----->(-60% to -40%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (60% to 80%)|----->(-100% to -80%)

2023.03.31 17:55:58.318        ct_5 (EURUSD.ln,M5) (80% to 100%)|----->(-20% to 0%)

 

Теперь, основываясь на этих двух морфизмах, мы можем определить в домене (процентные изменения в ATR), какие процентные диапазоны соответствуют обоим морфизмам одним и тем же процентным диапазонам в кодомене (процентные изменения в изменении ценового диапазона).Это подмножество изменений ATR будет нашим эквалайзером как для морфизма гипотезы, так и для морфизма тестового прогона в соответствии с приведенными выше определениями. Соответствующие полосы показаны ниже. 

 

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


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

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

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


Заключение

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

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


Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/12417

Прикрепленные файлы |
ct_5.mq5 (103.31 KB)
Поиск свечных паттернов с помощью MQL5 Поиск свечных паттернов с помощью MQL5
В этой статье мы поговорим о том, как автоматически определять свечные паттерны с помощью MQL5.
Нейросети — это просто (Часть 41): Иерархические модели Нейросети — это просто (Часть 41): Иерархические модели
Статья описывает иерархические модели обучения, которые предлагают эффективный подход к решению сложных задач машинного обучения. Иерархические модели состоят из нескольких уровней, каждый из которых отвечает за различные аспекты задачи.
Реализация фактора Януса в MQL5 Реализация фактора Януса в MQL5
Гэри Андерсон разработал метод анализа рынка, основанный на теории, которую он назвал фактором Януса. Теория описывает набор индикаторов, которые можно использовать для выявления тенденций и оценки рыночного риска. В этой статье мы реализуем эти инструменты в MQL5.
Оборачиваем ONNX-модели в классы Оборачиваем ONNX-модели в классы
Объектно-ориентированное программирование позволяет создавать более компактный код, который легко читать и модифицировать. Представляем пример для трёх ONNX-моделей.