यह रणनीति दोहरी चलती औसत क्रॉसओवर के सिद्धांत पर आधारित एक मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति खरीद संकेत उत्पन्न करती है जब अल्पकालिक एसएमए दीर्घकालिक एसएमए के ऊपर पार हो जाती है, और बेच संकेत उत्पन्न करती है जब अल्पकालिक एसएमए दीर्घकालिक एसएमए के नीचे पार हो जाती है। रणनीति कोड में दिनांक सीमा और समय सीमा के लिए सेटिंग्स भी पेश की जाती हैं, जो रणनीति के लचीले बैकटेस्टिंग और अनुकूलन की अनुमति देता है।
इस रणनीति का मूल सिद्धांत विभिन्न अवधियों के चलती औसत के बीच क्रॉसओवर संबंध का उपयोग करके मूल्य रुझानों में परिवर्तन को पकड़ना है। चलती औसत एक आम तौर पर उपयोग किया जाने वाला तकनीकी संकेतक है जो अल्पकालिक उतार-चढ़ाव को फ़िल्टर करता है और एक पिछली अवधि में कीमतों का औसत करके समग्र मूल्य प्रवृत्ति को दर्शाता है। जब अल्पकालिक चलती औसत लंबी अवधि के चलती औसत से ऊपर पार हो जाती है, तो यह इंगित करता है कि कीमत एक ऊपर की प्रवृत्ति शुरू कर सकती है, एक खरीद संकेत उत्पन्न करती है; इसके विपरीत, जब अल्पकालिक चलती औसत लंबी अवधि के चलती औसत से नीचे पार हो जाती है, तो यह इंगित करता है कि कीमत एक नीचे की प्रवृत्ति शुरू कर सकती है, एक बेच संकेत उत्पन्न करती है।
एसएमए ड्यूल मूविंग एवरेज क्रॉसओवर रणनीति एक सरल, समझने में आसान और अत्यधिक अनुकूलन योग्य मात्रात्मक ट्रेडिंग रणनीति है। विभिन्न अवधियों के साथ मूविंग एवरेज के क्रॉसओवर संबंध का उपयोग करके, रणनीति प्रभावी रूप से मूल्य रुझानों में परिवर्तन को पकड़ सकती है और व्यापारियों के लिए खरीद और बिक्री संकेत प्रदान कर सकती है। हालांकि, रणनीति का प्रदर्शन पैरामीटर चयन के लिए संवेदनशील हो सकता है, और यह बाजार में अत्यधिक अस्थिरता होने पर लगातार ट्रेडिंग और लेग प्रभाव पैदा कर सकता है। रणनीति को और अधिक अनुकूलित करने के लिए, अन्य तकनीकी संकेतकों को पेश करने, पैरामीटर चयन को अनुकूलित करने, फ़िल्टरिंग स्थितियों को जोड़ने, गतिशील रूप से पैरामीटर समायोजित करने और जोखिम प्रबंधन को शामिल करने जैसे उपायों पर विचार किया जा सकता है। कुल मिलाकर, यह रणनीति मात्रात्मक ट्रेडिंग के लिए बुनियादी रणनीतियों में से एक के रूप में कार्य कर सकती है, लेकिन इसे उचित रूप से अनुकूलित करने और व्यावहारिक अनुप्रयोग में विशिष्ट स्थितियों के अनुसार सुधार करने की आवश्यकता है।
/*backtest start: 2023-06-01 00:00:00 end: 2024-06-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SMA Crossover Strategy with Date Range and Timeframe", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.USD, pyramiding=0, commission_type=strategy.commission.percent, commission_value=0) // Define the lengths for the short and long SMAs shortSMA_length = input.int(50, title="Short SMA Length", minval=1) longSMA_length = input.int(200, title="Long SMA Length", minval=1) // Define the start and end dates for the backtest startDate = input(timestamp("2024-06-01 00:00"), title="Start Date") endDate = input(timestamp("2024-06-05 00:00"), title="End Date") // Define the timeframe for the SMAs smaTimeframe = input.timeframe("D", title="SMA Timeframe") // Request the short and long SMAs from the selected timeframe dailyShortSMA = request.security(syminfo.tickerid, smaTimeframe, ta.sma(close, shortSMA_length)) dailyLongSMA = request.security(syminfo.tickerid, smaTimeframe, ta.sma(close, longSMA_length)) // Plot the SMAs on the chart plot(dailyShortSMA, color=color.blue, title="Short SMA") plot(dailyLongSMA, color=color.red, title="Long SMA") // Define the crossover conditions based on the selected timeframe SMAs buyCondition = ta.crossover(dailyShortSMA, dailyLongSMA) sellCondition = ta.crossunder(dailyShortSMA, dailyLongSMA) // Generate buy and sell signals only if the current time is within the date range if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.close("Buy") // Optional: Add visual buy/sell markers on the chart plotshape(series=buyCondition and (time >= startDate and time <= endDate), title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellCondition and (time >= startDate and time <= endDate), title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")