
यह रणनीति दो अलग-अलग पैरामीटर सेट पर आधारित है, सुपरट्रेंड इंडिकेटर और सीसीआई इंडिकेटर, जिसका उद्देश्य शॉर्ट-लाइन मूल्य उतार-चढ़ाव को पकड़ना और उच्च आवृत्ति वाले ट्रेडों को प्राप्त करना है। सुपरट्रेंड इंडिकेटर गतिशील रूप से एटीआर की गणना करके कीमतों की प्रवृत्ति की दिशा का न्याय करता है, जबकि सीसीआई इंडिकेटर का उपयोग यह निर्धारित करने के लिए किया जाता है कि क्या बाजार ओवरबॉट है या ओवरसोल्ड है। रणनीति दोनों को एक ट्रेडिंग सिग्नल के रूप में जोड़ती है।
14 चक्र के एटीआर का उपयोग करके तेजी से ओवरट्रेंड की गणना करें, 3 का सेट फैक्टर; 14 चक्र के एटीआर का उपयोग करके धीमी गति से ओवरट्रेंड की गणना करें, 6 का सेट फैक्टर। तेजी से ओवरट्रेंड अधिक संवेदनशील है, जो अल्पकालिक परिवर्तनों को पकड़ सकता है; धीमी गति से ओवरट्रेंड मुख्य प्रवृत्ति की दिशा का आकलन करता है।
जब तेजी से प्रवृत्ति से अधिक कीमत के नीचे से गुजरता है, और धीमी गति से प्रवृत्ति से अधिक कीमत के ऊपर है, तो एक संभावित पलटाव संकेत के रूप में निर्णय लें, अधिक करें; जब तेजी से प्रवृत्ति से अधिक कीमत के ऊपर से गुजरता है, और धीमी गति से प्रवृत्ति से अधिक कीमत के नीचे है, तो एक संभावित पलटाव संकेत के रूप में निर्णय लें, शून्य करें।
इसके अलावा, सीसीआई का उपयोग बाजार के ओवरबॉट और ओवरसोल की स्थिति का आकलन करने के लिए किया जाता है। सीसीआई 100 से अधिक होने पर बाजार ओवरबॉट है, और 100 से कम होने पर बाजार ओवरसोल है। सीसीआई सिग्नल फ़िल्टरिंग के साथ झूठी ब्रेकडाउन के साथ संयुक्त।
ओवरबॉय और ओवरसोल के मामले में, ओवरट्रेंड इंडिकेटरों में रिवर्स सिग्नल की संभावना अधिक होती है, जो रणनीति का मुख्य तर्क है।
ओवर-ट्रेंड निर्णय और ओवर-बिक्री निर्णय के साथ ओवर-ट्रेंड निर्णय और ओवर-बिक्री निर्णय के संयोजन में, आप झूठी दरारों को प्रभावी रूप से फ़िल्टर कर सकते हैं और सिग्नल की गुणवत्ता में सुधार कर सकते हैं।
ट्रेडिंग सिग्नल बनाने के लिए तेजी से ट्रेंड क्रॉस करें, उच्च आवृत्ति में प्रवेश करें।
सीसीआई और सुपरट्रेंड के पैरामीटर को विभिन्न बाजार स्थितियों के लिए लचीले ढंग से समायोजित किया जा सकता है।
रणनीति स्पष्ट और समझने में आसान है, और पैरामीटर को समायोजित करना आसान है।
सुपरट्रेंड में अपने आप में विलंब होता है, और यह पहले पलटने का अवसर खो सकता है। एटीआर चक्र को छोटा करने का प्रयास किया जा सकता है।
सीसीआई में रिवर्स रिस्क होता है, अत्यधिक उतार-चढ़ाव से दोहराया ट्रेडों का भी कारण बन सकता है। सीसीआई के पैरामीटर को बढ़ाने या सीमाओं को समायोजित करने का परीक्षण किया जा सकता है।
उच्च आवृत्ति वाले ट्रेडों से ट्रेडों की आवृत्ति और शुल्क का बोझ बढ़ सकता है। स्थिति रखने के समय को समायोजित करने और स्थिति खोलने की आवृत्ति को कम करने की सिफारिश की जाती है।
अधिकतम वापसी या लाभ-हानि अनुपात जैसे संकेतकों के आधार पर पैरामीटर के संयोजन को पारगमन अनुकूलित किया जा सकता है, ताकि इष्टतम पैरामीटर की तलाश की जा सके।
स्वचालित रूप से अनुकूलित करने के लिए विशेषताओं का चयन करने के लिए यादृच्छिक वन जैसे पैरामीटर के लिए मशीन सीखने के तरीकों के साथ संयोजन किया जा सकता है।
जोखिम को नियंत्रित करने के लिए एक निश्चित अवधि में अधिकतम पदों की सीमा का पता लगाया जा सकता है।
इस रणनीति का पूरा उपयोग करें ओवरट्रेंड संकेतक अल्पकालिक प्रवृत्ति पलटाव का निर्धारण करने के लिए, CCI संकेतक फ़िल्टर सिग्नल के साथ। जब पैरामीटर सेट उचित है, तो उच्च दक्षता वाले शॉर्ट-लाइन ट्रेडिंग को प्राप्त किया जा सकता है। हालांकि, पैरामीटर समायोजन और एल्गोरिथ्म अनुकूलन के माध्यम से लगातार सुधार के लिए, बहुत बार ट्रेडिंग से जुड़े विभिन्न जोखिमों के प्रति सतर्क रहने की भी आवश्यकता है।
/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend & CCI Strategy Scalp", overlay=true)
// SuperTrend Settings
atrLength1 = input(14, "ATR Length 1")
factor1 = input(3.0, "Factor 1" )
atrLength2 = input(14, "ATR Length 2")
factor2 = input(6.0, "Factor 2")
// Calculate SuperTrend 1
[superTrend1, direction1] = ta.supertrend(factor1, atrLength1)
// // Calculate SuperTrend 2
[superTrend2, direction2] = ta.supertrend(factor2, atrLength2)
// superTrend1 := barstate.isfirst ? na : superTrend1
// 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)
// bodyMiddle1 = plot(barstate.isfirst ? na : (open + close) / 2, "Body Middle",display = display.none)
// fill(bodyMiddle1, upTrend1, color.new(color.green, 90), fillgaps = false)
// fill(bodyMiddle1, downTrend1, color.new(color.red, 90), fillgaps = false)
// superTrend2 := barstate.isfirst ? na : superTrend2
// upTrend2 = plot(direction1 < 0 ? superTrend2 : na, "Up Trend", color = color.green, style = plot.style_linebr)
// downTrend2 = plot(direction1 < 0 ? na : superTrend2, "Down Trend", color = color.red, style = plot.style_linebr)
// bodyMiddle2 = plot(barstate.isfirst ? na : (open + close) / 2, "Body Middle",display = display.none)
// fill(bodyMiddle2, upTrend2, color.new(color.green, 90), fillgaps = false)
// fill(bodyMiddle2, downTrend2, color.new(color.red, 90), fillgaps = false)
// CCI Settings
//cciLength = input.int(14, title="CCI Length")
cciLevel = input.int(100, title="CCI Level")
// Calculate CCI
length = input.int(20, minval=1)
src = input(hlc3, title="Source")
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
//plot(cci, "CCI", color=#2962FF)
//band1 = hline(100, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
//hline(0, "Middle Band", color=color.new(#787B86, 50))
//band0 = hline(-100, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
//fill(band1, band0, color=color.rgb(33, 150, 243, 90), title="Background")
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing")
smoothingLine = ma(cci, smoothingLength, typeMA)
//plot(smoothingLine, title="Smoothing Line", color=#f37f20, display=display.none)
// Entry conditions
longCondition = superTrend1 > close and superTrend2 < close and smoothingLine < -100
shortCondition = superTrend1 < close and superTrend2 > close and smoothingLine > 100
/// Initialize variables to track trade direction
var bool isLong = na
var bool isShort = na
// Strategy entry and exit
if (longCondition)
strategy.entry("Long", strategy.long)
isLong := true
isShort := false
if (shortCondition)
strategy.entry("Short", strategy.short)
isShort := true
isLong := false
// Close Long positions
if (isLong)
strategy.close("Long", when = superTrend1 < close or superTrend2 > close or cci > 100)
// Close Short positions
if (isShort)
strategy.close("Short", when = superTrend1 > close or superTrend2 < close or cci < -100)
// Plotting
plot(superTrend1, color=color.blue, title="SuperTrend 1")
plot(superTrend2, color=color.red, title="SuperTrend 2")
//plot(cci, color=color.orange, title="CCI")