सुपरट्रेंड और सीसीआई स्केलिंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-02-26 10:39:49
टैगः

img

अवलोकन

यह रणनीति दो सुपर ट्रेंड इंडिकेटरों पर आधारित है जिनकी अलग-अलग पैरामीटर सेटिंग्स हैं और सीसीआई इंडिकेटर, जिसका उद्देश्य उच्च आवृत्ति वाले ट्रेडिंग के लिए अल्पकालिक मूल्य उतार-चढ़ाव को पकड़ना है। सुपर ट्रेंड इंडिकेटर एटीआर की गणना करके गतिशील रूप से प्रवृत्ति की दिशा का आकलन करता है, जबकि सीसीआई इंडिकेटर का उपयोग यह निर्धारित करने के लिए किया जाता है कि बाजार ओवरबॉट या ओवरसोल्ड है या नहीं। रणनीति व्यापार संकेतों को बनाने के लिए दोनों को जोड़ती है।

रणनीति तर्क

  • तेजी से सुपर ट्रेंड की गणना करने के लिए 14 पीरियड्स एटीआर का उपयोग करें, जिसका कारक 3 पर सेट है; धीमी सुपर ट्रेंड की गणना करने के लिए 14 पीरियड्स एटीआर का उपयोग करें, जिसका कारक 6 पर सेट है। तेज सुपर ट्रेंड अधिक संवेदनशील है और अल्पकालिक परिवर्तनों को पकड़ सकता है; धीमी सुपर ट्रेंड प्रमुख ट्रेंड दिशा निर्धारित करती है।

  • जब तेज सुपर ट्रेंड कीमत से नीचे जाता है, और धीमी सुपर ट्रेंड अभी भी कीमत से ऊपर है, तो इसे लंबे समय तक जाने के लिए संभावित उलट संकेत के रूप में माना जाता है; जब तेज सुपर ट्रेंड कीमत से ऊपर जाता है, और धीमी सुपर ट्रेंड अभी भी कीमत से नीचे है, तो इसे शॉर्ट जाने के लिए संभावित उलट संकेत के रूप में माना जाता है।

  • एक ही समय में, यह निर्धारित करने के लिए सीसीआई का उपयोग करें कि बाजार ओवरबॉट या ओवरसोल्ड है या नहीं। 100 से ऊपर का सीसीआई ओवरबोल्ड मार्केट को इंगित करता है, जबकि -100 से नीचे का मतलब ओवरसोल्ड मार्केट है। झूठे ब्रेकआउट को फ़िल्टर करने के लिए सीसीआई संकेतों का संयोजन किया जाता है।

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

लाभ विश्लेषण

  • ट्रेंड रिवर्स प्वाइंट निर्धारित करने के लिए सुपर ट्रेंड और ओवरबॉट/ओवरसोल्ड स्थितियों का आकलन करने के लिए सीसीआई का संयोजन करने से झूठे ब्रेकआउट को प्रभावी ढंग से फ़िल्टर किया जा सकता है और सिग्नल की गुणवत्ता में सुधार हो सकता है।

  • तेज और धीमी सुपर ट्रेंड क्रॉसओवर उच्च आवृत्ति प्रवेश और निकास प्राप्त करने के लिए ट्रेडिंग सिग्नल बनाते हैं।

  • सीसीआई पैरामीटर और सुपर ट्रेंड पैरामीटर को विभिन्न बाजार स्थितियों के अनुकूल लचीले ढंग से समायोजित किया जा सकता है।

  • रणनीति का विचार स्पष्ट और समझने में आसान है, और पैरामीटर समायोजन भी अपेक्षाकृत सरल है।

जोखिम और समाधान

  • सुपर ट्रेंड स्वयं में लेगिंग प्रभाव है, संभवतः पहले उलट अवसर को याद कर सकता है।

  • सीसीआई में कॉलबैक जोखिम होता है, और अत्यधिक उतार-चढ़ाव भी दोहराव वाले व्यापार का कारण बन सकता है। सीसीआई मापदंडों को बढ़ाने या सीमाओं को समायोजित करने का प्रयास कर सकते हैं।

  • उच्च आवृत्ति व्यापार लेनदेन की आवृत्ति और व्यापार लागत को बढ़ाने के लिए प्रवण है। होल्डिंग समय को समायोजित करने और खोलने/बंद करने की आवृत्ति को कम करने की सिफारिश की जाती है।

अनुकूलन दिशाएँ

  • पैरामीटर संयोजन को अधिकतम ड्रॉडाउन या लाभ/हानि अनुपात के आधार पर पार किया जा सकता है और इष्टतम पैरामीटर खोजने के लिए अनुकूलित किया जा सकता है।

  • स्वचालित पैरामीटर अनुकूलन प्राप्त करने के लिए पैरामीटर पर सुविधा चयन के लिए रैंडम फॉरेस्ट जैसे मशीन लर्निंग विधियों का उपयोग किया जा सकता है।

  • जोखिमों को नियंत्रित करने के लिए एक निश्चित चक्र के भीतर खोले जाने वाले पदों की अधिकतम संख्या को सीमित करना।

निष्कर्ष

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


/*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")



अधिक