यह रणनीति एचएमए और सीसीआई को मिलाकर ट्रेड ट्रेंड की पहचान करती है। विशेष रूप से, यह तब लंबा होता है जब एचएमए ऊपर की ओर टूटता है और सीसीआई निचले बैंड से ऊपर जाता है, और जब एचएमए नीचे की ओर टूटता है और सीसीआई ऊपरी बैंड से नीचे जाता है, तो यह छोटा हो जाता है। जब एचएमए विपरीत दिशा में वापस टूटता है, या सीसीआई थ्रेशोल्ड रेंज में फिर से प्रवेश करता है, तो बाहर निकलता है।
इस रणनीति का लाभ यह है कि यह प्रवृत्ति की दिशा निर्धारित करने के लिए एचएमए का उपयोग करता है, और सीसीआई प्रवृत्ति की शुरुआत की पुष्टि करता है, प्रभावी रूप से व्हिपसा और पॉलबैक त्रुटियों को कम करता है। हालांकि, एचएमए और सीसीआई दोनों के पीछे के मुद्दे हैं, संभावित रूप से इष्टतम प्रवेश बिंदुओं की कमी है। इसके अलावा, जटिल बाजार स्थितियों में सीसीआई की सीमित क्षमताएं हैं।
संक्षेप में, एचएमए और सीसीआई कॉम्बो ट्रेंड फॉलोअप रणनीति मजबूत ट्रेंडिंग चरणों के दौरान सभ्य परिणाम दे सकती है। लेकिन लाइव ट्रेडिंग में, अभी भी 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()