एमएसीडी मूविंग एवरेज क्रॉसओवर रणनीति

लेखक:चाओझांग, दिनांक: 2023-09-14 17:03:47
टैगः

रणनीति तर्क

यह रणनीति एमएसीडी संकेतक को चलती औसत के साथ जोड़ती है, जब दोनों संरेखित संकेत देते हैं तो लंबी जाती है।

तर्क यह हैः

  1. FAST MACD की गणना करें, आम तौर पर 12 दिन का ईएमए

  2. गणना धीमी MACD, आम तौर पर 26-दिवसीय ईएमए

  3. एमएसीडी तेजी से शून्य धीमी है

  4. सिग्नल लाइन आम तौर पर एमएसीडी का 9 दिन का एमए है

  5. 9-दिवसीय और 26-दिवसीय एमए की गणना

  6. जब एमएसीडी सिग्नल लाइन के ऊपर पार करता है तो लंबे समय तक विचार करें

  7. जब 9-दिवसीय एमए 26-दिवसीय एमए से ऊपर जाता है तो लंबा हो जाता है

  8. जब एमएसीडी सिग्नल लाइन से नीचे और 9-दिवसीय एमए 26-दिवसीय एमए से नीचे पार करता है तो लंबे समय तक बंद करें

यह रणनीति MACD के ओवरबोल्ड-ओवरसोल्ड गेज और MA की ट्रेंड फॉलो करने की क्षमता का उपयोग करती है, दोनों को उच्च बाधाओं के व्यापार के लिए जोड़ती है।

लाभ

  • एमएसीडी अधिक खरीदे/बेचे जाने का आकलन करता है, एमए प्रवृत्ति निर्धारित करता है

  • संयोजन उच्च संभावना वाले दीर्घकालिक अवसर प्रदान करता है

  • लागू करने में आसान स्पष्ट नियम

जोखिम

  • सर्वोत्तम मापदंडों का निर्धारण करने के लिए अनुकूलन की आवश्यकता है

  • केवल अल्पकालिक अवसरों का उपयोग करने में असमर्थ

  • ट्रेंड के खिलाफ ट्रेडों से नुकसान बढ़ सकता है

सारांश

यह रणनीति बाजार की लय का आकलन करने में एमएसीडी और एमए की ताकत का उपयोग करती है। लेकिन केवल लंबी सीमाएं और पैरामीटर अनुकूलन सावधानी बरतते हैं।


/*backtest
start: 2023-09-06 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4
strategy("MACD Cross+MA", overlay=true)
//@version=4
// 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)
// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"


// 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
plot(sma(close,9),color=color.red)
plot(sma(close,26),color=color.green)
//Condition
BMacdcondition= (macd>signal)
SMacdcondition= (macd<signal)
longCondition = crossover(sma(close, 9), sma(close, 26))
shortCondition = crossunder(sma(close, 9), sma(close, 26))
//entry
if (BMacdcondition) and window()
    (longCondition)
    strategy.entry("LONG", strategy.long)
if (shortCondition) and window()
    (SMacdcondition)
    strategy.close("LONG", qty_percent=100 , comment="หนีตาย")

अधिक