Esta estrategia es un sistema de comercio de impulso multidimensional que combina el volumen en balance (OBV), el promedio móvil simple (SMA) y el índice de fuerza relativa (RSI). Captura el impulso del mercado mediante el monitoreo de señales cruzadas entre OBV y su promedio móvil, mientras utiliza el RSI como un filtro para evitar la persecución excesiva de tendencias. La estrategia también incorpora mecanismos de stop-loss y take-profit basados en porcentajes para lograr una gestión equilibrada del riesgo-recompensación.
La lógica central se basa en tres dimensiones:
La estrategia emplea un porcentaje fijo de niveles de stop-loss (2%) y take-profit (4%), creando un marco de gestión del riesgo simétrico que ayuda a mantener una relación riesgo-beneficio estable.
Esta es una estrategia de comercio de impulso multidimensional bien diseñada que construye un sistema comercial completo combinando las ventajas de los indicadores técnicos. La fortaleza central radica en su mecanismo de confirmación de señales de múltiples capas y marco de gestión de riesgos estandarizado. Si bien hay riesgos potenciales, las direcciones de optimización sugeridas pueden mejorar aún más la robustez y adaptabilidad de la estrategia. El valor práctico de la estrategia se refleja principalmente en su lógica clara, facilidad de implementación y mantenimiento. Se aconseja a los operadores que prueben a fondo el rendimiento en diferentes condiciones de mercado y optimicen los parámetros de acuerdo con las necesidades específicas antes de su implementación en vivo.
/*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)