मल्टी-मूविंग एवरेज लिमिट ट्रेडिंग रणनीति


निर्माण तिथि: 2023-09-22 14:16:20 अंत में संशोधित करें: 2023-09-22 14:16:20
कॉपी: 0 क्लिक्स: 641
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

यह रणनीति एक ऐसी रणनीति है जो कई सम-रेखा सेट सीमा आदेशों के आधार पर व्यापार करती है। यह विभिन्न सम-रेखा स्तरों को तोड़ने के आधार पर अलग-अलग संख्या में अधिक या कम सीमा आदेशों को स्थापित करती है, जिससे पिरामिड-आकार के कई आदेशों की स्थिति बनती है। जब कीमत फिर से सम-रेखा को तोड़ती है, तो रिवर्स-सीमा-खोलने की स्थिति होती है। जब कोई स्थिति होती है, तो मूल्य-ब्रेक-ऑफ-अक्षीय-समान-रेखा-खोलने की स्थिति होती है।

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

यह रणनीति प्रवृत्ति की दिशा का आकलन करने के लिए औसत रेखा सूचक का उपयोग करती है। विशेष रूप से, यह निर्धारित करने के लिए कि क्या कीमतें ऊपर की 3 औसत रेखाओं को तोड़ती हैं, अधिकतम सीमा आदेशों की संख्या निर्धारित करने के लिए; यह निर्धारित करने के लिए कि क्या कीमतें नीचे की 3 औसत रेखाओं को तोड़ती हैं, शून्य सीमा आदेशों की संख्या निर्धारित करने के लिए।

इस प्रकार, कीमत की प्रवृत्ति जितनी मजबूत होगी, उतनी ही अधिक समोच्च सीमाएं स्थापित की जाएंगी; जब कीमत में उलटा संकेत होता है, तो रिवर्स ओपनिंग की जाती है। मध्य अक्षीय भूमध्य रेखा को स्थिति को तोड़ने के लिए उपयोग किया जाता है, और एक स्पष्ट स्थिति संकेत जारी किया जाता है।

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

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

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

  1. औसत रेखा का उपयोग कर प्रवृत्ति का आकलन करें, सरल और सहज।

  2. पिरामिड स्टॉक खोलने से प्रवृत्ति की शुरुआत में बेहतर कीमत मिल सकती है।

  3. मध्य-अक्ष सम-रेखा हानि, समय पर हानि को रोकना, जोखिम को नियंत्रित करना।

  4. सीमा-मूल्य पर स्थिति खोलना स्लाइड पॉइंट से बचने के लिए।

  5. अनुकूलित पैरामीटर, विभिन्न किस्मों के लिए अनुकूलित

  6. यह स्पष्ट रूप से संरचित है, इसे समझना और विस्तार करना आसान है।

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

इस रणनीति के साथ निम्नलिखित जोखिम भी हैं:

  1. औसत संकेतक में देरी के कारण गलतफहमी हो सकती है

  2. टिकट की विफलता के कारण प्रवेश का समय छूट सकता है।

  3. मध्य-अक्षीय सम-रेखा क्षतिग्रस्तता बहुत मोटी हो सकती है, जो ब्रेकआउट के लिए अक्षम है निर्णय लेना

  4. गलत पैरामीटर सेट करने से पिरामिड की स्थिति बहुत बड़ी हो सकती है।

  5. अपर्याप्त समय सीमा के कारण वक्र अधिक अनुकूल हो सकता है।

  6. प्रसंस्करण शुल्क को ध्यान में नहीं रखा गया।

जोखिम के लिए समाधान इस प्रकार हैं:

  1. अन्य मापदंडों के साथ संयोजन में पैरामीटर की पुष्टि और अनुकूलन करें।

  2. सीमा शुल्क शुल्क की वैधता की अवधि निर्धारित करें।

  3. मध्य-अक्ष-समानांतर पर स्टॉप सेट करें, या ब्रेकआउट निर्णय तर्क जोड़ें।

  4. अनुकूलन पैरामीटर, लाभ-हानि अनुपात का आकलन करना।

  5. यह एक बहु-बाजार प्रतिक्रिया है।

  6. एक शुल्क और स्लाइड पॉइंट लॉजिक जोड़ें।

