Стратегия следующего тренда - это стратегия торговли трендом, основанная на перекрестке скользящих средних. Она использует перекрестку экспоненциальной скользящей средней (EMA) и скользящей средней (HMA) для определения направления тренда и создания соответствующих торговых сигналов. Стратегия направлена на следование долгосрочной ценовой тенденции, а не краткосрочных колебаний.
Стратегия использует две скользящие средние с различными параметрами: более быструю EMA и более медленную HMA. EMA быстрее реагирует на изменения цен и используется для оценки краткосрочных тенденций, в то время как HMA реагирует медленнее и отслеживает направление долгосрочного тренда.
Когда более быстрая EMA пересекает более медленную HMA, это рассматривается как начало восходящей тенденции, и стратегия будет размещать длинный заказ по рыночной цене на следующем открытом бар.
Чтобы оптимизировать время входа, стратегия включает в себя опцию Хайкина-Аши. При включении сигналы покупки и продажи будут основываться на барах Хайкина-Аши вместо обычных свечей.
Когда убыток позиции достигнет заданного процента убытков, позиция будет закрыта по рыночной цене, ограничивая максимальную потерю за сделку.
Преимущества этой стратегии включают:
Использование перекрестка EMA и HMA для определения тенденций может использовать преимущества перемещающихся средних по различным периодам и повысить точность.
Торговля, основанная на тенденциях, позволяет избежать небольших колебаний и сокращает ненужные сделки.
Опция Хайкина-Аши оптимизирует время входа, отфильтровывая ложные сигналы.
Движущаяся стоп-лосс эффективно ограничивает максимальную потерю на одну сделку.
Настраиваемые параметры позволяют оптимизировать для различных продуктов и временных рамок.
Риски этой стратегии включают:
Как система, следующая за тенденцией, она показывает низкие показатели на рынках с ограниченным диапазоном.
Он может понести большие потери, когда наступит обратный тренд.
Неправильные настройки стоп-потери могут привести к ненужным остановкам или увеличению потерь.
Плохая настройка параметров может привести к переоценке или бездействию.
Периоды EMA и HMA требуют оптимизации для различных продуктов и временных рамок.
Хайкин-Аши не может полностью избежать риска ложных прорывов.
Стратегия может быть улучшена в следующих аспектах:
Используйте больше индикаторов, таких как MACD, KDJ, чтобы повысить точность тренда.
Добавьте больше фильтров, таких как громкость, ATR, чтобы уменьшить ложные перерывы.
Оптимизировать параметры скользящих средних на основе продуктов и временных рамок.
Отрегулируйте процент стоп-лосса для лучшего поведения стоп-лосса.
Рассмотрим такие функции получения прибыли, как перемещение остановки прибыли и частичное получение прибыли.
Испытать альтернативные способы расчета стоимости позиции на основе оптимизации.
Стратегия следующего тренда определяет тенденции с использованием скользящих средних кроссоверов и оптимизирует производительность с помощью Хайкина-Аши и движущегося стоп-лосса. Она подходит для среднесрочной и долгосрочной торговли трендом и может быть дополнительно улучшена с помощью настройки параметров и расширения функций. Но пользователи должны знать о рисках переворотов и неправильного стоп-лосса. В целом она обеспечивает универсальную и настраиваемую основу для торговли трендом, которая работает на разных продуктах и временных рамках. При ее применении необходимо правильное тестирование параметров.
/*backtest start: 2022-10-30 00:00:00 end: 2023-11-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("𝐉𝐔𝐈𝐂𝐘 𝐓𝐑𝐄𝐍𝐃", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=15) //Heikin Ashi Option ha = input(true, title = "Heikin Ashi Source") src = ha ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, barmerge.gaps_off, barmerge.lookahead_off) : close usestoploss = input(true, title="Stop Loss") //EMA len1 = input.int(9, minval=1, title="EMA Length") ema = ta.ema(src, len1) emaline = plot(ema, title="EMA", color=color.blue, linewidth=2) //HMA len2 = input.int(69, minval=1, title="HMA Length") hma = ta.wma(2*ta.wma(src, len2/2)-ta.wma(src, len2), math.floor(math.sqrt(len2))) hmaline = plot(hma, title="HMA", color=color.purple, linewidth=2) fillcolor = hma < ema ? color.blue : color.purple fill(emaline, hmaline, title="EMA Fill", color=color.new(fillcolor, 80), editable=true) //Stop Loss Conditions stoplosspercent = input.float(title="Stop Loss (%)", defval=-6.5, minval=-50, maxval=0, step=.1) / 100 stoploss = strategy.position_avg_price * (1 + stoplosspercent) stop = stoploss > close and stoploss[1] < close[1] and strategy.position_size > 0 and usestoploss //Buy Sell Conditions buy = hma < ema sell = hma > ema //Trades and Alerts if buy strategy.entry("Long Position", strategy.long, comment="BUY") // alert("{\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar) if sell and strategy.openprofit > 0 strategy.close("Long Position", comment="SELL") // alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar) if stop strategy.close("Long Position", comment="STOP") // alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar) //Alternate Labels var pos = 0 if buy and pos <= 0 pos := 1 if sell and pos >= 0 pos := -1 buylabel = pos == 1 and (pos != 1)[1] selllabel = pos == -1 and (pos != -1)[1] //Plot Labels plotshape(buylabel, style=shape.labelup, location=location.belowbar, color=color.blue, text="BUY", textcolor=color.white, size=size.tiny) plotshape(selllabel, style=shape.labeldown, location=location.abovebar, color=color.purple, text="SELL", textcolor=color.white, size=size.tiny) plotshape(stop, style=shape.labeldown, location=location.abovebar, color=color.yellow, text="STOP", textcolor=color.white, size=size.tiny)