হুল মুভিং এভারেজ এবং কালমান ফিল্টার ভিত্তিক ট্রেন্ড ট্র্যাকিং কৌশল

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

img

সারসংক্ষেপ

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

কৌশলগত যুক্তি

  • এই কৌশলটি ট্রেডিং সিগন্যাল তৈরির জন্য ২৪ পেরিওডের হুল মুভিং এভারেজ (এইচএমএ) এবং ২৪ পেরিওডের ট্রিপল হুল মুভিং এভারেজ (এইচএমএ3) ব্যবহার করে।

  • যখন HMA HMA3 এর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উৎপন্ন হয়। যখন HMA HMA3 এর নিচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উৎপন্ন হয়।

  • কালমান ফিল্টার ডিফল্টরূপে নিষ্ক্রিয় করা আছে। যখন এটি সক্ষম করা হয়, এটি অত্যধিক শব্দ ফিল্টার এবং সংকেত মান উন্নত করতে hma এবং hma3 মসৃণ।

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

  • এই কৌশলটি র্যান্ডম ওঠানামা ফিল্টার করে এবং স্থায়ী প্রবণতা ট্র্যাক করে চলমান গড় কৌশলগুলির স্থিতিশীলতা বাড়ানোর জন্য কালমান ফিল্টার ব্যবহার করে।

সুবিধা

  • একক চলমান গড়ের তুলনায় দ্বৈত চলমান গড় সিস্টেম দীর্ঘস্থায়ী প্রবণতা আরও ভালভাবে সনাক্ত করতে পারে।

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

  • কালমান ফিল্টার কার্যকরভাবে সিগন্যাল থেকে এলোমেলো শব্দ ফিল্টার করতে পারে, মিথ্যা সংকেত হ্রাস করে এবং সংকেতের গুণমান উন্নত করে।

  • সময়কাল এবং কালমান ফিল্টার লাভের মতো সামঞ্জস্যযোগ্য পরামিতি কৌশলটিকে বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নিতে দেয়।

  • ক্রস-পিরিয়ড কৌশল গ্রহণ করা আরও স্থায়ী সংকেত তৈরি করে, অত্যধিক এলোমেলো ওঠানামা দ্বারা বিভ্রান্ত হওয়া এড়ানো।

  • ভিজ্যুয়াল ইন্টারফেস সহজেই অপারেশন জন্য সংকেত এবং প্রবণতা অবস্থা স্বজ্ঞাতভাবে প্রদর্শন করে।

ঝুঁকি

  • ডাবল মুভিং এভারেজগুলি ট্রেন্ড টার্নিং পয়েন্টের আশেপাশে ভুল সংকেত তৈরি করতে প্রবণ, সময়মতো বিপরীত ধারণ করতে অক্ষম।

  • চলমান গড়ের পিছিয়ে পড়া দ্রুত মূল্য বিপরীতমুখী হওয়ার সুযোগ হারাতে পারে।

  • বিপজ্জনক বাজারে এটি ব্যবহার করা উচিত নয়, তবে বিপজ্জনক সময়ে এটি ব্যবহার করা উচিত নয়।

  • কালমান ফিল্টার প্যারামিটার কৌশল কর্মক্ষমতা প্রভাবিত করতে পারে. খুব বড় লাভ বৈধ সংকেত ফিল্টার করতে পারে.

  • দীর্ঘ সময়কালের প্রতিক্রিয়া ধীর হয় যখন সংক্ষিপ্ত সময়কালের গোলমালের জন্য সংবেদনশীল হয়। বাজারের অবস্থার উপর ভিত্তি করে পরামিতি সুরক্ষা প্রয়োজন।

  • অনির্দিষ্ট দীর্ঘ/সংক্ষিপ্ত হোল্ডিং সময় পজিশন ছাড়াই অলস সময়ের দিকে পরিচালিত করে, যা মূলধন ব্যবহারের দক্ষতা হ্রাস করে।

উন্নতকরণ

  • অভিযোজিত চলমান গড়ের চেষ্টা করুন যা অস্থিরতার উপর ভিত্তি করে প্যারামিটারগুলিকে গতিশীলভাবে অপ্টিমাইজ করে।

  • বাজারের অস্থিরতার সময় ট্রেডিং এড়াতে এবং কেবল সুস্পষ্ট প্রবণতার উপর ট্রেড করার জন্য অস্থিরতা পরিমাপ অন্তর্ভুক্ত করুন।

  • হ্রাসকে সীমাবদ্ধ করতে এবং ঝুঁকি নিয়ন্ত্রণ উন্নত করতে স্টপ লস সেট করুন।

  • ট্র্যাকিং সংবেদনশীলতা এবং গোলমাল ফিল্টারিং স্তরের ভারসাম্য বজায় রাখার জন্য কালমান ফিল্টার পরামিতিগুলি অপ্টিমাইজ করুন।

  • ভলিউম, ট্রেন্ডের ধারাবাহিকতার জন্য বোলিংজার ব্যান্ডের মতো অন্যান্য সূচকগুলির সাথে সংকেতের বৈধতা নিশ্চিত করুন।

  • মেশিন লার্নিং ব্যবহার করে প্যারামিটার প্রশিক্ষণ এবং কৌশল দৃঢ়তা এবং অভিযোজনযোগ্যতা উন্নত।

সিদ্ধান্ত

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


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

//@version=4
strategy("Hull Trend with Kahlman Strategy Backtest", shorttitle="HMA-Kahlman Trend Strat", overlay=true)

src       = input(hl2,   "Price Data")
length    = input(24,    "Lookback")
showcross = input(true,  "Show cross over/under")
gain      = input(10000, "Gain")
k         = input(true,  "Use Kahlman")

hma(_src, _length) =>
    wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
    
hma3(_src, _length) =>
    p = length/2
    wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)

kahlman(x, g) =>
    kf = 0.0
    dk = x - nz(kf[1], x)
    smooth = nz(kf[1],x)+dk*sqrt((g/10000)*2)
    velo = 0.0
    velo := nz(velo[1],0) + ((g/10000)*dk)
    kf := smooth+velo
  
a = k ? kahlman(hma(src, length), gain) : hma(src, length)
b = k ? kahlman(hma3(src, length), gain) : hma3(src, length)
c = b > a ? color.lime : color.red
crossdn = a > b and a[1] < b[1]
crossup = b > a and b[1] < a[1]

p1 = plot(a,color=c,linewidth=1,transp=75)
p2 = plot(b,color=c,linewidth=1,transp=75)
fill(p1,p2,color=c,transp=55)
plotshape(showcross and crossdn ? a : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="S", textcolor=color.white, transp=0, offset=-1)
plotshape(showcross and crossup ? a : na, location=location.absolute, style=shape.labelup, color=color.green, size=size.tiny, text="B", textcolor=color.white, transp=0, offset=-1)

longCondition = crossup
if (longCondition)
    strategy.entry("LE", strategy.long)

shortCondition = crossdn
if (shortCondition)
    strategy.entry("SE", strategy.short)
    


আরো