Обсуждение статьи "Архитектура машинного обучения для MetaTrader 5 (Часть 13): Реализация расчета размера позиции в MQL5"

 

Опубликована статья Архитектура машинного обучения для MetaTrader 5 (Часть 13): Реализация расчета размера позиции в MQL5:

Мы создаем набор инструментов промышленного уровня для расчета размера позиции в MQL5: утилиты, фрагменты кода и пользовательские функции, которые повторяют исходные реализации на Python. Методы охватывают преобразование вероятности в размер позиции с коррекцией перекрытия, динамический расчет размера позиции по прогнозной цене (калиброванные сигмоидальная и степенная функции с лимитной ценой), бюджетирование на основе текущей занятости портфеля и резервный метод расчета размера позиции на основе модели смеси (EF3M). Результат — размер позиции со знаком в диапазоне [−1, ..., 1] плюс диагностика, которую можно напрямую подключить к логике ордеров.

Часть 10 этой серии строго вывела четыре метода из базовых принципов и показала их реализации на Python в модуле afml.bet_sizing. Каждый метод решает конкретную задачу: метод на основе вероятности преобразует уверенность классификатора в размер позиции и учитывает одновременность и перекрытие меток; динамический метод сопоставляет непрерывное расхождение прогнозной цены с размером позиции через калиброванную функциональную форму; бюджетно-ограниченный метод контролирует экспозицию, когда оценка уверенности отсутствует; а резервный метод расчета размера позиции полностью строит кривую размера позиции по данным. Аналитические основы теперь установлены. Остается задача перевода: как запустить эти методы внутри MetaTrader 5, где каждое вычисление должно укладываться в событийный цикл, управляемый тиками, и где нет SciPy, NumPy и multiprocessing?

В статье дается практический ответ на этот вопрос. В ней представлены четыре include-файла MQL5 — по одному на каждый метод расчета размера позиции, — которые воспроизводят математическое поведение модуля Python. Также включен пятый файл с общими структурами данных и статистическими утилитами, необходимыми всем методам. Каждый файл достаточно самодостаточен, чтобы его можно было добавить в существующий советник с минимальными изменениями, но при этом файлы достаточно согласованны между собой, чтобы все четыре метода можно было объединить в одном советнике, выбирающем подходящий механизм расчета размера позиции во время выполнения. Реализации точны там, где точность достижима, и численно эквивалентны там, где строгая точность непрактична. Нормальная CDF вычисляется через минимаксную рациональную аппроксимацию с точностью до семи значащих цифр.


Автор: Patrick Murimi Njoroge