यह रणनीति समय-आधारित निकास तंत्र के साथ प्रवृत्ति के बाद को जोड़ती है। मूल अवधारणा जोखिम नियंत्रण के लिए वर्ष के अंत में मजबूर परिसमापन तंत्र को शामिल करते हुए 60-दिवसीय चलती औसत के साथ मूल्य संबंधों की निगरानी करके बाजार के रुझानों को पकड़ना है। लंबी स्थिति तब दर्ज की जाती है जब समापन मूल्य सकारात्मक ढलान के साथ 60-दिवसीय एमए से ऊपर टूट जाता है, और सभी पदों को प्रत्येक वर्ष के अंतिम व्यापार दिवस पर बंद कर दिया जाता है।
यह रणनीति कई मुख्य तत्वों पर आधारित हैः 1. रुझान निर्धारण: रुझान की दिशा की पुष्टि के लिए 14-दिवसीय ढलान गणना के साथ मध्यम अवधि के रुझान संकेतक के रूप में 60-दिवसीय सरल चलती औसत (एसएमए) का उपयोग करता है। 2. प्रवेश संकेतः खरीद संकेत तब उत्पन्न होते हैं जब मूल्य सकारात्मक ढलान के साथ 60-दिवसीय एमए से ऊपर टूट जाता है, जो एक संभावित अपट्रेंड का संकेत देता है। 3. निकास तंत्र: क्रॉस-ईयर स्थिति जोखिमों से बचने के लिए प्रत्येक वर्ष के अंतिम व्यापार दिवस पर सभी पदों को बंद करते हुए एक निश्चित समय आधारित निकास लागू करता है। 4. व्यापार समय प्रबंधनः यह सुनिश्चित करता है कि लेनदेन केवल वैध व्यापार दिवसों पर ही हो।
यह रणनीति समय प्रबंधन के साथ प्रवृत्ति का पालन करके एक अपेक्षाकृत मजबूत ट्रेडिंग प्रणाली बनाती है। इसका सरल और स्पष्ट तर्क इसे समझने और लागू करने में आसान बनाता है, अच्छी व्यावहारिक उपयोगिता प्रदान करता है। उचित पैरामीटर अनुकूलन और पूरक जोखिम नियंत्रण उपायों के साथ, रणनीति वास्तविक ट्रेडिंग स्थितियों में स्थिर रिटर्न उत्पन्न करने की क्षमता दिखाती है।
/*backtest start: 2025-01-09 00:00:00 end: 2025-01-16 00:00:00 period: 3m basePeriod: 3m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Buy above 60-day MA, Sell at year-end", overlay=true, pyramiding=1) // Define inputs for start and end dates startDate = input(defval=timestamp("2010-01-01"), title="Start Date") endDate = input(defval=timestamp("2024-12-31"), title="End Date") // Define 60-day moving average length = input.int(defval=60, title="MA Length", minval=1) ma = ta.sma(close, length) slope = ta.sma(ma, 14) - ta.sma(ma, 14)[1] // Check if current bar is within the specified date range withinDateRange = true // Function to check if a day is a trading day (Monday to Friday) isTradingDay(day) => true // Check if current bar is the last trading day of the year // Check if current bar is the last trading day of the year isLastTradingDayOfYear = false yearNow = year(time) if (month == 12 and dayofmonth == 31) isLastTradingDayOfYear := isTradingDay(time) else if (month == 12 and dayofmonth == 30) isLastTradingDayOfYear := isTradingDay(time) and not isTradingDay(time + 86400000) else if (month == 12 and dayofmonth == 29) isLastTradingDayOfYear := isTradingDay(time) and not isTradingDay(time + 86400000) and not isTradingDay(time + 86400000 * 2) // Plot moving average plot(ma, color=color.blue, linewidth=2) // Buy when closing price crosses above 60-day MA and up trend if (withinDateRange and ta.crossover(close, ma) and slope > 0) strategy.entry("Buy", strategy.long) // Sell all positions at the last trading day of the year if (isLastTradingDayOfYear) strategy.close_all(comment="Sell at year-end") // Plot buy and sell signals //plotshape(series=ta.crossover(close, ma), location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") //plotshape(series=isLastTradingDayOfYear, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")