이 전략은 다차원적인 모멘텀 거래 시스템으로, 밸런스 볼륨 (OBV), 단순 이동 평균 (SMA), 상대 강도 지수 (RSI) 를 결합한다. 이 전략은 OBV와 이동 평균 사이의 크로스오버 신호를 모니터링함으로써 시장 모멘텀을 포착하며, 과도한 트렌드 추격을 피하기 위해 RSI를 필터로 사용한다. 이 전략은 또한 균형 잡힌 위험 보상 관리를 달성하기 위해 비율 기반의 스톱 로스 및 영업 메커니즘을 통합한다.
핵심 논리는 세 가지 차원으로 구성되어 있습니다.
이 전략은 고정된 비율의 스톱 로스 (2%) 및 영업 수익 (4%) 를 사용하며, 안정적인 위험/이익 비율을 유지하는 데 도움이 되는 대칭적인 리스크 관리 프레임워크를 만듭니다.
이 전략은 기술 지표의 장점을 결합하여 완전한 거래 시스템을 구축하는 잘 설계된 다차원적 모멘텀 거래 전략이다. 핵심 강점은 다층 신호 확인 메커니즘과 표준화된 위험 관리 프레임워크에 있다. 잠재적인 위험이 있지만 제안된 최적화 방향은 전략의 탄력성과 적응력을 더욱 향상시킬 수 있다. 전략의 실용적 가치는 주로 명확한 논리, 구현 용이성 및 유지보수에 반영된다. 거래자는 다양한 시장 조건 하에서 성능을 철저히 테스트하고 라이브 배포 전에 특정 필요에 따라 매개 변수를 최적화하는 것이 좋습니다.
/*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)