ইম্পোমেন্টাম ডাবল মুভিং উইন্ডো টিএসআই ইন্ডিকেটর

লেখক:চাওঝাং, তারিখঃ ২০২৪-০১-০৮ ১১ঃ২০ঃ৩৫
ট্যাগঃ

img

I. কৌশলগত ওভারভিউ

এই কৌশলকে বলা হয়ইম্পোমেন্টাম ডাবল মুভিং উইন্ডো এসটিআই ইন্ডিকেটর কৌশলএই কৌশলটির মূল ধারণা হল দামের ওঠানামা মসৃণ করার জন্য দ্বৈত ইএমএ স্লাইডিং উইন্ডো ব্যবহার করা, এবং তারপরে ট্রেন্ডের দিকনির্দেশের পরিবর্তনগুলিকে একত্রিত করে একটি গতির সূচক তৈরি করা যা বাজারে ক্রয় এবং বিক্রয় ক্ষমতা প্রতিফলিত করে, যথা টিএসআই সূচক, এবং এটি কেনা এবং বিক্রয় সিদ্ধান্ত নেওয়ার জন্য একটি ট্রেডিং সংকেত হিসাবে ব্যবহার করে।

২. কৌশলগত নীতি

এই কৌশলটি দামের পরিবর্তনগুলি গণনা করতে দ্বৈত স্লাইডিং উইন্ডো ডাবল এক্সপোনেনশিয়াল চলমান গড় ব্যবহার করে। বাইরের উইন্ডো সময়কাল দীর্ঘ এবং অভ্যন্তরীণ উইন্ডো সময়কাল কম। ডাবল মসৃণকরণের মাধ্যমে, দামের ডেটাতে এলোমেলোতার অংশ সরানো হয়।

প্রথমে দামের একক পরিবর্তন গণনা করুনঃ

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)

দীর্ঘ এবং সংক্ষিপ্ত উইন্ডো সময়কালের বিভিন্ন দৈর্ঘ্য নির্ধারণ করে, স্বল্পমেয়াদে বাজারের গোলমালকে কিছুটা ফিল্টার করা যেতে পারে, যাতে এসটিআই সূচকটি মাঝারি ও দীর্ঘমেয়াদী প্রবণতাগুলিতে ক্রয় এবং বিক্রয় ক্ষমতা আরও ভালভাবে প্রতিফলিত করতে পারে। যখন এসটিআই সূচকটি তার চলমান গড়ের উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়; যখন এসটিআই সূচকটি তার চলমান গড়ের নীচে পড়ে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

৩. কৌশলগত সুবিধা

  1. ডাবল স্লাইডিং উইন্ডো ব্যবহার করে কার্যকরভাবে আরও সঠিক সূচক প্রতিক্রিয়া জন্য স্বল্পমেয়াদী বাজার গোলমাল ফিল্টার
  2. দামের পরিবর্তনও দ্বিগুণ মসৃণ, যা TSI সূচককে আরও স্থিতিশীল এবং নির্ভরযোগ্য করে তোলে
  3. নিখুঁত মূল্য পরিবর্তনের তুলনায় মূল্য পরিবর্তনের অনুপাত ব্যবহার করা হয়, যা স্বয়ংক্রিয়ভাবে মানসম্মত এবং আরও তুলনামূলক
  4. ট্রেডিং সিদ্ধান্তের জন্য মানের সূচক হিসেবে মূল্য পরিবর্তনের দিকনির্দেশ এবং মাত্রা ব্যাপকভাবে বিবেচনা করা
  5. বিভিন্ন প্যারামিটার সেটিং সূচক সংবেদনশীলতা নমনীয় সমন্বয় করতে পারবেন

৪. কৌশলগত ঝুঁকি

  1. যখন বাজারে দীর্ঘমেয়াদী ওঠানামা হয় তখন এসটিআই সূচক ভুল সংকেত দিতে পারে
  2. অনুপযুক্ত প্যারামিটার সেটিং এছাড়াও সূচক এবং সংকেত মান প্রভাবিত করতে পারে
  3. যদিও দুটি স্লাইডিং উইন্ডো রয়েছে, তবে সংকেতটি এখনও স্বল্পমেয়াদী বাজারের গোলমালের প্রতি কিছুটা সংবেদনশীল
  4. যখন দীর্ঘ এবং সংক্ষিপ্ত উইন্ডো সময়ের মধ্যে পার্থক্য খুব বড়, সূচক এবং সংকেত বিলম্ব হতে পারে

এটি উইন্ডো সময়ের পরামিতিগুলি সামঞ্জস্য করে এবং যথাযথভাবে সংকেত চলমান গড় দৈর্ঘ্য সংক্ষিপ্ত করে অপ্টিমাইজ করা যেতে পারে। যখন বাজারটি ওঠানামা করে, ঝুঁকি নিয়ন্ত্রণের জন্য ট্রেডিং সাময়িকভাবে বন্ধ করা যেতে পারে।

V. অপ্টিমাইজেশান নির্দেশাবলী

  1. সর্বোত্তম পরামিতি খুঁজে পেতে বিভিন্ন দীর্ঘ এবং সংক্ষিপ্ত উইন্ডো সময়ের পরামিতিগুলির পরীক্ষার সমন্বয়
  2. লিনিয়ার ওয়েটেড মুভিং এভারেজের মতো অন্যান্য ধরণের চলমান গড়গুলি চেষ্টা করুন
  3. ট্রিপল বা একাধিক স্লাইডিং উইন্ডো নির্মাণের মাধ্যমে সূচকগুলির মসৃণতা বৃদ্ধি করুন
  4. ক্রয় / বিক্রয় পয়েন্ট নির্বাচন অপ্টিমাইজ করার জন্য অন্যান্য সহায়ক সূচক একত্রিত করুন
  5. একক ক্ষতি কঠোরভাবে নিয়ন্ত্রণ করার জন্য স্টপ লস কৌশল সেট করুন

VI. সংক্ষিপ্ত বিবরণ

এই কৌশলটি দামের পরিবর্তনের দ্বিগুণ মসৃণতার উপর ভিত্তি করে ক্রয় এবং বিক্রয় ক্ষমতা প্রতিফলিত করে টিএসআই গতির সূচক গণনা করে। দ্বৈত স্লাইডিং উইন্ডোগুলি গোলমাল ফিল্টার করে। দামের পরিবর্তনের পরিবর্তনের দ্বিগুণ মসৃণতা সূচকটিকে আরও স্থিতিশীল এবং নির্ভরযোগ্য করে তোলে। স্ট্যান্ডার্ডাইজড অনুপাত এটি তুলনামূলক করে তোলে। সূচকটি উচ্চ মানের সংকেত উত্স হিসাবে দামের পরিবর্তনের দিক এবং মাত্রাকে একত্রিত করে। পরামিতি সামঞ্জস্যের মাধ্যমে সূচক সংবেদনশীলতা অবাধে নিয়ন্ত্রণ করা যেতে পারে। প্যারামিটার অপ্টিমাইজেশন এবং ঝুঁকি নিয়ন্ত্রণের সাথে এটি একটি খুব ব্যবহারিক পরিমাণগত ট্রেডিং কৌশল পছন্দ।


/*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)

আরো