
এই কৌশলটির নাম হলগতিশীল ডাবল স্লাইডিং উইন্ডো টিএসআই সূচক কৌশল☞ এই কৌশলটির মূল ধারণাগুলি হ’ল ডাবল ইএমএ স্লাইডিং উইন্ডো ব্যবহার করে দামের পরিবর্তনগুলিকে সমতল করা এবং ট্রেন্ডের দিকের পরিবর্তনগুলিকে সংযুক্ত করে একটি গতিশীল সূচক তৈরি করা যা বাজারের ক্রয়-বিক্রয় শক্তিকে প্রতিফলিত করে, যা টিএসআই সূচক, এবং এটিকে একটি ট্রেডিং সংকেত হিসাবে ক্রয়-বিক্রয় সিদ্ধান্ত গ্রহণের জন্য ব্যবহার করা হয়।
এই কৌশলটি দামের পরিবর্তনের জন্য দ্বিগুণ স্লাইডিং উইন্ডো দ্বিগুণ সূচকীয় চলমান গড় ব্যবহার করে। বাইরের উইন্ডোটি দীর্ঘতর, অভ্যন্তরীণ উইন্ডোটি ছোট। ডাবল স্লাইডিং দ্বারা দামের ডেটা থেকে আংশিক এলোমেলোতা সরিয়ে ফেলা হয়েছে।
প্রথমত, মূল্যের পরিবর্তনের একক গণনা করুনঃ
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)