यह रणनीति विभिन्न आवृत्ति बैंडों से मूल्य श्रृंखलाओं को तोड़ने और विशेषताओं को निकालने के लिए अनुभवजन्य मोड अपघटन (ईएमडी) विधि पर आधारित है, जो व्यापार संकेत उत्पन्न करने के लिए औसत के साथ संयुक्त है। यह मुख्य रूप से मध्यम और दीर्घकालिक होल्डिंग के लिए लागू होती है।
यह रणनीति मूल्य श्रृंखला से विशेषताओं को निकालने के लिए अनुभवजन्य मोड अपघटन विधि का उपयोग करती है और निकाली गई विशेषताओं के आधार पर व्यापार संकेत उत्पन्न करती है, एक स्थिर मध्यम और दीर्घकालिक व्यापार रणनीति का एहसास करती है। इस रणनीति का लाभ यह है कि यह कीमतों में आवधिक विशेषताओं की प्रभावी ढंग से पहचान कर सकती है और बड़े उतार-चढ़ाव के दौरान व्यापार आदेश जारी कर सकती है। लेकिन कुछ जोखिम भी हैं, और अधिक जटिल बाजार वातावरण के अनुकूल होने के लिए आगे अनुकूलन की आवश्यकता है।
/*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")