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

दोहरी चलती औसत क्रॉसओवर रणनीति

लेखक:चाओझांग, दिनांकः 2023-11-13 10:55:09
टैगः

img

अवलोकन

डबल मूविंग एवरेज क्रॉसओवर रणनीति एक आम ट्रेंड फॉलो करने वाली रणनीति है। यह ट्रेंड की दिशा की पहचान करने और उनके क्रॉसओवर के आधार पर ट्रेडिंग सिग्नल उत्पन्न करने के लिए विभिन्न अवधियों के दो मूविंग एवरेज का उपयोग करती है। विशेष रूप से, जब छोटी अवधि का मूविंग एवरेज लंबी अवधि के ऊपर से पार हो जाता है, तो एक स्वर्ण क्रॉस बन जाता है, जो एक ऊपर की प्रवृत्ति को दर्शाता है। इसके विपरीत, जब छोटी एमए लंबी एमए से नीचे पार हो जाती है, तो एक मौत का क्रॉस बन जाता है, जो एक नीचे की प्रवृत्ति को दर्शाता है।

रणनीति तर्क

यह रणनीति मुख्य रूप से 6-अवधि, 14-अवधि, 25-अवधि और 80-अवधि ईएमए रेखाओं का उपयोग करती है। यह पहले इन एमए मूल्यों की गणना करती है, फिर 6-अवधि ईएमए और अन्य तीन एमए के बीच क्रॉसओवर के आधार पर प्रवृत्ति दिशा की पहचान करती है।

जब 6 पीरियड ईएमए या तो 14 पीरियड या 25 पीरियड ईएमए से ऊपर जाता है, और यह 80 पीरियड ईएमए से ऊपर होता है, तो एक खरीद संकेत उत्पन्न होता है। यह इंगित करता है कि अल्पकालिक एमए मध्यम से दीर्घकालिक एमए को तोड़ रहा है, और एक ऊपर की प्रवृत्ति शुरू हो सकती है, इसलिए हम खरीद पर विचार कर सकते हैं।

इसके विपरीत, जब 6-पीरियड ईएमए या तो 14-पीरियड या 25-पीरियड ईएमए से नीचे जाता है, और यह 80-पीरियड ईएमए से नीचे होता है, तो एक बिक्री संकेत उत्पन्न होता है। यह इंगित करता है कि अल्पकालिक एमए मध्यम से दीर्घकालिक एमए से टूट गया है, और एक गिरावट की प्रवृत्ति शुरू हो सकती है, इसलिए हम बिक्री पर विचार कर सकते हैं।

संकेत उत्पन्न होने पर, रणनीति लंबी या छोटी स्थिति खोलती है। इसमें जोखिम को नियंत्रित करने के लिए घाटे की सीमा से अधिक होने पर स्थिति से बाहर निकलने के लिए स्टॉप लॉस तर्क भी होता है।

लाभ विश्लेषण

इस रणनीति के लाभ इस प्रकार हैंः

  1. प्रवृत्ति निर्धारित करने के लिए एमए क्रॉसओवर का प्रयोग एक परिपक्व और विश्वसनीय तकनीकी संकेतक है।

  2. कई समय सीमाओं को मिलाकर झूठे संकेतों को कम किया जाता है। 6-अवधि एमए संकेत उत्पन्न करता है, जबकि 14-अवधि, 25-अवधि एमए पुष्टि करते हैं, और 80-अवधि एमए समग्र प्रवृत्ति को परिभाषित करता है।

  3. स्टॉप लॉस जोखिम को नियंत्रित करता है और पूंजी को प्रभावी ढंग से बचाता है।

  4. तर्क सरल और स्पष्ट है, समझने और सत्यापित करने में आसान है।

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

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

