এই কৌশলটি গতিশীল চলমান গড়ের উপর ভিত্তি করে ট্রেডিং সংকেত তৈরি করে যখন শেয়ারের দাম বেড়ে যায় এবং দাম কমে গেলে অবস্থান বন্ধ করে দেয়। গতির সূচক এবং চলমান গড়ের সুবিধাগুলি একত্রিত করে, এটি স্থিতিশীল মুনাফার জন্য মাঝারি মেয়াদী মূল্য প্রবণতা ট্র্যাক করার লক্ষ্যে।
কৌশলটি মূলত তিনটি হুল মুভিং এভারেজ (এইচএমএ) ভেরিয়েন্ট
HMA এর সূত্র হলঃ
এইচএমএ = ডব্লিউএমএ (২*ডব্লিউএমএ (২) -ডব্লিউএমএ (২) -ডব্লিউএমএ (২) -ডব্লিউএমএ (২) -ডব্লিউএমএ (২) -ডব্লিউএমএ (৩) -ডব্লিউএমএ (৩) -ডব্লিউএমএ (২) -ডব্লিউএমএ (৩) -ডব্লিউএমএ (৩) -ডব্লিউএমএ (৩) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ (৪) -ডব্লিউএমএ) -ডব্লি
যেখানে WMA হল ওয়েটেড মুভিং এভারেজ এবং n হল পিরিয়ড প্যারামিটার। SMA এর তুলনায়, HMA মূল্য পরিবর্তনের ক্ষেত্রে দ্রুত প্রতিক্রিয়া দেখায়।
WHMA এবং EHMA এর জন্য সূত্রগুলি অনুরূপ। HMA ডিফল্ট বিকল্প হিসাবে নির্বাচিত হয়।
এইচএমএ গণনা করার পরে, কৌশলটি এইচএমএর মধ্যরেখা মানকে ট্রেডিং সংকেত হিসাবে ব্যবহার করে। যখন দাম এইচএমএ মধ্যরেখার উপরে অতিক্রম করে এবং যখন দাম লাইনের নীচে পড়ে তখন অবস্থানগুলি বন্ধ করে দেয়। সুতরাং এটি লাভের জন্য এইচএমএ মধ্যরেখা ব্যবহার করে মাঝারি মেয়াদী প্রবণতা অনুসরণ করে।
ঐতিহ্যগত এমএ কৌশলগুলির তুলনায় এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছেঃ
এছাড়াও কিছু ঝুঁকি আছেঃ
সমাধান:
কৌশলটি নিম্নলিখিত দিকগুলি থেকেও উন্নত করা যেতে পারেঃ
ডায়নামিক এমএ ট্রেডিং কৌশলটি মধ্যমেয়াদী মূল্য প্রবণতা কার্যকরভাবে ট্র্যাক করার জন্য এইচএমএর দ্রুত প্রতিক্রিয়াকে একীভূত করে। উপযুক্ত সময় এবং বন্ধের স্টপগুলিতে দীর্ঘ পজিশন খোলার মাধ্যমে এটি ভাল ব্যাকটেস্ট ফলাফল প্রদর্শন করেছে। প্যারামিটার টিউনিং এবং স্টক ফিল্টারিংয়ের আরও উন্নতি আরও স্থিতিশীল অতিরিক্ত রিটার্নের দিকে পরিচালিত করবে। এটি বাস্তবায়ন করা সহজ, ঝুঁকি-নিয়ন্ত্রিত পরিমাণগত কৌশল।
/*backtest start: 2022-12-14 00:00:00 end: 2023-12-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Position Investing by SirSeff', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0) strat_dir_input = input.string(title='Strategy Direction', defval='long', options=['long', 'short', 'all']) strat_dir_value = strat_dir_input == 'long' ? strategy.direction.long : strat_dir_input == 'short' ? strategy.direction.short : strategy.direction.all strategy.risk.allow_entry_in(strat_dir_value) ////////////////////////////////////////////////////////////////////// // Testing Start dates testStartYear = input(2000, 'Backtest Start Year') testStartMonth = input(1, 'Backtest Start Month') testStartDay = input(1, 'Backtest Start Day') testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) //Stop date if you want to use a specific range of dates testStopYear = input(2030, 'Backtest Stop Year') testStopMonth = input(12, 'Backtest Stop Month') testStopDay = input(30, 'Backtest Stop Day') testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => true // Component Code Stop ////////////////////////////////////////////////////////////////////// //INPUT src = input(close, title='Source') modeSwitch = input.string('Hma', title='Hull Variation', options=['Hma', 'Thma', 'Ehma']) length = input(55, title='Length(180-200 for floating S/R , 55 for swing entry)') switchColor = input(true, 'Color Hull according to trend?') candleCol = input(false, title='Color candles based on Hull\'s Trend?') visualSwitch = input(true, title='Show as a Band?') thicknesSwitch = input(1, title='Line Thickness') transpSwitch = input.int(40, title='Band Transparency', step=5) //FUNCTIONS //HMA HMA(_src, _length) => ta.wma(2 * ta.wma(_src, _length / 2) - ta.wma(_src, _length), math.round(math.sqrt(_length))) //EHMA EHMA(_src, _length) => ta.ema(2 * ta.ema(_src, _length / 2) - ta.ema(_src, _length), math.round(math.sqrt(_length))) //THMA THMA(_src, _length) => ta.wma(ta.wma(_src, _length / 3) * 3 - ta.wma(_src, _length / 2) - ta.wma(_src, _length), _length) //SWITCH Mode(modeSwitch, src, len) => modeSwitch == 'Hma' ? HMA(src, len) : modeSwitch == 'Ehma' ? EHMA(src, len) : modeSwitch == 'Thma' ? THMA(src, len / 2) : na //OUT HULL = Mode(modeSwitch, src, length) MHULL = HULL[0] SHULL = HULL[2] //COLOR hullColor = switchColor ? HULL > HULL[2] ? #00ff00 : #ff0000 : #ff9800 //PLOT ///< Frame Fi1 = plot(MHULL, title='MHULL', color=hullColor, linewidth=thicknesSwitch, transp=50) Fi2 = plot(visualSwitch ? SHULL : na, title='SHULL', color=hullColor, linewidth=thicknesSwitch, transp=50) ///< Ending Filler fill(Fi1, Fi2, title='Band Filler', color=hullColor, transp=transpSwitch) ///BARCOLOR barcolor(color=candleCol ? switchColor ? hullColor : na : na) if HULL[0] > HULL[2] and testPeriod() strategy.entry('Invest', strategy.long) if HULL[0] < HULL[2] and testPeriod() strategy.entry('Pause', strategy.short)