
В частности, стратегия использует HMA 200 в качестве индикатора входного сигнала, а HMA 150 используется для генерирования динамического сигнала остановки. Она запускает сигнал покупки или продажи, когда цена превышает HMA 200, и выполняет остановку, когда цена имеет определенную перекрестную связь с HMA 150. Стратегия также включает в себя конфигурируемые диапазоны дат отсчета, которые позволяют трейдерам оценивать эффективность стратегии в течение определенного периода времени.
В основе этой стратегии лежит перенос HMA на два различных цикла: HMA 200 и HMA 150. HMA - это продвинутый показатель движущихся средних, который позволяет значительно уменьшить отставание по сравнению с традиционными движущимися средними, сохраняя при этом плавность. Логика входа в стратегию основана на перекрестной связи цены с более медленной линией HMA 200: сигнал покупки при прохождении HMA 200 над ценой закрытия; сигнал продажи при прохождении HMA 200 ниже ценой закрытия.
Логика стоп-стоп использует более быстрый HMA 150 в качестве динамической точки отсчета: для многоточечных позиций, когда цена пересекает HMA 150 снизу, вызывает стоп-стоп; для пустых позиций, когда цена пересекает HMA 150 вверх. Эта конструкция позволяет уровню стоп-стоп-стоп быть скорректированным в соответствии с динамикой рынка, а не использовать фиксированные цели прибыли.
В коде реализована конфигурируемая функция диапазона дат отсчета, которая позволяет трейдерам проводить анализ эффективности стратегии в течение определенного исторического периода, чтобы более точно оценить эффективность стратегии в различных рыночных условиях. Стратегия также включает в себя визуализационный компонент, визуально отображающий на графике линии HMA, входные сигналы и стоп-сигналы, что позволяет трейдерам визуально понимать состояние рынка и стратегические решения.
Сокращение отсталостиHMA имеет меньшую задержку по сравнению с традиционными подвижными средними, что позволяет более своевременным сигналам входа и выхода, более быстро реагировать на изменения рынка и снижать потенциальные издержки возможности.
Дизайн сбалансированного двухциклического циклаСтратегия использует различные циклы HMA для входа и остановки, в соответствии с которыми формируется сбалансированный подход - более длинный цикл ((200) для стабильной идентификации направления тренда, более короткий цикл ((150) для более чувствительной защиты прибыли, реализуя двойную цель захвата тренда и блокировки прибыли.
Полностью автоматизированная торговая системаУ стратегий есть четкие правила входа и выхода, их можно полностью автоматизировать, что уменьшает эмоциональное вмешательство человека и повышает дисциплину торговли. Визуальные сигналы на диаграммах также помогают принятию решений о стратегии.
Гибкая обратная связьКонфигурируемый диапазон дат позволяет трейдерам тестировать стратегии на конкретные исторические периоды, помогает анализировать эффективность стратегии в различных рыночных условиях, оптимизировать параметры.
Логика ясна.Основная логика стратегии проста, понятна и легко модифицируется, и может быть легко адаптирована и расширена в соответствии с потребностями трейдеров, а также использоваться трейдерами всех уровней.
Тенденции и преимуществаВ качестве стратегии отслеживания тенденций, он может получить большую прибыль в рынках с сильной тенденцией, особенно в условиях, когда рынок продолжает двигаться в одну сторону.
Плохое состояние рынка интерваловКак и все стратегии отслеживания тенденций, они могут плохо работать на рынках с поперечной корректировкой или сильной волатильностью, что может привести к частым ложным сигналам и убыточным сделкам.
Отсутствие механизмов сдерживанияВ настоящей стратегии отсутствует интегрированный механизм остановки убытков, что может привести к значительному отступлению, если тенденция будет реверсироваться, но не будет задействована остановка. В практическом применении следует рассмотреть возможность добавления соответствующих правил остановки убытков, чтобы ограничить максимальные потери в одной сделке.
Ограничения на фиксированные параметры: HMA циклы ((200 и 150) являются фиксированными и могут не подходить для всех рынков или временных рамок. Разные торговые сорта и временные периоды могут требовать разных параметров для получения наилучших результатов.
Преждевременный выход из сильной тенденции: В сильных трендах стоп-механизм на основе HMA 150 может привести к преждевременному выходу из выгодных сделок и потере части прибыли. Это является неотъемлемым противоречием между динамическим стоп-методом и непрерывностью тренда.
Отсутствие управления позициямиСтратегия не включает в себя корректировку размеров позиций или функции управления рисками, все сделки используют одинаковую пропорцию средств, что в некоторых случаях может привести к чрезмерному риску.
Однозначная зависимость: Стратегия основана только на показателях HMA, без использования других технических показателей или фильтров для подтверждения сигналов, что может увеличить риск ложного сигнала.
Присоединение к механизму погашения убытковВнедрение динамических или фиксированных правил остановки убытков, таких как остановки на основе ATR, процентные остановки или остановки на основе уровней поддержки/сопротивления, чтобы ограничить максимальный риск потери в одной сделке. Это важно для защиты безопасности средств, особенно в случае внезапного изменения тенденции.
Дизайн с адаптированными параметрамиHMA-циклы: изменение циклов HMA в зависимости от динамики рыночной волатильности или других рыночных характеристик, позволяющих стратегии адаптироваться к различным рыночным условиям. Например, использование более длительных циклов при высокой волатильности и более коротких циклов при низкой волатильности.
Добавить фильтр рыночной среды: внедрение механизмов для обнаружения промежуточных рынков или трендовых рынков, избегание торгов на промежуточных рынках или корректировка параметров стратегии. Для оценки состояния рынка можно использовать такие показатели, как ADX, пропускная способность Блинна.
Интегрированный анализ объемов сделокВключение индикатора объема торговли для подтверждения силы тренда, выполнение сигнала только при поддержке объема торговли, снижение убыточных торгов, вызванных ложными прорывами.
Интеллектуальное управление позициями: изменение размеров позиций в зависимости от волатильности, размера счета или параметров риска, чтобы обеспечить баланс риска и стабильный долгосрочный рост капитала. Например, реализация расчета размеров позиций на основе ATR или фиксированного метода процента риска.
Анализ многовременных рамок: увеличение анализа тенденций на более высокие временные рамки, совершение сделок только в том случае, если тенденции на более высокие временные рамки совпадают, повышение качества сигналов и успешности.
Осуществление отслеживания остановки: с использованием отслеживания стоп-убытков вместо фиксированных стоп-уровней, позволяющих прибыли продолжать расти, в то же время защищая прибыль, особенно эффективнее в сильных тенденциях. Можно реализовать отслеживание стоп-убытков на основе показателя HMA, ATR или процента отмены.
Двухциклическая стратегия Hull Moving Average Trend Tracking and Dynamic Stop Quantitative Trading Strategy предоставляет интуитивно понятный и эффективный метод отслеживания тренда, сочетающий в себе механизм динамического стоп-интервью. Используя низкие задержки Hull Moving Averages в двух различных периодах, стратегия достигает баланса между улавливанием тренда и защитой прибыли. Основные преимущества стратегии включают в себя создание четкого сигнала, уменьшение задержки сигнала и настраиваемый период обратной связи, что делает ее практическим инструментом для трейдеров, отслеживающих тренд.
Тем не менее, у стратегии также есть некоторые ограничения, включая неудачную работу на промежуточных рынках, отсутствие механизмов остановки и фиксированных параметров. Благодаря применению рекомендуемых мер оптимизации, таких как добавление правил остановки, адаптивная коррекция параметров, фильтрация рыночной среды и интеллектуальное управление позициями, стратегия может стать более устойчивой торговой системой для различных рыночных условий.
В конечном счете, эта двуциклическая стратегия, основанная на Hull Moving Average, обеспечивает количественным трейдерам прочную основу, которую можно дополнительно настраивать и расширять в соответствии с личными предпочтениями в отношении риска и торговыми целями. В практическом применении трейдеры должны всегда помнить о важности управления рисками и проводить полное отслеживание и проверку аналогичных сделок перед торговлей в реальном мире.
/*backtest
start: 2024-06-03 00:00:00
end: 2025-06-02 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
//@strategy HMA 200/150 Trading Strategy
//@description A trend-following strategy using HMA 200 for entry signals and HMA 150 for take profit signals. Buys when price closes above HMA 200, sells when price closes below HMA 200. Take profit for buys when price closes below HMA 150, and for sells when price closes above HMA 150. Includes date range inputs for backtesting.
//@author [TrendBlazeX]
strategy("HMA 200/150 Trading Strategy", overlay=true, margin_long=100, margin_short=100)
// Input for backtest period
var start_year = input.int(2023, "Start Year", minval=1900, maxval=2100, group="Backtest Period")
var start_month = input.int(1, "Start Month", minval=1, maxval=12, group="Backtest Period")
var start_day = input.int(1, "Start Day", minval=1, maxval=31, group="Backtest Period")
var end_year = input.int(2025, "End Year", minval=1900, maxval=2100, group="Backtest Period")
var end_month = input.int(12, "End Month", minval=1, maxval=12, group="Backtest Period")
var end_day = input.int(31, "End Day", minval=1, maxval=31, group="Backtest Period")
// Convert dates to timestamps
start_timestamp = timestamp(start_year, start_month, start_day, 0, 0)
end_timestamp = timestamp(end_year, end_month, end_day, 23, 59)
// Check if current bar is within the date range
in_date_range = time >= start_timestamp and time <= end_timestamp
// Calculate HMAs
hma200 = ta.hma(close, 200)
hma150 = ta.hma(close, 150)
// Define conditions for buy and sell signals
buySignal = ta.crossover(close, hma200) and in_date_range
sellSignal = ta.crossunder(close, hma200) and in_date_range
// Define take profit conditions
buyTakeProfit = ta.crossunder(close, hma150) and in_date_range
sellTakeProfit = ta.crossover(close, hma150) and in_date_range
// Strategy entry and exit
if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.entry("Sell", strategy.short)
if (buyTakeProfit)
strategy.close("Buy", comment="TP Buy")
if (sellTakeProfit)
strategy.close("Sell", comment="TP Sell")
// Plot HMAs on chart
plot(hma200, color=color.blue, title="HMA 200", linewidth=2)
plot(hma150, color=color.orange, title="HMA 150", linewidth=2)
// Plot signals on chart
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(buyTakeProfit, title="Buy TP", location=location.abovebar, color=color.yellow, style=shape.diamond, size=size.tiny)
plotshape(sellTakeProfit, title="Sell TP", location=location.belowbar, color=color.yellow, style=shape.diamond, size=size.tiny)