Мы реализуем три класса MQL5, которые заменяют фиксированные целевые уровни 1R/2R/3R на уровни поэтапного закрытия, определяемые на основе данных. CExcursionTracker фиксирует максимальное благоприятное отклонение (MFE) в единицах R для каждой закрытой позиции, CExitLadderCalibrator формирует ступени на основе процентилей распределения с учетом окна ретроспективного анализа и минимального числа наблюдений, а CLadderExecutor выполняет закрытие на этих ступенях для открытых позиций. Лестница выхода перекалибруется по мере накопления закрытых позиций. Пока наблюдений недостаточно, используется резервная лестница выхода.
При разработке советника, который поэтапно закрывает позиции, практический вопрос заключается не в том, что выглядит красиво, а в том, когда прибыль по позиции становится достаточно большой, чтобы часть ее стоило зафиксировать. Это становится инженерной задачей, как только выходы автоматизируются для множества позиций, инструментов и расстояний до стоп-лосса: фиксированное правило вроде "закрыть треть позиции при 1R, треть — при 2R, а остальную часть оставить открытой" удобно, но по сути представляет собой догадку, замаскированную под правило. На бумаге это выглядит как дисциплинированный подход. На практике же стратегия может почти никогда не достигать 3R, так что последняя ступень становится скорее декоративной, либо регулярно достигать 5R, и тогда ступень на уровне 2R не столько служит целью, сколько ограничивает собственное торговое преимущество стратегии. Интервалы между ступенями на основе ATR помогают адаптироваться к волатильности, но по-прежнему ничего не говорят о том, насколько далеко обычно уходит цена в благоприятном направлении при данной логике входа на данном инструменте.
В этой статье догадки заменяются конвейером обработки данных, основанным на измерениях и пригодным для советников, используемых в реальной торговле. Максимальное благоприятное отклонение (MFE) каждой позиции измеряется в единицах R (MFE-in-R), где 1R — расстояние по цене от входа до первоначального стоп-лосса. Полученные наблюдения сохраняются для дальнейшего использования, а по последним наблюдениям рассчитываются ступени лестницы выхода для поэтапного закрытия позиции на основе собственной истории счета, а не путем ручного выбора. "CExcursionTracker" отслеживает MFE в единицах R в реальном времени по каждому тикету и записывает наблюдения для долговременного хранения. "CExitLadderCalibrator" преобразует последние N наблюдений в ступени на основе процентилей, используя настраиваемое окно ретроспективного анализа, минимальное число наблюдений и резервную лестницу выхода. "CLadderExecutor" применяет эти ступени к открытым позициям, выполняя округление объема, ведя учет состояния ступеней по каждому тикету и при необходимости выполняя перенос стоп-лосса в безубыток. В результате получается самокалибрующаяся лестница выхода с уровнями в единицах R, которую можно подключить к любому советнику. Пока не накопится достаточно исторических данных, используется резервная лестница выхода, после чего процентили по последним закрытым позициям определяют уровни поэтапного закрытия, отражающие реальное поведение стратегии, а не предположения разработчика.
Опубликована статья Управление позициями: Построение самокалибрующейся лестницы выхода по историческим данным MFE в MQL5:
При разработке советника, который поэтапно закрывает позиции, практический вопрос заключается не в том, что выглядит красиво, а в том, когда прибыль по позиции становится достаточно большой, чтобы часть ее стоило зафиксировать. Это становится инженерной задачей, как только выходы автоматизируются для множества позиций, инструментов и расстояний до стоп-лосса: фиксированное правило вроде "закрыть треть позиции при 1R, треть — при 2R, а остальную часть оставить открытой" удобно, но по сути представляет собой догадку, замаскированную под правило. На бумаге это выглядит как дисциплинированный подход. На практике же стратегия может почти никогда не достигать 3R, так что последняя ступень становится скорее декоративной, либо регулярно достигать 5R, и тогда ступень на уровне 2R не столько служит целью, сколько ограничивает собственное торговое преимущество стратегии. Интервалы между ступенями на основе ATR помогают адаптироваться к волатильности, но по-прежнему ничего не говорят о том, насколько далеко обычно уходит цена в благоприятном направлении при данной логике входа на данном инструменте.
В этой статье догадки заменяются конвейером обработки данных, основанным на измерениях и пригодным для советников, используемых в реальной торговле. Максимальное благоприятное отклонение (MFE) каждой позиции измеряется в единицах R (MFE-in-R), где 1R — расстояние по цене от входа до первоначального стоп-лосса. Полученные наблюдения сохраняются для дальнейшего использования, а по последним наблюдениям рассчитываются ступени лестницы выхода для поэтапного закрытия позиции на основе собственной истории счета, а не путем ручного выбора. "CExcursionTracker" отслеживает MFE в единицах R в реальном времени по каждому тикету и записывает наблюдения для долговременного хранения. "CExitLadderCalibrator" преобразует последние N наблюдений в ступени на основе процентилей, используя настраиваемое окно ретроспективного анализа, минимальное число наблюдений и резервную лестницу выхода. "CLadderExecutor" применяет эти ступени к открытым позициям, выполняя округление объема, ведя учет состояния ступеней по каждому тикету и при необходимости выполняя перенос стоп-лосса в безубыток. В результате получается самокалибрующаяся лестница выхода с уровнями в единицах R, которую можно подключить к любому советнику. Пока не накопится достаточно исторических данных, используется резервная лестница выхода, после чего процентили по последним закрытым позициям определяют уровни поэтапного закрытия, отражающие реальное поведение стратегии, а не предположения разработчика.
Автор: Tola Moses Hector