이 전략은 거래량 에너지 지표 (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)