
यह रणनीति एक द्वि-समान-रेखा-पार-प्रणाली पर आधारित एक मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति दो अलग-अलग चक्रों की एक सरल चलती औसत (एसएमए) की गणना करके खरीदारी का संकेत देती है, जब यह लंबी अवधि के एसएमए को पार करती है, और जब यह लंबी अवधि के एसएमए को पार करती है, तो इसे बेचने का संकेत देती है। इस रणनीति के कोड में दिनांक सीमा और समय सीमा की सेटिंग्स भी शामिल हैं, जो रणनीति को लचीले ढंग से मापने और अनुकूलित करने की अनुमति देती हैं।
इस रणनीति का मूल सिद्धांत मूल्य प्रवृत्ति में परिवर्तन को पकड़ने के लिए विभिन्न चक्रों में चलती औसत के बीच क्रॉस-रिलेशन का उपयोग करना है। चलती औसत एक सामान्य रूप से उपयोग किया जाने वाला तकनीकी सूचक है, जो पिछले समय के लिए कीमतों का औसत करके, कीमतों की समग्र प्रवृत्ति को दर्शाने के लिए अल्पकालिक उतार-चढ़ाव को निकालता है। जब एक अल्पकालिक चलती औसत पर एक लंबी अवधि की चलती औसत को पार करता है, तो यह दर्शाता है कि कीमतों में वृद्धि की प्रवृत्ति शुरू हो सकती है, जो एक खरीद संकेत उत्पन्न करती है; इसके विपरीत, जब एक छोटी अवधि की चलती औसत के नीचे एक लंबी अवधि की चलती औसत को पार करता है, तो यह दर्शाता है कि कीमतों में गिरावट की प्रवृत्ति शुरू हो सकती है, जो एक बिक्री संकेत उत्पन्न करती है।
एसएमए द्वि-समान रेखा क्रॉसिंग रणनीति एक सरल, समझने में आसान, अनुकूलनशील, मात्रात्मक ट्रेडिंग रणनीति है। विभिन्न आवधिक चलती औसत के क्रॉसिंग संबंधों का उपयोग करके, रणनीति प्रभावी रूप से मूल्य रुझान में परिवर्तन को पकड़ने में सक्षम है, जिससे व्यापारियों को खरीदने और बेचने के संकेत मिलते हैं। हालांकि, रणनीति का प्रदर्शन पैरामीटर चयन के लिए अधिक संवेदनशील हो सकता है, और बाजार में अधिक उतार-चढ़ाव होने पर अक्सर व्यापार और विलंब प्रभाव पैदा हो सकता है। रणनीति को और अधिक अनुकूलित करने के लिए, अन्य तकनीकी संकेतकों को शामिल करने, पैरामीटर चयन को अनुकूलित करने, ओवरराइडिंग की स्थिति को बढ़ाने, पैरामीटर को गतिशील रूप से समायोजित करने और जोखिम प्रबंधन जैसे उपायों को शामिल करने पर विचार किया जा सकता है। कुल मिलाकर, यह रणनीति मात्रात्मक व्यापार के लिए बुनियादी रणनीतियों में से एक के रूप में काम कर सकती है, लेकिन वास्तविक अनुप्रयोगों में विशिष्ट परिस्थितियों के अनुसार उचित अनुकूलन और सुधार की आवश्यकता होती है।
/*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")