এই কৌশলটি ডাইরেকশনাল মুভমেন্ট ইনডেক্স (ডিএমআই) এবং হুল মুভিং এভারেজ (এইচএমএ) একত্রিত করে ডিএমআই দিয়ে বাজারের দিকনির্দেশনা নির্ধারণ করে এবং ঝুঁকি ব্যবস্থাপনা ছাড়াই এইচএমএ দিয়ে প্রবণতার শক্তি নিশ্চিত করে।
প্রকৃত পরিসীমা, ডিআইপিএল, ডিআইএমআইএনএস এবং এডিএক্স গণনা করুন।
দ্রুত এবং ধীর গতির হিসাব করুন।
DIPlus যখন DIMinus অতিক্রম করে এবং দ্রুত HMA যখন ধীর HMA অতিক্রম করে তখন দীর্ঘ এন্ট্রি ট্রিগার করুন।
যখন DIMinus DIPlus এর নিচে এবং দ্রুত HMA ধীর HMA এর নিচে অতিক্রম করে তখন শর্ট এন্ট্রি ট্রিগার করুন।
এন্ট্রি সিগন্যালে লং/শর্ট অর্ডার দিন।
ট্রেন্ড ইন্ডিকেটর DMI এবং Hull MA এর দ্বৈত নিশ্চিতকরণ বাজারের প্রবণতা ক্যাপচার সঠিকতা নিশ্চিত করে এবং whipsaws এড়ানো। ঝুঁকি ব্যবস্থাপনা অনুপস্থিতি ট্রেডিং ফ্রিকোয়েন্সি হ্রাস এবং দীর্ঘমেয়াদে সামগ্রিক লাভজনকতা নেতৃত্ব দেয়।
মূল ঝুঁকি হ'ল স্টপ লস না থাকা, বিপুল বাজারের ওঠানামা হওয়ার সময় ক্ষতি নিয়ন্ত্রণে ব্যর্থ হওয়া। এছাড়াও সীমিত টিউনিং স্পেস এবং দুর্বল অভিযোজনযোগ্যতা হ'ল ত্রুটি।
সম্ভাব্য সমাধানগুলির মধ্যে রয়েছে চলমান স্টপ লস যোগ করা, প্যারামিটার মিশ্রণটি অনুকূল করা ইত্যাদি।
সত্যিকারের পরিসরের উপর ভিত্তি করে এটিআর ট্রেলিং স্টপ লস যোগ করুন।
সর্বোত্তম মিশ্রণ খুঁজে বের করার জন্য Hull সময়কাল অপ্টিমাইজ করুন.
দীর্ঘ/সংক্ষিপ্ত সংকেতের জন্য গতিশীল প্রান্তিক সীমা।
প্রবণতা ধারাবাহিকতা নিশ্চিত করতে গতি ফিল্টার যোগ করুন।
ডিএমআই এবং এইচএমএ সংমিশ্রণটি সরলতা এবং দক্ষতার সাথে প্রবণতা সনাক্তকরণে অসামান্যভাবে সম্পাদন করে। সঠিক স্টপ লস এবং পরামিতি টিউনিং সহ, এটি একটি দুর্দান্ত প্রবণতা অনুসরণকারী সিস্টেম হয়ে উঠতে পারে।
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Tuned_Official //@version=4 strategy(title="DMI + HMA - No Risk Management", overlay = false, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.025) //Inputs hullLen1 = input(title="Hull 1 length", type=input.integer, defval=29) hullLen2 = input(title="Hull 2 length", type=input.integer, defval=2) len = input(title="Length for DI", type=input.integer, defval=76) //Calculations TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 SmoothedTrueRange = 0.0 SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange SmoothedDirectionalMovementPlus = 0.0 SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus SmoothedDirectionalMovementMinus = 0.0 SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus //Indicators fasthull = hma(close, hullLen1) slowhull = hma(close, hullLen2) DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100 ADX = sma(DX, len) //Plots plot(DIPlus, color=color.green, title="DI+") plot(DIMinus, color=color.red, title="DI-") plot(ADX, color=color.black, title="ADX") //conditions go_long = crossover(DIPlus, DIMinus) and fasthull > slowhull //crossover(fasthull, slowhull) and DIPlus > DIMinus go_short = crossover(DIMinus, DIPlus) and fasthull < slowhull //crossunder(fasthull, slowhull) and DIMinus > DIPlus //Entry if strategy.position_size < 0 or strategy.position_size == 0 strategy.order("long", strategy.long, when=go_long) if strategy.position_size > 0 or strategy.position_size == 0 strategy.order("Short", strategy.short, when=go_short)