यह रणनीति एलन हॉल द्वारा आविष्कार किए गए हॉल मूविंग एवरेज संकेतक पर आधारित है, जो प्रवृत्ति के बाद की रणनीतियों से संबंधित है। हॉल एमए मूविंग एवरेज के लेग को कम कर सकता है और मूल्य परिवर्तनों का अधिक तेजी से जवाब दे सकता है। यह रणनीति प्रवृत्ति की दिशा निर्धारित करने और ट्रेडिंग संकेत उत्पन्न करने के लिए अतिरिक्त फिल्टर का उपयोग करने के लिए हॉल एमए का उपयोग करती है।
अल्पकालिक और दीर्घकालिक हुल एमए की गणना करें। विशिष्ट व्यापार दिशा के लिए अल्पकालिक, समग्र प्रवृत्ति के लिए दीर्घकालिक।
जब लघु अवधि के हुल एमए पार करते हैं, तो प्रवृत्ति उलट निर्धारित करें। लंबी अवधि के प्रवृत्ति दिशा के साथ फ़िल्टर करें।
सफल ब्रेकआउट सुनिश्चित करने के लिए हुल एमए शर्त के माध्यम से मूल्य ब्रेकआउट जोड़ें।
अवांछित ब्रेकआउट प्रविष्टि से बचने के लिए मूल्य परिवर्तन दर फ़िल्टर जोड़ें.
जोखिम को नियंत्रित करने के लिए स्टॉप लॉस सेट करें और लाभ लें।
सरल चलती औसत की तुलना में, इस रणनीति के लाभों में शामिल हैंः
हुल एमए मूल्य परिवर्तनों पर तेजी से प्रतिक्रिया करता है, समय पर रुझानों को पकड़ने में सक्षम होता है।
डबल हेल एमए संरचना लंबी और छोटी दोनों समय सीमाओं पर रुझानों को निर्धारित कर सकती है।
मूल्य ब्रेकआउट और परिवर्तन दर फ़िल्टर झूठे ब्रेकआउट से बचने में मदद करते हैं।
गतिशील स्टॉप लॉस और ले लाभ लाभ में ताले और नियंत्रण जोखिम।
इस रणनीति के जोखिमः
अनुचित पैरामीटर सेटिंग मूल्य प्रवृत्ति मोड़ को याद कर सकती है।
गलत समग्र रुझान आकलन के कारण विपरीत रुझान ट्रेड हो सकते हैं।
स्टॉप लॉस को बहुत चौड़ा सेट करने से बड़े नुकसान हो सकते हैं।
बहुत बार व्यापार करने से लेनदेन की लागत और फिसलने के जोखिम बढ़ जाते हैं।
इसे निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
संवेदनशीलता और चिकनाई को संतुलित करने के लिए हुल एमए अवधि को अनुकूलित करें।
इष्टतम मूल्यों को खोजने के लिए प्रवेश और निकास मापदंडों का अनुकूलन करें।
अनुकूलन क्षमता में सुधार के लिए विभिन्न उपकरणों में पैरामीटर की मजबूती का परीक्षण करें।
भिन्नता जोखिमों से बचने के लिए मात्रा को शामिल करें।
स्थिरता में सुधार के लिए शर्तें जोड़ें।
कुल मिलाकर, यह रणनीति समय पर रुझानों का पालन करने के लिए हुल एमए की प्रतिक्रियाशीलता का लाभ उठाती है, और जोखिम नियंत्रण के तहत मजबूत लाभप्रदता है। लेकिन पैरामीटर अनुकूलन की आवश्यकता है, और कुछ अपरिहार्य प्रणालीगत जोखिमों से बचा जाना चाहिए।
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-12 22:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //SeaSide420 strategy("SS420FX", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) q=input(title="HullMA Short",defval=14) z=input(title="HullMA Long",defval=14) dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001) SL = input(defval=-50000.00, title="Stop Loss in $", type=float, step=1) TP = input(defval=100000.00, title="Target Point in $", type=float, step=1) ot=1 n2ma=2*wma(close,round(q/2)) nma=wma(close,q) diff=n2ma-nma sqn=round(sqrt(q)) n2ma1=2*wma(close[1],round(q/2)) nma1=wma(close[1], q) diff1=n2ma1-nma1 sqn1=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) z2ma=2*wma(close[11],round(z/2)) zma=wma(close[11],z) ziff=n2ma-nma zqn=round(sqrt(z)) z2ma1=2*wma(close[12],round(z/2)) zma1=wma(close[12], z) ziff1=n2ma1-nma1 zqn1=round(sqrt(z)) z1=wma(diff,sqn) z2=wma(diff1,sqn) z1e=z1>z2?green:black z2e=z1>z2?black:red z3e=z1>z2?green:red n1e=plot(z1, title="HMA1", color=z1e, linewidth=2, offset=2) n2e=plot(z2, title="HMA2", color=z2e, linewidth=2, offset=2) fill(n1e, n2e, color=z3e, transp=80) confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1]) closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP if (closelong) strategy.close("Long") closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP if (closeshort) strategy.close("Short") longCondition = n1>n2 and z1>z2 and strategy.opentrades<ot and confidence>dt and close>n1 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and z1<z2 and strategy.opentrades<ot and confidence<dt and close<n1 if (shortCondition) strategy.entry("Short",strategy.short)