यह रणनीति एमएसीडी हिस्टोग्राम के रुझान के आधार पर व्यापारिक निर्णय लेती है। यह हिस्टोग्राम के ऊपर और नीचे के रुझानों का उपयोग खरीद और बिक्री संकेत उत्पन्न करने के लिए करती है। जब हिस्टोग्राम एक निश्चित अवधि के लिए बढ़ता या गिरता रहता है, तो संबंधित संकेत उत्पन्न होते हैं।
यह रणनीति एमएसीडी संकेतक की तेज रेखा, धीमी रेखा और हिस्टोग्राम का उपयोग करती है। सबसे पहले तेजी से ईएमए और धीमी ईएमए की गणना करें। फिर एमएसीडी प्राप्त करने के लिए तेजी से ईएमए से धीमी ईएमए घटाएं, और सिग्नल घटाएं जो हिस्टोग्राम प्राप्त करने के लिए एमएसीडी का चलती औसत है।
जब हिस्टोग्राम निर्धारित अवधि के लिए बढ़ता रहता है, तो एक खरीद संकेत उत्पन्न होता है। यह इंगित करता है कि एमएसीडी अपनी सिग्नल लाइन को ऊपर की ओर तोड़ने के लिए तेजी से बढ़ रहा है, यह भविष्यवाणी करता है कि कीमतें बढ़ सकती हैं।
जब हिस्टोग्राम निर्धारित अवधि के लिए गिरता रहता है, तो एक बिक्री संकेत उत्पन्न होता है। यह इंगित करता है कि एमएसीडी अपनी सिग्नल लाइन को नीचे की ओर तोड़ने के लिए तेजी से बढ़ रहा है, यह भविष्यवाणी करता है कि कीमतें गिर सकती हैं।
इस रणनीति के निम्नलिखित फायदे हैंः
एमएसीडी हिस्टोग्राम की प्रवृत्ति विशेषता का उपयोग करके, यह मूल्य परिवर्तनों के मोड़ बिंदुओं को पकड़ सकता है और लाभप्रदता को बढ़ा सकता है।
हिस्टोग्राम के लगातार बढ़ने या गिरने की स्थिति के साथ संयोजन में, अनावश्यक घाटे को कम करने के लिए कुछ शोर वाले ट्रेडों को फ़िल्टर किया जा सकता है।
एमएसीडी मापदंडों और हिस्टोग्राम ट्रेंड अवधि के अनुकूलन की अनुमति देते हुए, इसे विभिन्न उत्पादों और ट्रेडिंग सत्रों के अनुरूप समायोजित किया जा सकता है।
रणनीति तर्क सरल और स्पष्ट है, इसे समझना और संशोधित करना आसान है, और अन्य संकेतकों या रणनीतियों के साथ संयोजन के लिए भी सुविधाजनक है।
इस रणनीति में कुछ जोखिम भी हैं:
जब कीमतें सीमा में दोलन कर रही हों तो गलत संकेत हो सकते हैं। फ़िल्टर करने के लिए ट्रेंड इंडिकेटरों को जोड़ने की आवश्यकता होती है।
हिस्टोग्राम बढ़ने या गिरने के बाद, एमएसीडी लाइन सिग्नल लाइन को तोड़ने में विफल हो सकती है, लाभदायक तरीके से बाहर निकलने में असमर्थ। जोखिम को नियंत्रित करने के लिए स्टॉप लॉस सेट किया जाना चाहिए।
ट्रेडिंग लागत और फिसलने पर विचार नहीं किया जाता है। लाइव ट्रेडिंग में वास्तविक लाभ कम हो सकता है।
गलत पैरामीटर सेटिंग्स (जैसे एमएसीडी अवधि, हिस्टोग्राम ट्रेंड अवधि) रणनीति प्रदर्शन को खराब कर सकती हैं। पैरामीटर को उत्पादों और सत्रों के लिए अनुकूलित करने की आवश्यकता है।
इन जोखिमों को रुझान संकेतकों के साथ संयोजन, स्टॉप लॉस तंत्र की स्थापना, मापदंडों का अनुकूलन आदि जैसे तरीकों से नियंत्रित और कम किया जा सकता है।
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
समग्र रुझान की दिशा निर्धारित करने के लिए अन्य संकेतकों का संयोजन करें, दोलन सीमाओं में व्यापार से बचें। उदाहरण के लिए मध्यम-लंबी अवधि के रुझान के लिए 20 दिन की रेखा।
स्टॉप लॉस तंत्र जोड़ें. उदाहरण के लिए स्टॉप लॉस जब एमएसीडी सिग्नल लाइन को फिर से नीचे की ओर तोड़ता है.
विभिन्न आवृत्तियों के उत्पादों के अनुरूप एमएसीडी मापदंडों का अनुकूलन करना। उदाहरण के लिए उच्च आवृत्ति डेटा के लिए अवधि मापदंडों को छोटा करना।
लगातार हिस्टोग्राम वृद्धि या गिरावट की न्यूनतम अवधि को अनुकूलित करना, सिग्नल आवृत्ति और विश्वसनीयता को संतुलित करना।
ब्रेकआउट विफलता के बाद अनुवर्ती संकेतों के तर्क का प्रयास करें। यानी हिस्टोग्राम उलट के बाद अनुवर्ती रिवर्स संकेत।
बाजार की गर्मी और फ़िल्टर संकेतों को मापने के लिए वॉल्यूम या अस्थिरता संकेतकों जैसे अन्य संकेतकों को मिलाएं।
अंत में, एमएसीडी हिस्टोग्राम ट्रेंड रणनीति हिस्टोग्राम ट्रेंड परिवर्तनों को कैप्चर करके मूल्य परिवर्तन टर्निंग पॉइंट्स का न्याय करती है। पैरामीटर अनुकूलन और कॉम्बो संकेतकों को जोड़कर गलत संकेतों को प्रभावी ढंग से फ़िल्टर किया जा सकता है। मात्रात्मक व्यापार में एक महत्वपूर्ण सहायक निर्णय उपकरण के रूप में, यह रणनीति एमएसीडी हिस्टोग्राम का उपयोग करके एक सरल और व्यावहारिक व्यापारिक विचार प्रदान करती है।
/*backtest start: 2023-01-18 00:00:00 end: 2024-01-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //study(title="Histogram Strategy by Sedkur", shorttitle="Histogram Strategy by Sedkur") strategy (title="Histogram Trends Strategy by Sedkur", shorttitle="Histogram Trends Strategy by Sedkur") /// Getting inputs dyear = input(title="Year", type=input.integer, defval=2017, minval=1950, maxval=2500) fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) hist_length = input(title="Trend of Histogram Number", type=input.integer, defval=1, minval=1, maxval=100) //buyh = input(title="Buy histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1) //sellh = input(title="Sell histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 /// Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 ) //plot(macd, title="MACD", color=col_macd, transp=0) //plot(signal, title="Signal", color=col_signal, transp=0) //bullish = hist[1] <= hist and buyh<=hist?true:false //bearish = hist[1] >= hist and sellh>=hist?true:false bull=0 bear=0 for i=0 to hist_length if (hist[i+1] <= hist[i]) bull:=bull+1 bullish = bull==hist_length+1?true:false for j=0 to hist_length if (hist[j+1] >= hist[j]) bear:=bear+1 bearish = bear==hist_length+1?true:false //bullish = hist[1] <= hist and hist[2] <= hist and hist[3] <= hist and hist[4] <= hist and hist[5] <= hist?true:false //bearish = hist[1] >= hist and hist[2] >= hist and hist[3] >= hist and hist[4] >= hist and hist[5] >= hist?true:false strategy.entry("buy", strategy.long, comment="buy", when = bullish and year>=dyear) strategy.entry("sell", strategy.short, comment="sell", when = bearish and year>=dyear)