यह रणनीति एमएसीडी तकनीकी संकेतक के दोहरी चलती औसत क्रॉसओवर पर आधारित एक स्वचालित ट्रेडिंग रणनीति है। यह ट्रेंड फॉलो करने के लिए प्रवृत्ति दिशा निर्धारित करने के लिए एमएसीडी के सिग्नल लाइन क्रॉसओवर का उपयोग करती है।
रणनीति इस तर्क का उपयोग सोने के क्रॉस पर लंबी और मौत के क्रॉस पर बंद स्थिति पर जाने के लिए करती है; या स्वचालित रूप से प्रवृत्ति का पालन करने के लिए मौत के क्रॉस और सोने के क्रॉस पर बंद स्थिति पर छोटी जाती है। इस बीच, रणनीति यह भी तय करती है कि क्या पूर्ण एमएसीडी रेखा सकारात्मक या नकारात्मक है ताकि झूठे संकेतों से बचा जा सके और वास्तव में प्रवृत्ति उलट बिंदुओं को पकड़ना सुनिश्चित हो सके।
जोखिम को कम करना:
इस रणनीति को निम्नलिखित पहलुओं से बढ़ाया जा सकता हैः
संकेतों की पुष्टि करने और झूठे संकेतों को फ़िल्टर करने के लिए KDJ, बोलिंगर बैंड आदि जैसे अन्य संकेतकों को शामिल करें
प्रवेश तंत्र में सुधार, उदाहरण के लिए, समय से पहले या देर से प्रवेश से बचने के लिए ब्रेकआउट फ़िल्टर जोड़ें
एकल व्यापार हानि को नियंत्रित करने के लिए स्टॉप लॉस जोड़ें
विदेशी मुद्रा, क्रिप्टो मुद्रा आदि जैसे अन्य उत्पादों में विस्तार करें
/*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")