संसाधन लोड हो रहा है... लोड करना...

बहु समय सीमा गतिशील ईएमए ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2023-12-12 12:18:41
टैगः

img

अवलोकन

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

रणनीति का नाम

बहु समय सीमा गतिशील ईएमए ट्रेडिंग रणनीति

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

रणनीति में 8 ईएमए अवधि निर्धारित की गई है - 8 दिन, 13 दिन, 21 दिन, 34 दिन, 55 दिन, 89 दिन, 144 दिन और 233 दिन। इन ईएमए को स्वतंत्र रूप से सक्षम या अक्षम किया जा सकता है।

यह लंबे समय के संकेत उत्पन्न करता है जब कम अवधि के ईएमए नीचे से लंबे समय के ईएमए को पार करता है। यह बाहर निकलने के संकेत उत्पन्न करता है जब कम अवधि के ईएमए ऊपर से लंबे समय के ईएमए के नीचे पार करता है। इसलिए यदि दो ईएमए सक्षम हैं, तो कम ईएमए > longerEMA लंबा संकेत है, कम ईएमए < longerEMA बाहर निकलने का संकेत है।

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

स्थिति आकार को खाता इक्विटी विभाजित बंद विभाजित सक्षम ईएमए की संख्या से सेट किया जाता है। यह सुनिश्चित करता है कि प्रत्येक ईएमए क्रॉसओवर पर स्थिति आकार समान हैं।

लाभ विश्लेषण

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

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

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

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

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

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

  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


अधिक