
यह रणनीति MACD ऑस्किलेटर को फास्ट लाइन ईएमए और धीमी लाइन ईएमए के अंतर की गणना करके और फिर MACD की औसत रेखा की गणना करके सिग्नल लाइन बनाती है, जिससे एक दोहरी फ़िल्टर प्रणाली का निर्माण होता है। जब MACD लाइन सिग्नल लाइन को नीचे से पार करती है तो यह एक खरीद संकेत उत्पन्न करती है। जब MACD लाइन सिग्नल लाइन को ऊपर से नीचे से पार करती है, तो यह एक बेचने का संकेत उत्पन्न करती है। कीमतों के अल्पकालिक मध्यम अवधि के उतार-चढ़ाव का लाभ उठाने के लिए।
इस रणनीति का मुख्य संकेतक MACD ऑब्जर्वेटर है, जिसे फास्ट ईएमए (आमतौर पर 12 दिन का ईएमए) से घटाकर धीमी ईएमए (आमतौर पर 26 दिन का ईएमए) से गणना की जाती है। फास्ट ईएमए अधिक संवेदनशील है और कीमतों में अल्पकालिक उतार-चढ़ाव को पकड़ सकता है; धीमी ईएमए मूल्य परिवर्तन के लिए धीमी प्रतिक्रिया देता है। दोनों को कम करके एक ऑब्जर्वेटर बनाया जा सकता है जो अल्पकालिक और मध्यवर्ती अवधि में मूल्य परिवर्तन के मूल्य का प्रतिनिधित्व करता है। फिर MACD ऑब्जर्वेटर को अपने स्वयं के ईएमए (आमतौर पर 9 दिन का सेट) की गणना करने के लिए, सिग्नल लाइन प्राप्त की जाती है। जब MACD सिग्नल लाइन के नीचे से गुजरता है, तो यह मध्यम अवधि में मजबूत भाव की तुलना में अल्पकालिक भाव की ऊंची गतिशीलता का प्रतिनिधित्व करता है, जो एक खरीद संकेत उत्पन्न करता है; जब MACD सिग्नल लाइन से नीचे से गुजरता है, तो यह मध्यम अवधि में मजबूत भाव की तुलना में अल्पकालिक भाव की गतिशीलता का प्रतिनिधित्व करता है, जो एक
इस नीति में इनपुट पैरामीटर को क्रमशः फास्ट लाइन की लंबाई, धीमी लाइन की लंबाई, मूल्य स्रोत, सिग्नल लाइन की लंबाई और चिकनाई अवधि के रूप में सेट किया गया है। पैरामीटर को विभिन्न बाजारों के अनुसार समायोजित किया जा सकता है, जो कि सर्वोत्तम पैरामीटर संयोजन की तलाश में है। पृष्ठभूमि का रंगीन ब्लॉक समय सीमा को दर्शाता है। नीति उस समय सीमा के बाहर नहीं चलती है।
MACD सूचकांक क्लासिक और समझने में आसान है, जो लघु और मध्यम अवधि के पलटाव के अवसरों को प्रभावी ढंग से पकड़ सकता है।
एक एकल एमए प्रणाली की तुलना में दो ईएमए निर्मित एमएसीडी सिस्टम में बेहतर चिकनाई होती है।
विभिन्न बाजारों के लिए पैरामीटर अनुकूलन के लिए अधिक समायोज्य पैरामीटर।
संश्लेषित द्रव्यमान संकेत उच्च गुणवत्ता वाले संकेतों की पहचान करता है।
भूकंप की स्थिति में, MACD संकेतक अधिक गलत सिग्नल उत्पन्न करता है।
इस प्रकार, यह एक बहुत ही महत्वपूर्ण विषय है, और यह एक बहुत ही महत्वपूर्ण विषय है, क्योंकि यह एक बहुत ही महत्वपूर्ण विषय है।
यह भी कहा गया है कि इस तरह की घटनाओं को कम करने के लिए समय सीमा को सीमित किया जा सकता है।
पैरामीटर सेटिंग को अधिक बाजार डेटा को अनुकूलित करने के लिए संयोजित करने की आवश्यकता होती है, अन्यथा एक बाजार खंड ओवरफिट हो सकता है।
रुझान के आंकड़ों के संयोजन के माध्यम से जोखिम को नियंत्रित किया जा सकता है, स्टॉप-लॉस तंत्र स्थापित किया जा सकता है।
विभिन्न मूल्य स्रोतों का परीक्षण करें, जैसे कि समापन मूल्य, औसत मूल्य, प्रतिस्थापन मूल्य आदि।
अधिक ऐतिहासिक आंकड़ों के आधार पर सबसे अच्छा संयोजन ढूंढें
सिग्नल की गुणवत्ता के लिए अन्य मापदंडों को एकीकृत करना. उदाहरण के लिए, यातायात सिग्नल.
प्रवृत्तियों और तरंगों के निर्णय के संयोजन के साथ, प्रवृत्तियों के साथ महत्वपूर्ण संघर्ष से बचें।
यह रणनीति दोहरे ईएमए फ़िल्टर के निर्माण के माध्यम से, कीमतों में छोटी रेखाओं के चक्र की उलटा घटना को पकड़ने के लिए, क्लासिक और व्यावहारिक समय की रणनीति है। पैरामीटर अनुकूलन, सिग्नल फ़िल्टरिंग और स्टॉप लॉस के माध्यम से जोखिम को नियंत्रित किया जा सकता है। साथ ही साथ रुझान निर्णय के संकेतकों के संयोजन के साथ, नीचे की चोटी को रोकने से बचने के लिए, स्थिर लाभ प्राप्त किया जा सकता है।
/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="MACD Histogram Backtest", shorttitle="MACD")
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
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
grow = (hist[1] < hist)
fall = (hist[1] > hist) and hist >= 0
stop = (hist[1] > hist)
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)
//Strategy Testing
// Component Code Start
// Example usage:
// if testPeriod()
// strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() => true
// Component Code Stop
//Entry and Close settings
if testPeriod()
strategy.entry("grow", true, 10, when = grow, limit = close)
strategy.close("grow", when = fall)
strategy.close("grow", when = stop)
//if testPeriod()
// strategy.entry("fall", false, 1000, when = fall, limit = close)
// strategy.close("fall", when = grow)