इस रणनीति का नाम हैगति दोहरी चलती खिड़की एसटीआई संकेतकों की रणनीतिइस रणनीति का मूल विचार मूल्य उतार-चढ़ाव को सुचारू करने के लिए दोहरे ईएमए स्लाइडिंग विंडो का उपयोग करना है, और फिर एक गति संकेतक का निर्माण करने के लिए प्रवृत्ति के दिशात्मक परिवर्तनों को मिलाकर जो बाजार में क्रय और बिक्री शक्ति को दर्शाता है, अर्थात् टीएसआई संकेतक, और इसे खरीद और बिक्री निर्णय लेने के लिए एक व्यापार संकेत के रूप में उपयोग करना है।
यह रणनीति मूल्य परिवर्तनों की गणना करने के लिए डबल स्लाइडिंग विंडो डबल घातीय चलती औसत का उपयोग करती है। बाहरी विंडो अवधि लंबी है और आंतरिक विंडो अवधि छोटी है। डबल चिकनाई द्वारा, मूल्य डेटा में यादृच्छिकता का हिस्सा हटा दिया जाता है।
सबसे पहले मूल्य में इकाई परिवर्तन की गणना करें:
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)
लंबी और छोटी खिड़की अवधि की अलग-अलग लंबाई निर्धारित करके, अल्पकालिक में बाजार शोर को कुछ हद तक फ़िल्टर किया जा सकता है, ताकि एसटीआई संकेतक मध्यम और दीर्घकालिक रुझानों में खरीद और बिक्री शक्ति को बेहतर ढंग से प्रतिबिंबित कर सके। जब एसटीआई संकेतक अपने चलती औसत से ऊपर जाता है, तो एक खरीद संकेत उत्पन्न होता है; जब एसटीआई संकेतक अपने चलती औसत से नीचे जाता है, तो एक बिक्री संकेत उत्पन्न होता है।
यह विंडो अवधि मापदंडों को समायोजित करके और संकेत चलती औसत लंबाई को उचित रूप से छोटा करके अनुकूलित किया जा सकता है। जब बाजार में उतार-चढ़ाव होता है, तो जोखिमों को नियंत्रित करने के लिए व्यापार को अस्थायी रूप से रोक दिया जा सकता है।
यह रणनीति मूल्य परिवर्तनों के दोहरे चिकनाई के आधार पर खरीद और बिक्री शक्ति को दर्शाने वाले टीएसआई गति संकेतक की गणना करती है। दोहरी स्लाइडिंग विंडो शोर को फ़िल्टर करती है। मूल्य परिवर्तन भिन्नताओं के दोहरे चिकनाई से संकेतक भी अधिक स्थिर और विश्वसनीय हो जाता है। मानकीकृत अनुपात इसे तुलनीय बनाता है। संकेतक एक उच्च गुणवत्ता वाले संकेत स्रोत के रूप में मूल्य परिवर्तनों की दिशा और परिमाण को जोड़ती है। पैरामीटर समायोजन के माध्यम से, संकेतक संवेदनशीलता को स्वतंत्र रूप से नियंत्रित किया जा सकता है। पैरामीटर अनुकूलन और जोखिम नियंत्रण के साथ, यह एक बहुत ही व्यावहारिक मात्रात्मक ट्रेडिंग रणनीति विकल्प है।
/*backtest start: 2023-01-01 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("True Strength Indicator BTCUSD 2H", shorttitle="TSI BTCUSD 2H",initial_capital=1000, commission_value=0.2, commission_type =strategy.commission.percent, default_qty_value=100 , overlay = false, pyramiding=10, default_qty_type=strategy.percent_of_equity) //BASED ON True Strength Indicator MTF resCustom = input(title="Timeframe", defval="120" ) long = input(title="Long Length", defval=25) short = input(title="Short Length", defval=13) signal = input(title="Signal Length", defval=13) length = input(title="Период", defval=300) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2017, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" price = request.security(syminfo.tickerid,resCustom,close) 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) tsi2=ema(tsi_value, signal) plot(tsi_value, color=lime,linewidth=2) plot(tsi2, color=red,linewidth=2) hline(30, title="Zero") hline(50, title="Zero",linewidth=2) hline(70, title="Zero") buy = crossover(tsi_value, tsi2) sell = crossunder(tsi_value, tsi2) if(buy) strategy.entry("BUY", strategy.long, when = window()) if(sell) strategy.entry("SELL", strategy.short, when = window()) //greentsi =tsi_value //redtsi = tsi2 //bgcolor( greentsi>redtsi and rsiserie > 50 ? lime : na, transp=90) //bgcolor( greentsi<redtsi and rsiserie < 50 ? red : na, transp=90) //yellow1= redtsi > greentsi and rsiserie > 50 //yellow2 = redtsi < greentsi and rsiserie < 50 //bgcolor( yellow1 ? yellow : na, transp=80) //bgcolor( yellow2 ? yellow : na, transp=50) //bgcolor( yellow1 and yellow1[1] ? yellow : na, transp=70) //bgcolor( yellow2 and yellow2[2] ? yellow : na, transp=70) //bgcolor( rsiserie > 70 ? lime : na, transp=60) //bgcolor( rsiserie < 30 ? red : na, transp=60)