क्रॉस मूविंग एवरेज प्राइस स्ट्रैटेजी

लेखक:चाओझांग, दिनांकः 2023-11-27 16:52:19
टैगः

img

अवलोकन

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

सिद्धांत

मूल्य चलती औसत क्रॉस रणनीति का मूल विचार यह हैः मूल्य का चलती औसत प्रभावी रूप से मूल्य परिवर्तन की प्रवृत्ति को प्रतिबिंबित कर सकता है। रणनीति व्यापार संकेत उत्पन्न करने के लिए विभिन्न चक्रों के दो चलती औसत और कुछ व्यापार तर्क सेट करके बाजार प्रवृत्ति के परिवर्तन का न्याय करती है।

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

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

लाभ विश्लेषण

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

  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")

अधिक