이 전략은 평균 회귀와 트렌드 다음 접근 방식을 결합한 하이브리드 시스템으로, RSI, 볼링거 밴드 및 여러 EMA 지표를 활용하여 시장의 과잉 구매 및 과잉 판매 기회를 포착합니다. 전략은 트렌드 확인 및 범위 제한 시장 식별을 통합하여 전통적인 기술 분석을 향상시켜 정확도를 크게 향상시킵니다.
이 전략은 거래 신호에 대해 세 가지 검증 메커니즘을 사용합니다. 처음에는 RSI (30 이하 또는 70 이상) 를 사용하여 과반 구매 / 과반 판매 조건을 식별합니다. 둘째, 볼링거 밴드 브레이크오웃을 사용하여 신호를 확인합니다. 마지막으로 100/50 일 EMA 상대적 위치 및 변동성을 사용하여 시장 트렌드를 검증합니다. 세 가지 조건이 일치 할 때만 거래가 실행됩니다. 전략은 또한 범위 제한 시장 식별을 위해 EMA 변동성 평가를 통합합니다.
이 전략은 여러 기술적 지표의 시너지 효과를 통해 탄력성과 유연성의 균형을 이룬다. 명확한 논리와 간결한 구현으로 실용적인 가치를 입증한다. 적절한 매개 변수 최적화와 위험 관리를 통해 전략은 다양한 시장 조건에서 일관된 성과를 낼 수 있는 잠재력을 보여준다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-11-11 00:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BTC Dominance Analysis Strategy (Improved)", overlay=true) // Input Parameters rsi_period = input(14, title="RSI Period") bb_period = input(20, title="Bollinger Band Period") bb_std_dev = input(2.0, title="Bollinger Std Dev") ema_period = input(100, title="100 EMA Period") ema_30_period = input(30, title="30 EMA Period") ema_50_period = input(50, title="50 EMA Period") // RSI Calculation rsi_value = ta.rsi(close, rsi_period) // Bollinger Bands Calculation basis = ta.sma(close, bb_period) dev = bb_std_dev * ta.stdev(close, bb_period) upper_bb = basis + dev lower_bb = basis - dev // EMA Calculation ema_100 = ta.ema(close, ema_period) ema_30 = ta.ema(close, ema_30_period) ema_50 = ta.ema(close, ema_50_period) // Determine EMA trends range_bound_ema = math.abs(ema_100 - ta.sma(ema_100, 10)) < ta.stdev(ema_100, 10) uptrend_ema = ema_100 > ema_50 downtrend_ema = ema_100 < ema_50 // Long Condition: All 3 conditions must be met // 1. RSI < 30 // 2. BTC Dominance < lower Bollinger Band // 3. 100 EMA must be range-bound or in an uptrend (but NOT in a downtrend) long_condition = (rsi_value < 30) and (close < lower_bb) and (range_bound_ema or uptrend_ema) // Short Condition: All 3 conditions must be met // 1. RSI > 70 // 2. BTC Dominance > upper Bollinger Band // 3. 100 EMA must be range-bound or in a downtrend (but NOT in an uptrend) short_condition = (rsi_value > 70) and (close > upper_bb) and (range_bound_ema or downtrend_ema) // Plot Buy and Sell Signals for Debugging plotshape(long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Execute Buy Trade if (long_condition) strategy.entry("Buy", strategy.long) // Execute Sell Trade if (short_condition) strategy.entry("Sell", strategy.short) // Plot Bollinger Bands and EMA plot(upper_bb, color=color.red, title="Upper Bollinger Band") plot(lower_bb, color=color.green, title="Lower Bollinger Band") plot(ema_100, color=color.blue, title="100 EMA") plot(ema_50, color=color.orange, title="50 EMA") // plot(rsi_value, "RSI", color=color.purple) // Display background color for Buy and Sell signals bgcolor(long_condition ? color.new(color.green, 90) : na, title="Buy Background") bgcolor(short_condition ? color.new(color.red, 90) : na, title="Sell Background")