गतिशील स्व-अनुकूली काफमैन चलती औसत प्रवृत्ति ट्रैकिंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-02-26 16:36:30
टैगः

img

अवलोकन

यह रणनीति काफमैन अनुकूलनशील चलती औसत (कामा) के आधार पर डिज़ाइन की गई है ताकि गतिशील रूप से ट्रेडिंग पदों को समायोजित किया जा सके और बाजार के रुझानों को स्वचालित रूप से ट्रैक किया जा सके। रणनीति के मुख्य कार्यों में शामिल हैंः

  1. गतिशील रूप से ट्रेडिंग चरण आकार (पीप्स में) की गणना करें और बाजार की अस्थिरता के अनुकूल हों
  2. KAMA की दिशा के आधार पर खरीदने और बेचने के संकेत उत्पन्न करें
  3. संकेत के ट्रिगर होने के बाद स्टॉप लॉस दूरी सेट करें, और कीमत के चलते इसे तदनुसार समायोजित करें
  4. झूठे संकेतों को फ़िल्टर करने के लिए बार के करीब की वैकल्पिक पुष्टि

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

रणनीति तर्क

यह रणनीति काफमैन अनुकूलित चलती औसत सूचक के आधार पर काम करती है। कामा गतिशील औसत के वजन और चिकनाई को गतिशील रूप से समायोजित करने के लिए मूल्य गति और अस्थिरता के अनुपात की गणना करता है, जिससे यह मूल्य परिवर्तनों पर तेजी से प्रतिक्रिया करने की अनुमति देता है।

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

इस प्रकार, रणनीति प्रवृत्ति का अनुसरण कर सकती है, धीरे-धीरे स्टॉप लॉस लाइन को तब तक स्थानांतरित कर सकती है जब तक कि यह ट्रिगर न हो जाए या स्थिति को बंद करने के लिए एक रिवर्स सिग्नल ट्रिगर न हो जाए।

लाभ

पारंपरिक चलती औसत रणनीतियों की तुलना में, इस रणनीति के निम्नलिखित फायदे हैंः

  1. KAMA में उच्च संवेदनशीलता है और यह कीमतों के रुझानों को तेजी से पकड़ सकता है;
  2. गतिशील स्टॉप लॉस दूरी अधिक लाभ को लॉक करती है क्योंकि यह प्रवृत्ति के साथ समायोजित होती है;
  3. वैकल्पिक पट्टी बंद पुष्टिकरण फ़िल्टर नकली संकेत और अनावश्यक प्रविष्टियों को कम करता है।

सामान्य तौर पर, रणनीति उत्तरदायी, नियंत्रित करने योग्य और एक विशिष्ट प्रवृत्ति ट्रैकिंग प्रणाली है।

जोखिम

इस रणनीति में कुछ जोखिम भी शामिल हैंः

  1. रुझान उलटने का जोखिम। KAMA मूल्य उतार-चढ़ाव के लिए लचीलापन से अनुकूल हो सकता है लेकिन अचानक रुझान उलटने पर पर्याप्त समय पर प्रतिक्रिया नहीं दे सकता है।
  2. अत्यधिक आक्रामक स्टॉप लॉस. यदि गतिशील स्टॉप लॉस दूरी बहुत व्यापक सेट की जाती है, तो यह बहुत आक्रामक हो सकती है और समय पर लाभ को लॉक करने में विफल हो सकती है.
  3. झूठे संकेत का जोखिम। बार क्लोज कन्फर्मेशन का उपयोग करने से झूठे संकेतों को कम करने में मदद मिलती है लेकिन उन्हें पूरी तरह से समाप्त नहीं किया जा सकता है।

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

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

