
इस रणनीति में ट्रेडिंग सिग्नल के रूप में दोहरी चलती औसत के क्रॉसिंग का उपयोग किया जाता है, जो एटीआर स्टॉप के साथ ट्रेंड ट्रैकिंग ट्रेडों के लिए होता है। इसका मुख्य विचार यह है कि जब शॉर्ट-टर्म मूविंग एवरेज पर लंबी अवधि के मूविंग एवरेज को पार किया जाता है, तो ओवर-पैड करें, और नीचे जाने पर खाली करें, जबकि एटीआर का उपयोग स्टॉप को सेट करने के लिए किया जाता है, गतिशील रूप से ट्रेलिंग स्टॉप।
यह रणनीति मुख्य रूप से दो समूहों के माध्यम से प्रवृत्ति की दिशा का आकलन करती है। तेजी से चलती औसत 25 दिनों की लंबाई और धीमी गति से चलती औसत 100 दिनों की लंबाई है। तेजी से चलती औसत पर धीमी गति से चलती औसत को पार करने पर एक खरीद संकेत उत्पन्न होता है; तेजी से चलती औसत के नीचे धीमी गति से चलती औसत को पार करने पर एक बिक्री संकेत उत्पन्न होता है।
कुछ झूठे संकेतों को फ़िल्टर करने के लिए, रणनीति में एक क्रॉसकाउंट काउंटर क्रॉसकाउंट जोड़ा गया है। यह केवल तभी संकेत देगा जब लुकबैक अवधि के दौरान (डिफ़ॉल्ट 25 दिन) के दौरान रैपिड मूविंग एवरेज की क्रॉस की संख्या maxNoCross से कम हो (डिफ़ॉल्ट 10 बार) ।
इसके अलावा, रणनीति में एक पुष्टिकरण तंत्र जोड़ा गया है, यदि कीमत दो चलती औसत के बीच फिर से प्रवेश करती है, तो प्रारंभिक संकेत के बाद संकेत की पुष्टि की जाती है।
प्रवेश के बाद, रणनीति एटीआर सूचक का उपयोग करती है ताकि वह स्टॉप-लॉस दूरी निर्धारित कर सके। एटीआर पिछले एक निश्चित अवधि में कीमतों के उतार-चढ़ाव की सीमा को मापता है, यहां एटीआर के 14 गुना के साथ स्टॉप-लॉस दूरी निर्धारित की जाती है। स्टॉप-लॉस लाइन मूल्य आंदोलन के साथ फ्लोटिंग ट्रैकिंग करती है।
इस रणनीति के कुछ फायदे हैं:
दोहरी चलती औसत का उपयोग एक क्रॉस फ़िल्टरिंग तंत्र के साथ किया जाता है, जो एक मजबूत प्रवृत्ति को पकड़ने के लिए झूठे संकेतों को प्रभावी रूप से फ़िल्टर करता है।
एक और पुष्टि तंत्र, एक झूठी घुसपैठ से बचने के लिए
एटीआर के साथ, फ्लोटिंग ट्रैकिंग स्टॉप लॉस को अधिकतम लाभ पर लॉक किया जा सकता है और अत्यधिक निकासी को रोकने के लिए।
अनुकूलित करने के लिए कम पैरामीटर और आसान कार्यान्वयन।
डिजिटल मुद्रा और पारंपरिक बुनियादी बाजारों सहित कई बाजारों में लागू किया जा सकता है।
रणनीति के निर्माण के लिए कई मापदंडों का व्यापक उपयोग करें, जिससे रणनीति अधिक मजबूत हो सके।
इस रणनीति में मुख्य रूप से निम्नलिखित जोखिम हैं:
चौंकाने वाले समापन चरण के दौरान, चलती औसत अक्सर पार हो जाती है, जिससे कई बार नुकसान हो सकता है।
एटीआर पैरामीटर को गलत तरीके से सेट करने से स्टॉप लॉस बहुत ढीला या बहुत तंग हो सकता है।
एक बड़े पैमाने पर फिसलन या गैप सीधे रोक को ट्रिगर कर सकता है।
अचानक होने वाली बड़ी घटनाओं के कारण कीमतों में भारी उतार-चढ़ाव के कारण भी प्रत्यक्ष नुकसान हो सकता है।
अनुचित चलती औसत पैरामीटर के कारण रुझानों को याद किया जा सकता है या बहुत अधिक झूठे संकेत उत्पन्न हो सकते हैं।
हाल के मूल्य उतार-चढ़ाव की सीमा में परिवर्तन के कारण एटीआर स्टॉप लॉस डिस्टेंस अनुकूली हो सकता है।
इस रणनीति को और अधिक अनुकूलित किया जा सकता हैः
चलती औसत के पैरामीटर को अनुकूलित करें और अधिक उपयुक्त संयोजन ढूंढें। विभिन्न आवधिक पैरामीटर और भारित चलती औसत का परीक्षण किया जा सकता है।
विभिन्न एटीआर चक्र मापदंडों का परीक्षण करें और बेहतर स्टॉप-डैमेज दूरी का पता लगाएं
अतिरिक्त फ़िल्टरिंग शर्तों को जोड़ना, जैसे कि लेनदेन की मात्रा में वृद्धि, कंपन सूचकांक, आदि, सिग्नल की गुणवत्ता में सुधार।
इस प्रकार, यह एक और संकेत है कि आप किसी भी तरह की अस्थिरता से बचने के लिए प्रवृत्तियों को समझ सकते हैं।
मशीन लर्निंग एल्गोरिदम जोड़े गए हैं, जो पैरामीटर सेट को स्वचालित रूप से अनुकूलित करने के लिए ऐतिहासिक डेटा प्रशिक्षण के माध्यम से हैं।
बड़े स्तर के चार्ट में अधिक पुष्टि की तलाश करें और शॉर्ट-लाइन शोर से भटकने से बचें।
मुनाफा कम करने के लिए नियम निर्धारित करें और धीरे-धीरे मुनाफे को लॉक करें।
इस रणनीति में दोहरी चलती औसत क्रॉसिंग, प्रवृत्ति फ़िल्टरिंग, पुष्टिकरण तंत्र और एटीआर गतिशील स्टॉप जैसे कई तकनीकी संकेतकों का उपयोग किया गया है। पैरामीटर अनुकूलन और जोखिम नियंत्रण के मामले में सुधार की गुंजाइश है, लेकिन इसकी व्यापारिक अवधारणा सरल और स्पष्ट है, प्रतिलिपि को लागू करना आसान है। यह एक अधिक मजबूत प्रवृत्ति ट्रैकिंग रणनीति है।
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("QuantCat Intraday Strategy (15M)", overlay=true)
//MA's for basic signals, can experiment with these values
fastEMA = sma(close, 25)
slowEMA = sma(close, 100)
//Parameters for validation of position
lookback_value = 25
maxNoCross=10 //value used for maximum number of crosses on a certain MA to mitigate noise and maximise value from trending markets
//Amount of crosses on MA to filter out noise
ema25_crossover = (cross(close, fastEMA)) == true ? 1 : 0
ema25_crossover_sum = sum(ema25_crossover, lookback_value) ///potentially change lookback value to alter results
crossCount = (ema25_crossover_sum <= maxNoCross)
//Entries long
agrLong = ((crossover(fastEMA, slowEMA)) and (crossCount == true)) ? true : false
consLong = ((close < fastEMA) and (close > slowEMA) and (fastEMA > slowEMA) and (crossCount == true)) ? true : false
//Entries short
agrShort = ((crossunder(fastEMA, slowEMA)) and (crossCount == true)) ? true : false
consShort = ((close > fastEMA) and (close < slowEMA) and (fastEMA < slowEMA) and (crossCount == true)) ? true : false
//ATR
atrLkb = input(14, minval=1, title='ATR Stop Period')
atrRes = input("15", title='ATR Resolution')
atr = request.security(syminfo.tickerid, atrRes, atr(atrLkb))
//Strategy
longCondition = ((agrLong or consLong) == true)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = ((agrShort or consShort) == true)
if (shortCondition)
strategy.entry("Short", strategy.short)
//Stop multiplier
stopMult = 4
//horizontal stoplosses
longStop = na
longStop := shortCondition ? na : longCondition and strategy.position_size <=0 ? close - (atr * stopMult) : longStop[1]
shortStop = na
shortStop := longCondition ? na : shortCondition and strategy.position_size >=0 ? close + (atr * stopMult) : shortStop[1]
//Strategy exit functions
strategy.exit("Long ATR Stop", "Long", stop=longStop)
strategy.exit("Short ATR Stop", "Short", stop=shortStop)
//Plots
redgreen = (fastEMA > slowEMA) ? green : red
p1 = plot(fastEMA, title="Fast EMA", color=redgreen, linewidth=2)
p2 = plot(slowEMA, title="Slow EMA", color=redgreen, linewidth=2)
fill(p1, p2, color=redgreen)
s1 = plot(longStop, style=linebr, color=red, linewidth=2, title='Long ATR Stop')
s2 = plot(shortStop, style=linebr, color=red, linewidth=2, title='Short ATR Stop')
fill(p2, s1, color=red, transp=95)
fill(p2, s2, color=red, transp=95)