मात्रात्मक रणनीति: बोलिंगर बैंड्स आरएसआई सीसीआई क्रॉसओवर रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-20 16:24:49
टैगः

img

अवलोकन

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

रणनीति तर्क

बोलिंगर बैंड

बोलिंगर बैंड में एक मध्य बैंड, एक ऊपरी बैंड और एक निचला बैंड होता है। मध्य बैंड आमतौर पर 20 दिनों का चलती औसत होता है। ऊपरी बैंड मध्य बैंड से ऊपर दो मानक विचलन होता है। निचला बैंड नीचे दो मानक विचलन होता है। निचले बैंड के पास कीमतें ओवरसोल्ड की स्थिति का संकेत दे सकती हैं। ऊपरी बैंड के पास कीमतें ओवरबोल्ड की स्थिति का संकेत दे सकती हैं।

आरएसआई

आरएसआई दिशागत मूल्य आंदोलनों की गति को ऊपर और नीचे मापता है। यह 70 से ऊपर ओवरबॉट और 30 से नीचे ओवरसोल्ड दिखाता है। जब आरएसआई 70 से ऊपर गिरता है, तो यह एक बिक्री संकेत हो सकता है। जब आरएसआई 30 से नीचे उछलता है, तो यह एक खरीद संकेत हो सकता है।

सीसीआई

सीसीआई मापता है कि कीमतें औसत मूल्य से कितनी दूर चली गई हैं। +100 से ऊपर के रीडिंग्स का मतलब ओवरबॉट की स्थिति है। -100 से नीचे के रीडिंग्स का मतलब ओवरसोल्ड की स्थिति है। सीसीआई चरम मूल्य स्तरों को दर्शाता है।

क्रॉसओवर सिग्नल

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

लाभ

  1. कई संकेतकों का संयोजन संकेत की सटीकता में सुधार करता है और झूठे संकेतों को कम करता है
  2. मोड़ के बिंदुओं पर पलटने के अवसरों को पकड़ता है
  3. अनुकूलन योग्य मापदंड विभिन्न बाजार स्थितियों के अनुकूल हैं
  4. चिकनी सीसीआई फिल्टर शोर को कम करता है और स्थिरता में सुधार करता है

जोखिम और समाधान

  1. इन तीनों संकेतकों से खराब संकेत उत्पन्न हो सकते हैं जिसके परिणामस्वरूप हानि हो सकती है। पैरामीटर ढीले किए जा सकते हैं या अन्य फ़िल्टर जोड़े जा सकते हैं।
  2. सीसीआई अस्थिर बाजारों के साथ संघर्ष करता है। चलती औसत या अस्थिरता संकेतकों के साथ प्रतिस्थापित कर सकता है।
  3. केवल लाभ लेने के बिना स्थान पर हानि रोकें। कुछ लाभ में लॉक करने के लिए अनुवर्ती स्टॉप जोड़ सकते हैं।

अनुकूलन के अवसर

  1. इष्टतम सेटअप खोजने के लिए अधिक पैरामीटर संयोजनों का परीक्षण करें
  2. स्वचालित रूप से पैरामीटर समायोजित करने के लिए मशीन सीखने का परिचय
  3. लाभ लक्ष्य के साथ लाभ लेने की रणनीतियाँ जोड़ें
  4. संकेतों को मान्य करने के लिए MACD, KD जैसे अधिक संकेतकों को शामिल करें

निष्कर्ष

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


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

//@version=5
strategy(shorttitle="BBRSIstr", title="Bollinger Bands", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")

ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

//RSI
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
showDivergence = input.bool(false, title="Show Divergence", group="RSI Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

rsiPlot = plot(rsi, "RSI", color=#7E57C2)
plot(rsiMA, "RSI-based MA", color=color.yellow)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")

//cci
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
plot(cci, "CCI", color=#2962FF)
band1 = hline(100, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
hline(0, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(-100, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color=color.rgb(33, 150, 243, 90), title="Background")

typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing")

smoothingLine = ma(cci, smoothingLength, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, display=display.none)


longCBB= close < lower
shortCBB = close>upper
longBRSI = rsi < 33
shortBRSI = rsi > 70
longcci = cci < -215
shortcci = cci > 250

strategy.entry("LONG", strategy.long, when = longCBB and longBRSI and longcci)
strategy.exit("Exit ", profit = 600)
strategy.entry("SHORT", strategy.short, when = shortCBB and shortBRSI and shortcci)
strategy.exit("Exit ", profit = 600)

अधिक