अनुकूलन दिशा

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

  1. अनुकूलित मापदंडों को अधिक किस्मों के लिए अनुकूलित किया जा सकता है। मशीन सीखने के तरीकों का उपयोग किया जा सकता है।

  2. अन्य संकेतक फ़िल्टर पुष्टि जोड़ें. उदाहरण के लिए MACD, KDJ आदि.

  3. मध्य-अक्षीय भूमध्यरेखा में अतिरिक्त स्टॉप लॉजिक

  4. गतिशील रूप से स्थिति अनुपात और स्टॉप पोजीशन को समायोजित करें

  5. लागत में सुधार के लिए सीमा शुल्क सेटअप का अनुकूलन करें, उदाहरण के लिए, कीमतों को उतार-चढ़ाव के आधार पर सेट करें।

  6. लागत प्रबंधन में वृद्धि और अत्यधिक वसूली को रोकने के लिए।

  7. विभिन्न किस्मों के पैरामीटर के प्रभाव का परीक्षण करें, पैरामीटर पूल बनाएं।

संक्षेप

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

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

//Noro
//2019

//@version=4
strategy(title = "Robot WhiteBox MultiMA", shorttitle = "Robot WhiteBox MultiMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Length")
s = input(defval = "7. OHLC4", options = ["1. Open", "2. High", "3. Low", "4. Close", "5. HL2", "6. HLC3", "7. OHLC4", "8. OC2", "9. PCMA"], title = "Data")
short3 = input(true, title = "short 3")
short2 = input(true, title = "short 2")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
long2 = input(true, title = "long 2")
long3 = input(true, title = "long 3")
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
needtime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)

//MA
oc2 = (open + close) / 2
pcma = (highest(high, len) + lowest(low, len)) / 2
src = s == "1. Open" ? open : s == "2. High" ? high : s == "3. Low" ? low : s == "4. Close" ? close : s == "5. HL2" ? hl2 : s == "6. HLC3" ? hlc3 : s == "7. OHLC4" ? ohlc4 : s == "8. OC2" ? oc2: close
sma = sma(src, len)
ma = s == "9. PCMA" ? round(pcma * mult) / mult : round(sma * mult) / mult

//Levels
longline1 = long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
longline2 = long2 ? round(ma * ((100 + longlevel2) / 100) * mult) / mult : close
longline3 = long3 ? round(ma * ((100 + longlevel3) / 100) * mult) / mult : close
shortline1 = short1 ? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close
shortline2 = short2 ? round(ma * ((100 + shortlevel2) / 100) * mult) / mult : close
shortline3 = short3 ? round(ma * ((100 + shortlevel3) / 100) * mult) / mult : close

//Lines
colorlong1 = long1 ? color.lime : na
colorlong2 = long2 ? color.lime : na
colorlong3 = long3 ? color.lime : na
colorshort1 = short1 ? color.red : na
colorshort2 = short2 ? color.red : na
colorshort3 = short3 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline3, offset = offset, color = colorshort3, title = "Short line 3")
plot(shortline2, offset = offset, color = colorshort2, title = "Short line 2")
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")
plot(longline2, offset = offset, color = colorlong2, title = "Long line 2")
plot(longline3, offset = offset, color = colorlong3, title = "Long line 3")

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0 and long1 and needtime))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1 and long2 and needtime))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2 and long3 and needtime))
    lots := round(size / lot)
    strategy.entry("S1", strategy.short, lot, limit = shortline1, when = (lots == 0 and short1 and needtime))
    lots := round(size / lot)
    strategy.entry("S2", strategy.short, lot, limit = shortline2, when = (lots >= -1 and short2 and needtime))
    lots := round(size / lot)
    strategy.entry("S3", strategy.short, lot, limit = shortline3, when = (lots >= -2 and short3 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()