एचएमए और सीसीआई कॉम्बो ट्रेंड रणनीति का पालन करना

लेखक:चाओझांग, दिनांक: 2023-09-11 15:02:37
टैगः

यह रणनीति एचएमए और सीसीआई को मिलाकर ट्रेड ट्रेंड की पहचान करती है। विशेष रूप से, यह तब लंबा होता है जब एचएमए ऊपर की ओर टूटता है और सीसीआई निचले बैंड से ऊपर जाता है, और जब एचएमए नीचे की ओर टूटता है और सीसीआई ऊपरी बैंड से नीचे जाता है, तो यह छोटा हो जाता है। जब एचएमए विपरीत दिशा में वापस टूटता है, या सीसीआई थ्रेशोल्ड रेंज में फिर से प्रवेश करता है, तो बाहर निकलता है।

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

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


/*backtest
start: 2023-08-11 00:00:00
end: 2023-09-10 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HMA+CCI strategy", overlay=true)

src = input(close)
hmaLen = input(21)
cciLen = input(10)
cciLower = input(-50)
cciUpper = input(50)
cciLowerExit = input(-100)
cciUpperExit = input(100)
hmaExit = input(false)
cciExit = input(true)
//rciLower = input(-60)
//rciUpper = input(60)

// Backtest
fromyear = input(2017, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(21, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

leverage = input(100)

term = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))

//itvs = input(9, "short interval")
//itvm = input(36, "middle interval")
//itvl = input(52, "long interval")
//src = input(close, "source")
//upperband=input(title="High line[%]",defval=80,type=integer)
//lowerband=input(title="Low line[%]",defval=-80,type=integer)

ord(seq, idx, itv) =>
    p = seq[idx]
    o = 1
    for i = 0 to itv - 1
        if p < seq[i]
            o := o + 1
    o

d(itv) =>
    sum = 0.0
    for i = 0 to itv - 1
        sum := sum + pow((i + 1) - ord(src, i, itv), 2)
    sum

rci(itv) => (1.0 - 6.0 * d(itv) / (itv * (itv * itv - 1.0))) * 100.0

hullma = wma(2*wma(src, hmaLen/2)-wma(src, hmaLen), round(sqrt(hmaLen)))
cci = cci(close, cciLen)
plot(hullma, color=hullma[1]>hullma?red:green, linewidth=4)
longCondition = hullma[1] < hullma and crossover(cci, cciLower) //rci < -60 // crossover(cci, cciLower)
shortCondition = hullma[1] > hullma and crossunder(cci, cciUpper) //rci > 60
exitLong1 = hmaExit ? hullma[1] > hullma : false
exitLong2 = cciExit ? cci > cciUpperExit : false
exitShort1 = hmaExit ? hullma[1] < hullma : false
exitShort2 = cciExit ? cci < cciLowerExit : false

if (longCondition and term)
    strategy.entry("Long",  strategy.long )
if (shortCondition and term)
    strategy.entry("Short",  strategy.short)
        
if strategy.position_size > 0 and term
    if (exitLong1 or exitLong2)
        strategy.close_all()
if strategy.position_size < 0 and term
    if (exitShort1 or exitShort2)
        strategy.close_all()

अधिक