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