یہ حکمت عملی 20 دن اور 200 دن کے تیزی سے چلنے والے اوسط (ای ایم اے) کے کراس اوور پر مبنی خرید اور فروخت کے سگنل تیار کرتی ہے ، جس کی تصدیق رلیٹیو سٹرنس انڈیکس (آر ایس آئی) اور موونگ ایوریج کنورجنس ڈائیورجنس (ایم اے سی ڈی) اشارے کرتے ہیں۔ حکمت عملی تجارتی خطرات کو سنبھالنے اور منافع کو مقفل کرنے کے لئے متحرک اسٹاپ نقصان اور فکسڈ منافع کے ہدف کے طریقوں کو استعمال کرتی ہے۔
ای ایم اے کراس اوور سگنلز کو آر ایس آئی اور ایم اے سی ڈی کی تصدیق کے ساتھ مل کر متحرک اسٹاپ نقصان اور مقررہ منافع کے ہدف کے رسک مینجمنٹ کے طریقوں کے ساتھ مل کر ، اس حکمت عملی کا مقصد رجحان سازی کی منڈیوں میں مستحکم منافع حاصل کرنا ہے۔ تاہم ، ہلچل مچانے والی منڈیوں میں ، حکمت عملی کو کثرت سے تجارت اور لگاتار نقصانات کے خطرات کا سامنا کرنا پڑ سکتا ہے۔ لہذا ، حکمت عملی کی موافقت اور استحکام کو بڑھانے کے لئے مزید اصلاحات اور بہتری کی ضرورت ہے۔
/*backtest start: 2023-06-11 00:00:00 end: 2024-06-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy with RSI and MACD Confirmation and Dynamic Trailing Stop Loss", overlay=true) // Calculate EMAs ema20 = ta.ema(close, 20) ema200 = ta.ema(close, 200) // Calculate RSI rsi = ta.rsi(close, 14) // Calculate MACD [macdLine, signalLine, _] = ta.macd(close, 12, 26, 9) // Plot EMAs, RSI, and MACD on the chart plot(ema20, color=color.blue, title="EMA 20") plot(ema200, color=color.red, title="EMA 200") hline(70, "Overbought", color=color.red) hline(30, "Oversold", color=color.green) plot(rsi, title="RSI", color=color.orange) hline(0, "Zero Line", color=color.gray) plot(macdLine, title="MACD Line", color=color.aqua) plot(signalLine, title="Signal Line", color=color.fuchsia) // Strategy parameters targetProfitPercent = 20 trailingStopIncrement = 10 // Strategy variables var float initialStopLevel = na var float trailingStopLevel = na // Strategy rules with RSI and MACD confirmation longCondition = ta.crossover(ema20, ema200) and rsi > 50 and macdLine > signalLine shortCondition = ta.crossunder(ema20, ema200) and rsi < 50 and macdLine < signalLine // Execute trades if (longCondition) strategy.entry("Buy Call", strategy.long) initialStopLevel := strategy.position_avg_price * (1 - 0.10) // Initial stop-loss at 10% below entry price if (shortCondition) strategy.entry("Buy Put", strategy.short) // Calculate profit and loss targets takeProfit = strategy.position_avg_price * (1 + targetProfitPercent / 100) // 20% profit target // Update trailing stop loss if (strategy.opentrades > 0) if (strategy.position_size > 0) // Long position if (strategy.netprofit >= takeProfit) // Update stop-loss based on profit increments if (trailingStopLevel == na) trailingStopLevel := strategy.position_avg_price * (1 - 0.10) // Initial trailing stop at 10% below entry price else if (strategy.position_avg_price * (1 - 0.10) > trailingStopLevel) trailingStopLevel := strategy.position_avg_price * (1 - 0.10) // Increase stop-loss to 10% below current price // Apply trailing stop loss strategy.exit("Take Profit", "Buy Call", stop=trailingStopLevel) // Plot buy and sell signals on the chart plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")