Esta estrategia es un sistema de negociación basado en múltiples indicadores técnicos, que combina MACD, RSI y promedios móviles (MA) para la confirmación de señales comerciales. Emplea un enfoque de gestión de dinero conservador con objetivos de stop-loss y múltiples ganancias para el control de riesgos. La estrategia se centra en capturar las tendencias al alza del mercado a través de posiciones largas.
La lógica central se basa en la confirmación de tres indicadores técnicos:
Esta estrategia construye un robusto sistema de seguimiento de tendencias a través de la sinergia de múltiples indicadores técnicos. Su mecanismo de gestión de dinero integral y diseño ajustable de parámetros proporcionan una buena practicidad y adaptabilidad. Las mejoras futuras pueden centrarse en la identificación del estado del mercado y la optimización del mecanismo de salida para mejorar aún más la estabilidad y la rentabilidad de la estrategia.
/*backtest start: 2024-12-29 00:00:00 end: 2025-01-05 00:00:00 period: 15m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Saudi Market Buy-Only Strategy (Customizable)", overlay=true) // مدخلات المستخدم لتخصيص القيم // رأس المال وإدارة المخاطر capital = input.float(10000, title="رأس المال (ريال)", minval=1000) // رأس المال الافتراضي riskPercent = input.float(2, title="نسبة المخاطرة (%)", minval=0.1, maxval=10) / 100 // نسبة المخاطرة buySLPercent = input.float(1, title="وقف الخسارة (%)", minval=0.1, maxval=10) / 100 // وقف الخسارة tp1Percent = input.float(2, title="الهدف الأول (%)", minval=0.1, maxval=20) / 100 // الهدف الأول tp2Percent = input.float(3, title="الهدف الثاني (%)", minval=0.1, maxval=30) / 100 // الهدف الثاني // إعدادات المؤشرات الفنية macdFastLength = input.int(12, title="MACD - فترة المتوسط السريع", minval=1) macdSlowLength = input.int(26, title="MACD - فترة المتوسط البطيء", minval=1) macdSignalLength = input.int(9, title="MACD - فترة الإشارة", minval=1) rsiLength = input.int(14, title="RSI - فترة المؤشر", minval=1) rsiThreshold = input.int(50, title="RSI - مستوى الدخول", minval=1, maxval=100) ma50Length = input.int(50, title="MA50 - فترة المتوسط المتحرك", minval=1) ma200Length = input.int(200, title="MA200 - فترة المتوسط المتحرك", minval=1) // حساب إدارة المخاطر riskAmount = capital * riskPercent // قيمة المخاطرة // حساب المؤشرات الفنية [macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength) rsiValue = ta.rsi(close, rsiLength) ma50 = ta.sma(close, ma50Length) ma200 = ta.sma(close, ma200Length) // تعريف الاتجاه العام للسوق باستخدام المتوسطات isBullishTrend = ma50 > ma200 // شروط الدخول شراء فقط if ta.crossover(macdLine, signalLine) and rsiValue > rsiThreshold and isBullishTrend entryPrice = close stopLoss = entryPrice * (1 - buySLPercent) // وقف الخسارة أسفل نقطة الدخول takeProfit1 = entryPrice * (1 + tp1Percent) // الهدف الأول takeProfit2 = entryPrice * (1 + tp2Percent) // الهدف الثاني strategy.entry("Buy", strategy.long) // فتح صفقة شراء strategy.exit("TP1", "Buy", limit=takeProfit1, stop=stopLoss) strategy.exit("TP2", "Buy", limit=takeProfit2) // رسم خطوط المتوسطات plot(ma50, color=color.blue, title="MA50") plot(ma200, color=color.orange, title="MA200")