리소스 로딩... 로딩...

볼링거 브레이크아웃 거래 전략과 함께 멀티 이동 평균 슈퍼 트렌드

저자:차오장, 날짜: 2025-01-06 13:48:19
태그:RSIEMABBADXST

img

전반적인 설명

이 전략은 여러 지표를 결합한 포괄적인 거래 시스템으로, 주로 기하급수적인 이동 평균 (EMA), 슈퍼트렌드 지표, 볼링거 밴드 (BB), 상대적 강도 지표 (RSI) 를 기반으로 한다. 핵심 논리는 EMA와 슈퍼트렌드를 중심으로 거래 신호를 구축하고, 시장 변동성 및 추진력의 보충 분석을 위해 BB와 RSI를 통합한다. 이 시스템은 매일, 주간, 월간 기간을 포함한 다중 시간 프레임 RSI 분석을 사용하여 거래 결정에 대한 보다 포괄적인 시장 관점을 제공한다.

전략 원칙

이 전략은 시장 추세와 변동성 기회를 포착하기 위해 여러 계층의 기술 지표 조합을 사용합니다.

  1. 트리플 EMA (13,34,100) 를 사용하여 트렌드를 따르는 시스템을 구축하고, 크로스오버와 상대적 포지션을 통해 트렌드 방향을 결정합니다.
  2. 트렌드 확인 및 스톱 로스 참조를 위한 슈퍼트렌드 지표를 통합합니다.
  3. ADX 지표를 사용하여 강한 트렌드를 필터링하고 트렌드 강도 기준으로 25을 설정합니다.
  4. 가격 변동 범위를 모니터링하기 위해 볼링거 밴드 (20,2) 를 사용합니다.
  5. 시장 과반 구매/ 과반 판매 상황을 분석하기 위해 세 개의 시간 프레임 RSI (14) 를 구현합니다.

거래 신호 트리거:

  • 롱 엔트리: 슈퍼트렌드가 상승세를 향합니다. EMA13가 EMA34보다 높습니다.
  • 단기 엔트리: 슈퍼트렌드가 상승세를 향하고 EMA13가 EMA34보다 낮아지고 + 가격이 EMA100보다 낮아지고 + ADX>25
  • 출구 신호: 각 포지션 출구에 대한 가격 슈퍼 트렌드를 통과합니다.

전략적 장점

  1. 여러 가지 기술 지표의 통합은 더 신뢰할 수 있는 거래 신호를 제공하여 잘못된 신호를 효과적으로 줄입니다.
  2. 트리플 EMA 시스템은 다른 시간 프레임에 걸쳐 트렌드 특성을 포착합니다.
  3. ADX의 통합은 강력한 트렌드 시장에서만 거래를 보장합니다.
  4. 다중 시간 프레임 RSI 분석은 시장 동력을 포괄적으로 평가합니다.
  5. 슈퍼트렌드 지표는 객관적인 스톱 로스 기준점을 제공합니다.
  6. 볼링거 밴드 통합은 시장 변동성 상태와 잠재적인 유출 기회를 결정하는 데 도움이 됩니다.

전략 위험

  1. 다중 표시기 시스템은 입력 시점에 영향을 미치는 신호의 지연을 초래할 수 있습니다.
  2. 다양한 시장에서 빈번한 잘못된 파업 신호를 생성할 수 있습니다.
  3. 고정 ADX 문턱은 다른 시장 환경에서 일관성 없는 성과를 낼 수 있습니다.
  4. 급격한 시장 변동은 최적의 스톱 로스 투입을 초래할 수 있습니다. 위험 관리 제안:
  • 시장 특성에 따라 ADX 임계값을 동적으로 조정합니다.
  • 변동성 적응 스톱 로스 메커니즘을 도입
  • 신호 확인을 위한 볼륨 분석을 추가합니다

전략 최적화 방향

  1. 지표 매개 변수 최적화
  • 적응형 EMA 기간 도입을 고려합니다.
  • 변동성에 기초한 슈퍼트렌드 곱셈을 동적으로 조정합니다.
  • 다른 시장 단계에 대한 볼링거 밴드 매개 변수를 최적화
  1. 신호 시스템 강화
  • 트레이드 신호 검증을 위한 볼륨 인수를 통합
  • 시장 구조 분석을 추가
  • 변동성 필터를 구현합니다
  1. 리스크 관리 개선
  • 동적 스톱 로스 메커니즘 설계
  • 위치 크기를 설정
  • 거래 시간 필터를 추가

