
यह एक मात्रात्मक ट्रेडिंग रणनीति है जो एकाधिक औसत रेखाओं को पार करने पर आधारित है, जिसमें एक पारगमन फ़िल्टर शामिल है। यह रणनीति तीन अलग-अलग चक्रों की चलती औसत (फास्ट ईएमए, धीमी ईएमए और ट्रेंडिंग एसएमए) का उपयोग करती है, और ट्रेडिंग सिग्नल की प्रभावशीलता की पुष्टि करने के लिए एक पारगमन फ़िल्टर शामिल है। रणनीति में स्टॉप-लॉस और स्टॉप-स्टॉप भी शामिल हैं, जो जोखिम को प्रभावी ढंग से नियंत्रित करती है।
यह रणनीति निम्नलिखित मुख्य तत्वों पर आधारित है:
इस रणनीति में कई तकनीकी संकेतकों के संयोजन के माध्यम से एक अपेक्षाकृत पूर्ण ट्रेडिंग प्रणाली का निर्माण किया गया है। इस रणनीति का मुख्य लाभ कई पुष्टिकरण तंत्रों और पूर्ण जोखिम नियंत्रण में है, लेकिन वास्तविक बाजार स्थितियों के आधार पर पैरामीटर अनुकूलन और रणनीति में सुधार की आवश्यकता है। उचित अनुकूलन और जोखिम नियंत्रण के साथ, इस रणनीति को ट्रेंडिंग बाजार में स्थिर रिटर्न की उम्मीद है।
/*backtest
start: 2024-02-22 00:00:00
end: 2024-12-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Optimized Moving Average Crossover Strategy with Volume Filter", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs for Moving Averages
fastLength = input.int(9, title="Fast MA Length")
slowLength = input.int(21, title="Slow MA Length")
trendFilterLength = input.int(50, title="Trend Filter Length")
// Risk Management Inputs
stopLossPercent = input.float(1, title="Stop Loss (%)", step=0.1)
takeProfitPercent = input.float(400, title="Take Profit (%)", step=0.1)
// Volume Filter Input
volumeMultiplier = input.float(1.5, title="Volume Multiplier", step=0.1) // Multiplier for average volume
// Moving Averages
fastMA = ta.ema(close, fastLength)
slowMA = ta.ema(close, slowLength)
trendMA = ta.sma(close, trendFilterLength) // Long-term trend filter
// Volume Calculation
avgVolume = ta.sma(volume, 20) // 20-period average volume
volumeCondition = volume > avgVolume * volumeMultiplier // Volume must exceed threshold
// Plotting Moving Averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
plot(trendMA, color=color.green, title="Trend Filter MA")
// Entry Conditions (Filtered by Trend and Volume)
longCondition = ta.crossover(fastMA, slowMA) and close > trendMA and volumeCondition
shortCondition = ta.crossunder(fastMA, slowMA) and close < trendMA and volumeCondition
// Execute Trades
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit Conditions: Stop Loss and Take Profit
if (strategy.position_size > 0)
strategy.exit("Exit Long", "Long", stop=strategy.position_avg_price * (1 - stopLossPercent / 100), limit=strategy.position_avg_price * (1 + takeProfitPercent / 100))
if (strategy.position_size < 0)
strategy.exit("Exit Short", "Short", stop=strategy.position_avg_price * (1 + stopLossPercent / 100), limit=strategy.position_avg_price * (1 - takeProfitPercent / 100))
// Additional Alerts
alertcondition(longCondition, title="Long Signal", message="Go Long!")
alertcondition(shortCondition, title="Short Signal", message="Go Short!")
// Debugging Labels
if (longCondition)
label.new(bar_index, close, "Long", style=label.style_label_up, color=color.green, textcolor=color.white)
if (shortCondition)
label.new(bar_index, close, "Short", style=label.style_label_down, color=color.red, textcolor=color.white)