ডুয়াল হুল মুভিং এভারেজ ট্রেডিং কৌশল একটি পরিমাণগত ট্রেডিং কৌশল যা ডুয়াল হুল মুভিং এভারেজকে ট্রেডিং সংকেত হিসাবে ব্যবহার করে। এটি একটি একক চলমান গড় লাইন ব্যবহার করার ঐতিহ্যগত প্রযুক্তিগত বিশ্লেষণ পদ্ধতির উপর ভিত্তি করে এবং ক্রসওভার পয়েন্টগুলিতে দীর্ঘ এবং সংক্ষিপ্ত সিদ্ধান্ত নিতে ডুয়াল হুল মুভিং এভারেজের সাথে এটি প্রতিস্থাপন করে।
ডুয়াল হুল মুভিং এভারেজ ট্রেডিং স্ট্র্যাটেজির মূল অংশটি হল ডুয়াল হুল মুভিং এভারেজ (ডিএইচএমএ) । ডিএইচএমএতে তিনটি লাইন রয়েছেঃ মাঝারি, উপরের এবং নীচের রেল, যা বিভিন্ন গড় মূল্যের মানকে উপস্থাপন করে। সূত্রগুলি হলঃ
মিডল রেলঃ মোড ((মোড) সুইচ, এসআরসি, লেন)
উপরের রেলঃ HULL[0]
নিম্ন রেলঃ HULL[2]
এখানে মোড ফাংশন HMA, EHMA বা THMA এর মতো বিভিন্ন Hull MA ভেরিয়েন্টগুলির মধ্যে চয়ন করতে পারে। Src মূল্য উত্সের জন্য দাঁড়িয়েছে এবং len হল সময়কালের পরামিতি।
কৌশলটি মূল্য সম্পর্ক নির্ধারণ এবং ট্রেডিং সংকেত তৈরির জন্য DHMA এর মধ্য রেলকে রেফারেন্স হিসাবে ব্যবহার করেঃ
অন্য কথায়, যদি বর্তমান বারের বন্ধের মূল্য মধ্যম রেলের মূল্যের উপরে থাকে, তাহলে পরবর্তী বারে লম্বা যান; যদি বন্ধের মূল্য নীচে থাকে, তাহলে পরবর্তী বারে লম্বা অবস্থান বন্ধ করুন।
ডুয়াল হুল মুভিং এভারেজ ট্রেডিং স্ট্র্যাটেজি নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
উন্নত সমর্থন/প্রতিরোধ প্রভাব এবং প্রবণতা ট্র্যাকিংয়ের জন্য একটি একক চলমান গড় রেখার পরিবর্তে একটি ট্রিপল ব্যান্ড প্রক্রিয়া ব্যবহার করে।
সাধারণ এমএ-র তুলনায়, হুল মুভিং মিডিয়ায় কম বিলম্ব হয় এবং দামের পরিবর্তনে আরও ভাল সাড়া দেয়।
সহজেই বোঝার জন্য ঐতিহ্যগত প্রযুক্তিগত বিশ্লেষণ কৌশল গ্রহণ করে, আলগো ট্রেডিংয়ের জন্য উপযুক্ত।
যুক্তিটি সহজ এবং পরিষ্কার, বাস্তবায়ন করা সহজ, উচ্চ ফ্রিকোয়েন্সি অ্যালগরিদমিক ট্রেডিংয়ের জন্য উপযুক্ত।
বিভিন্ন পণ্য এবং সময়সীমার মধ্যে অপ্টিমাইজেশান জন্য কাস্টমাইজযোগ্য Hull MA ধরনের এবং পরামিতি।
যদিও এই কৌশলটির অনেক সুবিধা রয়েছে, তবে এর সাথে কিছু ঝুঁকিও রয়েছে।
বাজারের উত্তেজনাপূর্ণ সময়ে আরও বেশি হুইপসো হতে পারে। কিছু গোলমালের ট্রেড ফিল্টার করার জন্য সূক্ষ্ম সুরের পরামিতি।
কৌশলটি মূলত প্রবণতা অনুসরণ করে, স্থির সময়ের সময় কম কার্যকর। প্রবণতা শক্তি জন্য অতিরিক্ত ফিল্টার সাহায্য করতে পারে।
বিশেষ করে স্বল্প মেয়াদে, হুল এমএ-র এখনও কিছুটা বিলম্ব রয়েছে। প্যারামিটার অপ্টিমাইজেশন এবং কম্বো সূচকগুলি এটিকে প্রশমিত করতে পারে।
ঘন ঘন সিগন্যালের ফলে অতিরিক্ত ট্রেডিং হতে পারে।
এখানে কৌশলটির জন্য অপ্টিমাইজ করার জন্য কিছু প্রধান দিক রয়েছেঃ
বিভিন্ন পণ্যের জন্য মাঝারি রেল সংবেদনশীলতা সূক্ষ্মভাবে সামঞ্জস্য করার জন্য হুল এমএ প্রকার এবং পরামিতিগুলি অনুকূলিত করুন।
একক ট্রেড ক্ষতির পরিমাণ নিয়ন্ত্রণের জন্য ট্রেলিং স্টপ বা ইনক্রিমেন্টাল স্টপ লসের মতো স্টপ লস প্রক্রিয়া যুক্ত করুন।
প্রবণতা দিকনির্দেশনা এবং শক্তি নির্ধারণের জন্য অন্যান্য সূচকগুলির সাথে সংযুক্ত করুন, ফাঁদ এড়ানো। উদাহরণস্বরূপ, এমএসিডি, কেডি ইত্যাদি
লেনদেনের সংখ্যা বা মুনাফা অনুপাতের উপর ভিত্তি করে কৌশল সক্রিয়করণের শর্ত যুক্ত করুন, চক্র বন্ধের সংখ্যা নিয়ন্ত্রণ করুন, প্রস্থানগুলি হ্রাস করুন।
মাল্টি-টাইমফ্রেম সংমিশ্রণ। গোলমাল এড়ানোর জন্য সামগ্রিক প্রবণতা নির্ধারণ করতে উচ্চতর TF ব্যবহার করুন।
এন্ট্রি লজিক সংশোধন করুন। এন্ট্রি নিশ্চিততা উন্নত করতে মোমবাতি প্যাটার্ন দিয়ে এন্ট্রি নিশ্চিত করুন।
সংক্ষেপে, ডুয়াল হেল মুভিং এভারেজ ট্রেডিং কৌশল হল একটি পরিমাণগত পদ্ধতি যা ট্রেডিং সিগন্যাল তৈরির জন্য দ্রুত প্রতিক্রিয়াশীল, ট্রেন্ড অনুসরণকারী হাল মুভিং এভারেজ ব্যবহার করে। ঐতিহ্যগত এমএগুলির তুলনায় এটির দ্রুত প্রতিক্রিয়া এবং আরও ভাল ট্র্যাকিং ক্ষমতা রয়েছে। কৌশল যুক্তি সহজ এবং পরিষ্কার, অ্যালগরিদম ট্রেডিংয়ের জন্য স্বয়ংক্রিয় করা সহজ। এখনও শব্দ এবং প্রবণতা অনুসরণকারী সীমাবদ্ধতার ঝুঁকি রয়েছে। প্যারামিটার টিউনিং, স্টপ লস এবং অন্যান্য সূচকগুলির সংমিশ্রণের মতো কৌশলগুলি এর ব্যবহারিক কর্মক্ষমতা বাড়িয়ে তুলতে পারে।
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Basic Hull Ma Pack tinkered by InSilico //Converted to Strategy by DashTrader strategy("Hull Suite Strategy", 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) ////////////////////////////////////////////////////////////////////// // Testing Start dates testStartYear = input(2016, "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() => time >= testPeriodStart and time <= testPeriodStop ? true : false // Component Code Stop ////////////////////////////////////////////////////////////////////// //INPUT HAClose = security(heikinashi(syminfo.tickerid), timeframe.period, close) src = input(close, title="Source") modeSwitch = input("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(40, title="Band Transparency",step=5) //FUNCTIONS //HMA HMA(_src, _length) => wma(2 * wma(_src, _length / 2) - wma(_src, _length), round(sqrt(_length))) //EHMA EHMA(_src, _length) => ema(2 * ema(_src, _length / 2) - ema(_src, _length), round(sqrt(_length))) //THMA THMA(_src, _length) => wma(wma(_src,_length / 3) * 3 - wma(_src, _length / 2) - 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("long", strategy.long) if HULL[0] < HULL[2] and testPeriod() strategy.close("long")