दोहरे मूविंग औसत और एमएसीडी संकेतक पर आधारित प्रवृत्ति अनुसरण रणनीति


निर्माण तिथि: 2023-11-02 16:09:08 अंत में संशोधित करें: 2023-11-02 16:09:08
कॉपी: 2 क्लिक्स: 821
1
ध्यान केंद्रित करना
1621
समर्थक

दोहरे मूविंग औसत और एमएसीडी संकेतक पर आधारित प्रवृत्ति अनुसरण रणनीति

अवलोकन

इस रणनीति का मुख्य विचार यह है कि द्विआधारी सममूल्य रेखा और MACD संकेतक के संयोजन में प्रवृत्ति की दिशा का न्याय करने के लिए, प्रवृत्ति का पालन करने के लिए व्यापार को लागू करना है। जब अल्पकालिक सममूल्य रेखा पर लंबी अवधि की औसत रेखा को पार किया जाता है, तो बुलडोजर के अवसर के रूप में निर्णय लिया जाता है; जब अल्पकालिक सममूल्य रेखा के नीचे लंबी अवधि की औसत रेखा को पार किया जाता है, तो गिरावट के अवसर के रूप में निर्णय लिया जाता है। MACD संकेतक को खरीदने और बेचने के बिंदु का निर्धारण करने के लिए उपयोग किया जाता है, जब MACD स्तंभ पर 0 अक्ष को पार करने पर बुलडोजर, नीचे जाने पर गिरावट।

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

  1. EMA (12 वीं लाइन), EMA (26 वीं लाइन) और EMA (9 वीं लाइन) की गणना करें।

  2. MACD स्तंभ रेखाओं की गणना करें (स्पीड लाइन-स्लो लाइन) और MACD सिग्नल लाइन (MACD की 9 वीं लाइन) ।

  3. 50 दिन की रेखा और 200 दिन की रेखा को औसत रेखा के रूप में गणना की जाती है ताकि बड़े रुझानों का पता लगाया जा सके।

  4. एमएसीडी स्तंभ रेखा पर 0 अक्ष के माध्यम से एक bullish संकेत के रूप में, नीचे 0 अक्ष के माध्यम से एक bearish संकेत के रूप में।

  5. तेज रेखा पर धीमी रेखा और लघु औसत रेखा पर दीर्घकालिक औसत रेखा के रूप में संकेत।

  6. तेजी से नीचे धीमी लाइन के माध्यम से और लंबी अवधि की औसत लाइन के माध्यम से एक मंदी संकेत के रूप में।

  7. EMA क्रॉस पैरामीटर के नियंत्रण के बाद Max trades after EMA के माध्यम से, प्रत्येक बार औसत रेखा की दिशा में बदलाव के बाद, कई ट्रेडों को प्रवेश करने की अनुमति है।

  8. प्रवेश करने के बाद स्टॉप लॉस के माध्यम से स्टॉप प्लेसमेंट को समतल करें।

