
यह रणनीति गतिशील संकेतक (डीएमआई) और हुल मूविंग एवरेज (एचएमए) के संयोजन का उपयोग करती है, डीएमआई का उपयोग बाजार की दिशा का आकलन करने के लिए करती है, एचएमए प्रवृत्ति की ताकत की पुष्टि करता है, और जोखिम मुक्त प्रबंधन के लिए व्यापार करता है।
वास्तविक तरंग दैर्ध्य (TRUE RANGE), बहुमुखी गति सूचक (DIPlus), शून्य गति सूचक (DIMinus) और औसत दिशा सूचकांक (ADX) की गणना करें।
फास्टहॉल और स्लोहॉल की गणना करें
ट्रिगर करने के लिए कई शर्तें होती हैं: DIPlus पर DIMinus पहनें और fasthull पर slowhull पहनें।
ट्रिगर खाली करने की स्थितिः DIMinus के तहत DIPlus और fasthull के तहत slowhull
अधिक और शून्य करने के लिए संकेतों को क्रमशः अधिक और शून्य करने के लिए संकेतों को पूरा करने के बाद।
इस रणनीति के साथ प्रवृत्ति का आकलन करने वाले संकेतकों डीएमआई और हुल की औसत रेखा की दोहरी पुष्टि, प्रभावी रूप से बाजार की प्रवृत्ति की दिशा की पहचान करने के लिए, बहु-सीमा और रिक्त-सीमा बाजार की पुनरावृत्ति से बचने के लिए। जोखिम मुक्त प्रबंधन ने व्यापार की आवृत्ति को कम कर दिया है, और लंबे समय तक समग्र लाभप्रदता अच्छी है।
इस रणनीति का सबसे बड़ा जोखिम यह है कि कोई नुकसान नहीं है, जब बाजार में भारी उतार-चढ़ाव होता है, तो नुकसान को प्रभावी ढंग से नियंत्रित नहीं किया जा सकता है। इसके अलावा, पैरामीटर अनुकूलन के लिए सीमित जगह है, और कम लक्षितता भी एक बड़ी कमी है।
जोखिम को कम किया जा सकता है जैसे कि चलती रोक, अनुकूलन पैरामीटर संयोजन आदि।
वास्तविक तरंग दैर्ध्य ट्रेलिंग स्टॉप का उपयोग करने के लिए एटीआर स्टॉप जोड़ें।
हुल चक्र के पैरामीटर को अनुकूलित करें और इष्टतम संयोजन ढूंढें
गतिशील समायोजन अधिक खाली करने के लिए पैरामीटर थ्रेशोल्ड
यह सुनिश्चित करने के लिए कि यह प्रवृत्ति जारी है, फ़िल्टर जैसे कि ऊर्जा के संकेतक जोड़े गए हैं।
डीएमआई और एचएमए के संयोजन की रणनीति, निर्णय सटीक, सरल और प्रभावी है, जो मध्यम और लंबी लाइन संचालन के लिए उपयुक्त है। उचित स्टॉप और पैरामीटर अनुकूलन के साथ, यह एक उत्कृष्ट प्रवृत्ति ट्रैकिंग प्रणाली बन सकती है।
/*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)