मूल्य मूविंग औसत क्रॉसओवर रणनीति


निर्माण तिथि: 2023-11-27 16:52:19 अंत में संशोधित करें: 2023-11-27 16:52:19
कॉपी: 1 क्लिक्स: 677
1
ध्यान केंद्रित करना
1617
समर्थक

मूल्य मूविंग औसत क्रॉसओवर रणनीति

अवलोकन

यह रणनीति मूल रूप से एक समान रेखा क्रॉसिंग रणनीति है। कीमतों की चलती औसत की गणना करके, और एक निश्चित लंबी अवधि की चलती औसत सेट करके, जब छोटी अवधि की चलती औसत लंबी अवधि की चलती औसत को नीचे से पार करती है तो अधिक करें; और जब छोटी अवधि की चलती औसत लंबी अवधि की चलती औसत को ऊपर से नीचे से पार करती है तो शून्य करें।

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

मूल्य औसत क्रॉसिंग रणनीति का मुख्य विचार यह है कि कीमतों की चलती औसत कीमतों में बदलाव की प्रवृत्ति को प्रभावी ढंग से दर्शाती है। रणनीति दो अलग-अलग चक्रों की चलती औसत और एक निश्चित व्यापारिक तर्क की स्थापना करके व्यापारिक प्रवृत्ति में बदलाव का न्याय करती है ताकि व्यापारिक संकेत उत्पन्न हो सके।

रणनीति एक लंबी अवधि की औसत रेखा और एक छोटी अवधि की औसत रेखा की गणना करती है। लंबी रेखा मुख्य रूप से बड़े रुझानों को निर्धारित करती है, जबकि छोटी रेखा को बड़े रुझानों के दौरान अल्पकालिक उतार-चढ़ाव को पकड़ने के लिए उपयोग किया जाता है। रणनीति के ट्रेडिंग सिग्नल मुख्य रूप से छोटी और लंबी रेखा के बीच के क्रॉसिंग से उत्पन्न होते हैंः लंबी रेखा के माध्यम से छोटी रेखा पर कई सिग्नल, और लंबी रेखा के माध्यम से छोटी रेखा के माध्यम से खाली सिग्नल। इसके अलावा, रणनीति ने संकेतों को और अधिक फ़िल्टर किया है ताकि झूठे सिग्नल से बचा जा सके।

विशेष रूप से, इस रणनीति में 7 अलग-अलग प्रकार के चलती औसत शामिल हैं, जिनमें SMA, EMA, VWMA आदि शामिल हैं, उपयोगकर्ता को चलती औसत के प्रकार का चयन करने की अनुमति है। चलती औसत की लंबाई को भी लचीले ढंग से सेट किया जा सकता है। इसके अलावा, रणनीति कुछ व्यापारिक समय सीमा और स्थिति प्रबंधन तंत्र प्रदान करती है। इन सेटिंग्स के माध्यम से, उपयोगकर्ता विभिन्न किस्मों और बाजार की परिस्थितियों के लिए रणनीति के मापदंडों को लचीले ढंग से समायोजित कर सकते हैं।

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

मूल्य औसत क्रॉसिंग रणनीतियों के मुख्य लाभ निम्नलिखित हैं:

  1. रणनीति तर्क स्पष्ट और सरल है, इसे समझने और लागू करने में आसान है, और यह शुरुआती लोगों के लिए उपयुक्त है।

  2. रणनीतिक सिद्धांत मजबूत है, जो बाजार के अभ्यास परीक्षण के माध्यम से पूरी तरह से सत्यापित एकसमान लेनदेन के नियमों पर आधारित है।

  3. रणनीति पैरामीटर लचीलेपन से समायोजित किया जा सकता है, उपयोगकर्ता बाजार के अपने निर्णय और वरीयताओं के आधार पर उपयुक्त पैरामीटर का चयन कर सकते हैं।

  4. रणनीति में कुछ जोखिम नियंत्रण तंत्र होते हैं, जो हानि के लिए जारी किए गए शेयरों को कम समय तक रखने और अनावश्यक रिवर्स पोजीशन खोलने से बचाने में मदद करते हैं।

  5. रणनीति में कई प्रकार के औसत शामिल हैं, और उपयोगकर्ता अपनी ट्रेडिंग किस्मों के लिए सबसे उपयुक्त चलती औसत का चयन कर सकते हैं।

  6. रणनीतियों ने प्रमुख अवकाश बाजारों में असामान्य उतार-चढ़ाव से बचने के लिए विशिष्ट व्यापारिक समय के दौरान व्यापारिक तर्क को सक्षम किया।

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

