मल्टीपल ईएमए अवधि गतिशील ट्रेडिंग रणनीति


निर्माण तिथि: 2023-12-12 12:18:41 अंत में संशोधित करें: 2023-12-12 12:18:41
कॉपी: 1 क्लिक्स: 1090
1
ध्यान केंद्रित करना
1621
समर्थक

मल्टीपल ईएमए अवधि गतिशील ट्रेडिंग रणनीति

अवलोकन

इस रणनीति का मुख्य विचार यह है कि व्यापार संकेतों को उत्पन्न करने के लिए कई सूचकांकों के चलती औसत (ईएमए) के क्रॉसिंग पर आधारित है। जब अल्पकालिक ईएमए लंबे समय तक ईएमए पहनते हैं, तो अधिक करें; जब अल्पकालिक ईएमए लंबे समय तक ईएमए पहनते हैं, तो ब्लीच करें। यह रणनीति कई ईएमए चक्रों को कॉन्फ़िगर करने की अनुमति देती है, प्रत्येक ईएमए को स्वतंत्र रूप से सक्षम किया जा सकता है, रणनीति सभी सक्षम ईएमए पर क्रॉस ट्रेडिंग करेगी।

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

इस रणनीति में 8 ईएमए चक्र सेट किए गए हैं, जो 8th, 13th, 21st, 34th, 55th, 89th, 144th और 233rd हैं। इन ईएमए को स्वतंत्र रूप से चालू या बंद करने के लिए कॉन्फ़िगर किया गया है।

जब एक छोटा ईएमए नीचे से एक लंबा ईएमए पहनता है, तो एक खरीद संकेत उत्पन्न होता है; जब एक छोटा ईएमए ऊपर से एक लंबा ईएमए पहनता है, तो एक बेचने का संकेत उत्पन्न होता है। यदि दोनों ईएमए चालू हैं, तो छोटा ईएमए > लंबा ईएमए एक पॉली सिग्नल है, छोटा ईएमए < लंबा ईएमए एक ब्लीच सिग्नल है।

उदाहरण के लिए, यदि 55 दिन का ईएमए और 89 दिन का ईएमए सक्षम है, तो 55 दिन का ईएमए 89 दिन का ईएमए पहनने पर अधिक करें; जब 55 दिन का ईएमए 89 दिन का ईएमए पहनने पर बराबरी करें। यह इस रणनीति को गतिशील रूप से समायोजित करने की अनुमति देता है। इस्तेमाल किया ईएमए संयोजन, लंबी अवधि से छोटी अवधि में परिवर्तित, या इसके विपरीत।

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

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

  • विभिन्न ईएमए को कॉन्फ़िगर करके रणनीतियों की आवधिक लचीलापन
  • प्रत्येक ईएमए स्वतंत्र रूप से विन्यस्त किया जा सकता है, अत्यधिक अनुकूलन की अनुमति देता है
  • जोखिम प्रबंधन के लिए प्रत्येक ईएमए पर आनुपातिक रूप से आवंटित पोजीशन
  • कई ईएमए का उपयोग किया जाता है, जो विभिन्न बाजार चरणों में अधिक उपयुक्त ईएमए में स्विच कर सकते हैं
  • रणनीतियाँ सरल, स्पष्ट, समझने और डीबग करने में आसान हैं

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

  • ईएमए एक एकल सूचक के रूप में बाजार संरचना को निर्धारित करने में असमर्थ है, जो गलत संकेत दे सकता है
  • बड़े पैमाने पर अस्थिर बाजारों में ईएमए एक दूसरे के साथ आसानी से पार हो जाते हैं, जिससे लेनदेन की आवृत्ति और स्लाइडिंग लागत बढ़ जाती है
  • विभिन्न बाजारों के लिए ईएमए पैरामीटर को अनुकूलित करने की आवश्यकता
  • ट्रेडिंग सिग्नल की पुष्टि करने के लिए अन्य संकेतकों के साथ संयोजन की आवश्यकता हो सकती है

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

अनुकूलन दिशा

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

  1. ईएमए पैरामीटर अनुकूलन. पैरामीटर स्कैन और वॉक फॉरवर्ड विश्लेषण के माध्यम से सबसे अच्छा ईएमए पैरामीटर संयोजन मिल सकता है।

  2. फ़िल्टरिंग शर्तें जोड़ें. ईएमए के क्रॉसिंग पर अतिरिक्त फ़िल्टरिंग शर्तें जोड़े जा सकते हैं ताकि गलत संकेतों से बचा जा सके, जैसे कि लेनदेन की मात्रा फ़िल्टर, अस्थिरता दर फ़िल्टर आदि।

  3. अन्य संकेतकों के साथ संयोजन। ईएमए को अन्य संकेतकों जैसे मैकड, केडीजे, ब्रिन बैंड और अन्य के साथ संयोजित किया जा सकता है, ताकि उनकी पूरकता का लाभ उठाया जा सके।

  4. गतिशील समायोजन स्थिति प्रत्येक ईएमए पर स्थिति को बाजार में उतार-चढ़ाव या प्रवृत्ति की ताकत के आधार पर गतिशील रूप से समायोजित किया जा सकता है

  5. लाभ और हानि अनुपात का अनुकूलन. स्टॉप-लॉस और स्टॉप-ड्रॉप स्तर का अनुकूलन करें और सर्वोत्तम रिस्क-रिटर्न अनुपात का पता लगाएं.