इस रणनीति के कुछ जोखिमों में शामिल हैंः

  1. मूल्य सीमाओं के दौरान एमए के चारों ओर whipsaw कर सकता है, अत्यधिक अमान्य संकेत उत्पन्न कर सकता है। एमए अवधि को तदनुसार समायोजित किया जा सकता है।

  2. फिक्स्ड स्टॉप लॉस बहुत कठोर हो सकता है। इसके बजाय ट्रेलिंग स्टॉप या डायनेमिक स्टॉप का उपयोग करने पर विचार करें।

  3. स्टॉप लॉस को अचानक मूल्य अंतराल से प्रभावित होने का जोखिम। ऐसे मामलों में स्टॉप लॉस को छोड़ने के लिए अतिरिक्त तर्क जोड़ें।

  4. अल्पकालिक मूल्य उतार-चढ़ाव पर प्रतिक्रिया करने में असमर्थ। अन्य संकेतकों का उपयोग करके फ़िल्टर जोड़ें।

  5. अनुकूलन चलती औसत का उपयोग करने पर विचार करें।

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

रणनीति को अनुकूलित करने के कुछ तरीकेः

  1. बाजार के लिए अधिक संवेदनशील मापदंडों को खोजने के लिए विभिन्न एमए अवधि संयोजनों का परीक्षण करें।

  2. स्टॉप रन के जोखिम को कम करने के लिए ट्रेलिंग या गतिशील स्टॉप का उपयोग करके स्टॉप लॉस तंत्र में सुधार करना।

  3. रेंज के दौरान अत्यधिक ट्रेडों से बचने के लिए केडीजे, एमएसीडी जैसे फिल्टर संकेतक जोड़ें।

  4. प्रवेश नियमों को अनुकूलित करें, गलत संकेतों को कम करने के लिए प्रवेश करने से पहले एमए क्रॉसओवर के पूरी तरह से बनने की प्रतीक्षा करें।

  5. अनुकूलनशील चलती औसत का प्रयोग करें जो अस्थिरता के आधार पर अवधि को स्वचालित रूप से समायोजित करते हैं।

  6. बाजार स्थितियों के आधार पर स्थिति के आकार को समायोजित करने के लिए स्थिति आकार के नियम जोड़ें।

  7. लाभ लेने के लिए बाहर निकलने को शामिल करें।

सारांश

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


/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = " bhramaji EMA Cross Strategy", shorttitle = "EMA Cross",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")


stopLoss = input(20, title = "Stop loss percentage(0.1%)")


maSource   = input(defval = close, title = "MA Source")
maLength6   = input(defval = 6, title = "MA Period 6", minval = 1)
maLength14  = input(defval = 14, title = "MA Period 14", minval = 1)
maLength25  = input(defval = 25, title = "MA Period 25", minval = 1)
maLength80  = input(defval = 80, title = "MA Period 80", minval = 1)

ma6 = ema(maSource, maLength6)
ma14 = ema(maSource, maLength14)
ma25 = ema(maSource, maLength25)
ma80 = ema(maSource, maLength80)

ma_6_plot = plot(ma6 , title = "MA  6", color = red, linewidth = 2, style = line, transp = 50)
ma14_plot = plot(ma14, title = "MA 14", color = green, linewidth = 2, style = line, transp = 50)
ma25_plot = plot(ma25, title = "MA 25", color = blue, linewidth = 2, style = line, transp = 50)
ma80_plot = plot(ma80, title = "MA 80", color = silver, linewidth = 2, style = line, transp = 50)


longEMA = (crossover(ma6, ma14) or crossover(ma6, ma25)) and (ma6>ma80) 
exitLong = (crossunder(ma6, ma14) or crossunder(ma6, ma25)) 

shortEMA = (crossunder(ma6, ma14) or crossunder(ma6, ma25)) and (ma6< ma80)
exitShort =(crossover(ma6, ma14) or crossover(ma6, ma25))

if (longEMA)
    strategy.entry("LongId", strategy.long)
 
if (shortEMA)
    strategy.entry("ShortId", strategy.short)

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)





अधिक