द्विआधारी चलती औसत क्रॉसओवर एमएसीडी ट्रेंड रणनीति का पालन करना

लेखक:चाओझांग, दिनांकः 2024-01-23 11:22:02
टैगः

img

अवलोकन

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

रणनीति तर्क

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

रणनीति के फायदे

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

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

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

जोखिम को कम करना:

  • संकेतों को फ़िल्टर करने के लिए अन्य संकेतकों के साथ संयोजन
  • कम ट्रेडिंग आवृत्ति के लिए पैरामीटर ट्यून करें
  • केवल तभी रणनीति अपनाएं जब प्रवृत्ति स्पष्ट हो

सुधार के क्षेत्र

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

  1. संकेतों की पुष्टि करने और झूठे संकेतों को फ़िल्टर करने के लिए KDJ, बोलिंगर बैंड आदि जैसे अन्य संकेतकों को शामिल करें

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

  3. एकल व्यापार हानि को नियंत्रित करने के लिए स्टॉप लॉस जोड़ें

  4. विदेशी मुद्रा, क्रिप्टो मुद्रा आदि जैसे अन्य उत्पादों में विस्तार करें

सारांश


/*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")


अधिक