এই কৌশলটি হুল মুভিং এভারেজ সূচকের উপর ভিত্তি করে ট্রেডিং সিস্টেম অনুসরণ করে একটি প্রবণতা তৈরি করে। এটি হুল বক্ররেখার দিকের উপর ভিত্তি করে দীর্ঘ বা ছোট যেতে সিদ্ধান্ত নেয়, এটি একটি সাধারণ প্রবণতা পশ্চাদ্ধাবন কৌশল তৈরি করে।
এই কৌশলটি প্রধান প্রযুক্তিগত সূচক হিসাবে হাল মুভিং গড় ব্যবহার করে। হাল মুভিং গড়টি আমেরিকান ব্যবসায়ী অ্যালান হাল দ্বারা 2005 সালে প্রস্তাবিত হয়েছিল। এটি বিলম্ব হ্রাস করার জন্য বর্গমূল ফাংশন ব্যবহার করে চলমান গড়ের উপর উন্নতি করে।
বিশেষত, হাল মুভিং এভারেজে দুটি গড় রয়েছে - একটি হল পিরিয়ড এন এর চলমান গড় এমএ ((এন), অন্যটি হল পিরিয়ড এন / 2 এর চলমান গড় এমএ ((এন / 2) । দুটি চলমান গড়ের মধ্যে পার্থক্য হাল পার্থক্য বক্ররেখা গঠন করে। হাল পার্থক্য বক্ররেখার চলমান গড় গ্রহণ করে হাল বক্ররেখা দেয়।
যখন হুল বক্ররেখাটি ঊর্ধ্বমুখী হয়, তখন সংক্ষিপ্ত সময়ের চলমান গড়টি দীর্ঘ সময়ের উপরে অতিক্রম করে, একটি দীর্ঘ সংকেত দেয়। যখন হুল বক্ররেখাটি নীচে নেমে যায়, তখন সংক্ষিপ্ত এমএ দীর্ঘতম এমএ এর নীচে অতিক্রম করে, একটি সংক্ষিপ্ত সংকেত দেয়।
এই কৌশলটি হুল বক্ররেখার পিরিয়ড এনকে 16 তে সেট করে। এটি হুল বক্ররেখা পেতে 8-পরিয়ড এমএ (এন / 2 = 8), 16-পরিয়ড এমএ এবং তাদের মধ্যে পার্থক্য গণনা করে। এটি তারপরে হুল বক্ররেখার নিজেই 4-পরিয়ড এমএ (এন = 4 এর বর্গমূল) নেয়। যখন হুল বক্ররেখা উপরে ক্রস হয়, এটি দীর্ঘ যায়। যখন হুল বক্ররেখা নীচে ক্রস হয়, এটি সংক্ষিপ্ত হয়।
সাধারণ চলমান গড়ের তুলনায়, হুল চলমান গড়ের নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
একটি বর্গমূল ফাংশন ব্যবহার করে, হুল কার্ভ মূল্যের ক্রিয়াকলাপকে ঘনিষ্ঠভাবে আলিঙ্গন করে এবং প্রবণতা বিপরীতকরণগুলি দ্রুত ধরতে পারে।
হুল কার্ভ কিছু গোলমাল ফিল্টার করতে পারে এবং অপ্রয়োজনীয় ট্রেড এড়াতে পারে।
কম পরামিতি। হুল বক্ররেখার শুধুমাত্র একটি পরামিতি n প্রয়োজন, যা অপ্টিমাইজেশানকে সহজ করে তোলে। একটি দ্বৈত-এমএ সিস্টেমকে দুটি পরামিতি অপ্টিমাইজ করতে হবে।
কাস্টমাইজযোগ্য। হুল কার্ভের এন মান বিভিন্ন বাজারের জন্য সামঞ্জস্য করা যায় এবং বিভিন্ন যন্ত্রের জন্য কাস্টমাইজ করা যায়।
সিস্টেম্যাটিকঃ হুল সিস্টেমটি শক্তিশালী এবং ম্যানুয়াল নির্বাচন এড়ায়, যান্ত্রিক ট্রেডিং সিস্টেমের ধারাবাহিকতা মেনে চলে।
মুভিং মিডিয়ার তুলনায় এই সিস্টেমের সুবিধা থাকা সত্ত্বেও, হুল সিস্টেম এখনও নিম্নলিখিত ঝুঁকি বহন করেঃ
প্রবণতা অনুসরণ করার সীমাবদ্ধতা। একটি প্রবণতা অনুসরণ কৌশল হিসাবে, হুল সিস্টেমগুলি তীব্র প্রবণতা পরিবর্তনের সময় বন্ধ হয়ে যায়।
ওভারট্রেডিংয়ের সম্ভাবনাঃ হুল কার্ভের দ্রুত প্রতিক্রিয়া ট্রেডিং ফ্রিকোয়েন্সি বাড়িয়ে ওভারট্রেডিংয়ের দিকে পরিচালিত করতে পারে।
মাত্র একটি প্যারামিটার n থাকার ফলে অত্যধিক অপ্টিমাইজেশনের ফলে কার্ভ ফিটিং ঝুঁকি হতে পারে।
বিভিন্ন যন্ত্রের মধ্যে কার্যকারিতা পরিবর্তিত হয়। উচ্চ অস্থিরতার সাথে যন্ত্রগুলির জন্য হুল সিস্টেম কম ভাল কাজ করে। পরামিতিগুলি যথাযথভাবে সামঞ্জস্য করতে হবে।
উপরের সীমাবদ্ধতার ভিত্তিতে, হুল চলমান গড় কৌশলটি নিম্নলিখিত দিকগুলিতে উন্নত করা যেতে পারেঃ
ভুল ক্রস এড়াতে অতিরিক্ত সূচক সহ ফিল্টার যুক্ত করুন। এমএসিডি, কেডি ইত্যাদি প্রবণতা পরিমাপ করতে সহায়তা করতে পারে।
একক ট্রেড ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস কৌশল যোগ করুন, উদাহরণস্বরূপ ট্রেইলিং স্টপ বা লাভের স্টপ সহ।
অতিরিক্ত অপ্টিমাইজেশান রোধ করতে প্যারামিটার এন নির্বাচন অপ্টিমাইজ করুন। রোলিং অপ্টিমাইজেশনের জন্য ওয়াক ফরওয়ার্ড বিশ্লেষণ ব্যবহার করা যেতে পারে।
মেশিন লার্নিং মডেল যেমন আরএনএন ব্যবহার করে গতিশীলভাবে প্যারামিটার মান অপ্টিমাইজ করতে।
মেশিন লার্নিং ফিটিং ব্যবহার করে বিভিন্ন যন্ত্রের জন্য পৃথকভাবে পরামিতিগুলি অপ্টিমাইজ করুন।
ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করার জন্য পজিশন সাইজিং অপ্টিমাইজ করুন। স্থির ভগ্নাংশ পজিশন সাইজিং সাহায্য করতে পারে।
হুল মুভিং এভারেজ কৌশল একটি সাধারণ প্রবণতা অনুসরণকারী কৌশল। এমএগুলির তুলনায় এর সুবিধার সত্ত্বেও, এটি এখনও ওভার অপ্টিমাইজেশন এবং ওভারট্রেডিংয়ের মতো সমস্যার মুখোমুখি হয়। আমরা প্যারামিটার অপ্টিমাইজেশন, স্টপ লস, পজিশন সাইজিং ইত্যাদির মাধ্যমে কৌশলটি উন্নত করতে পারি। হুল সিস্টেমটি সহজ এবং ব্যবহারিক। এটি একটি শক্তিশালী ট্রেডিং সিস্টেম তৈরির জন্য আরও সূচক এবং কৌশল অন্তর্ভুক্ত করে আরও গবেষণা এবং বর্ধনের যোগ্য।
/*backtest start: 2023-10-25 00:00:00 end: 2023-11-01 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's HullMA Strategy", shorttitle = "HullMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") n = input(title = "HullMA period", defval=16) fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //HullMA n2ma=2*wma(close,round(n/2)) nma=wma(close,n) diff=n2ma-nma sqn=round(sqrt(n)) n2ma1=2*wma(close[1],round(n/2)) nma1=wma(close[1],n) diff1=n2ma1-nma1 sqn1=round(sqrt(n)) n1=wma(diff,sqn) n2=wma(diff1,sqn) c=n1>n2?green:red ma=plot(n1,color=c) //Trading lot = 0.0 lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if n1 > n2 strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if n1 < n2 strategy.entry("Short", strategy.short, needshort == false ? 0 : lot) if true strategy.close_all()