डीएमआई और चलती औसत संयोजन रणनीति

लेखक:चाओझांग, दिनांक: 2023-09-19 21:51:14
टैगः

अवलोकन

यह रणनीति 123 रिवर्स रणनीति, डीएमआई रणनीति और मूविंग एवरेज रणनीति को एक प्रभावी संयोजन रणनीति बनाने के लिए जोड़ती है। यह ट्रेंड रिवर्स बिंदुओं पर रिवर्स ऑपरेशन कर सकती है और ट्रेंड जारी रहने पर ट्रेंड का पालन कर सकती है। इस बीच, यह रणनीति जीत दर में सुधार के लिए मार्केट ट्रेंड दिशाओं को फ़िल्टर और पहचानने के लिए मूविंग एवरेज का उपयोग करती है।

रणनीति तर्क

  1. रिवर्स रणनीतिः जब बंद मूल्य पिछले बंद से 2 लगातार दिनों के लिए अधिक हो और 9 दिन की धीमी K लाइन 50 से कम हो, तब लंबी करें; जब बंद मूल्य पिछले बंद से 2 लगातार दिनों के लिए कम हो और 9 दिन की तेज K लाइन 50 से ऊपर हो, तब छोटी करें।

  2. डीएमआई रणनीतिः जब +डीआई -डीआई से ऊपर जाता है तो लंबा हो जाता है; जब -डीआई +डीआई से नीचे जाता है तो छोटा हो जाता है।

  3. मूविंग एवरेज रणनीतिः जब बंद मूल्य एमए से ऊपर जाता है तो लंबा हो जाता है; जब बंद मूल्य एमए से नीचे जाता है तो छोटा हो जाता है।

  4. जब तीन रणनीतियाँ समान संकेत देती हैं, तब पद खोलें, अन्यथा पद बंद करें।

यह रणनीति ट्रेंड रणनीतियों और रिवर्स रणनीतियों को जोड़ती है, जो रिवर्स अवसरों और ट्रेंड-फॉलोइंग अवसरों को पकड़ सकती है। चलती औसत फ़िल्टर झूठे संकेतों को कम कर सकती है। कई रणनीतियाँ एक-दूसरे को सत्यापित करती हैं और संकेत विश्वसनीयता में सुधार करती हैं।

लाभ विश्लेषण

  1. कई रणनीतियों का संयोजन जीत की दर में सुधार करता है। मोड़ बिंदुओं को पकड़ने के लिए 123 रिवर्स, रुझानों को पकड़ने के लिए डीएमआई और संकेतों को फ़िल्टर करने के लिए एमए फ़िल्टर।

  2. उल्टा और रुझान रणनीतियों का संयोजन उल्टा और रुझानों को लचीले ढंग से पकड़ने में सक्षम बनाता है।

  3. एमए फिल्टर अल्पकालिक उतार-चढ़ाव से झूठे संकेतों को कम करता है।

  4. कई रणनीतियों का संयोजन संकेतों को सत्यापित करता है और एकल रणनीति की विफलता से बचा जाता है।

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

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

  1. रिवर्सिंग रणनीतियाँ रेंज-बाउंड रुझानों में फंसने की प्रवृत्ति रखती हैं। रुझान रणनीतियों के साथ संयोजन करने से इससे बचने में मदद मिलती है।

  2. डीएमआई प्रारंभिक रुझान के अवसरों को याद कर सकता है। संवेदनशीलता में सुधार के लिए डीएमआई मापदंडों को छोटा कर सकता है।

  3. एमए में विलंब प्रभाव होता है और संकेत उत्पन्न करने में देरी हो सकती है। प्रतिक्रिया को तेज करने के लिए एमए अवधि को छोटा कर सकता है।

  4. यद्यपि रणनीतियों का संयोजन जीत की दर में सुधार करता है, यह जटिलता को भी बढ़ाता है। मापदंडों की सावधानीपूर्वक जांच की आवश्यकता है।

  5. यह रणनीति लेन-देन की लागत के प्रति संवेदनशील है। ओवर-ट्रेडिंग से बचने के लिए स्टॉप लॉस को ढीला करना चाहिए।

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

  1. सर्वोत्तम संयोजन खोजने के लिए प्रत्येक रणनीति के मापदंडों का अनुकूलन करें।

  2. संकेतों को फ़िल्टर करने और स्थिरता में सुधार करने के लिए एमएसीडी, आरएसआई जैसे अन्य संकेतक जोड़ें।

  3. जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस रणनीतियों को जोड़ें।

  4. वापसी में सुधार के लिए स्थिर/गतिशील आकार के रूप में स्थिति आकार को अनुकूलित करें।

  5. अनुकूलन क्षमता में सुधार के लिए विशिष्ट उत्पादों के लिए परिशुद्धता पैरामीटर।

  6. निर्णय लेने और प्रदर्शन में सुधार करने के लिए मशीन लर्निंग मॉडल जोड़ें।

निष्कर्ष

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


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/10/2019
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The related article is copyrighted material from Stocks & Commodities Aug 2009 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

fFilter(xSeriesSum, xSeriesV, Filter) =>
    iff(xSeriesV > Filter, xSeriesSum, 0)

DMIMA(Length_MA, Length_DMI) =>
    pos = 0.0
    xMA = sma(close, Length_MA)
    up = change(high)
    down = -change(low)
    trur = rma(tr, Length_DMI)
    xPDI = fixnan(100 * rma(up > down and up > 0 ? up : 0, Length_DMI) / trur)
    xNDI = fixnan(100 * rma(down > up and down > 0 ? down : 0, Length_DMI) / trur)
    nPDI = xPDI
    nNDI = xNDI
    nMA = xMA
    nPDI_1 = xPDI[1]
    nNDI_1 = xNDI[1]
    nMA_1 = xMA[1]
    bMDILong = iff(nPDI > nNDI and nPDI_1 < nNDI_1, true, 
                 iff(nPDI < nNDI and nPDI_1 > nNDI_1, false, false)) 
    bMDIShort = iff(nPDI > nNDI and nPDI_1 < nNDI_1, false, 
                  iff(nPDI < nNDI and nPDI_1 > nNDI_1, true, false)) 
    bMALong = iff(close > nMA and close[1] < nMA_1, true, 
                 iff(close < nMA and close[1] > nMA_1, false, false))
    bMAShort = iff(close > nMA and close[1] < nMA_1, false, 
                 iff(close < nMA and close[1] > nMA_1, true, false))
    pos := iff(bMDILong and bMALong, 1, 
         iff(bMDIShort and bMAShort, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & DMI & Moving Average", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_MA = input(30, minval=1)
Length_DMI = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDMIMA = DMIMA(Length_MA,Length_DMI)
pos = iff(posReversal123 == 1 and posDMIMA == 1 , 1,
	   iff(posReversal123 == -1 and posDMIMA == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

अधिक