यह रणनीति एक ट्रेंड ट्रैकिंग ट्रेडिंग रणनीति बनाने के लिए रिलेटिव स्ट्रेंथ इंडेक्स (टीएसआई), कमोडिटी चैनल इंडेक्स (सीसीआई) और हुल मूविंग एवरेज (हुल एमए) संकेतकों को एकीकृत करती है। यह किसी भी ट्रेडिंग किस्म पर घंटे या अधिक समय सीमा में दीर्घकालिक ट्रैकिंग ट्रेड कर सकती है।
रणनीति में मुख्य रूप से एसटीआई और सीसीआई संकेतकों का उपयोग बाजार की रुझान दिशा और ओवरबॉट/ओवरसोल्ड स्थितियों का आकलन करने के लिए किया जाता है, साथ ही साथ कीमतों के मध्यवर्ती रुझान को निर्धारित करने के लिए हुल एमए का उपयोग किया जाता है, और तीनों को पदों के उद्घाटन के लिए बुनियादी शर्तों के रूप में जोड़ा जाता है।
विशेष रूप से, जब टीएसआई की तेज रेखा धीमी रेखा से ऊपर पार करती है, तो सीसीआई संकेतक +20 से ऊपर पार करता है && n1 बढ़ता है, लंबा जाता है; जब टीएसआई की तेज रेखा धीमी रेखा से नीचे पार करती है, तो सीसीआई संकेतक -20 से नीचे पार करता है && n1 गिरता है, छोटा हो जाता है। हुल एमए का उपयोग मध्यवर्ती प्रवृत्ति को फ़िल्टर करने के लिए किया जाता है, केवल लंबे समय तक जाता है जब कीमत हुल एमए से नीचे होती है, और जब कीमत हुल एमए से ऊपर होती है, तो छोटा हो जाता है।
विभिन्न चक्रों में संकेतकों के साथ पुष्टि करके, मध्यम और दीर्घकालिक रुझानों को ट्रैक करने के लिए झूठे ब्रेकआउट को प्रभावी ढंग से फ़िल्टर किया जा सकता है।
यह एक अपेक्षाकृत स्थिर और कुशल ट्रेंड ट्रैकिंग रणनीति है, जिसमें निम्नलिखित मुख्य लाभ हैंः
दीर्घकालिक रुझान दिशाओं का आकलन करने के लिए एसटीआई का उपयोग करना अधिक विश्वसनीय है, जिससे अल्पकालिक बाजार शोर से हस्तक्षेप से बचा जाता है।
सीसीआई संकेतक जोड़ने से ओवरबॉट/ओवरसोल्ड घटनाओं की पुष्टि हो सकती है और कुछ झूठे संकेतों को फ़िल्टर किया जा सकता है।
हुल एमए
विभिन्न मापदंडों के साथ संकेतकों का एकीकरण संकेतों की विश्वसनीयता में सुधार कर सकता है और हस्तक्षेप की संभावना को कम कर सकता है।
रणनीति की लचीली पैरामीटर सेटिंग्स को विभिन्न बाजार चक्रों के लिए अनुकूलित किया जा सकता है।
यद्यपि यह रणनीति अपेक्षाकृत स्थिर है, फिर भी कुछ जोखिमों को ध्यान में रखा जाना चाहिएः
बाजार में ऐसे हिंसक उलटफेर हो सकते हैं, जिन्हें तेजी से रोक नहीं सकते हैं, जिससे अपेक्षाकृत बड़े नुकसान हो सकते हैं।
एसटीआई अंतर और सीसीआई संकेतकों में दोनों में झूठे संकेत और देरी हो सकती है, कुछ प्रवेश बिंदुओं को याद किया जा सकता है;
गलत पैरामीटर सेटिंग्स से अत्यधिक उच्च ट्रेडिंग आवृत्ति या सिग्नल की गुणवत्ता में गिरावट भी आ सकती है।
विरोधी उपाय:
एकल हानि को नियंत्रित करने के लिए स्टॉप लॉस को उचित रूप से समायोजित करें;
सिग्नल की सटीकता में सुधार के लिए अन्य संकेतकों के साथ पुष्टि करें;
रणनीति की स्थिरता सुनिश्चित करने के लिए बाजार के अनुसार मापदंडों को समायोजित करें।
इस रणनीति को निम्नलिखित पहलुओं में भी अनुकूलित किया जा सकता हैः
सबसे अच्छा मैच खोजने के लिए पैरामीटर संकेतकों के विभिन्न संयोजनों का प्रयास करें;
मापदंडों के अनुकूलन अनुकूलन को प्राप्त करने के लिए मशीन लर्निंग एल्गोरिदम पेश करना;
अधिक स्थिर मुनाफे के लिए पूंजी प्रबंधन मॉड्यूल को बढ़ाना;
रणनीति जीत दर बढ़ाने के लिए और अधिक फिल्टर शामिल करें।
ये भविष्य के अनुकूलन के लिए फोकस होंगे।
यह रणनीति अपेक्षाकृत स्थिर और कुशल प्रवृत्ति ट्रैकिंग रणनीति बनाने के लिए एसटीआई, सीसीआई और हल एमए संकेतकों का व्यापक रूप से उपयोग करती है। यह संकेत की गुणवत्ता में सुधार के लिए बहु-चक्र संकेतकों के लाभों का सफलतापूर्वक लाभ उठाती है। अगला कदम पैरामीटर अनुकूलन, फिल्टर वृद्धि और अन्य साधनों के माध्यम से रणनीति की स्थिरता और लाभप्रदता को और बढ़ाने के लिए होगा।
/*backtest start: 2022-11-21 00:00:00 end: 2023-11-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="TSI CCI Hull", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= false, calc_on_every_tick=true, pyramiding=0) long = input(title="Long Length", type=input.integer, defval=50) short = input(title="Short Length", type=input.integer, defval=50) signal = input(title="Signal Length", type=input.integer, defval=25) price=input(title="Source",type=input.source,defval=open) Period=input(25, minval=1) lineupper = input(title="Upper Line", type=input.integer, defval=100) linelower = input(title="Lower Line", type=input.integer, defval=-100) p=price length= Period double_smooth(src, long, short) => fist_smooth = ema(src, long) ema(fist_smooth, short) pc = change(price) double_smoothed_pc = double_smooth(pc, long, short) double_smoothed_abs_pc = double_smooth(abs(pc), long, short) tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc) keh = tsi_value*5 > linelower ? color.red : color.lime teh = ema(tsi_value*5, signal*5) > lineupper ? color.red : color.lime meh = ema(tsi_value*5, signal*5) > tsi_value*5 ? color.red : color.lime i1=plot(tsi_value*5, title="TSI Value", color=color.black, linewidth=1,transp=100) i2=plot(ema(tsi_value*5, signal*5), title="TSI Signal", color=color.black, linewidth=1,transp=100) fill(i1,i2,color=meh,transp=85) plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.black, linewidth=10) plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.white, linewidth=8,transp=0) plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=meh, linewidth=5) n2ma = 2 * wma(p, round(length / 2)) nma = wma(p, length) diff = n2ma - nma sqn = round(sqrt(length)) n1 = wma(diff, sqn) cci = (p - n1) / (0.015 * dev(p, length)) c = cci > 0 ? color.lime : color.red c1 = cci > 20 ? color.lime : color.silver c2 = cci < -20 ? color.red : color.silver cc=plot(cci, color=c, title="CCI Line", linewidth=2) cc2=plot(cci[1], color=color.gray, linewidth=1,transp=100) fill(cc,cc2,color=c,transp=85) plot(cross(20, cci) ? 20 : na, style=plot.style_cross,title="CCI cross UP", color=c1, linewidth=2,transp=100,offset=-2) plot(cross(-20, cci) ? -20 : na, style=plot.style_cross,title="CCI cross down", color=c2, linewidth=2,transp=100,offset=-2) TSI1=ema(tsi_value*5, signal*5) TSI2=ema(tsi_value*5, signal*5)[2] hullma_smoothed = wma(2*wma(n1, Period/2)-wma(n1, Period), round(sqrt(Period))) //plot(hullma_smoothed*200) longCondition = TSI1>TSI2 and hullma_smoothed<price and cci>0 if (longCondition and cci>cci[1] and cci > 0 and n1>n1[1]) strategy.entry("Buy Here", strategy.long) shortCondition = TSI1<TSI2 and hullma_smoothed>price and cci<0 if (shortCondition and cci<cci[1] and cci < 0 and n1<n1[1]) strategy.entry("Sell Here", strategy.short)