डबल मूविंग एवरेज क्रॉसओवर MACD ट्रेंड फॉलोइंग रणनीति


निर्माण तिथि: 2024-01-23 11:22:02 अंत में संशोधित करें: 2024-01-23 11:22:02
कॉपी: 1 क्लिक्स: 594
1
ध्यान केंद्रित करना
1617
समर्थक

डबल मूविंग एवरेज क्रॉसओवर MACD ट्रेंड फॉलोइंग रणनीति

अवलोकन

यह रणनीति एक स्वचालित ट्रेडिंग रणनीति है जो दोहरी चलती औसत क्रॉसिंग MACD तकनीकी संकेतक पर आधारित है। यह MACD संकेतक के धीमे और तेज लाइन क्रॉसिंग सिग्नल का उपयोग करके प्रवृत्ति की दिशा का आकलन करता है और प्रवृत्ति को ट्रैक करता है।

रणनीति सिद्धांत

इस रणनीति में सबसे पहले MACD सूचक के तीन वक्रों की गणना की जाती हैः तेज रेखा, धीमी रेखा और विचलन रेखा। तेज रेखा एक निश्चित अवधि के दौरान एक तेज चलती औसत है, धीमी रेखा एक लंबी अवधि की चलती औसत है। विचलन रेखा तेज रेखा और धीमी रेखा का अंतर है। जब तेज रेखा पर धीमी रेखा को पार करते हैं, तो एक गोल्ड फोर्क सिग्नल होता है, जो एक खरीद संकेत है; जब तेज रेखा के नीचे धीमी रेखा को पार करते हैं, तो एक डेड फोर्क सिग्नल होता है, जो एक बेचने का संकेत है।

रणनीति इस सिद्धांत का उपयोग करती है, जब गोल्डफ़ॉर्क अधिक होता है, तो यह मृत होता है; या जब गोल्डफ़ॉर्क खाली होता है, तो यह स्वचालित ट्रेंड को ट्रैक करने के लिए होता है। साथ ही, रणनीति एमएसीडी लाइन के निरपेक्ष मानों को भी सकारात्मक-नकारात्मक मानती है, झूठे संकेतों से बचती है, और यह सुनिश्चित करती है कि ट्रेंड टर्नओवर को वास्तव में कैप्चर किया जाए।

रणनीतिक लाभ

  • दोहरी चलती औसत का उपयोग करके प्रवृत्ति की दिशा का पता लगाने के लिए, प्रवृत्ति को सही ढंग से पकड़ने के लिए
  • एमएसीडी तकनीकी संकेतक कम झूठे संकेत, संकेत गुणवत्ता में सुधार
  • अधिक रिक्तियों या केवल अधिक / रिक्तियों के लिए लचीला विकल्प
  • विभिन्न बाजार स्थितियों के लिए समायोज्य पैरामीटर

रणनीतिक जोखिम

  • द्विआधारी चलती औसत क्रॉसिंग में देरी है, जो टर्नओवर की शुरुआत में कुछ मुनाफे से चूक सकता है
  • एमएसीडी संकेतक झूठे संकेतों के लिए अतिसंवेदनशील है
  • अतिसंवेदनशील या सुस्त होने से बचने के लिए मापदंडों को उचित रूप से समायोजित करने की आवश्यकता है

जोखिम समाधान:

  • फ़िल्टर सिग्नल के साथ अन्य संकेतक
  • व्यापारिक आवृत्ति को कम करने के लिए मापदंडों को समायोजित करना
  • केवल जब रुझान स्पष्ट हो

रणनीति अनुकूलन दिशा

इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः

  1. अन्य संकेतकों के साथ पुष्टिकरण संकेतों को फ़िल्टर करें, जैसे कि केडीजे संकेत, ब्रिन बैंड संकेत, आदि

  2. प्रवेश तंत्र में बदलाव, जैसे कि एक ब्रेकआउट फ़िल्टर जोड़ा गया, जो पूर्वानुमानित जल्दी या देर से प्रवेश से बचाता है

  3. अनुकूलित पैरामीटर सेटिंग, विभिन्न चक्रों और बाजार की स्थिति के अनुसार तेजी से और धीमी गति से चक्र को समायोजित करने के लिए, बाजार के अनुकूल

  4. स्टॉप लॉस रणनीति में शामिल हों और एकल नुकसान को नियंत्रित करें

  5. विदेशी मुद्रा, डिजिटल मुद्रा आदि के लिए विस्तार

संक्षेप

यह दोहरी चलती औसत पार MACD प्रवृत्ति ट्रैकिंग रणनीति, MACD संकेतकों का उपयोग प्रवृत्ति दिशा का निर्णय, धीमी गति से लाइन पार फिल्टर सिग्नल के साथ, प्रभावी ढंग से प्रवृत्ति मोड़ को पकड़ने के लिए, स्वतः ट्रैक प्रवृत्ति. रणनीति का लाभ यह है कि यह प्रवृत्ति का सटीक निर्णय, पैरामीटर को समायोजित करने के लिए लचीला है, बाजार की स्थिति के अनुसार अनुकूलित किया जा सकता है. जोखिम को नियंत्रित करने के लिए ध्यान देने की आवश्यकता है, झूठे संकेतों से बचने के लिए। अन्य तकनीकी संकेतकों और पैरामीटर समायोजन के साथ संयुक्त होने पर, यह रणनीति अधिक प्रभावी होगी

रणनीति स्रोत कोड
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DeMindSET

//@version=4
strategy("MACD Trend Follow Strategy", overlay=false)
// Getting inputs
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"]) 
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

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)
//
Bull= macd > signal
Bear= macd < signal
ConBull=macd>0
ConBear=macd<0
//
Green= Bull and ConBull
Red= Bear and ConBear
Yellow= Bull and ConBear
Blue= Bear and ConBull
//
bcolor = Green ? color.green : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 1920)
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()  => true // create function "within window of time"

if LSB == "Long only" and Green
    strategy.entry("L",true)
if LSB == "Long only" and Red
    strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Green
    strategy.entry("L",true)
if LSB == "Both" and Red
    strategy.entry("S",false)
if LSB == "Short only" and Red
    strategy.entry("S",false)
if LSB == "Short only" and Green
    strategy.close("S",qty_percent=100,comment="TP Short")