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

RSI 필터와 OBV-SMA 크로스오버 다차원 모멘텀 거래 전략

저자:차오장, 날짜: 2024-11-29 16:31:19
태그:OBVSMARSITPSL

img

전반적인 설명

이 전략은 다차원적인 모멘텀 거래 시스템으로, 밸런스 볼륨 (OBV), 단순 이동 평균 (SMA), 상대 강도 지수 (RSI) 를 결합한다. 이 전략은 OBV와 이동 평균 사이의 크로스오버 신호를 모니터링함으로써 시장 모멘텀을 포착하며, 과도한 트렌드 추격을 피하기 위해 RSI를 필터로 사용한다. 이 전략은 또한 균형 잡힌 위험 보상 관리를 달성하기 위해 비율 기반의 스톱 로스 및 영업 메커니즘을 통합한다.

전략 원칙

핵심 논리는 세 가지 차원으로 구성되어 있습니다.

  1. OBV 지표는 시장의 구매력과 판매력을 반영하기 위해 가격 움직임 방향에 기초하여 축적된 부피를 계산함으로써 누적 된 부피 정서를 측정합니다.
  2. OBV의 20주기 이동 평균은 기준으로 작용한다. OBV가 RSI가 70 이하로 이동 평균을 넘어서면 긴 신호가 발생하고, OBV가 RSI가 30 이상으로 아래로 넘어가면 짧은 신호가 발생한다.
  3. RSI 구현은 과잉 매수/ 과잉 판매 영역에서 거래를 방지하기 위한 필터 역할을 하며, 가짜 브레이크 위험도 효과적으로 줄입니다.

이 전략은 고정된 비율의 스톱 로스 (2%) 및 영업 수익 (4%) 를 사용하며, 안정적인 위험/이익 비율을 유지하는 데 도움이 되는 대칭적인 리스크 관리 프레임워크를 만듭니다.

전략적 장점

  1. 다차원 신호 확인은 잘못된 신호의 영향을 줄입니다.
  2. 부피, 가격 동력 및 과잉 구매/ 과잉 판매 지표의 유기적 통합
  3. 고정된 스톱 로스 및 수익 목표와 함께 명확한 리스크 관리 프레임워크
  4. 간단하고 명확한 전략 논리, 이해하기 쉽고 유지하기 쉽습니다
  5. 명확한 거래 신호와 지표 디스플레이와 함께 우수한 시각화 디자인

전략 위험

  1. 높은 변동성 시장에서 자주 스톱 로스를 유발할 수 있습니다.
  2. 일정한 비율의 정지는 모든 시장 조건에 적합하지 않을 수 있습니다.
  3. RSI 필터링 조건은 중요한 트렌드 시작을 놓칠 수 있습니다.
  4. OBV 지표는 유동성이 낮은 환경에서 잘못된 신호를 생성할 수 있습니다.
  5. 전략은 시장의 순환적 특성을 고려하지 않습니다

전략 최적화 방향

  1. ATR 기반 또는 변동성 조정 정지 장치와 같은 적응식 스톱 손실 메커니즘을 도입합니다.
  2. 주요 트렌드 방향에 대한 장기 이동 평균과 같은 트렌드 필터를 추가합니다.
  3. RSI 매개 변수를 최적화하고, 과잉 구매/ 과잉 판매 기준을 동적으로 조정하는 것을 고려합니다.
  4. 유효한 볼륨 지원으로 신호를 트리거를 보장하기 위해 볼륨 스크린 조건을 추가
  5. 높은 변동성을 피하기 위해 시간 필터를 고려하십시오.
  6. 역동적 위치 조정을 위한 위치 관리 메커니즘을 구현

요약

이 전략은 기술 지표의 장점을 결합하여 완전한 거래 시스템을 구축하는 잘 설계된 다차원적 모멘텀 거래 전략이다. 핵심 강점은 다층 신호 확인 메커니즘과 표준화된 위험 관리 프레임워크에 있다. 잠재적인 위험이 있지만 제안된 최적화 방향은 전략의 탄력성과 적응력을 더욱 향상시킬 수 있다. 전략의 실용적 가치는 주로 명확한 논리, 구현 용이성 및 유지보수에 반영된다. 거래자는 다양한 시장 조건 하에서 성능을 철저히 테스트하고 라이브 배포 전에 특정 필요에 따라 매개 변수를 최적화하는 것이 좋습니다.


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

//@version=5
strategy("OBV Strategy with SMA, RSI, SL and TP (Improved Visualization)", overlay=true)

// حساب OBV يدويًا
obv = ta.cum(math.sign(close - close[1]) * volume)

// إعداد المتوسط المتحرك البسيط لـ OBV
lengthOBV = input(20, title="OBV SMA Length")
obvSMA = ta.sma(obv, lengthOBV)

// إعداد مؤشر RSI
lengthRSI = input(14, title="RSI Length")
rsi = ta.rsi(close, lengthRSI)

// إعدادات وقف الخسارة وجني الأرباح
stopLossPerc = input(2.0, title="Stop Loss %") / 100   // 2% وقف خسارة
takeProfitPerc = input(4.0, title="Take Profit %") / 100   // 4% جني أرباح

// حساب مستوى وقف الخسارة وجني الأرباح
longStopLoss = close * (1 - stopLossPerc)
longTakeProfit = close * (1 + takeProfitPerc)
shortStopLoss = close * (1 + stopLossPerc)
shortTakeProfit = close * (1 - takeProfitPerc)

// إعداد شروط الشراء
longCondition = ta.crossover(obv, obvSMA) and rsi < 70
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit)

// إعداد شروط البيع
shortCondition = ta.crossunder(obv, obvSMA) and rsi > 30
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// رسم OBV والمؤشرات الأخرى على الرسم البياني
plot(obv, title="OBV", color=color.blue, linewidth=2) // رسم OBV بخط أزرق عريض
plot(obvSMA, title="OBV SMA", color=color.orange, linewidth=2) // رسم SMA بخط برتقالي

// رسم إشارات الشراء والبيع على الرسم البياني
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// رسم RSI في نافذة منفصلة بوضوح أكبر
hline(70, "RSI Overbought", color=color.red, linestyle=hline.style_dashed)
hline(30, "RSI Oversold", color=color.green, linestyle=hline.style_dashed)
plot(rsi, title="RSI", color=color.purple, linewidth=2)

// إضافة منطقة RSI بالألوان
bgcolor(rsi > 70 ? color.new(color.red, 90) : rsi < 30 ? color.new(color.green, 90) : na)


관련

더 많은