संक्षेप

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

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

//@version=2
strategy("EMA Fan", shorttitle = "EMA Fan", overlay=true)

// Revision:        1
// Author:          @ToS_MavericK

buyprice = 0.0
buyprice := buyprice[1]

// === INPUT SMA ===
EMA1  = input(8)
EMA2  = input(13)
EMA3  = input(21)
EMA4  = input(34)
EMA5  = input(55)
EMA6  = input(89)
EMA7  = input(144)
EMA8  = input(233)

EnableEMA1 = input(true)
EnableEMA2 = input(true)
EnableEMA3 = input(true)
EnableEMA4 = input(true)
EnableEMA5 = input(true)
EnableEMA6 = input(true)
EnableEMA7 = input(true)
EnableEMA8 = input(true)

//Profit  = input(defval = 5, type = integer, title = "Profit", minval = 1, step = 1)
//StopLoss    = input(defval = 15, type = integer, title = "StopLoss", minval = 1, step = 1)

// === INPUT BACKTEST RANGE ===
FromMonth   = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear    = input(defval = 2018, title = "From Year", minval = 2012)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay   = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear  = input(defval = 2020, title = "To Year", minval = 2012)


// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === SERIES SETUP ===
vEMA1 = ema(close, EMA1)
vEMA2 = ema(close, EMA2)
vEMA3 = ema(close, EMA3)
vEMA4 = ema(close, EMA4)
vEMA5 = ema(close, EMA5)
vEMA6 = ema(close, EMA6)
vEMA7 = ema(close, EMA7)
vEMA8 = ema(close, EMA8)

count = -1
if (EnableEMA1 == true)
    count := count + 1
if (EnableEMA2 == true)
    count := count + 1
if (EnableEMA3 == true)
    count := count + 1
if (EnableEMA4 == true)
    count := count + 1
if (EnableEMA5 == true)
    count := count + 1
if (EnableEMA6 == true)
    count := count + 1
if (EnableEMA7 == true)
    count := count + 1
if (EnableEMA8 == true)
    count := count + 1

// set position size
Amount = 1 / (close * count)

// === EXECUTION ===
strategy.entry("EMA1", strategy.long, qty = Amount, when = window() and crossover(vEMA1,vEMA2) and EnableEMA1 and EnableEMA2)
strategy.close("EMA1", time > finish or crossunder(vEMA1,vEMA2))

strategy.entry("EMA2", strategy.long, qty = Amount, when = window() and crossover(vEMA2,vEMA3) and EnableEMA2 and EnableEMA3)
strategy.close("EMA2", time > finish or crossunder(vEMA2,vEMA3))

strategy.entry("EMA3", strategy.long, qty = Amount, when = window() and crossover(vEMA3,vEMA4) and EnableEMA3 and EnableEMA4)
strategy.close("EMA3", time > finish or crossunder(vEMA3,vEMA4))

strategy.entry("EMA4", strategy.long, qty = Amount, when = window() and crossover(vEMA4,vEMA5) and EnableEMA4 and EnableEMA5)
strategy.close("EMA4", time > finish or crossunder(vEMA4,vEMA5))

strategy.entry("EMA5", strategy.long, qty = Amount, when = window() and crossover(vEMA5,vEMA6) and EnableEMA5 and EnableEMA6)
strategy.close("EMA5", time > finish or crossunder(vEMA5,vEMA6))

strategy.entry("EMA6", strategy.long, qty = Amount, when = window() and crossover(vEMA6,vEMA7) and EnableEMA6 and EnableEMA7)
strategy.close("EMA6", time > finish or crossunder(vEMA6,vEMA7))

strategy.entry("EMA7", strategy.long, qty = Amount, when = window() and crossover(vEMA7,vEMA8) and EnableEMA7 and EnableEMA8)
strategy.close("EMA7", time > finish or crossunder(vEMA7,vEMA8))

plot(vEMA1, title = 'EMA1', color = red, linewidth = 2, style = line)  // plot FastMA
plot(vEMA2, title = 'EMA2', color = orange, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA3, title = 'EMA3', color = yellow, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA4, title = 'EMA4', color = green, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA5, title = 'EMA5', color = teal, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA6, title = 'EMA6', color = blue, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA7, title = 'EMA7', color = maroon, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA8, title = 'EMA8', color = white, linewidth = 2, style = line)    // plot SlowMA

//plot(long_stop, title = 'High-ATR', color = red, linewidth = 2, style = line)    // plot SlowMA
//plot(short_stop, title = 'Low+ATR', color = green, linewidth = 2, style = line)    // plot SlowMA