
Strategi ini menggabungkan penggunaan tiga petunjuk, iaitu Brin Belt, RSI (Relative Strength Index) dan CCI (Commodity Pathway Index), untuk mencari isyarat silang, mengeluarkan isyarat beli dan jual. Strategi ini bertujuan untuk mencari fenomena beli dan jual di pasaran, memasuki titik balik, dengan harapan mendapat pulangan pelaburan yang lebih baik.
Beringkas Brin terdiri daripada rel tengah, rel atas dan rel bawah. Rel tengah biasanya menggunakan purata bergerak 20 hari. Rel atas dan rel bawah adalah dua perbezaan piawai di atas dan di bawah rel tengah.
Penunjuk RSI mencerminkan perubahan kadar kenaikan dan penurunan harga penutupan dalam jangka masa tertentu, digunakan untuk mengukur perbandingan kekuatan antara pembelian dan penjualan. Nilai RSI berada di kawasan oversold pada 0 hingga 30, dan di kawasan oversold pada 70 hingga 100. Apabila RSI turun dari kawasan oversold, ia boleh berfungsi sebagai isyarat jual, dan apabila RSI naik dari kawasan oversold, ia boleh berfungsi sebagai isyarat beli.
Indeks CCI digunakan untuk mengukur sejauh mana harga saham menyimpang dari harga purata. Di antaranya, + 100 mewakili harga yang jauh lebih tinggi daripada harga purata, sebagai overbuy; -100 mewakili harga yang jauh lebih rendah daripada harga purata, sebagai oversell.
Strategi ini menggunakan Brinband untuk menilai sama ada harga melebihi jual beli dalam jangka pendek, menggunakan RSI untuk menilai keseimbangan kekuatan jual beli, menggunakan CCI untuk menilai tahap penyimpangan harga. Apabila Brinband, RSI dan CCI memberi isyarat membeli / menjual pada masa yang sama, mengeluarkan arahan perdagangan.
Strategi ini mengambil kira keadaan pasaran jangka pendek, sederhana dan jangka panjang, melalui tanda silang tiga indikator Brin, RSI dan CCI, untuk menentukan masa pembalikan pasaran, merupakan strategi pengesanan pembalikan yang lebih mantap. Ia boleh dioptimumkan lagi melalui penyesuaian parameter, cara berhenti, dan lain-lain, dan sesuai untuk pelbagai keadaan pasaran.
/*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)