रणनीतिक लाभ

  1. द्वि-समानता एक बड़ी प्रवृत्ति का आकलन करने के लिए, विपरीत ट्रेडिंग से बचें।

  2. MACD ने खरीदारी और बिक्री के बिंदुओं का आकलन किया, जिससे ट्रेंड में बदलाव को पकड़ने में मदद मिली।

  3. द्विआधारी इक्विटी और MACD सूचकांक के संयोजन से, प्रवृत्ति में बेहतर प्रवेश समय को पकड़ने में मदद मिलती है।

  4. अधिकतम ट्रेडों को सेट करें ताकि आप अपने ट्रेडों को रोक न सकें।

  5. रोकथाम रोकथाम तंत्र नियंत्रण जोखिम

  6. बेहतर पैरामीटर संयोजन प्राप्त करने के लिए पैरामीटर का अनुकूलन करें।

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

  1. बड़े रुझान में गलत निर्णय, जिसके कारण विपरीत ट्रेडिंग हानि होती है। औसत रेखा अंतर आवश्यकताओं को उचित रूप से ढीला किया जा सकता है ताकि बड़े रुझान को पकड़ना सुनिश्चित किया जा सके।

  2. एमएसीडी खरीद और बिक्री संकेतों में देरी है, जो बहुत जल्दी या बहुत देर से प्रवेश कर सकता है। एमएसीडी मापदंडों को समायोजित किया जा सकता है, या अन्य संकेतक फ़िल्टर संकेतों के साथ जोड़ा जा सकता है।

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

  4. पैरामीटर का अनुकूलन मुश्किल है, विभिन्न किस्मों और समय अवधि के लिए विभिन्न पैरामीटर संयोजन की आवश्यकता होती है, जिसमें बहुत सारे पूर्व-परीक्षण कार्य की आवश्यकता होती है।

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

  1. अन्य औसत दर्जे के सूचकांकों का प्रयोग करें, जैसे कि केडी।

  2. अन्य मापदंडों के साथ MACD फ़िल्टर सिग्नल को जोड़ने का प्रयास करें, जैसे कि ब्रिन बैंड, एटीआर स्टॉप।

  3. विभिन्न किस्मों के लिए अलग-अलग परीक्षणों के लिए सबसे अच्छा संयोजन खोजने के लिए स्टॉप-लॉस-स्टॉप पैरामीटर का अनुकूलन करें।

  4. चरणबद्ध अनुकूलन और यादृच्छिक अनुकूलन के तरीकों का उपयोग करके बेहतर पैरामीटर संयोजन खोजने के लिए।

  5. लेनदेन की आवृत्ति को कम करने के लिए तंत्रों को जोड़ना, जैसे कि MACD शून्य-अक्ष के पास एक निषिद्ध क्षेत्र।

  6. कई किस्मों के लिए स्वचालित पैरामीटर अनुकूलन और संयोजन अनुकूलन।

संक्षेप

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

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

//@version=5
strategy(title="ComiCo - Joel on Crypto - MACD Scalping", shorttitle="ComiCo - Joel on Crypto - MACD Scalping")
// Getting inputs
slow_length1 = input(title="EMA Trend 1", defval=50)
slow_length2 = input(title="EMA Trend 2 ", defval=200)
fast_length = input(title="MACD Fast Length", defval=12)
slow_length = input(title="MACD Slow Length", defval=26)
signal_length = input.int(title="MACD Signal Smoothing",  minval = 1, maxval = 50, defval = 9)
src = input(title="MACD Source", defval=close)

i_switch = input.string(title="Tick Highlight", defval="Moving average" ,options=["Moving average","Fixed value" ])
i_switch2 = input.string(title="Tick Source", defval="Highest bar" ,options=["Highest bar","Average","Last bar"])

signal_lengthup = input.int(title="Upticks Avg. Length",  minval = 1, maxval = 5000, defval = 72)
signal_lengthdown = input.int(title="Downticks Avg. Length",  minval = 1, maxval = 5000, defval = 72)

signal_lengthMA = input.float(title="Ticks Avg. Multiplier",  minval = 0, maxval = 5000, defval = 2, step = 0.1)

sma_source = "EMA"
sma_signal = "EMA"
// Plot colors

col_grow_above = #26A69A
col_fall_above =#B2DFDB
col_grow_below = #FFCDD2
col_fall_below = #FF5252
// Calculating

fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)

time_macd=timeframe.period=="1"?"1": timeframe.period=="3"?"1": timeframe.period=="5"?"1": timeframe.period=="15"?"3":timeframe.period=="30"?"5":timeframe.period=="60"?"15":timeframe.period=="120"?"30":timeframe.period=="240"?"60":timeframe.period=="D"?"240":timeframe.period=="W"?"D":timeframe.period=="M"?"W":timeframe.period=="12M"?"M":timeframe.period



macd = fast_ma - slow_ma
macd1=request.security(syminfo.tickerid, time_macd, macd)
signal = sma_signal == "SMA" ? ta.sma(macd1, signal_length) : ta.ema(macd1, signal_length)

ema50=ta.ema(close,slow_length1)
ema200=ta.ema(close ,slow_length2)