요약

이 전략은 여러 기술적 지표의 유기적 조합을 통해 비교적 완전한 거래 시스템을 구축합니다. EMA와 슈퍼트렌드 협업은 주요 거래 신호를 제공하며, ADX 필터링은 강력한 트렌드 환경에서 거래가 이루어지는 것을 보장하며, 볼링거 밴드 및 RSI 보조 분석은 추가 시장 관점을 제공합니다. 전략의 주요 장점은 신호 신뢰성과 시스템 완전성이며, 신호 지연 및 매개 변수 최적화에도 어려움을 겪고 있습니다. 제안된 최적화 방향을 통해 전략은 안정성을 유지하면서 수익성을 향상시킬 수 있습니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//made by Chinmay 

//@version=6
strategy("CJ - Multi1", overlay=true)

// Input for RSI length
rsi_length = input.int(14, title="RSI Length")

// Calculate Daily RSI
daily_rsi = ta.rsi(close, rsi_length)

// Calculate Weekly RSI (using security function to get weekly data)
weekly_rsi = request.security(syminfo.tickerid, "W", ta.rsi(close, rsi_length))

// Calculate Monthly RSI (using security function to get weekly data)
monthly_rsi = request.security(syminfo.tickerid, "M", ta.rsi(close, rsi_length))

// Plot the RSIs
plot(daily_rsi, color=color.blue, title="Daily RSI", linewidth=2)
plot(weekly_rsi, color=color.red, title="Weekly RSI", linewidth=2)
plot(monthly_rsi, color=color.black, title="Monthly RSI", linewidth=2)

// Create horizontal lines at 30, 50, and 70 for RSI reference
hline(30, "Oversold", color=color.green)
hline(70, "Overbought", color=color.red)
hline(50, "Neutral", color=color.gray)

// Bollinger Bands Calculation
bb_length = 20
bb_mult = 2
bb_stddev = ta.stdev(close, bb_length)
bb_average = ta.sma(close, bb_length)
bb_upper = bb_average + bb_mult * bb_stddev
bb_lower = bb_average - bb_mult * bb_stddev

plot(bb_upper, color=color.new(#ffb13b, 0), linewidth=2)
plot(bb_average, color=color.new(#b43bff, 0), linewidth=2)
plot(bb_lower, color=color.new(#ffb13b, 0), linewidth=2)

// Inputs for EMA
ema_L1 = input.int(defval=13, title="EMA Length 1")
ema_L2 = input.int(defval=34, title="EMA Length 2")
ema_L3 = input.int(defval=100, title="EMA Length 3")
adx_level = input.int(defval=25, title="ADX Level")

// Inputs for Supertrend
atr_l = input.int(defval=10, title="ATR Length")
factor = input.float(defval=3.0, title="Supertrend Multiplier")

// Calculate EMA
ema1 = ta.ema(close, ema_L1)
ema2 = ta.ema(close, ema_L2)
ema3 = ta.ema(close, ema_L3)

// Calculate Supertrend
[supertrend, direction] = ta.supertrend(factor, atr_l)

// Calculate ADX and DI
[diplus, diminus, adx] = ta.dmi(14,14)

// Buy and Sell Conditions
buy = direction == -1 and ema1 > ema2 and close > ta.ema(close, 100) and adx > adx_level
short = direction == -1 and ema1 < ema2 and close < ta.ema(close, 100) and adx > adx_level

sell = ta.crossunder(close, supertrend)
cover = ta.crossover(close, supertrend)

// Strategy Logic
if buy
    strategy.entry("Buy", strategy.long, comment="Long Entry")

if sell
    strategy.close("Buy", comment="Sell Exit")

// Uncomment for Short Strategy
if short
    strategy.entry("Short", strategy.short, comment="Short Entry")

if cover
    strategy.close("Short", comment="Cover Exit")


관련

더 많은