
এই কৌশলটি একটি চলমান সূচক ((ডিএমআই) এবং হুলের চলমান গড় ((এইচএমএ) এর সমন্বয় ব্যবহার করে, ডিএমআই ব্যবহার করে বাজারের দিকনির্দেশের জন্য, এইচএমএ প্রবণতার শক্তি নিশ্চিত করে এবং ঝুঁকি-মুক্ত পরিচালনার জন্য লেনদেন করে।
সত্যিকারের ব্যাপ্তি (True Range), মাল্টি-হেড মোশন ইনডিকেটর (DIPlus), ফাঁকা হেড মোশন ইনডিকেটর (DIMinus) এবং গড় দিকনির্দেশক সূচক (ADX) গণনা করুন।
দ্রুত হুল গড় ((fasthull) এবং ধীর হুল গড় ((slowhull) গণনা করুন।
ট্রিগার একাধিক শর্তাবলীঃ DIPlus উপর DIMinus এবং fasthull উপর slowhull পরেন।
শূন্যতা শর্ত ট্রিগারঃ DIMinus অধীনে DIPlus এবং fasthull অধীনে slowhull
যখন অতিরিক্ত শূন্যতার শর্ত পূরণ করা হয়, তখন যথাক্রমে অতিরিক্ত এবং শূন্যতার সংকেত দেওয়া হয়।
এই কৌশলটি প্রবণতা নির্ধারণকারী ডিএমআই এবং হুলের গড়ের দ্বৈত নিশ্চিতকরণের সাথে মিলিত হয়, যা বাজার প্রবণতার দিকটি কার্যকরভাবে সনাক্ত করতে পারে এবং পল্টার মার্কেট এবং ফাঁকা মার্কেটের পুনরাবৃত্তি এড়াতে পারে। ঝুঁকিমুক্ত পরিচালনা ব্যবসায়ের ঘনত্ব হ্রাস করে এবং দীর্ঘমেয়াদে সামগ্রিক মুনাফার স্তর ভাল।
এই কৌশলটির সবচেয়ে বড় ঝুঁকি হ’ল ক্ষতিহীন সেটিং, যখন বাজারের তীব্র ওঠানামা হয় তখন ক্ষতি কার্যকরভাবে নিয়ন্ত্রণ করা যায় না। এছাড়াও, প্যারামিটার অপ্টিমাইজেশনের জন্য সীমিত স্থান এবং লক্ষ্যবস্তু দুর্বলতাও একটি বড় অসুবিধা।
ঝুঁকি কমানোর জন্য, মোবাইল স্টপ, অপ্টিমাইজেশান প্যারামিটার সমন্বয় ইত্যাদি যোগ করা যেতে পারে।
এটিআর স্টপ যোগ করুন, ট্রেইলিং স্টপ ব্যবহার করে।
Hull cyclic parameter অপ্টিমাইজ করুন এবং সর্বোত্তম সমন্বয় খুঁজে বের করুন।
ডায়নামিক অ্যাডজাস্টমেন্টের পরামিতি থ্রেশহোল্ড
এই প্রবণতা বজায় রাখার জন্য, ফিল্টারগুলি যুক্ত করুন, যেমন শক্তির পরিমাপ।
ডিএমআই এবং এইচএমএর সমন্বিত কৌশল, সঠিক বিচার, সহজ এবং কার্যকর, মাঝারি এবং দীর্ঘ লাইন অপারেশনের জন্য উপযুক্ত। উপযুক্ত স্টপ এবং প্যারামিটার অপ্টিমাইজেশনের সাথে যুক্ত হলে, এটি একটি দুর্দান্ত ট্রেন্ড ট্র্যাকিং সিস্টেম হতে পারে।
/*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)