डायनेमिक अडेप्टिव कॉफ़मैन मूविंग एवरेज ट्रेंड फ़ॉलोइंग स्ट्रैटेजी


निर्माण तिथि: 2024-02-26 16:36:30 अंत में संशोधित करें: 2024-02-26 16:36:30
कॉपी: 0 क्लिक्स: 666
1
ध्यान केंद्रित करना
1617
समर्थक

डायनेमिक अडेप्टिव कॉफ़मैन मूविंग एवरेज ट्रेंड फ़ॉलोइंग स्ट्रैटेजी

अवलोकन

रणनीति काफमैन अनुकूलन चलती औसत (KAMA) पर आधारित है, जो गतिशील रूप से व्यापार की स्थिति को समायोजित कर सकती है और स्वचालित रूप से बाजार की प्रवृत्तियों का पालन कर सकती है। रणनीति की मुख्य विशेषताएं शामिल हैंः

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

इन सुविधाओं के उपयोग के माध्यम से, रणनीतियों को ट्रेंड के अतिरिक्त लाभ प्राप्त करने की कोशिश की जाती है, जबकि जोखिम को नियंत्रित किया जाता है।

रणनीति सिद्धांत

यह रणनीति काफमैन के स्व-अनुकूलीकृत चलती औसत संकेतक पर आधारित है। KAMA मूल्य परिवर्तनों के लिए अधिक तेज़ी से प्रतिक्रिया करने के लिए कीमतों की गतिशीलता और उतार-चढ़ाव के अनुपात की गणना करके औसत के भार और चिकनाई को गतिशील रूप से समायोजित करता है।

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

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

रणनीतिक लाभ

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

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

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

रणनीतिक जोखिम

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

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

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

रणनीति अनुकूलन दिशा

इस रणनीति के अनुकूलित क्षेत्रों में शामिल हैंः

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

उदाहरण के लिए, यह परीक्षण किया जा सकता है कि MACD को एक सहायक पुष्टिकरण संकेतक के रूप में जोड़ा जाए, जबकि KAMA Goldfork को MACDDif को भी सकारात्मक और विस्तारित करने के लिए कहा जाए। यह कुछ झूठे संकेतों को फ़िल्टर कर सकता है और अनावश्यक रूप से बार-बार स्थिति खोलने से बचा जा सकता है।

संक्षेप

इस रणनीति का समग्र संचालन सुचारू रूप से होता है, गतिशील स्टॉप-लॉस ट्रेंड ट्रैकिंग का उपयोग करता है, और ट्रेंड मुनाफे को अधिकतम करता है। 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)