
यह रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जिसमें तीन सुपरट्रेंड संकेतक, इचिमोकू क्लाउड संकेतक, औसत वास्तविक तरंग दैर्ध्य (एटीआर) संकेतक और इंडेक्स मूविंग एवरेज (ईएमए) शामिल हैं। यह रणनीति तीन सुपरट्रेंड के माध्यम से बाजार की प्रवृत्ति की दिशा का आकलन करती है, इचिमोकू क्लाउड समर्थन दबाव का आकलन करती है, एटीआर संकेतक स्टॉप-लॉस सेट करती है, ईएमए संकेतक प्रवृत्ति की पुष्टि करती है, और एक अधिक पूर्ण ट्रेडिंग सिस्टम बनाती है।
इस रणनीति का केंद्रीय तर्क तीन ट्रिपल ओवर-ट्रेंडिंग सूचकांकों पर आधारित है। ओवर-ट्रेंडिंग सूचकांक एक निश्चित अवधि के दौरान कीमतों और औसत वास्तविक तरंगों के बीच बड़े संबंधों की तुलना करके प्रवृत्ति की दिशा का न्याय करता है। कीमतें जब ऊंची होती हैं, तो एक आशावादी संकेत होता है, और जब कीमतें नीचे होती हैं तो एक नकारात्मक संकेत होता है। यह रणनीति तीन अलग-अलग मापदंडों के तीन सेटों के ओवर-ट्रेंडिंग सूचकांकों का उपयोग करती है। जब तीन ओवर-ट्रेंडिंग सूचकांकों के समूह एक ही समय में एक आशावादी या नकारात्मक संकेत देते हैं, तो एक व्यापार संकेत होता है।
इसके अलावा, Ichimoku Cloud Indicator द्वारा दी गई Cloud Thickness वर्तमान प्रवृत्ति की ताकत और कमजोरी का आकलन करती है, जिससे कुछ झूठे संकेतों को हटा दिया जाता है। ATR इंडिकेटर को स्टॉप-लॉस सेट करने के लिए उपयोग किया जाता है। EMA इंडिकेटर को मध्य-लंबी रेखा प्रवृत्ति की पुष्टि करने के लिए उपयोग किया जाता है।
विशेष रूप से, अधिक करें जब कीमत तीन सेट ओवरट्रेंड सूचक के ऊपर की ओर हो; जब कीमत तीन सेट ओवरट्रेंड सूचक के नीचे की ओर हो, तो खाली करें। इचिमोकु बादल के ऊपर या नीचे की कीमत की मांग करते हुए, अनिश्चित संकेतों को फ़िल्टर करें। स्टॉपलॉस को स्थिति खोलने के लिए एटीआर सूचक के मूल्य को कम करने के लिए सेट करें, गतिशील ट्रैकिंग को लागू करें।
ट्रिपल सुपरट्रेंड सूचक पैरामीटर की सेटिंग अलग है, जो बाजार में शोर को प्रभावी ढंग से फ़िल्टर करने और प्रवृत्ति की दिशा का निर्धारण करने के लिए उच्च सटीकता प्रदान करता है।
इचिमोकु क्लाउड सूचक प्रवृत्ति को मजबूत और कमजोर मानता है, झूठे ब्रेक से बचने के लिए। एटीआर स्टॉप लॉस सेटिंग्स उचित हैं, जिससे भारी नुकसान से बचा जा सकता है।
ईएमए संकेतक मध्य-लंबी रेखा प्रवृत्ति की दिशा का आकलन करने में मदद करते हैं, और सुपर-ट्रेंडिंग निर्णय के साथ एक-दूसरे को सत्यापित करते हैं, जिससे सिग्नल की विश्वसनीयता में और वृद्धि होती है।
विभिन्न संकेतकों के बीच एक दूसरे को सत्यापित करने के लिए कई संकेतकों के संयोजन के साथ, बाजार के रुझानों का समग्र आकलन करने के लिए, सिग्नल अधिक विश्वसनीय हैं।
हालांकि इचिमोकू क्लाउड सूचकांक के निर्णय में शामिल होने के बावजूद, क्लाउड की मोटाई को तोड़ने और निष्क्रिय क्षेत्र में प्रवेश करने का जोखिम है। इस मामले में, एटीआर सूचकांक कुछ हद तक घाटे को नियंत्रित करेगा।
जब बाजार में भारी उतार-चढ़ाव होता है, तो एटीआर संकेतक के सेट किए गए स्टॉप लॉस को सीधे ट्रिगर किया जा सकता है, जिससे रणनीति की हानि दर बढ़ जाती है। इस समय एटीआर पैरामीटर को उचित रूप से समायोजित किया जा सकता है या स्टॉप रेंज को बढ़ाया जा सकता है।
यदि ट्रिपल ओवरट्रेंड इंडिकेटर पैरामीटर गलत तरीके से सेट किया जाता है, तो कई अमान्य संकेत उत्पन्न हो सकते हैं। इसके लिए बहुत सारे रिटर्न्स के माध्यम से इष्टतम संयोजन पैरामीटर खोजने की आवश्यकता होती है।
अन्य संकेतकों को और अधिक जोड़ सकते हैं, जैसे कि अस्थिरता दर सूचक, ब्रिन बैंड सूचक, आदि, जो फ़िल्टरिंग सिग्नल की सहायता करते हैं और विश्वसनीयता में सुधार करते हैं।
एटीआर सूचकांक की गणना के तरीके में सुधार करके, बड़े पैमाने पर उतार-चढ़ाव के दौरान स्टॉप लॉस रेंज को गतिशील रूप से समायोजित किया जा सकता है, जिससे नुकसान की दर कम हो जाती है।
मशीन लर्निंग मॉडल को शामिल किया जा सकता है, जो ऐतिहासिक डेटा के प्रशिक्षण के माध्यम से खरीद और बिक्री संकेतों का आकलन करता है, जो मैन्युअल पैरामीटर सेटिंग्स के प्रभाव को कम करता है और संकेत की सटीकता को बढ़ाता है।
इस रणनीति में ट्रिपल सुपरट्रेंड, इचिमोकू क्लाउड, एटीआर इंडिकेटर और ईएमए इंडिकेटर के चार भागों का एकीकृत उपयोग किया गया है। विभिन्न संकेतकों के माध्यम से सिग्नल को एक-दूसरे को सत्यापित करने के लिए, बाजार की प्रवृत्ति की दिशा का न्याय करें। इचिमोकू क्लाउड और एटीआर स्टॉप लॉस कंट्रोल रिस्क, ईएमए सहायक पुष्टि मध्य-लंबी प्रवृत्ति। यह रणनीतिक संकेत अधिक विश्वसनीय है, जो मध्य-लंबी लाइन के लिए उपयुक्त है। स्टॉप लॉस तंत्र को और अनुकूलित किया जा सकता है, और अन्य सहायक संकेतक निर्णय को जोड़ा जा सकता है, जिससे बेहतर रणनीतिक प्रभाव प्राप्त हो सकता है।
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="HyperTrend", shorttitle="HyperTrend", overlay=true )
//
float percent_of_portfo = input.int(2, title = "percent of portfo per order", minval = 0, maxval = 100) / 100
// ichimoku Cloud
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length", group = "ichimoku")
basePeriods = input.int(26, minval=1, title="Base Line Length", group = "ichimoku")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length", group = "ichimoku")
displacement = input.int(26, minval=1, title="Lagging Span", group = "ichimoku")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
title="Leading Span A", display = display.none)
p2 = plot(leadLine2, offset = displacement - 1, color=#ef9a9a,
title="Leading Span B", display = display.none)
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Upper Line", display = display.none)
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Lower Line", display = display.none)
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 72, 59) : color.rgb(244, 67, 54, 70))
// three supertrend
//1
atrPeriod1 = input(10, "ATR Length1", group="SuperTrend")
factor1 = input.float(1.0, "Factor1", step = 0.01, group="SuperTrend")
[supertrend1, direction1] = ta.supertrend(factor1, atrPeriod1)
supertrend1 := barstate.isfirst ? na : supertrend1
bodyMiddle1 = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend1 = plot(direction1 < 0 ? supertrend1 : na, "Up Trend", color = color.green, style = plot.style_linebr)
downTrend1 = plot(direction1 < 0 ? na : supertrend1, "Down Trend", color = color.red, style = plot.style_linebr)
//2
atrPeriod2 = input(11, "ATR Length2", group="SuperTrend")
factor2 = input.float(2.0, "Factor2", step = 0.01, group="SuperTrend")
[supertrend2, direction2] = ta.supertrend(factor2, atrPeriod2)
supertrend2 := barstate.isfirst ? na : supertrend2
bodyMiddle2 = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend2 = plot(direction2 < 0 ? supertrend2 : na, "Up Trend", color = color.green, style = plot.style_linebr)
downTrend2 = plot(direction2 < 0 ? na : supertrend2, "Down Trend", color = color.red, style = plot.style_linebr)
//3
atrPeriod3 = input(12, "ATR Length2", group="SuperTrend")
factor3 = input.float(3.0, "Factor2", step = 0.01, group="SuperTrend")
[supertrend3, direction3] = ta.supertrend(factor3, atrPeriod3)
supertrend3 := barstate.isfirst ? na : supertrend3
bodyMiddle3 = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend3 = plot(direction3 < 0 ? supertrend3 : na, "Up Trend", color = color.green, style = plot.style_linebr)
downTrend3 = plot(direction3 < 0 ? na : supertrend3, "Down Trend", color = color.red, style = plot.style_linebr)
// ATR
lengthATR = input.int(title="Length (ATR)", defval=14, minval=1, group="ATR")
smoothingATR = input.string(title="Smoothing (ATR)", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"], group="ATR")
ma_function(sourceATR, lengthATR) =>
switch smoothingATR
"RMA" => ta.rma(sourceATR, lengthATR)
"SMA" => ta.sma(sourceATR, lengthATR)
"EMA" => ta.ema(sourceATR, lengthATR)
=> ta.wma(sourceATR, lengthATR)
ATR = ma_function(ta.tr(true), lengthATR)
plot(ATR, title = "ATR", color=color.new(#B71C1C, 0), display = display.none)
// EMA
lenEMA = input.int(200, minval=1, title="Length of EMA", group="EMA")
srcEMA = input(close, title="Source of EMA", group="EMA")
offset = input.int(title="Offset (EMA)", defval=0, minval=-500, maxval=500, group="EMA")
outEMA = ta.ema(srcEMA, lenEMA)
plot(outEMA, title="EMA", color=color.blue, offset=offset, display = display.none)
ma(sourceEMA, lengthEMA, type) =>
switch type
"SMA" => ta.sma(sourceEMA, lengthEMA)
"EMA" => ta.ema(sourceEMA, lengthEMA)
"SMMA (RMA)" => ta.rma(sourceEMA, lengthEMA)
"WMA" => ta.wma(sourceEMA, lengthEMA)
"VWMA" => ta.vwma(sourceEMA, lengthEMA)
typeMA = input.string(title = "Method (EMA)", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="EMA")
smoothingLengthEMA = input.int(title = "Smoothing Length (EMA)", defval = 5, minval = 1, maxval = 100, group="EMA")
smoothingLine = ma(outEMA, smoothingLengthEMA, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, offset=offset, display=display.none)
//logic
if (open + ATR > supertrend1) and (open + ATR > supertrend2) and (open + ATR > supertrend3)
strategy.entry("L", strategy.long)
else if (open < supertrend1 + ATR) and (open < supertrend2 + ATR) and (open < supertrend3 + ATR)
strategy.entry("S", strategy.short)
else
strategy.close_all("C")