টিএসআই এবং সিসিআই হুল চলমান গড় প্রবণতা ট্র্যাকিং কৌশল

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

img

সারসংক্ষেপ

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

কৌশল নীতি

কৌশলটি মূলত ট্রেন্ডের দিকনির্দেশ এবং বাজারের অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয়ের পরিস্থিতি বিচার করার জন্য TSI এবং CCI সূচকগুলি ব্যবহার করে, পাশাপাশি দামের মধ্যবর্তী প্রবণতা নির্ধারণের জন্য Hull MA ব্যবহার করে এবং তিনটি পজিশন খোলার মৌলিক শর্ত হিসাবে একত্রিত হয়।

বিশেষত, যখন টিএসআই এর দ্রুত লাইন ধীর লাইনের উপরে অতিক্রম করে, সিসিআই সূচক +20 এর উপরে অতিক্রম করে && n1 বৃদ্ধি পায়, দীর্ঘ যান; যখন টিএসআই এর দ্রুত লাইন ধীর লাইনের নীচে অতিক্রম করে, সিসিআই সূচক -20 এর নীচে অতিক্রম করে && n1 হ্রাস পায়, শর্ট যান। হুল এমএ মধ্যবর্তী প্রবণতা ফিল্টার করতে ব্যবহৃত হয়, যখন দাম হুল এমএ এর নীচে থাকে তখনই দীর্ঘ হয় এবং যখন দাম হুল এমএ এর উপরে থাকে তখনই শর্ট হয়।

বিভিন্ন চক্রের সূচকগুলির সাথে নিশ্চিত করে, মিথ্যে ব্রেকআউটগুলি কার্যকরভাবে মধ্য ও দীর্ঘমেয়াদী প্রবণতা অনুসরণ করতে ফিল্টার করা যেতে পারে।

সুবিধা বিশ্লেষণ

এটি একটি তুলনামূলকভাবে স্থিতিশীল এবং দক্ষ প্রবণতা ট্র্যাকিং কৌশল, নিম্নলিখিত প্রধান সুবিধার সাথেঃ

  1. দীর্ঘমেয়াদী প্রবণতার দিকনির্দেশনা নির্ধারণের জন্য টিএসআই ব্যবহার করা আরও নির্ভরযোগ্য, স্বল্পমেয়াদী বাজারের গোলমাল থেকে হস্তক্ষেপ এড়ানো;

  2. সিসিআই সূচক যোগ করা অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয় ঘটনা নিশ্চিত করতে পারে এবং কিছু মিথ্যা সংকেত ফিল্টার করতে পারে;

  3. হাল এমএ এর বিচার এন্ট্রি পয়েন্টগুলিকে আরও সুনির্দিষ্ট করে তোলে, মুনাফার সম্ভাবনাকে ব্যাপকভাবে উন্নত করে;

  4. বিভিন্ন পরামিতি সহ সূচকগুলির সংহতকরণ সংকেতগুলির নির্ভরযোগ্যতা উন্নত করতে পারে এবং হস্তক্ষেপের সম্ভাবনা হ্রাস করতে পারে।

  5. কৌশলটির নমনীয় প্যারামিটার সেটিংগুলি বিভিন্ন বাজারের চক্রের জন্য অনুকূলিত করা যেতে পারে।

ঝুঁকি বিশ্লেষণ

যদিও কৌশলটি তুলনামূলকভাবে স্থিতিশীল, তবুও কিছু ঝুঁকি রয়েছেঃ

  1. বাজারে এমন কিছু বিপর্যয় হতে পারে যা দ্রুত বন্ধ করা সম্ভব নয়, যা তুলনামূলকভাবে বড় ক্ষতির কারণ হতে পারে।

  2. টিএসআই ডিফ এবং সিসিআই নির্দেশক উভয়ই মিথ্যা সংকেত এবং বিলম্ব থাকতে পারে, কিছু প্রবেশের পয়েন্ট অনুপস্থিত;

  3. অনুপযুক্ত প্যারামিটার সেটিংগুলি অত্যধিক উচ্চ ট্রেডিং ফ্রিকোয়েন্সি বা সংকেত মানের হ্রাস হতে পারে।

