Обсуждение статьи "Торговые инструменты MQL5 (Часть 25): Расширяем поддержку нескольких распределений с интерактивным переключением"

 

Опубликована статья Торговые инструменты MQL5 (Часть 25): Расширяем поддержку нескольких распределений с интерактивным переключением:

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

Каждое статистическое распределение описывает различную картину неопределенности: дискретные распределения, такие как распределение Пуассона и отрицательное биномиальное распределение, описывают счётные исходы, например, количество сделок, достигших целевого уровня за сессию, в то время как непрерывные распределения, такие как нормальное распределение, распределение Вейбулла и гамма-распределение, описывают явления с действительными значениями, такие как доходность, продолжительность просадок или уровни волатильности. Интерактивное переключение позволяет трейдеру накладывать теоретические функции распределения вероятностей/плотности на одни и те же данные выборки и быстро видеть, какая модель лучше всего соответствует наблюдаемой гистограмме, без перезагрузки инструмента или изменения жестко прописанных параметров. Структура использует перечисление типов распределений и единую точку диспетчеризации для маршрутизации загрузки данных, вычисления гистограммы, расчета плотности и подписей на панели. Для добавления нового распределения требуется только новая функция загрузки и новая запись enum.

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

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

MULTIPLE DISTRIBUTIONS FRAMEWORK


Автор: Allan Munene Mutiiria