
यह रणनीति एक ट्रेडिंग सिस्टम है जो बहु-चक्रिक चलती औसत बैंड और MACD संकेतक को जोड़ती है। रणनीति मुख्य रूप से बाजार की प्रवृत्ति और व्यापार के समय को निर्धारित करने के लिए अल्पकालिक और दीर्घकालिक चलती औसत के साथ-साथ MACD संकेतक के संकेतों के माध्यम से निर्धारित करती है। यह रणनीति दिन के भीतर ट्रेडिंग रीसेट तर्क को एकीकृत करती है, जो रात भर के जोखिम को प्रभावी ढंग से रोकती है।
रणनीति के मुख्य तर्क में तीन मुख्य भाग शामिल हैंः एक चलती औसत बैंड प्रणाली, एक MACD सूचक प्रणाली और एक दिन के भीतर व्यापार पुनर्स्थापना तंत्र। एक चलती औसत बैंड दो अलग-अलग चक्रों ((9 और 21) से बना होता है, जिसमें कई प्रकार के औसत प्रकार शामिल हैं। एसएमए, ईएमए, एसएमएमए, डब्ल्यूएमए और वीडब्ल्यूएमए। MACD प्रणाली मानक 12 / 26 / 9 पैरामीटर सेटिंग को अपनाती है, जो एक तेज और धीमी लाइन के अंतर सिग्नल और लाइन के माध्यम से प्रवृत्ति की मात्रा का आकलन करती है। एक खरीद संकेत को एक ही समय में दो शर्तों को पूरा करने की आवश्यकता होती है जो लंबी लाइन औसत और MACD ऑनलाइन सिग्नल के माध्यम से एक लंबी लाइन के माध्यम से गुजरती है, जबकि एक बेचने का संकेत हर बार जब एक उलटा क्रॉसिंग होता है, तो सिग्नल की स्थिति को फिर से शुरू करने के लिए ट्रिगर किया जाता है।
इस रणनीति के संयोजन के माध्यम से एक समान रेखा बैंड और MACD संकेतकों, एक अपेक्षाकृत अच्छी तरह से व्यापार प्रणाली का निर्माण. हालांकि वहाँ कुछ पिछड़े जोखिम है, उचित पैरामीटर अनुकूलन और जोखिम प्रबंधन के साथ, रणनीति ट्रेंडिंग बाजार में अच्छा प्रभाव प्राप्त कर सकते हैं. यह सलाह दी जाती है कि व्यापारियों के लिए पर्याप्त फीडबैक का उपयोग करने से पहले और विशिष्ट बाजार विशेषताओं के अनुसार पैरामीटर सेटिंग को समायोजित करने के लिए.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Daily MA Ribbon + MACD Crossover with Buy/Sell Signals", overlay=true)
// === Daily Reset Logic ===
var bool newDay = false // Initialize newDay as a boolean variable
newDay := bool(ta.change(time("D"))) // Cast the result of ta.change to boolean
// === Moving Average Ribbon ===
ma(source, length, type) =>
type == "SMA" ? ta.sma(source, length) :
type == "EMA" ? ta.ema(source, length) :
type == "SMMA (RMA)" ? ta.rma(source, length) :
type == "WMA" ? ta.wma(source, length) :
type == "VWMA" ? ta.vwma(source, length) :
na
// MA1 (Short-term MA)
show_ma1 = input(true, "MA №1", inline="MA #1")
ma1_type = input.string("EMA", "", inline="MA #1", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma1_source = input(close, "", inline="MA #1")
ma1_length = input.int(9, "", inline="MA #1", minval=1) // Short-term MA (e.g., 9-period)
ma1_color = input(color.blue, "", inline="MA #1")
ma1 = ma(ma1_source, ma1_length, ma1_type)
plot(show_ma1 ? ma1 : na, color = ma1_color, title="MA №1")
// MA2 (Long-term MA)
show_ma2 = input(true, "MA №2", inline="MA #2")
ma2_type = input.string("EMA", "", inline="MA #2", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma2_source = input(close, "", inline="MA #2")
ma2_length = input.int(21, "", inline="MA #2", minval=1) // Long-term MA (e.g., 21-period)
ma2_color = input(color.red, "", inline="MA #2")
ma2 = ma(ma2_source, ma2_length, ma2_type)
plot(show_ma2 ? ma2 : na, color = ma2_color, title="MA №2")
// === MACD ===
fast_length = input(12, "Fast Length")
slow_length = input(26, "Slow Length")
signal_length = input.int(9, "Signal Smoothing", minval=1, maxval=50)
sma_source = input.string("EMA", "Oscillator MA Type", options=["SMA", "EMA"])
sma_signal = input.string("EMA", "Signal Line MA Type", options=["SMA", "EMA"])
// Calculate MACD
fast_ma = sma_source == "SMA" ? ta.sma(close, fast_length) : ta.ema(close, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(close, slow_length) : ta.ema(close, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
// Plot MACD
hline(0, "Zero Line", color = color.new(#787B86, 50))
plot(hist, title = "Histogram", style = plot.style_columns, color = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252)))
plot(macd, title = "MACD", color = #2962FF)
plot(signal, title = "Signal", color = #FF6D00)
// === Buy/Sell Signal Logic ===
// Condition 1: MA1 (Short-term) crosses above MA2 (Long-term)
ma_crossover = ta.crossover(ma1, ma2)
// Condition 2: MACD line crosses above Signal line
macd_crossover = ta.crossover(macd, signal)
// Buy Signal: Both conditions must be true
buy_signal = ma_crossover and macd_crossover
// Sell Signal: MA1 crosses below MA2 or MACD crosses below Signal
sell_signal = ta.crossunder(ma1, ma2) or ta.crossunder(macd, signal)
// Reset signals at the start of each new day
if (newDay)
buy_signal := false
sell_signal := false
// Plot Buy/Sell Signals
plotshape(buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy Entry/Exit
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.close("Buy", comment="Sell")