
नाम से धोखा न दें, K-algo trail एक साधारण एटीआर ट्रैकिंग रणनीति नहीं है। यह प्रणाली SuperTrend, Gann Nine-Sided Graph और Heikin Ashi के तीन तकनीकी प्रणालियों को एक त्रि-आयामी प्रवृत्ति पहचानने के ढांचे के रूप में जोड़ती है। 10-चक्र एटीआर को 3 गुना गुणांक के साथ डिज़ाइन किया गया है, जो प्रवृत्ति के प्रति संवेदनशीलता सुनिश्चित करता है और बाजार के शोर को प्रभावी ढंग से फ़िल्टर करता है।
रणनीति की मुख्य नवीनता है डबल 11 चक्र ईएमए चिकनाई के साथ संसाधित हेइकिन अस्ची चार्ट। पारंपरिक हेइकिन अस्ची झूठे संकेतों के लिए आसान है, लेकिन दो राउंड ईएमए चिकनाई के बाद, सिग्नल की गुणवत्ता में उल्लेखनीय सुधार होता है। मल्टीहेड सिग्नल की पुष्टि की जाती है जब चिकनाई के बाद की शुरुआती कीमत बंद होने की कीमत से कम होती है और सुपरट्रेंड ऊपर की ओर बढ़ रहा है; इसके विपरीत, यह एक खाली सिर संकेत है। इस दोहरी पुष्टि तंत्र ने गलत व्यापार की संभावना को काफी कम कर दिया है।
स्टॉप लॉस सेटिंग्स सुपरट्रेंड लाइन बिट्स को सीधे अपनाते हैं, जो कि सबसे उचित गतिशील स्टॉप विकल्प है। तीन-स्तरीय स्टॉप डिज़ाइनः 1.7 गुना, 2.5 गुना और 3.0 गुना जोखिम दूरी। यह क्रमिक स्टॉप आधारभूत लाभ की गारंटी देता है और प्रवृत्ति की स्थिति के लिए पर्याप्त जगह छोड़ देता है। ऐतिहासिक समीक्षा से पता चलता है कि यह अनुपात विन्यास अधिकांश बाजार स्थितियों में सकारात्मक अपेक्षित लाभ प्राप्त करने में सक्षम है।
कोड में 9 के गन स्क्वायर की गणना सरल लगती है, लेकिन यह वास्तव में बहुत काम करती है। वर्तमान कीमत के वर्गमूल की गणना के माध्यम से समर्थन के प्रतिरोध को ऊपर और नीचे करने के लिए, रणनीति के लिए अतिरिक्त मूल्य टारगेट प्रदान करता है। हालांकि रणनीति मास्टर तर्क इन स्थानों का सीधे उपयोग नहीं करता है, वे मैनुअल समायोजन और जोखिम मूल्यांकन के लिए महत्वपूर्ण संदर्भ प्रदान करते हैं।
यह रणनीति एकतरफा रुझान वाले बाजारों में उत्कृष्ट प्रदर्शन करती है, विशेष रूप से क्रिप्टोकरेंसी और स्टॉक इंडेक्स वायदा जैसी अधिक अस्थिर किस्मों में। लेकिन यह स्पष्ट होना चाहिएः एक क्षैतिज बाजार में उतार-चढ़ाव की स्थिति में, लगातार छोटे नुकसान का कारण बनता है। यह अनुशंसा की जाती है कि बाजार में उच्च उतार-चढ़ाव और मजबूत प्रवृत्ति के दौरान उपयोग किया जाए, महत्वपूर्ण आर्थिक आंकड़ों के प्रकाशन से पहले अनिश्चितता की अवधि के दौरान संचालन से बचें।
किसी भी मात्रात्मक रणनीति में नुकसान का जोखिम होता है, और यह रणनीति कोई अपवाद नहीं है। हालांकि रिटर्न्स डेटा दिखाता है कि जोखिम-समायोजित रिटर्न अच्छा प्रदर्शन करता है, लेकिन वास्तविक लेनदेन में लगातार नुकसान का सामना करना पड़ सकता है। यह सलाह दी जाती है कि एक एकल स्थिति को कुल पूंजी के 2% से अधिक नहीं होने पर सख्ती से नियंत्रित किया जाए और लगातार 3 बार नुकसान के बाद व्यापार को रोक दिया जाए और बाजार की स्थिति का पुनः आकलन किया जाए। रणनीति की प्रभावशीलता बाजार की प्रवृत्ति पर अत्यधिक निर्भर करती है और स्पष्ट दिशा के अभाव में बाजार में सावधानी से उपयोग की जानी चाहिए।
/*backtest
start: 2025-06-11 00:00:00
end: 2025-08-25 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy('K-algo trail', overlay=true)
// ===== INPUTS =====
Periods = input(title='ATR Period', defval=10)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
// ===== ATR & SUPER TREND (K-TREND) CALCULATION =====
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
// Plot SuperTrend
upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
// ===== GANN SQUARE OF 9 =====
normalise_squareRootCurrentClose = math.floor(math.sqrt(close))
upperGannLevel_1 = (normalise_squareRootCurrentClose + 1) * (normalise_squareRootCurrentClose + 1)
upperGannLevel_2 = (normalise_squareRootCurrentClose + 2) * (normalise_squareRootCurrentClose + 2)
zeroGannLevel = normalise_squareRootCurrentClose * normalise_squareRootCurrentClose
lowerGannLevel_1 = (normalise_squareRootCurrentClose - 1) * (normalise_squareRootCurrentClose - 1)
lowerGannLevel_2 = (normalise_squareRootCurrentClose - 2) * (normalise_squareRootCurrentClose - 2)
// ===== SMOOTHED HEIKIN ASHI CALCULATION =====
ma1_len = input.int(title='MA1', defval=11, minval=1, maxval=100, step=1)
ma2_len = input.int(title='MA2', defval=11, minval=1, maxval=100, step=1)
// First Smoothing (11,11)
o = ta.ema(open, ma1_len)
c = ta.ema(close, ma1_len)
h = ta.ema(high, ma1_len)
l = ta.ema(low, ma1_len)
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_o = request.security(ha_t, timeframe.period, o)
ha_c = request.security(ha_t, timeframe.period, c)
ha_h = request.security(ha_t, timeframe.period, h)
ha_l = request.security(ha_t, timeframe.period, l)
o2 = ta.ema(ha_o, ma2_len)
c2 = ta.ema(ha_c, ma2_len)
h2 = ta.ema(ha_h, ma2_len)
l2 = ta.ema(ha_l, ma2_len)
ha_col = o2 > c2 ? color.orange : color.blue
plotcandle(o2, h2, l2, c2, title='Heikin Ashi Smoothed', color=ha_col, wickcolor=#00000000)
// ===== STRATEGY LOGIC =====
// Final Combined Long Condition
longCondition = (o2 < c2 and trend == 1) and barstate.isconfirmed
// Final Combined Short Condition
shortCondition = (o2 > c2 and trend == -1) and barstate.isconfirmed
// ===== STRATEGY EXECUTION =====
if longCondition
SL = math.round(up, 2)
range_1 = math.abs(close - SL)
TARGET1 = close + range_1 * 1.7
TARGET2 = close + range_1 * 2.5
TARGET3 = close + range_1 * 3.0
strategy.entry('BUY', strategy.long)
strategy.exit('BUY T1', 'BUY', qty=1, limit=TARGET1)
strategy.exit('BUY T2', 'BUY', qty=1, limit=TARGET2)
strategy.exit('BUY T3', 'BUY', qty=1, limit=TARGET3)
strategy.exit('BUY SL', 'BUY', stop=SL)
if shortCondition
SL = math.round(dn, 2)
range_2 = math.abs(close - SL)
TARGET1 = close - range_2 * 1.7
TARGET2 = close - range_2 * 2.5
TARGET3 = close - range_2 * 3.0
strategy.entry('SELL', strategy.short)
strategy.exit('SELL T1', 'SELL', qty=1, limit=TARGET1)
strategy.exit('SELL T2', 'SELL', qty=1, limit=TARGET2)
strategy.exit('SELL T3', 'SELL', qty=1, limit=TARGET3)
strategy.exit('SELL SL', 'SELL', stop=SL)
// Plot entry signals
plotshape(longCondition ? close : na, title='Buy', text='BUY', location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
plotshape(shortCondition ? close : na, title='Sell', text='SELL', location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))