
Эта стратегия является стратегией отслеживания тенденций на основе нескольких технических индикаторов, объединяющих несколько технических индикаторов, таких как скользящая средняя ((EMA), средняя тенденция ((ADX) и относительно сильный индикатор ((RSI), и в сочетании с методом анализа нескольких временных рамок. Стратегия в основном подтверждает направление тенденции путем скрещивания быстрых и медленных ЭМА, используя ADX для фильтрации силы тенденции, чтобы судить о динамике рынка через RSI, что позволяет проводить высокую частоту торгов на 1-минутном графике.
Стратегия основана на следующих ключевых механизмах:
Стратегия, используя многочисленные технические показатели, создает стабильную систему отслеживания тенденций. Стратегия, сохраняя высокую победоспособность, обеспечивает значительную прибыль за счет эффективных механизмов контроля риска. Хотя есть определенные возможности для оптимизации, общая производительность удовлетворительна, особенно для трейдеров, которые стремятся к стабильной прибыли.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-17 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Enhanced Trend Following Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// === INPUTS ===
emaFastLength = input(50, title="Fast EMA Length")
emaSlowLength = input(200, title="Slow EMA Length")
adxLength = input(14, title="ADX Length")
adxSmoothing = input(14, title="ADX Smoothing")
adxThreshold = input(25, title="ADX Threshold")
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
// === INDICATORS ===
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
[dip, dim, adxValue] = ta.dmi(adxLength, adxSmoothing)
rsiValue = ta.rsi(close, rsiLength)
// === MULTI-TIMEFRAME EMA ===
emaFastHTF = request.security(syminfo.tickerid, "240", ta.ema(close, emaFastLength))
emaSlowHTF = request.security(syminfo.tickerid, "240", ta.ema(close, emaSlowLength))
// === CONDITIONS ===
bullishTrend = ta.crossover(emaFast, emaSlow) and adxValue > adxThreshold and rsiValue > rsiOversold
bearishTrend = ta.crossunder(emaFast, emaSlow) and adxValue > adxThreshold and rsiValue < rsiOverbought
// === TRADE EXECUTION ===
if (bullishTrend)
strategy.entry("Long", strategy.long)
strategy.exit("TakeProfit_Long", from_entry="Long", limit=close * 1.05, stop=close * 0.98)
if (bearishTrend)
strategy.entry("Short", strategy.short)
strategy.exit("TakeProfit_Short", from_entry="Short", limit=close * 0.95, stop=close * 1.02)
// === PLOT INDICATORS ===
plot(emaFast, color=color.blue, title="Fast EMA")
plot(emaSlow, color=color.red, title="Slow EMA")
hline(adxThreshold, "ADX Threshold", color=color.gray, linestyle=hline.style_dotted)
bgcolor(bullishTrend ? color.green : bearishTrend ? color.red : na, transp=90)
// === ALERTS ===
alertcondition(bullishTrend, title="Buy Signal", message="A bullish trend detected!")
alertcondition(bearishTrend, title="Sell Signal", message="A bearish trend detected!")
// === STRATEGY SETTINGS ===
strategy.close("Long", when=rsiValue > rsiOverbought)
strategy.close("Short", when=rsiValue < rsiOversold)