var TradeCounter = 0
MaxCount = input.int(title = "Max trades after EMA cross", minval = 0, maxval = 1000, defval = 3)
bull = ema50>ema200
if bull != bull[1]
    TradeCounter := 0


hist = request.security(syminfo.tickerid, time_macd, macd1 - signal)


f() => [hist[4],hist[3],hist[2],hist[1], hist]
ss=request.security(syminfo.tickerid, time_macd, hist, barmerge.gaps_on,barmerge.lookahead_off)



[ss5,ss4,ss3,ss2,ss1]=request.security(syminfo.tickerid, time_macd, f(), barmerge.gaps_on,barmerge.lookahead_off)



a = array.from(ss5,ss4,ss3,ss2,ss1)

s3=i_switch2=="Highest bar"?(ss>0? array.max(a, 0) : array.min(a, 0)):i_switch2=="Average"?array.avg(a):i_switch2=="Last bar"?ss1:0

saa=timeframe.period == '1'? ss:s3

saa2=timeframe.period == '1'? ss:s3*signal_lengthMA


colorss=(s3>=0 ? (s3[1] < s3 ? col_grow_above : col_fall_above) : (s3[1] < s3 ? col_grow_below : col_fall_below))


saadown = saa2
saaup = saa2

saadown:=saa>=0? saa2:saadown[1]

saaup:=saa<0? saa2:saaup[1]



verr=ta.ema(saadown,signal_lengthup)
dowww=ta.ema(saaup,signal_lengthdown)

ss22=plot(verr, title="Avg. Cloud Upper 1", color=color.new(color.white, 100))
ss33=plot(dowww, title="Avg. Cloud Lower 1", color=color.new(color.white, 100))

fill(ss22, ss33, color.new(color.white, 93), title="Avg. Cloud Background")

fixeduptick = input(title="Fixed Uptick Value", defval=30)
fixeddowntick = input(title="Fixed Downtick Value", defval=-30)
minl = i_switch=="Fixed value"? fixeduptick  :  verr
maxl = i_switch=="Fixed value"? fixeddowntick : dowww 

plot(minl, title="Avg. Cloud Upper 2", color=color.new(color.white, 81))
plot(maxl, title="Avg. Cloud Lower 2", color=color.new(color.white, 81))


colors2= s3<=minl and s3>=maxl ? #2a2e39 : colorss

coro2=s3>0? ema50>ema200 ? #2a2e39 :  colors2 : ema50<ema200 ? #2a2e39: colors2
plot(saa, title="Histogram", style=plot.style_columns, color=coro2)

LimitDiff = input.float(title="Limit Price Difference",  minval = 0, maxval = 0.1, defval = 0.005, step = 0.0005)
TP = input.float(title="Take Profit",  minval = 0, maxval = 0.1, defval = 0.005, step = 0.0005)
SL = input.float(title="Stop Loss",  minval = 0, maxval = 0.1, defval = 0.004, step = 0.0005)

minEMAdiff = input.float(title = "Min EMA difference", defval = 100, step = 10)

if #2a2e39 != coro2
    a22 = 0
    if ema50<ema200 and TradeCounter < MaxCount and math.abs(ema50-ema200) > minEMAdiff
        LimitPrice = close * (1 + LimitDiff)
        strategy.entry("enter short", strategy.short, limit = LimitPrice)
        strategy.exit("exit short", "enter short", limit = LimitPrice * (1 - TP), stop = LimitPrice * (1 + SL))
        TradeCounter := TradeCounter + 1
    if ema50>ema200 and TradeCounter < MaxCount and math.abs(ema50-ema200) > minEMAdiff
        LimitPrice = close * (1 - LimitDiff)
        strategy.entry("enter long", strategy.long, limit = LimitPrice)
        strategy.exit("exit long", "enter long", limit = LimitPrice * (1 + TP), stop = LimitPrice * (1 - SL))
        TradeCounter := TradeCounter + 1

//alertcondition(#2a2e39 != coro2 , title='MACD Tick Alert', message='Joel on Crypto - MACD Tick Alert')