Strategi ini adalah sistem dagangan kuantitatif frekuensi tinggi berdasarkan penunjuk EMA dan MACD, digabungkan dengan stop-loss dinamik ATR dan pengurusan kedudukan pintar. Strategi ini menggunakan persilangan EMA 9 tempoh dan 21 tempoh sebagai isyarat masuk utama, yang disahkan oleh penunjuk MACD, dan mengira sasaran stop-loss dan keuntungan secara dinamik melalui ATR, mencapai gelung dagangan dan sistem kawalan risiko yang lengkap.
Strategi ini menggunakan pelbagai penunjuk teknikal untuk mengenal pasti peluang perdagangan. Pertama, ia menggunakan persilangan EMA jangka pendek (9) dan jangka panjang (21) sebagai isyarat awal, menghasilkan isyarat panjang apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang, dan sebaliknya. Kedua, ia menggunakan penunjuk MACD yang dioptimumkan (6,13,4) untuk pengesahan isyarat, yang memerlukan hubungan garis MACD dan garis isyarat untuk menyelaraskan dengan arah persimpangan EMA. Untuk kawalan risiko, strategi menggunakan penunjuk ATR untuk mengira jarak berhenti-kerugian secara dinamik sambil mengekalkan nisbah risiko-balasan 1: 2 untuk sasaran keuntungan. Di samping itu, strategi melaksanakan pengurusan risiko berasaskan peratusan saiz akaun, mengehadkan risiko setiap perdagangan kepada 1% daripada akaun.
Strategi ini menggabungkan penunjuk teknikal klasik dengan kaedah pengurusan risiko moden untuk membina sistem perdagangan frekuensi tinggi yang lengkap. Kelebihan utamanya terletak pada pengesahan isyarat berganda dan kawalan risiko yang ketat, walaupun ia masih memerlukan ujian dan pengoptimuman menyeluruh dalam persekitaran perdagangan langsung. Melalui peningkatan berterusan dan penyempurnaan pengurusan risiko, strategi ini menunjukkan janji untuk mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-04 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("High-Frequency Trade Script with EMA, MACD, and ATR-based TP/SL", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=2, initial_capital=100000) // إعداد المؤشرات emaBuy = ta.ema(close, 9) // EMA بفترة قصيرة للشراء emaSell = ta.ema(close, 21) // EMA بفترة أطول للبيع [macdLine, signalLine, _] = ta.macd(close, 6, 13, 4) // MACD بفترات قصيرة atr = ta.atr(14) // حساب مؤشر ATR // إعداد نسبة وقف الخسارة وجني الأرباح stopLossATRMultiplier = 1.5 // تقليل وقف الخسارة لـ 1.5 * ATR riskToRewardRatio = 2.0 // نسبة العائد إلى المخاطرة 1:2 // إعداد إدارة المخاطر riskPercentage = 1.0 // المخاطرة كـ 1% من رأس المال capital = strategy.equity // إجمالي رأس المال riskAmount = capital * (riskPercentage / 100) // مقدار المخاطرة // شروط إشارات الشراء: تقاطع EMA القصير فوق الطويل و MACD أعلى من Signal longCondition = ta.crossover(emaBuy, emaSell) and macdLine > signalLine // شروط إشارات البيع: تقاطع EMA القصير تحت الطويل و MACD أسفل Signal shortCondition = ta.crossunder(emaBuy, emaSell) and macdLine < signalLine // --- تنفيذ أوامر الشراء والبيع تلقائيًا مع وقف الخسارة وجني الأرباح --- // // تعريف خطوط وقف الخسارة وجني الأرباح var line longStopLossLine = na var line longTakeProfitLine = na var line shortStopLossLine = na var line shortTakeProfitLine = na if (longCondition) longEntryPrice = close // سعر الدخول للشراء longStopLoss = longEntryPrice - (atr * stopLossATRMultiplier) // وقف الخسارة بناءً على ATR longTakeProfit = longEntryPrice + ((longEntryPrice - longStopLoss) * riskToRewardRatio) // جني الأرباح بنسبة 1:2 // حساب حجم الصفقة بناءً على مقدار المخاطرة positionSize = riskAmount / (longEntryPrice - longStopLoss) // حجم العقد // إدخال أمر الشراء strategy.entry("Buy", strategy.long, qty=positionSize) // إعداد أوامر وقف الخسارة وجني الأرباح strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit) // رسم الخطوط لجني الأرباح ووقف الخسارة // longStopLossLine := line.new(bar_index, longStopLoss, bar_index + 1, longStopLoss, color=color.red, width=1, style=line.style_dashed) // خط وقف الخسارة // longTakeProfitLine := line.new(bar_index, longTakeProfit, bar_index + 1, longTakeProfit, color=color.green, width=1, style=line.style_dashed) // خط جني الأرباح if (shortCondition) shortEntryPrice = close // سعر الدخول للبيع shortStopLoss = shortEntryPrice + (atr * stopLossATRMultiplier) // وقف الخسارة بناءً على ATR shortTakeProfit = shortEntryPrice - ((shortStopLoss - shortEntryPrice) * riskToRewardRatio) // جني الأرباح بنسبة 1:2 // حساب حجم الصفقة بناءً على مقدار المخاطرة positionSize = riskAmount / (shortStopLoss - shortEntryPrice) // حجم العقد // إدخال أمر البيع strategy.entry("Sell", strategy.short, qty=positionSize) // إعداد أوامر وقف الخسارة وجني الأرباح strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit) // رسم الخطوط لجني الأرباح ووقف الخسارة // shortStopLossLine := line.new(bar_index, shortStopLoss, bar_index + 1, shortStopLoss, color=color.red, width=1, style=line.style_dashed) // خط وقف الخسارة // shortTakeProfitLine := line.new(bar_index, shortTakeProfit, bar_index + 1, shortTakeProfit, color=color.green, width=1, style=line.style_dashed) // خط جني الأرباح // --- رسم مؤشرات منفصلة --- // plot(emaBuy, title="EMA Buy (9)", color=color.green, linewidth=2) // EMA الشراء plot(emaSell, title="EMA Sell (21)", color=color.red, linewidth=2) // EMA البيع plot(macdLine, title="MACD Line", color=color.blue, linewidth=1) // MACD Line plot(signalLine, title="Signal Line", color=color.orange, linewidth=1) // Signal Line