नोरो की ट्रेंड मूविंग एवरेज रणनीति का चरम संस्करण

लेखक:चाओझांग, दिनांकः 2024-01-31 17:00:53
टैगः

img

अवलोकन

यह रणनीति प्रवृत्ति दिशा और लंबे/लघु अवसरों की पहचान करने के लिए दो चलती औसत संकेतकों का उपयोग करती है। समग्र प्रवृत्ति दिशा निर्धारित करने के लिए धीमी चलती औसत (नीली रेखा) का उपयोग किया जाता है, जबकि मूल्य चैनल के साथ संयुक्त तेजी से चलती औसत (लाल रेखा) का उपयोग व्यापार अवसरों की खोज के लिए किया जाता है।

रणनीति तर्क

  1. दो चलती औसत की गणना करें - अवधि 21 के साथ एक धीमी एमए समग्र प्रवृत्ति निर्धारित करने के लिए, और अवधि 5 के साथ एक तेज़ एमए जो व्यापार के अवसरों को खोजने के लिए मूल्य चैनल के साथ संयुक्त है।

  2. जांचें कि क्या वर्तमान मूल्य पिछली अवधि में बने मूल्य चैनल को तोड़ता है। एक ब्रेकआउट एक संभावित व्यापार अवसर का संकेत देता है।

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

  4. उपरोक्त सभी कारकों को जोड़कर लंबे/छोटे संकेत उत्पन्न करें। एक संकेत तब ट्रिगर किया जाता है जब कीमत की चाल धीमी एमए ट्रेंड दिशा के साथ संरेखित होती है, तेज एमए या मूल्य चैनल संकेत उत्पन्न करता है, और कैंडलस्टिक चाल शर्त से मेल खाती है।

लाभ

  1. दोहरी चलती औसत प्रणाली प्रभावी रूप से प्रवृत्ति की दिशा को ट्रैक करती है।

  2. तेजी से एमए और मूल्य चैनल संयुक्त व्यापार के अवसरों को पकड़ने के लिए शुरुआती ब्रेकआउट बिंदुओं का पता लगाता है।

  3. बाजार के उलटफेर से बचने के लिए मोमबत्तियों की दिशा और गणना पर भी विचार करें।

  4. अनुकूलन योग्य एमए पैरामीटर विभिन्न उत्पादों और समय सीमाओं के लिए काम करते हैं।

जोखिम और न्यूनीकरण

  1. दोहरे एमए साइडवेज बाजारों के दौरान झूठे संकेत उत्पन्न कर सकते हैं। चंचल बाजारों के व्यापार से बचने के लिए ऑसिलेटर या एटीआर जोड़ सकते हैं।

  2. अभी भी असाधारण बाजार की चाल में फंसने का जोखिम है।

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

बढ़ोतरी के अवसर

  1. अस्थिर बाजारों में गलत ट्रेडों से बचने के लिए एडीएक्स, एमएसीडी जैसे सहायक संकेतक जोड़ें।

  2. गतिशील स्टॉप लॉस गणना, उदाहरण के लिए एटीआर और जोखिम वरीयता पर आधारित।

  3. अनुकूलन क्षमता के लिए मशीन लर्निंग के माध्यम से पैरामीटर अनुकूलन।

  4. साधन की विशेषताओं के आधार पर सूक्ष्म समायोजन पैरामीटर, जैसे क्रिप्टो के लिए कम अवधि।

निष्कर्ष

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


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

//@version=2
strategy(title = "Noro's Trend MAs Strategy v1.9 Extreme", shorttitle = "Trend MAs str 1.9 extreme", 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

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

अधिक