एक बहुस्तरीय चलती औसत व्यापारिक रणनीति कई अलग-अलग मापदंडों के साथ चलती औसत को सेट करके बहुस्तरीय प्रवेश और रोक को प्राप्त करती है। रणनीति पहले 3 लंबी और 3 छोटी लाइनों की गणना करती है, लंबी लाइन छोटी लाइन से कम होने पर अधिक होती है, और छोटी लाइन लंबी लाइन से कम होने पर खाली होती है। रणनीति चलती औसत गणना चक्र की लंबाई, विचलन अनुपात, ट्रेड करने योग्य समय सीमा और अन्य मापदंडों को सेट कर सकती है।
गणना मापदंडों में src स्रोत मूल्य के len चक्र की सरल चलती औसत, एक आधार औसत के रूप में।
long और short पैरामीटर के अनुसार सेट की गई लंबी और छोटी लाइनों की संख्या।
longline1 जैसे लम्बी रेखाओं को longlevel1 जैसे पैरामीटरों के आधार पर औसत रेखा के अनुपात में विचलित किया जाता है। shortline1 जैसे छोटी रेखाओं के समान।
ट्रेड करने योग्य समय के भीतर, मूल्य और औसत रेखा के बीच संबंध का आकलन करें, बहु-स्तरीय प्रवेश प्राप्त करें।
स्टॉप लॉस तब होता है जब कीमत बेंचमार्क औसत को छूती है।
समाप्ति के समय अनिवार्य प्वाइजिंग।
इस रणनीति के निम्नलिखित फायदे हैं:
मल्टी-लेवल एंट्री, विभिन्न चरणों में रुझानों का लाभ उठाने के लिए।
विभिन्न प्रकारों और व्यापारिक शैलियों के लिए अनुकूलित करने के लिए अधिक अनुकूलन योग्य पैरामीटर हैं।
एक समान-रेखा प्रणाली के आधार पर, एक सफलता के लिए एक विश्वसनीय निर्णय है।
ट्रेड करने योग्य समय सीमा सेट करें, ताकि महत्वपूर्ण डेटा रिलीज़ जैसे प्रभावशाली समय से बचा जा सके।
एक नुकसान को नियंत्रित करने के लिए एक रोकथाम तंत्र है।
इस रणनीति के कुछ जोखिम भी हैं:
कई बार जमा करना जोखिम भरा होता है और इसके लिए पर्याप्त वित्तीय सहायता की आवश्यकता होती है।
गलत पैरामीटर सेट करने से सुपर शॉर्टलाइन ऑपरेशन हो सकता है।
फिक्स्ड आउटटाइम में अंतिम चरण के ट्रेंड को मिस किया जा सकता है। रुकावट को ट्रैक करने के लिए स्टॉपलॉस सेट किया जा सकता है।
रात के डिस्क और रात भर के लिए स्थिति को ध्यान में नहीं रखा गया है।
स्थिति नियंत्रण को ध्यान में रखे बिना, एकतरफा स्थिति को बहुत बड़ा होने का खतरा है।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
एक निश्चित समय से बाहर निकलने के लिए एक गतिशील रोक को जोड़ना।
रातोंरात स्थिति को ध्यान में रखते हुए, स्थानांतरण शुल्क और स्लाइड पॉइंट नियंत्रण जोड़ें।
अंतिम चरण के लाभ के लिए लॉग इन करें।
स्थिति के अनुसार एकल हाथों की संख्या को समायोजित करें, स्थिति को एक दिशा में नियंत्रित करें।
विभिन्न किस्मों के लिए विभिन्न मापदंडों के प्रभाव का परीक्षण करना, मापदंडों के अनुकूलन के लिए एक तंत्र स्थापित करना।
अनावश्यक स्टॉप लॉस को कम करने के लिए परीक्षण स्टॉप लॉस बिट्स का अनुकूलन करें।
मल्टी लेवल मूवमेंट एवरेज लाइन रणनीति एवरेज लाइन मल्टी लेवल एंट्री के माध्यम से, ट्रेंड ट्रैकिंग मुनाफा कमाने के लिए। सेट ट्रेडेबल टाइम और स्टॉप लॉस पॉइंट बेहतर जोखिम नियंत्रण है। होल्डिंग कॉस्ट कंट्रोल, पैरामीटर ऑप्टिमाइज़ेशन, स्टॉप लॉस ऑप्टिमाइज़ेशन आदि के माध्यम से रणनीति की प्रभावशीलता को और बढ़ाया जा सकता है, आगे के अध्ययन और अनुकूलन के लायक है।
/*backtest
start: 2022-09-16 00:00:00
end: 2023-09-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=4
strategy(title = "Noro's ShiftMA-multi Strategy v1.1", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)
//Settings
long = input(3, defval = 3, minval = 0, maxval = 3, title = "Lines for long")
short = input(3, defval = 3, minval = 0, maxval = 3, title = "Lines for short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Length")
src = input(ohlc4, title = "MA Source")
shortlevel3 = input(15.0, title = "Short line 3")
shortlevel2 = input(10.0, title = "Short line 2")
shortlevel1 = input(5.0, title = "Short line 1")
longlevel1 = input(-5.0, title = "Long line 1")
longlevel2 = input(-10.0, title = "Long line 2")
longlevel3 = input(-15.0, title = "Long line 3")
needoffset = input(true, title = "Offset")
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")
//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick
//MA
ma = sma(src, len)
longline1 = long >= 1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
longline2 = long >= 2 ? round(ma * ((100 + longlevel2) / 100) * mult) / mult : close
longline3 = long >= 3 ? round(ma * ((100 + longlevel3) / 100) * mult) / mult : close
shortline1 = short >= 1 ? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close
shortline2 = short >= 2 ? round(ma * ((100 + shortlevel2) / 100) * mult) / mult : close
shortline3 = short >= 3 ? round(ma * ((100 + shortlevel3) / 100) * mult) / mult : close
//Lines
colorlong1 = long >= 1 ? color.lime : na
colorlong2 = long >= 2 ? color.lime : na
colorlong3 = long >= 3 ? color.lime : na
colorshort1 = short >= 1 ? color.red : na
colorshort2 = short >= 2 ? color.red : na
colorshort3 = short >= 3 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline3, offset = offset, color = colorshort1)
plot(shortline2, offset = offset, color = colorshort2)
plot(shortline1, offset = offset, color = colorshort3)
plot(ma, offset = offset, color = color.blue)
plot(longline1, offset = offset, color = colorlong1)
plot(longline2, offset = offset, color = colorlong2)
plot(longline3, offset = offset, color = colorlong3)
//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
needtime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
if ma > 0
lots := round(size / lot)
strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0 and long >= 1 and needtime))
lots := round(size / lot)
strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1 and long >= 2 and needtime))
lots := round(size / lot)
strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2 and long >= 3 and needtime))
lots := round(size / lot)
strategy.entry("S1", strategy.short, lot, limit = shortline1, when = (lots == 0 and short >= 1 and needtime))
lots := round(size / lot)
strategy.entry("S2", strategy.short, lot, limit = shortline2, when = (lots >= -1 and short >= 2 and needtime))
lots := round(size / lot)
strategy.entry("S3", strategy.short, lot, limit = shortline3, when = (lots >= -2 and short >= 3 and needtime))
if size > 0
strategy.entry("TPL", strategy.short, 0, limit = ma)
if size < 0
strategy.entry("TPS", strategy.long, 0, limit = ma)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()