
이 전략은 여러 가지 기술 지표를 기반으로 한 추세 추적 거래 시스템으로, 주로 MACD 지표, RSI 지표, 이동 평균(MA)을 결합하여 거래 신호를 확인합니다. 이 전략은 손절매와 여러 수익 목표를 설정하여 위험을 통제하는 보수적인 자금 관리 접근 방식을 채택합니다. 이 전략은 시장의 상승세를 포착하는 데 초점을 맞추고 롱 거래만 실행합니다.
전략의 핵심 논리는 세 가지 기술 지표의 조정된 확인에 기초합니다.
이 전략은 여러 기술 지표의 조화로운 협력을 통해 강력한 추세 추적 시스템을 구축합니다. 완벽한 자금 관리 메커니즘과 조정 가능한 매개변수 설계로 실용성과 적응성이 뛰어납니다. 이후, 시장 상태 식별 강화, 종료 메커니즘 최적화 등을 통해 전략의 안정성과 수익성을 더욱 개선할 수 있습니다.
/*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")