
Esta estrategia es un sistema de trading de seguimiento de tendencias basado en múltiples indicadores técnicos, que combina principalmente el indicador MACD, el indicador RSI y el promedio móvil (MA) para confirmar las señales comerciales. La estrategia adopta un enfoque de gestión monetaria conservadora para controlar el riesgo estableciendo límites de pérdidas y múltiples objetivos de ganancias. La estrategia se centra en capturar tendencias alcistas en el mercado y ejecuta únicamente operaciones largas.
La lógica central de la estrategia se basa en la confirmación coordinada de tres indicadores técnicos:
Esta estrategia construye un sólido sistema de seguimiento de tendencias a través de la cooperación coordinada de múltiples indicadores técnicos. El mecanismo de gestión de fondos perfecto y el diseño de parámetros ajustables lo hacen práctico y adaptable. Posteriormente, la estabilidad y rentabilidad de la estrategia se pueden mejorar aún más incrementando la identificación del estado del mercado, optimizando los mecanismos de salida, etc.
/*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")