कौफमैन की अनुकूलनशील चलती औसत ट्रेंड ट्रैकिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-13 17:25:33
टैगः

img

अवलोकन

यह रणनीति मध्यम से दीर्घकालिक रुझानों को पकड़ने के लिए रुझान की दिशा निर्धारित करने के लिए कौफमैन के अनुकूलनशील चलती औसत (कामा) का उपयोग करती है। यह लंबे समय तक जाता है जब कामा रेखा ऊपर की ओर बढ़ती है और कम हो जाती है जब कामा रेखा नीचे की ओर बढ़ती है। यह रणनीति ट्रेडिंग संकेतों की गुणवत्ता में सुधार के लिए चलती औसत की प्रवृत्ति ट्रैकिंग क्षमता और कामा की गतिशील समायोजन सुविधा को जोड़ती है।

रणनीति तर्क

इस रणनीति का मुख्य संकेतक काफमैन का अनुकूलनशील चलती औसत (कामा) है। कामा गतिशील रूप से बाजार की अस्थिरता के परिमाण के आधार पर अपने भारन कारक को समायोजित करता है, जिससे वक्र की संवेदनशीलता में सुधार होता है। विशेष रूप से, जब बाजार की अस्थिरता बढ़ जाती है, तो कामा वक्र चिकनी हो जाता है; जब बाजार की अस्थिरता कम हो जाती है, तो कामा वक्र अधिक संवेदनशील हो जाता है। यह कुछ शोर को फ़िल्टर करता है जबकि अभी भी समय पर नए रुझान उलट को कैप्चर करता है।

रणनीति पहले KAMA के मूल्य की गणना करती है। फिर यह KAMA लाइन की लंबी / छोटी स्थिति निर्धारित करती हैः एक खरीद संकेत तब उत्पन्न होता है जब बंद मूल्य KAMA लाइन के ऊपर पार करता है, और एक बिक्री संकेत तब उत्पन्न होता है जब बंद मूल्य KAMA लाइन के नीचे पार करता है। इन ट्रेडिंग संकेतों के आधार पर पद खोले जाते हैं।

लाभ विश्लेषण

इस रणनीति का सबसे बड़ा लाभ ट्रेंड निर्धारण के लिए KAMA संकेतक का उपयोग है। KAMA संकेतक में खुद बहुत मजबूत ट्रेंड ट्रैकिंग क्षमता है। यह बाजार की स्थितियों के अनुकूल होने के लिए पैरामीटर को गतिशील रूप से समायोजित कर सकता है, जिससे सरल चलती औसत और घातीय चलती औसत की तुलना में अधिक विश्वसनीय ट्रेडिंग संकेत उत्पन्न होते हैं।

इसके अतिरिक्त, रणनीति केवल ट्रेंड दिशा निर्धारित करने के लिए KAMA की लंबी / छोटी स्थिति का उपयोग करती है। कोई अतिरिक्त फ़िल्टर नहीं हैं, जो रणनीति तर्क को सरल बनाता है और मापदंडों की संख्या को कम करता है, ओवरफिट के जोखिम को कम करता है और बाजारों में स्थिरता और अनुकूलन क्षमता में सुधार करता है।

जोखिम विश्लेषण

इस रणनीति का मुख्य जोखिम यह है कि KAMA एक पिछड़ा हुआ संकेतक है, इसलिए ट्रेडिंग सिग्नल उत्पन्न होने के समय तक बाजार की प्रवृत्ति पहले ही उलटी हो सकती है, जिससे स्टॉप लॉस के जोखिम होते हैं। इसके अलावा, KAMA वक्र में अल्पकालिक उतार-चढ़ाव हो सकते हैं, जिससे कुछ लगातार झूठे संकेत उत्पन्न हो सकते हैं।

जोखिमों को कम करने के लिए, अन्य संकेतकों को व्यापार संकेतों की पुष्टि करने के लिए जोड़ा जा सकता है, जैसे कि अस्थिरता संकेतकों, मात्रा संकेतकों आदि। मापदंडों को भी समायोजित किया जा सकता है ताकि KAMA वक्र को चिकनी बनाया जा सके।

अनुकूलन दिशाएँ

इस रणनीति के अनुकूलन के लिए अभी भी काफी जगह है, मुख्य रूप से निम्नलिखित पहलुओं मेंः

  1. सिग्नल की गुणवत्ता में सुधार के लिए सिग्नल फ़िल्टरिंग के लिए अन्य संकेतकों, जैसे एमएसीडी, ऑसिलेटर आदि को मिलाएं।

  2. एकल व्यापार हानि को नियंत्रित करने के लिए स्टॉप लॉस या इक्विटी वक्र आधारित स्टॉप जैसे स्टॉप लॉस रणनीति जोड़ें।

  3. मापदंडों को अनुकूलित करें ताकि KAMA को रुझानों को पकड़ने में अधिक प्रभावी बनाया जा सके।

  4. उच्च समय सीमाओं का उपयोग करके प्रमुख प्रवृत्ति दिशा निर्धारित करने के लिए बहु-समय-सीमा विश्लेषण जोड़ें।

  5. उपकरणों के बीच अनुकूलन के लिए पैरामीटर को स्वचालित रूप से अनुकूलित करने के लिए मशीन लर्निंग विधियों का उपयोग करें।

निष्कर्ष

इस रणनीति का समग्र तर्क स्पष्ट है, प्रवृत्ति की दिशा निर्धारित करने के लिए 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)))

अधिक