প্রতিরোধ ব্যবস্থাঃ

  1. একক ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লসকে যথাযথভাবে সামঞ্জস্য করা।

  2. সিগন্যালের নির্ভুলতা বাড়ানোর জন্য অন্য নির্দেশকগুলির সাথে যথাযথভাবে নিশ্চিত করুন;

  3. কৌশল স্থিতিশীলতা নিশ্চিত করার জন্য বাজারের অনুযায়ী পরামিতিগুলি সামঞ্জস্য করুন।

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

কৌশলটি নিম্নলিখিত দিকগুলিতেও অপ্টিমাইজ করা যেতে পারেঃ

  1. সেরা মেলে তা খুঁজে পেতে প্যারামিটার সূচকগুলির বিভিন্ন সংমিশ্রণ চেষ্টা করুন;

  2. প্যারামিটারগুলির অভিযোজিত অপ্টিমাইজেশান অর্জনের জন্য মেশিন লার্নিং অ্যালগরিদম চালু করা;

  3. আরও স্থিতিশীল মুনাফা অর্জনের জন্য মূলধন ব্যবস্থাপনা মডিউল বাড়ানো।

  4. কৌশল জয়ের হার বাড়ানোর জন্য আরো ফিল্টার অন্তর্ভুক্ত করুন।

ভবিষ্যতে যেসব অপ্টিমাইজেশান করা হবে, সেগুলোর উপরই নজর দেওয়া হবে।

সংক্ষিপ্তসার

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


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="TSI CCI Hull", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= false, calc_on_every_tick=true, pyramiding=0)
long = input(title="Long Length", type=input.integer, defval=50)
short = input(title="Short Length", type=input.integer, defval=50)
signal = input(title="Signal Length", type=input.integer, defval=25)
price=input(title="Source",type=input.source,defval=open)
Period=input(25, minval=1)
lineupper = input(title="Upper Line", type=input.integer, defval=100)
linelower = input(title="Lower Line", type=input.integer, defval=-100)
p=price
length= Period
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)
keh = tsi_value*5 > linelower ? color.red : color.lime
teh = ema(tsi_value*5, signal*5) > lineupper ? color.red : color.lime
meh = ema(tsi_value*5, signal*5) > tsi_value*5 ? color.red : color.lime
i1=plot(tsi_value*5, title="TSI Value", color=color.black, linewidth=1,transp=100)
i2=plot(ema(tsi_value*5, signal*5), title="TSI Signal", color=color.black, linewidth=1,transp=100)
fill(i1,i2,color=meh,transp=85)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.black, linewidth=10)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.white, linewidth=8,transp=0)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=meh, linewidth=5)
n2ma = 2 * wma(p, round(length / 2))
nma = wma(p, length)
diff = n2ma - nma
sqn = round(sqrt(length))
n1 = wma(diff, sqn)
cci = (p - n1) / (0.015 * dev(p, length))
c = cci > 0 ? color.lime : color.red
c1 = cci > 20 ? color.lime : color.silver
c2 = cci < -20 ? color.red : color.silver
cc=plot(cci, color=c, title="CCI Line", linewidth=2)
cc2=plot(cci[1], color=color.gray, linewidth=1,transp=100)
fill(cc,cc2,color=c,transp=85)
plot(cross(20, cci) ? 20 : na, style=plot.style_cross,title="CCI cross UP",  color=c1, linewidth=2,transp=100,offset=-2)
plot(cross(-20, cci) ? -20 : na, style=plot.style_cross,title="CCI cross down",  color=c2, linewidth=2,transp=100,offset=-2)

TSI1=ema(tsi_value*5, signal*5)
TSI2=ema(tsi_value*5, signal*5)[2]

hullma_smoothed = wma(2*wma(n1, Period/2)-wma(n1, Period), round(sqrt(Period)))
//plot(hullma_smoothed*200)

longCondition = TSI1>TSI2 and hullma_smoothed<price and cci>0
if (longCondition and cci>cci[1] and cci > 0 and n1>n1[1])
    strategy.entry("Buy Here", strategy.long)

shortCondition = TSI1<TSI2 and hullma_smoothed>price and cci<0
if (shortCondition and cci<cci[1] and cci < 0 and n1<n1[1])
    strategy.entry("Sell Here", strategy.short)

আরো