अनुभवजन्य विधा अपघटन पर आधारित मात्रात्मक व्यापार रणनीति


निर्माण तिथि: 2023-12-22 14:41:34 अंत में संशोधित करें: 2023-12-22 14:41:34
कॉपी: 0 क्लिक्स: 871
1
ध्यान केंद्रित करना
1623
समर्थक

अनुभवजन्य विधा अपघटन पर आधारित मात्रात्मक व्यापार रणनीति

अवलोकन

यह रणनीति अनुभवजन्य मोड विघटन (Empirical Mode Decomposition, EMD) पर आधारित है, जो मूल्य अनुक्रमों को विघटित करती है, अलग-अलग तरंग दैर्ध्य के लक्षणों को निकालती है, और व्यापार संकेतों को उत्पन्न करने के लिए औसत मूल्य के साथ जोड़ती है। यह रणनीति मुख्य रूप से मध्यम-लंबी लाइन की स्थिति के लिए उपयुक्त है।

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

  1. ईएमडी विधि का उपयोग करके कीमतों पर बैंडफिल फ़िल्टर करें और कीमतों में उतार-चढ़ाव की विशेषताएं निकालें
  2. चोटी और घाटी के लिए चलती औसत
  3. व्यापार संकेत उत्पन्न करता है जब औसत रेखा शिखर रेखा और घाटी रेखा के एक निश्चित अनुपात से अधिक है
  4. ट्रेडिंग सिग्नल के अनुसार बहुहेड या खालीहेड करें

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

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

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

  1. EMD विधि पैरामीटर का गलत चयन ओवरफिटिंग का कारण बन सकता है
  2. ट्रेडिंग सिग्नल बनाने के लिए लंबे समय तक चक्र की आवश्यकता होती है, उच्च आवृत्ति ट्रेडिंग के लिए अनुकूल नहीं है
  3. कीमतों में भारी उतार-चढ़ाव का सामना करने में असमर्थ

अनुकूलन दिशा

  1. ईएमडी मॉडल के पैरामीटर का अनुकूलन, बाजार के लिए अनुकूलनशीलता में सुधार
  2. अन्य संकेतकों के साथ संयोजन में एक स्टॉप-स्टॉप संकेत के रूप में
  3. विभिन्न मूल्य अनुक्रमों का प्रयास करें रणनीति इनपुट के रूप में

संक्षेप

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

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/04/2017
// The related article is copyrighted material from Stocks & Commodities Mar 2010
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Empirical Mode Decomposition")
Length = input(20, minval=1)
Delta = input(0.5)
Fraction = input(0.1)
reverse = input(false, title="Trade reverse")
xPrice = hl2
beta = cos(3.1415 * (360 / Length) / 180)
gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180)
alpha = gamma - sqrt(gamma * gamma - 1)
xBandpassFilter = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2])
xMean = sma(xBandpassFilter, 2 * Length)
xPeak =  iff (xBandpassFilter[1] > xBandpassFilter and xBandpassFilter[1] > xBandpassFilter[2], xBandpassFilter[1], nz(xPeak[1])) 
xValley =  iff (xBandpassFilter[1] < xBandpassFilter and xBandpassFilter[1] < xBandpassFilter[2], xBandpassFilter[1], nz(xValley[1])) 
xAvrPeak = sma(xPeak, 50)
xAvrValley = sma(xValley, 50)
nAvrPeak = Fraction * xAvrPeak
nAvrValley = Fraction * xAvrValley
pos = iff(xMean > nAvrPeak and xMean > nAvrValley, 1,
	     iff(xMean < nAvrPeak and xMean < nAvrValley, -1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xMean, color=red, title="Mean")
plot(nAvrPeak, color=blue, title="Peak")
plot(nAvrValley, color=blue, title="Valley")