
Strategi ini adalah sistem perdagangan pelacakan tren berdasarkan beberapa indikator teknis, yang terutama menggabungkan indikator MACD, indikator RSI, dan rata-rata pergerakan (MA) untuk mengonfirmasi sinyal perdagangan. Strategi ini mengadopsi pendekatan pengelolaan uang konservatif untuk mengendalikan risiko dengan menetapkan stop loss dan beberapa target keuntungan. Strategi ini berfokus pada penangkapan tren naik di pasar dan hanya mengeksekusi perdagangan panjang.
Logika inti dari strategi ini didasarkan pada konfirmasi terkoordinasi dari tiga indikator teknis:
Strategi ini membangun sistem pelacakan tren yang kuat melalui kerja sama terkoordinasi dari berbagai indikator teknis. Mekanisme pengelolaan dana yang sempurna dan desain parameter yang dapat disesuaikan menjadikannya praktis dan mudah beradaptasi. Selanjutnya, stabilitas dan profitabilitas strategi dapat lebih ditingkatkan dengan meningkatkan identifikasi status pasar, mengoptimalkan mekanisme keluar, dll.
/*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")