एमएसीडी रोबोट ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-18 17:30:15
टैगः

img

अवलोकन

इस रणनीति को एमएसीडी रोबोट ट्रेडिंग रणनीति कहा जाता है। यह एमएसीडी संकेतक की तेज रेखा और धीमी रेखा के बीच संबंध की गणना करके बाजार में खरीदने और बेचने के समय को निर्धारित करता है, और जोखिमों को नियंत्रित करने के लिए ट्रेलिंग स्टॉप लॉस को अपनाता है।

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

यह रणनीति मुख्य रूप से एमएसीडी संकेतक के आधार पर विकसित की जाती है। एमएसीडी संकेतक में एक तेज रेखा और एक धीमी रेखा होती है। तेज रेखा एक अल्पकालिक चलती औसत है और धीमी रेखा एक दीर्घकालिक चलती औसत है। दोनों के बीच संबंध बाजार में खरीदने और बेचने की स्थिति को दर्शाता है। जब तेज रेखा धीमी रेखा के ऊपर से गुजरती है, तो यह एक खरीद संकेत है, और जब यह नीचे से गुजरती है, तो यह एक बिक्री संकेत है।

इस रणनीति में, तेजी से लाइन और धीमी लाइन क्रमशः ईएमए एल्गोरिथ्म का उपयोग करके गणना की जाती है, और अवधि को अनुकूलित किया जा सकता है। सिग्नल की गुणवत्ता में सुधार के लिए, एक सिग्नल लाइन जोड़ी जाती है, जो ईएमए एल्गोरिथ्म का उपयोग एमएसीडी मूल्य को फिर से चिकना करने के लिए करती है।

खरीद के समय को निर्धारित करते समय, न केवल तेज और धीमी रेखाओं के स्वर्ण क्रॉस की जांच करें, बल्कि यह भी जांचें कि क्या एमएसीडी का पूर्ण मूल्य अनुकूलित खरीद रेखा से अधिक है। यदि हां, तो एक खरीद संकेत जारी किया जाता है और जोखिमों को नियंत्रित करने के लिए ट्रेलिंग स्टॉप लॉस का उपयोग किया जाता है।

बिक्री के समय को निर्धारित करते समय, तेजी से और धीमी लाइनों के मृत्यु क्रॉस और सकारात्मक होने वाली सिग्नल लाइन को एक ही समय में पूरा करने की आवश्यकता होती है, फिर स्थिति को बंद करने के लिए एक बिक्री संकेत जारी किया जाता है।

लाभ विश्लेषण

इस रणनीति के निम्नलिखित फायदे हैंः

  1. उच्च विश्वसनीयता के साथ व्यापार संकेतों का निर्धारण करने के लिए एमएसीडी संकेतक का उपयोग करना
  2. सिग्नल लाइन बढ़ाने से सिग्नल की गुणवत्ता में सुधार होता है
  3. ट्रेलिंग स्टॉप लॉस प्रभावी रूप से जोखिमों को नियंत्रित करता है
  4. अनुकूलन योग्य खरीद लाइन रणनीति संवेदनशीलता को समायोजित करती है
  5. सभी शर्तें सूचक गणना पर आधारित हैं, बाहरी कारकों से प्रभावित नहीं हैं

जोखिम विश्लेषण

इस रणनीति में कुछ जोखिम भी हैं:

  1. एमएसीडी संकेतक पिछड़ रहा है, अल्पकालिक व्यापारिक अवसरों को याद कर सकता है
  2. स्टॉप लॉस बिंदु की गलत सेटिंग से अनावश्यक नुकसान हो सकते हैं
  3. पैरामीटर ट्यूनिंग परीक्षण और समायोजन के लिए बहुत समय की आवश्यकता होती है
  4. लेन-देन की लागत और फिसलने का प्रभाव

इन जोखिमों को उचित रूप से मापदंडों को समायोजित करके, अन्य संकेतकों को जोड़कर आदि कम किया जा सकता है।

अनुकूलन दिशाएँ

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

  1. संकेतों को फ़िल्टर करने के लिए अन्य संकेतकों के साथ संयोजन, जैसे कि KDJ, RSI, आदि।
  2. प्रवेश और निकास बिंदुओं का निर्धारण करने के लिए मशीन सीखने के एल्गोरिदम जोड़ें
  3. स्थैतिक स्टॉप लॉस के बजाय गतिशील स्टॉप लॉस का प्रयोग करें
  4. एमएसीडी मापदंडों और खरीद रेखा का परीक्षण और अनुकूलन करें
  5. रणनीति को समायोजित करने के लिए लेनदेन लागत के प्रभाव पर विचार करें

निष्कर्ष

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


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle = "GBPUSD MACD", title = "GBPUSD MACD")
fastMA = input(title="Fast moving average",  defval = 12, minval = 7)
slowMA = input(title="Slow moving average",  defval = 26, minval = 7)
lastColor = yellow
[currMacd,_,_] = macd(close[0], fastMA, slowMA, 9)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9)
plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red
plot(currMacd, style = histogram, color = plotColor, linewidth = 3)
plot(0, title = "Zero line", linewidth = 1, color = gray)

//MACD
// Getting inputs
fast_length = input(title="Fast Length",  defval=12)
slow_length = input(title="Slow Length",  defval=26)
src = input(title="Source", defval=close)
signal_length = input(title="Signal Smoothing",  minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=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=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)
///END OF MACD

//Long and Close Long Lines
linebuy = input(title="Enter Long", type=float, defval=-0.00045)
linesell = input(title="Close Long", type=float, defval=0.0001)

//Plot Long and Close Long Lines
plot(linebuy,color=green),plot(linesell,color=red)


//Stop Loss Input
sl_inp = input(0.05, title='Stop Loss %', type=float)/100


//Order Conditions
longCond = crossover(currMacd, linebuy)
exitLong = crossover(currMacd, signal) and signal > 0
stop_level = strategy.position_avg_price * (1 - sl_inp)


//Order Entries
strategy.entry("long", strategy.long,  when=longCond==true)
strategy.close("long", when=exitLong==true)
strategy.exit("Stop Loss", stop=stop_level)

अधिक