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