रणनीति को अनुकूलित करने के लिए संभावित दिशाओं में शामिल हैंः

  1. KAMA मापदंडों का अनुकूलन करें: चलती औसत लंबाई को समायोजित करें, चिकनाई को ठीक करें;
  2. गतिशील स्टॉप लॉस का अनुकूलन करें: विभिन्न उत्पादों के आधार पर स्टॉप लॉस की इष्टतम दूरी और चरण आकारों का परीक्षण करें;
  3. फ़िल्टरिंग संकेतक जोड़ेंः ट्रेडिंग संकेतों की पुष्टि करने और विश्वसनीयता में सुधार के लिए अन्य रुझान संकेतक शामिल करें।

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

निष्कर्ष

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


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("THMA - Bharath Vc Improved", overlay=true, process_orders_on_close=true)

// Function to calculate pips with higher precision
getPips(price) =>
    difc = syminfo.mintick
    hlpips = price / difc
    math.round(hlpips / syminfo.mintick) * syminfo.mintick

// Inputs
buyMess = input.string("Buy Message","Buy Alert Message")
sellMess = input.string("Sell Message","Sell Alert Message")
buyExitMessage = input.string("Buy Exit","Buy Exit Alert Message" )
sellExitMessage = input.string("Sell Exit","Sell Exit Alert Message" )

tmf = input.timeframe("", "Timeframe")
length = input(title='Length', defval=14)
fastLength = input(title='Fast EMA Length', defval=2)
slowLength = input(title='Slow EMA Length', defval=30)
src = input(title='Source', defval=close)
highlight = input(title='Highlight ?', defval=true)
awaitBarConfirmation = input(title='Await Bar Confirmation ?', defval=true)

// Function to calculate the TMA
gettma() =>
    mom = math.abs(ta.change(src, length))
    volatility = math.sum(math.abs(ta.change(src)), length)
    er = volatility != 0 ? mom / volatility : 0
    fastAlpha = 2 / (fastLength + 1)
    slowAlpha = 2 / (slowLength + 1)
    alpha = math.pow(er * (fastAlpha - slowAlpha) + slowAlpha, 2)
    kama = 0.0
    kama := alpha * src + (1 - alpha) * nz(kama[1], src)
    await = awaitBarConfirmation ? barstate.isconfirmed : true
    maColor = highlight ? kama > kama[1] and await ? color.green : color.red : color.new(color.purple, 0)
    thma = kama
    hma_dif = (thma - thma[2])/2
    colour = hma_dif > 0 ? color.green : color.red
    isGreen = hma_dif > 0
    [thma, isGreen, colour]

// Dynamic pip size based on ATR to adapt better to smaller timeframes
pips = ta.atr(14) * 0.1

// Main execution logic
var float psl = na
var int lastSignal = 0
var float lastPsl = na

[thma, isGreen, colour] = request.security(syminfo.tickerid, tmf, gettma(), gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)

plot(thma, title='KAMA', linewidth=2, color=colour)

if ta.crossover(thma, psl) and strategy.position_size < 0
    strategy.exit("Sell Exit", stop=thma, alert_message=sellExitMessage)

if ta.crossunder(thma, psl) and strategy.position_size > 0
    strategy.exit("Buy Exit", stop=thma, alert_message=buyExitMessage)

if isGreen and strategy.position_size <= 0
    if na(psl)
        psl := close + getPips(pips)
    strategy.entry("Buy", strategy.long, alert_message=buyMess)
    lastSignal := 1

if not isGreen and strategy.position_size >= 0
    if na(psl)
        psl := close - getPips(pips)
    strategy.entry("Sell", strategy.short, alert_message=sellMess)
    lastSignal := -1

if (thma >= lastPsl or na(lastPsl)) and thma > psl
    psl := psl + getPips(pips)
    lastPsl := psl

if (thma <= lastPsl or na(lastPsl)) and thma < psl
    psl := psl - getPips(pips)
    lastPsl := psl

plot(psl, title="Position Stop Level", style=plot.style_stepline, color=color.blue)
plot(lastPsl, title="Last Position Stop Level", style=plot.style_cross, color=color.red)


अधिक