डबल मूविंग एवरेज क्रॉसओवर एरो रणनीति


निर्माण तिथि: 2023-11-21 17:00:49 अंत में संशोधित करें: 2023-11-21 17:00:49
कॉपी: 0 क्लिक्स: 604
1
ध्यान केंद्रित करना
1617
समर्थक

डबल मूविंग एवरेज क्रॉसओवर एरो रणनीति

अवलोकन

यह रणनीति MACD सूचकांक के द्वि-समान रेखा क्रॉसिंग की गणना करके खरीद और बेचने के समय को निर्धारित करती है। यह व्यापार संकेतों को संकेत देने के लिए चार्ट पर एक तीर के आकार को चित्रित करता है।

सिद्धांत

यह रणनीति सबसे पहले फास्ट लाइन (ईएमए 12 अंक), लो लाइन (ईएमए 26 अंक) और एमएसीडी के अंतर की गणना करती है। फिर खरीद और बिक्री के समय को फास्ट लाइन और लो लाइन के गोल्डन फोर्क डेड फोर्क और एमएसीडी के अंतर के पॉजिटिव-नकारात्मक के आधार पर निर्धारित करती हैः

  1. खरीद संकेत के रूप में जब तेज लाइन धीमी लाइन को पार करती है और MACD विचलन पर 0 है
  2. जब धीमी रेखा के नीचे धीमी रेखा पार करता है और MACD अंतर के नीचे 0 पार करता है तो बेचने के लिए संकेत दिया जाता है

झूठे संकेतों को फ़िल्टर करने के लिए, कोड में पिछले K लाइन के सिग्नल की स्थिति का भी आकलन किया गया है। वर्तमान सिग्नल केवल तभी ट्रिगर किया जाएगा जब वर्तमान K लाइन एक रिवर्स सिग्नल है ((खरीद बिक्री में परिवर्तित हो जाती है या बिक्री खरीद में परिवर्तित हो जाती है) ।

इसके अलावा, कोड में एक तीर आरेख भी है जो K-लाइन पर खरीदारी और बिक्री के समय को इंगित करता है।

लाभ

इस रणनीति के निम्नलिखित फायदे हैं:

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

जोखिम और समाधान

इस रणनीति के कुछ जोखिम भी हैं:

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

अनुकूलन दिशा

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

  1. विभिन्न पैरामीटर संयोजनों का परीक्षण करें और सबसे अच्छा फास्ट, स्लो और MACD पैरामीटर खोजें
  2. प्रवेश की शर्तें बढ़ाएं, जैसे कि ट्रेड वॉल्यूम में सेंध लगाने के लिए सिग्नल फ़िल्टर करना
  3. एकल घाटे को नियंत्रित करने के लिए अतिरिक्त रोकथाम तंत्र
  4. जोखिम वरीयता को समझने के लिए VIX जैसे अस्थिरता संकेतकों के साथ
  5. स्थिर नियमों के स्थान पर मशीन लर्निंग मॉडल का प्रयोग करें और रणनीति के अनुकूल अनुकूलन को लागू करें

संक्षेप

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

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

//@version=3
//Daniels stolen code
strategy(shorttitle="Daniels Stolen Code", title="Daniels Stolen Code", overlay=true, calc_on_order_fills=true, pyramiding=0)

//Define MACD Variables
fast = 12, slow = 26
fastMACD = ema(hlc3, fast)
slowMACD = ema(hlc3, slow)
macd = fastMACD - slowMACD
signal = sma(macd, 9)
hist = macd - signal
currMacd = hist[0]
prevMacd = hist[1]
currPrice = hl2[0]
prevPrice = hl2[1]

buy = currPrice > prevPrice and currMacd > prevMacd
sell = currPrice < prevPrice and currMacd < prevMacd
neutral = (currPrice < prevPrice and currMacd > prevMacd) or (currPrice > prevPrice and currMacd < prevMacd)
//Plot Arrows

timetobuy = buy==1 and (sell[1]==1 or (neutral[1]==1 and sell[2]==1) or (neutral[1]==1 and neutral[2]==1 and sell[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and sell[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and sell[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and sell[6]==1))
timetosell = sell==1 and (buy[1]==1 or (neutral[1]==1 and buy[2]==1) or (neutral[1]==1 and neutral[2]==1 and buy[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and buy[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and buy[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and buy[6]==1))

plotshape(timetobuy, color=blue, location=location.belowbar, style=shape.arrowup)
plotshape(timetosell, color=red, location=location.abovebar, style=shape.arrowdown)
//plotshape(neutral, color=black, location=location.belowbar, style=shape.circle)


//Test Strategy
// strategy.entry("long", true, 1, when = timetobuy and time > timestamp(2017, 01, 01, 01, 01)) // buy by market if current open great then previous high
// strategy.close("long", when = timetosell and time > timestamp(2017, 01, 01, 01, 01))

strategy.order("buy", true, 1, when=timetobuy==1 and time > timestamp(2019, 01, 01, 01, 01))
strategy.order("sell", false, 1, when=timetosell==1 and time > timestamp(2019, 01, 01, 01, 01))



// strategy.entry(id = "Short", long = false, when = enterShort())
// strategy.close(id = "Short", when = exitShort())

//strategy.entry("long", true, 1, when = open > high[1]) // enter long by market if current open great then previous high
// strategy.exit("exit", "long", profit = 10, loss = 5) // ge