
Chiến lược này là một hệ thống giao dịch theo dõi xu hướng dựa trên nhiều chỉ báo kỹ thuật, chủ yếu kết hợp chỉ báo MACD, chỉ báo RSI và đường trung bình động (MA) để xác nhận tín hiệu giao dịch. Chiến lược này áp dụng phương pháp quản lý tiền thận trọng để kiểm soát rủi ro bằng cách đặt mức dừng lỗ và nhiều mục tiêu lợi nhuận. Chiến lược này tập trung vào việc nắm bắt xu hướng tăng của thị trường và chỉ thực hiện các giao dịch dài hạn.
Logic cốt lõi của chiến lược này dựa trên sự xác nhận phối hợp của ba chỉ số kỹ thuật:
Chiến lược này xây dựng một hệ thống theo dõi xu hướng mạnh mẽ thông qua sự hợp tác phối hợp của nhiều chỉ báo kỹ thuật. Cơ chế quản lý quỹ hoàn hảo và thiết kế tham số có thể điều chỉnh giúp nó trở nên thiết thực và dễ thích nghi. Sau đó, tính ổn định và lợi nhuận của chiến lược có thể được cải thiện hơn nữa bằng cách tăng cường nhận diện vị thế thị trường, tối ưu hóa cơ chế thoát hiểm, v.v.
/*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")