डबल एमए ट्रेंड ब्रेकआउट रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-08 16:43:38
टैगः

img

अवलोकन

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

रणनीति तर्क

इस रणनीति में निम्नलिखित मुख्य भाग शामिल हैंः

रुझान: 21 अवधि के एमए की गणना करता है, जिसे धीमी एमए के रूप में परिभाषित किया गया है। इसकी स्थिति अपेक्षाकृत स्थिर है और इसका उपयोग समग्र प्रवृत्ति की दिशा का न्याय करने के लिए किया जा सकता है। जब कीमतें इस एमए के करीब बढ़ती हैं, तो यह एक ऊपर की प्रवृत्ति है। जब कीमतें इस एमए के करीब गिरती हैं, तो यह एक नीचे की प्रवृत्ति है।

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

मोमबत्ती फ़िल्टरिंग: यह रणनीति केवल तब लंबी होती है जब वर्तमान मोमबत्ती मंदी होती है, या जब वर्तमान मोमबत्ती तेजी होती है तो छोटी होती है। यह मानता है कि प्रवेश के लिए रिवर्सल बार का उपयोग करने से अधिक सफलता दर प्राप्त की जा सकती है। यह ओवरबॉट या ओवरसोल्ड क्षेत्रों में प्रवेश करने से बचने के लिए तेजी से आरएसआई संकेतक को भी जोड़ती है।

पिरामिड फिल्टरक्रिप्टो बाजार के लिए, रणनीति में महत्वपूर्ण डाउनट्रेंड में ओवरसोल्ड अवसरों को पकड़ने के लिए तीन गुना अस्थिरता ब्रेकआउट की स्थिति भी शामिल है।

हानि रोकें: रणनीति चलती स्टॉप लॉस का समर्थन करती है। पदों के खुलने के बाद, सेट प्रतिशत के आधार पर स्टॉप लॉस को वास्तविक समय में अपडेट किया जाएगा।

लाभ विश्लेषण

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

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

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

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

  1. सीमाबद्ध दोहरी एमए अवधि के दौरान, कई छोटी जीत और नुकसान होंगे।
  2. रिवर्सल बार प्रविष्टि में कुछ समय सीमाओं में कम जीत दर हो सकती है।
  3. क्रिप्टो बाजार में उच्च अस्थिरता और स्टॉप लॉस होने की उच्च संभावना है।
  4. अत्यधिक बिकने वाले पिरामिडिंग के अवसर बहुत कम हैं, उच्च रिटर्न अस्थिरता के साथ।

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

  1. अप्रभावी फटकारों से बचने के लिए अधिक प्रवेश शर्तें जोड़ें;
  2. समय सीमा को समायोजित करें या फ़िल्टरिंग के लिए अन्य संकेतक जोड़ें;
  3. मध्य रेखा के पास ट्रैक करने के लिए स्टॉप लॉस एल्गोरिदम को अनुकूलित करें;
  4. ओवरसोल्ड पिरामिडिंग रणनीतियों के वास्तविक प्रदर्शन का मूल्यांकन करें।

अनुकूलन दिशाएँ

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

  1. पैरामीटर अनुकूलन: जोखिम-समायोजित रिटर्न में सुधार के लिए इष्टतम तेज और धीमी एमए अवधि संयोजन खोजने के लिए व्यवस्थित रूप से बैकटेस्ट करें।

  2. पैटर्न पहचानना: अधिक विश्वसनीय उलट संकेतों की पहचान करने के लिए KDJ, MACD जैसे अन्य संकेतक जोड़ें।

  3. स्टॉप लॉस ऑप्टिमाइजेशन: रोके जाने की संभावना कम करने के लिए फ्लोटिंग या ट्रेलिंग स्टॉप लॉस एल्गोरिदम विकसित करें।

  4. मशीन लर्निंग: एमएल का उपयोग करके स्वचालित रूप से ट्रेडिंग नियम उत्पन्न करने के लिए अधिक ऐतिहासिक डेटा एकत्र और लेबल करें।

  5. स्थिति आकार: बाजार की स्थितियों के आधार पर स्थिति आकार को गतिशील रूप से समायोजित करें।

निष्कर्ष

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


/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Trend MAs Strategy v2.0 +CB", shorttitle = "Trend MAs str 2.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, "long")
needshort = input(true, "short")
needstops = input(false, "stops")
stoppercent = input(5, defval = 5, minval = 1, maxval = 50, title = "Stop, %")
useohlc4 = input(false, defval = false, title = "Use OHLC4")
usefastsma = input(true, "Use fast MA Filter")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period")
slowlen = input(21, defval = 20, minval = 2, maxval = 200, title = "slow MA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")
needbg = input(false, defval = false, title = "Need trend Background?")
needarr = input(false, defval = false, title = "Need entry arrows?")
needex = input(true, defval = true, title = "Need extreme? (crypto/fiat only!!!)")

src = useohlc4 == true ? ohlc4 : close

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

//PriceChannel 2
lasthigh2 = highest(src, fastlen)
lastlow2 = lowest(src, fastlen)
center2 = (lasthigh2 + lastlow2) / 2

//Trend
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
len = abs(close - mac)
sma = sma(len, 100)
max = max(open, close)
min = min(open, close)
up3 = close < open and len > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0

//Signals
up = trend == 1 and (low < center2 or usefastsma == false) and (redbars == 1) ? 1 : 0
dn = trend == -1 and (high > center2 or usefastsma == false) and (greenbars == 1) ? 1 : 0

up2 = high < center and high < center2 and bar == -1 ? 1 : 0
dn2 = low > center and low > center2 and bar == 1 ? 0 : 0

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "Slow MA")
plot(center2, color = red, linewidth = 3, transp = 0, title = "PriceChannel 2")

//Arrows
plotarrow(up == 1 and needarr == true ? 1 : 0, colorup = black, colordown = black, transp = 0)
plotarrow(dn == 1 and needarr == true ? -1 : 0, colorup = black, colordown = black, transp = 0)

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 90)

//Alerts
alertcondition(up == 1, title='buy', message='Uptrend')
alertcondition(dn == 1, title='sell', message='Downtrend')

//Trading
stoplong = up == 1 and needstops == true ? close - (close / 100 * stoppercent) : stoplong[1]
stopshort = dn == 1 and needstops == true ? close + (close / 100 * stoppercent) : stopshort[1]

longCondition = up == 1 or (up2 == 1 and needex == true) or up3 == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
    strategy.exit("Stop Long", "Long", stop = stoplong)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    strategy.exit("Stop Short", "Short", stop = stopshort)

अधिक