यह रणनीति मध्यम से दीर्घकालिक रुझानों को पकड़ने के लिए रुझान की दिशा निर्धारित करने के लिए कौफमैन के अनुकूलनशील चलती औसत (कामा) का उपयोग करती है। यह लंबे समय तक जाता है जब कामा रेखा ऊपर की ओर बढ़ती है और कम हो जाती है जब कामा रेखा नीचे की ओर बढ़ती है। यह रणनीति ट्रेडिंग संकेतों की गुणवत्ता में सुधार के लिए चलती औसत की प्रवृत्ति ट्रैकिंग क्षमता और कामा की गतिशील समायोजन सुविधा को जोड़ती है।
इस रणनीति का मुख्य संकेतक काफमैन का अनुकूलनशील चलती औसत (कामा) है। कामा गतिशील रूप से बाजार की अस्थिरता के परिमाण के आधार पर अपने भारन कारक को समायोजित करता है, जिससे वक्र की संवेदनशीलता में सुधार होता है। विशेष रूप से, जब बाजार की अस्थिरता बढ़ जाती है, तो कामा वक्र चिकनी हो जाता है; जब बाजार की अस्थिरता कम हो जाती है, तो कामा वक्र अधिक संवेदनशील हो जाता है। यह कुछ शोर को फ़िल्टर करता है जबकि अभी भी समय पर नए रुझान उलट को कैप्चर करता है।
रणनीति पहले KAMA के मूल्य की गणना करती है। फिर यह KAMA लाइन की लंबी / छोटी स्थिति निर्धारित करती हैः एक खरीद संकेत तब उत्पन्न होता है जब बंद मूल्य KAMA लाइन के ऊपर पार करता है, और एक बिक्री संकेत तब उत्पन्न होता है जब बंद मूल्य KAMA लाइन के नीचे पार करता है। इन ट्रेडिंग संकेतों के आधार पर पद खोले जाते हैं।
इस रणनीति का सबसे बड़ा लाभ ट्रेंड निर्धारण के लिए KAMA संकेतक का उपयोग है। KAMA संकेतक में खुद बहुत मजबूत ट्रेंड ट्रैकिंग क्षमता है। यह बाजार की स्थितियों के अनुकूल होने के लिए पैरामीटर को गतिशील रूप से समायोजित कर सकता है, जिससे सरल चलती औसत और घातीय चलती औसत की तुलना में अधिक विश्वसनीय ट्रेडिंग संकेत उत्पन्न होते हैं।
इसके अतिरिक्त, रणनीति केवल ट्रेंड दिशा निर्धारित करने के लिए KAMA की लंबी / छोटी स्थिति का उपयोग करती है। कोई अतिरिक्त फ़िल्टर नहीं हैं, जो रणनीति तर्क को सरल बनाता है और मापदंडों की संख्या को कम करता है, ओवरफिट के जोखिम को कम करता है और बाजारों में स्थिरता और अनुकूलन क्षमता में सुधार करता है।
इस रणनीति का मुख्य जोखिम यह है कि KAMA एक पिछड़ा हुआ संकेतक है, इसलिए ट्रेडिंग सिग्नल उत्पन्न होने के समय तक बाजार की प्रवृत्ति पहले ही उलटी हो सकती है, जिससे स्टॉप लॉस के जोखिम होते हैं। इसके अलावा, KAMA वक्र में अल्पकालिक उतार-चढ़ाव हो सकते हैं, जिससे कुछ लगातार झूठे संकेत उत्पन्न हो सकते हैं।
जोखिमों को कम करने के लिए, अन्य संकेतकों को व्यापार संकेतों की पुष्टि करने के लिए जोड़ा जा सकता है, जैसे कि अस्थिरता संकेतकों, मात्रा संकेतकों आदि। मापदंडों को भी समायोजित किया जा सकता है ताकि KAMA वक्र को चिकनी बनाया जा सके।
इस रणनीति के अनुकूलन के लिए अभी भी काफी जगह है, मुख्य रूप से निम्नलिखित पहलुओं मेंः
सिग्नल की गुणवत्ता में सुधार के लिए सिग्नल फ़िल्टरिंग के लिए अन्य संकेतकों, जैसे एमएसीडी, ऑसिलेटर आदि को मिलाएं।
एकल व्यापार हानि को नियंत्रित करने के लिए स्टॉप लॉस या इक्विटी वक्र आधारित स्टॉप जैसे स्टॉप लॉस रणनीति जोड़ें।
मापदंडों को अनुकूलित करें ताकि KAMA को रुझानों को पकड़ने में अधिक प्रभावी बनाया जा सके।
उच्च समय सीमाओं का उपयोग करके प्रमुख प्रवृत्ति दिशा निर्धारित करने के लिए बहु-समय-सीमा विश्लेषण जोड़ें।
उपकरणों के बीच अनुकूलन के लिए पैरामीटर को स्वचालित रूप से अनुकूलित करने के लिए मशीन लर्निंग विधियों का उपयोग करें।
इस रणनीति का समग्र तर्क स्पष्ट है, प्रवृत्ति की दिशा निर्धारित करने के लिए KAMA संकेतक का उपयोग करना। इसमें मजबूत प्रवृत्ति ट्रैकिंग क्षमता, सरल तर्क और कम मापदंडों जैसे फायदे हैं। लेकिन इसमें प्रवृत्ति उलटों की पहचान करने में पिछड़ने का जोखिम भी है। इसे अधिक प्रभावी और अनुकूलन योग्य बनाने के लिए रणनीति में कई तरीकों से सुधार किया जा सकता है।
/*backtest start: 2022-12-06 00:00:00 end: 2023-12-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2019 //@version=3 strategy(title = "Noro's KAMA Strategy", shorttitle="KAMA str", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot") length = input(3, minval = 1) fast = input(2, minval = 1) slow = input(30, minval = 1) src = input(title = "Source", defval = close) type = input(defval = "Trend", options = ["Trend", "Crossing"], title = "Type") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //KAMA volatility = sum(abs(src-src[1]), length) change = abs(src[1]-src[length]) er = iff(volatility != 0, change/volatility, 0) fastSC = 2/(fast+1) slowSC = 2/(slow+1) sc = pow((er*(fastSC-slowSC))+slowSC, 2) bid = hl2 kama = 0.0 kama := nz(kama[1])+(sc*(bid-nz(kama[1]))) plot(kama, color = black, title = "KAMA", trackprice = false, style = line, linewidth = 3) //Signals up = false dn = false up := (type == "Crossing" and kama > kama[1]) or (type == "Trend" and close > kama) dn := (type == "Crossing" and kama < kama[1]) or (type == "Trend" and close < kama) //Trading size = strategy.position_size lot = 0.0 lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1] if up strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))