हालांकि कीमतों की औसत रेखा को पार करने की रणनीति के कई फायदे हैं, लेकिन वास्तविक लेनदेन में कुछ जोखिम भी हैं, जो मुख्य रूप से निम्नलिखित दो पहलुओं में दिखाई देते हैंः

  1. चूंकि अधिकांश मूविंग एवरेज में विलंबता होती है, इसलिए क्रॉसिंग सिग्नल कीमतों के पलटने के बाद देर से दिखाई दे सकते हैं और आसानी से अवरुद्ध हो सकते हैं।

  2. यदि पैरामीटर को गलत तरीके से सेट किया जाता है, तो क्रॉस सिग्नल बहुत बार हो सकते हैं, जिससे ट्रेडिंग की सक्रियता बहुत अधिक हो जाती है और अधिक ट्रेडिंग लागत होती है।

उपरोक्त जोखिमों को निम्न तरीकों से नियंत्रित और संबोधित किया जा सकता हैः

  1. एकल हानि जोखिम को नियंत्रित करने के लिए एक मध्यम स्टॉप लॉस सेट करें।

  2. फ़िल्टरिंग की शर्तों को बढ़ाएं, ट्रेडिंग की आवृत्ति को कम करें, और ओवर-ट्रेडिंग को रोकें। जैसे कि मूल्य चैनल या मूल्य उतार-चढ़ाव की शर्तें।

  3. चलती औसत के लिए पैरामीटर का अनुकूलन करें, अपने ट्रेडिंग प्रकार और चक्र के लिए सबसे उपयुक्त पैरामीटर का चयन करें। विभिन्न बाजार स्थितियों में रणनीति की स्थिरता का परीक्षण करें।

अनुकूलन दिशा

इस मूल्य-औसत क्रॉसिंग रणनीति में और अधिक अनुकूलन के लिए जगह है, जो मुख्य रूप से निम्नलिखित पहलुओं से शुरू हो सकती हैः

  1. ओवरएक्टिव स्थितियों में सुरक्षा के लिए अतिरिक्त तंत्र जैसे कि बाजार की असामान्यताओं से बचने के लिए कीमतों में भारी उतार-चढ़ाव के दौरान ट्रेडिंग को निलंबित करना।

  2. संकेतों की गुणवत्ता और स्थिरता में सुधार के लिए अधिक फ़िल्टरिंग शर्तों और संयोजन ट्रेडिंग संकेतों को जोड़ना। उदाहरण के लिए, अन्य तकनीकी संकेतकों के साथ संयोजन में प्रवृत्ति की पहचान करने वाले क्रॉसिंग।

  3. गतिशील पैरामीटर प्रणाली का उपयोग करना। बाजार की स्थिति और किस्मों की विशेषताओं के आधार पर स्वचालित रूप से चलती औसत की लंबाई, व्यापार स्विच और अन्य महत्वपूर्ण पैरामीटर को समायोजित करना, न कि निश्चित संख्याओं का उपयोग करना।

  4. इस औसत क्रॉसिंग सिग्नल को अन्य सूचनाओं के साथ संयोजन में उपयोग किया जाता है, जिससे गहन रणनीतिक अनुकूलन किया जा सकता है।

उपरोक्त सुझावों से इस रणनीति को व्यापक रूप से लागू किया जा सकता है, व्यापार में बेहतर प्रभावकारिता और जोखिम-लाभ को बेहतर ढंग से समेकित किया जा सकता है।

संक्षेप

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

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

//Noro
//2019

//@version=4
strategy(title = "Noro's CrossMA", shorttitle = "CrossMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0, commission_value = 0.1)

needlong = input(true, "long")
needshort = input(true, "short")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
type = input(defval = "SMA", options = ["SMA", "EMA", "VWMA", "DEMA", "TEMA", "KAMA", "PCMA"], title = "MA type")
src = input(close, defval = close, title = "MA Source")
len = input(30, defval = 30, minval = 1, title = "MA length")
off = input(00, defval = 00, minval = 0, title = "MA offset")
anti = input(true, defval = true, title = "Anti-saw filter")
showma = input(true, defval = true, title = "Show MA")
showbg = input(false, defval = false, title = "Show background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)

//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3

//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
kama = 0.0
kama := nz(kama[1]) + nsmooth * (src - nz(kama[1]))

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

sma_1 = sma(src, len)
ema_1 = ema(src, len)
vwma_1 = vwma(src, len)
ma2 = type == "SMA" ? sma_1 : type == "EMA" ? ema_1 : type == "VWMA" ? vwma_1 : type == "DEMA" ? dema : type == "TEMA" ? tema : type == "KAMA" ? kama : type == "PCMA" ? center : 0
ma = ma2[off]

macol = showma ? color.blue : na
plot(ma, color = macol, linewidth = 3, transp = 0)

//Background
trend = 0
trend := anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1]
bgcol = showbg ? trend == 1 ? color.lime : trend == -1 ? color.red : na : na
bgcolor(bgcol, transp = 70)

//Trading
size = strategy.position_size
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
if trend == 1 and trend[1] == -1
    strategy.entry("Long", strategy.long, lot, when = needlong and truetime)
if trend == -1 and trend[1] == 1
    strategy.entry("Short", strategy.short, lot, when = needshort and truetime)
if size > 0 and needshort == false and trend == -1
    strategy.close_all()
if size < 0 and needlong == false and trend == 1
    strategy.close_all()
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")