
रणनीति काफमैन अनुकूलन चलती औसत (KAMA) पर आधारित है, जो गतिशील रूप से व्यापार की स्थिति को समायोजित कर सकती है और स्वचालित रूप से बाजार की प्रवृत्तियों का पालन कर सकती है। रणनीति की मुख्य विशेषताएं शामिल हैंः
इन सुविधाओं के उपयोग के माध्यम से, रणनीतियों को ट्रेंड के अतिरिक्त लाभ प्राप्त करने की कोशिश की जाती है, जबकि जोखिम को नियंत्रित किया जाता है।
यह रणनीति काफमैन के स्व-अनुकूलीकृत चलती औसत संकेतक पर आधारित है। KAMA मूल्य परिवर्तनों के लिए अधिक तेज़ी से प्रतिक्रिया करने के लिए कीमतों की गतिशीलता और उतार-चढ़ाव के अनुपात की गणना करके औसत के भार और चिकनाई को गतिशील रूप से समायोजित करता है।
जब KAMA पर नीचे की ओर जाने वाली स्टॉप लाइन को पार किया जाता है, तो यह ट्रेंड रिवर्स को इंगित करता है और एक खरीद संकेत उत्पन्न करता है; जब KAMA के नीचे स्टॉप लाइन को पार किया जाता है, तो यह ट्रेंड रिवर्स को इंगित करता है और एक बेचने का संकेत उत्पन्न करता है। स्थिति में प्रवेश करने के बाद, रणनीति एटीआर के आधार पर एक गतिशील स्टॉप दूरी की गणना करती है और स्टॉप लाइन स्थापित करती है। जब KAMA लाभप्रद दिशा में चलता है, तो स्टॉप लाइन भी अनुवर्ती समायोजन करती है और स्टॉप लाइन को अधिक लाभप्रद स्थिति में स्थानांतरित करती है ताकि अधिक मुनाफा हो सके।
इस प्रकार, रणनीति ट्रेंड को ट्रैक कर सकती है और स्टॉप लाइन को धीरे-धीरे स्थानांतरित कर सकती है, जब तक कि स्टॉप लाइन ट्रिगर नहीं हो जाती है या रिवर्स सिग्नल ट्रिगर नहीं हो जाता है।
पारंपरिक चलती औसत रणनीतियों की तुलना में इस रणनीति के निम्नलिखित फायदे हैंः
सामान्य तौर पर, रणनीति तेज प्रतिक्रियाशील और नियंत्रित होती है, जो कि एक विशिष्ट प्रवृत्ति-अनुसरण रणनीति है।
इस रणनीति के कुछ जोखिम भी हैं:
इन जोखिमों के लिए, रोकथाम दूरी को अनुकूलित करने, अधिकतम रोकथाम प्रतिशत की स्थापना और अन्य तरीकों से नियंत्रण किया जा सकता है। गलत ट्रेडों से बचने के लिए पुष्टि के रूप में अन्य संकेतकों के साथ संयोजन भी किया जा सकता है।
इस रणनीति के अनुकूलित क्षेत्रों में शामिल हैंः
उदाहरण के लिए, यह परीक्षण किया जा सकता है कि 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)