एमएसीडी गोल्डन क्रॉस और डेड क्रॉस ट्रेंड ट्रैकिंग रणनीति


निर्माण तिथि: 2023-12-22 11:45:54 अंत में संशोधित करें: 2023-12-22 11:45:54
कॉपी: 1 क्लिक्स: 1112
1
ध्यान केंद्रित करना
1623
समर्थक

एमएसीडी गोल्डन क्रॉस और डेड क्रॉस ट्रेंड ट्रैकिंग रणनीति

अवलोकन

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

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

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

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

विशेष रूप से, रणनीति पहले मानक MACD संकेतकों जैसे कि तेजी से चलती औसत, धीमी गति से चलती औसत, MACD विचलन, सिग्नल लाइन, आदि की गणना करती है। फिर पांच चयनित संकेतों के आधार पर ((ट्रेन सिग्नल, रिवर्स सिग्नल, कॉलम ग्राफ सिग्नल, MACD शून्य-अक्ष क्रॉसिंग, सिग्नल शून्य-अक्ष क्रॉसिंग) निर्णय लेने के लिए। अंत में, एटीआर सूचक के साथ मिलकर स्टॉपलॉस सेट करें, लॉजिक को पूरा करें और आउट करें।

श्रेष्ठता विश्लेषण

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

  1. MACD सूचक का उपयोग करके प्रवृत्ति दिशा का निर्धारण करना सटीक और विश्वसनीय है, और कई वर्षों से MACD सूचक प्रवृत्ति के निर्धारण में प्रमुखता से प्रदर्शन कर रहा है।

  2. एटीआर सूचकांक के साथ संयोजन में स्टॉप-लॉस-स्टॉप सेटिंग्स एक एकल ट्रेड के रिस्क-रिटर्न अनुपात को प्रभावी रूप से नियंत्रित कर सकती हैं, जिससे नुकसान की संभावना कम हो जाती है।

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

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

जोखिम और समाधान

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

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

  2. एटीआर केवल हाल के समय के उतार-चढ़ाव का मॉडलिंग करता है और चरम स्थितियों पर सटीक स्टॉप लॉस नहीं कर सकता है। इसे हल करने के लिए गतिशील स्टॉप लॉस की शुरुआत की जा सकती है।

  3. चयनित संकेतों का प्रभाव अस्थिर हो सकता है और इष्टतम पैरामीटर निर्धारित करने के लिए भारी मात्रा में रिट्रेसिंग की आवश्यकता होती है।

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

अनुकूलन सुझाव

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

  1. अन्य चलती औसत जैसे टीएमए, हुलएमए आदि का प्रयास करें और एमएसीडी संकेतों को फ़िल्टर करें।

  2. इस प्रकार, यह एक गतिशील स्टॉप-लॉस तंत्र का परीक्षण करता है, जो चरम स्थितियों के उतार-चढ़ाव को बेहतर ढंग से संभाल सकता है।

  3. MACD सूचकांक के पारंपरिक पैरामीटर के संयोजन को परिश्रमपूर्वक अनुकूलित करें और बेहतर पैरामीटर ढूंढें।

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

  5. पांच प्रकार के सिग्नल पर एक-एक करके परीक्षण किया गया, ताकि सबसे अच्छा सिग्नल निर्धारित किया जा सके।

  6. एक तंत्रिका नेटवर्क को प्रशिक्षित करना जो एक प्रकार के संकेतों के प्रभाव को पहचानता है और नए MACD-आधारित संकेतों की तलाश करता है।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-11-21 00:00:00
end: 2023-12-21 00:00:00
period: 1h
basePeriod: 15m
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/
// © vuagnouxb

//@version=4
strategy("BV's MACD SIGNAL TESTER", overlay=true)

//------------------------------------------------------------------------
//----------            Confirmation Calculation              ------------ INPUT
//------------------------------------------------------------------------

// Getting inputs
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)

// -- Trade entry signals

signalChoice = input(title = "Choose your signal", defval = "Continuation", options = ["Continuation", "Reversal", "Histogram", "MACD Line ZC", "Signal Line ZC"])

continuationSignalLong = signalChoice == "Continuation" ? crossover(macd, signal) and macd > 0 :
   signalChoice == "Reversal" ? crossover(macd, signal) and macd < 0 : 
   signalChoice == "Histogram" ? crossover(hist, 0) : 
   signalChoice == "MACD Line ZC" ? crossover(macd, 0) :
   signalChoice == "Signal Line ZC" ? crossover(signal, 0) :
   false
   
continuationSignalShort = signalChoice == "Continuation" ? crossunder(macd, signal) and macd < 0 :
   signalChoice == "Reversal" ? crossover(signal, macd) and macd > 0 : 
   signalChoice == "Histogram" ? crossunder(hist, 0) : 
   signalChoice == "MACD Line ZC" ? crossunder(macd, 0) :
   signalChoice == "Signal Line ZC" ? crossunder(signal, 0) :
   false

longCondition = continuationSignalLong

shortCondition = continuationSignalShort

//------------------------------------------------------------------------
//----------             ATR MONEY MANAGEMENT                 ------------
//------------------------------------------------------------------------

SLmultiplier = 1.5
TPmultiplier = 1

JPYPair = input(type = input.bool, title = "JPY Pair ?", defval = false)
pipAdjuster = JPYPair ? 1000 : 100000


ATR = atr(14) * pipAdjuster // 1000 for jpy pairs : 100000
SL = ATR * SLmultiplier
TP = ATR * TPmultiplier

//------------------------------------------------------------------------
//----------                  TIME FILTER                     ------------
//------------------------------------------------------------------------

YearOfTesting = input(title = "How many years of testing ?" , type = input.integer, defval = 3)

_time = 2020 - YearOfTesting

timeFilter = (year > _time) 

//------------------------------------------------------------------------
//---------                 ENTRY FUNCTIONS                    ----------- INPUT
//------------------------------------------------------------------------

if (longCondition and timeFilter)  
    strategy.entry("Long", strategy.long)

if (shortCondition and timeFilter) 
    strategy.entry("Short", strategy.short)
    
//------------------------------------------------------------------------
//---------                 EXIT  FUNCTIONS                    -----------
//------------------------------------------------------------------------


strategy.exit("ATR", from_entry = "Long", profit = TP, loss = SL)  

strategy.exit("ATR", from_entry = "Short", profit = TP, loss = SL)