
Strategi ini menggabungkan tiga indikator, yaitu Brinks, Relative Strength Index (RSI) dan Commodity Path Index (CCI), untuk mencari sinyal silang, mengirim sinyal beli dan jual. Strategi ini bertujuan untuk menemukan fenomena overbought dan oversold di pasar, dan masuk ke pasar pada titik balik untuk mendapatkan laba atas investasi yang lebih baik.
Beringin terdiri dari rel tengah, rel atas, dan rel bawah. rel tengah biasanya menggunakan rata-rata bergerak 20 hari. rel atas dan rel bawah masing-masing berada di atas dan di bawah rel tengah. Jika harga mendekati rel bawah, dianggap sebagai sinyal oversell.
Indikator RSI mencerminkan perubahan kecepatan kenaikan dan penurunan harga penutupan dalam jangka waktu tertentu, digunakan untuk mengukur kontras kekuatan antara posisi beli dan jual. Nilai RSI berada di zona oversold saat 0 hingga 30, dan zona overbought saat 70 hingga 100. RSI dapat digunakan sebagai sinyal jual ketika turun dari zona overbought, dan sebagai sinyal beli ketika RSI naik dari zona overbought.
Indeks CCI digunakan untuk mengukur seberapa jauh harga saham menyimpang dari harga rata-rata. Di antaranya, + 100 mewakili harga jauh lebih tinggi dari harga rata-rata, yang merupakan overbought; -100 mewakili harga jauh lebih rendah dari harga rata-rata, yang merupakan oversold.
Strategi ini menggunakan Brinband untuk menilai apakah harga akan melampaui jual beli dalam waktu dekat, menggunakan indikator RSI untuk menilai keseimbangan kekuatan perdagangan, menggunakan indikator CCI untuk menilai tingkat penyimpangan harga. Brinband, RSI dan indikator CCI secara bersamaan memberikan sinyal beli / jual, mengeluarkan instruksi perdagangan.
Strategi ini secara komprehensif mempertimbangkan kondisi pasar jangka pendek, menengah dan panjang, dengan sinyal silang dari tiga indikator Brin, RSI dan CCI, untuk menilai waktu berbaliknya pasar, merupakan strategi pelacakan berbalik yang lebih kuat. Dapat dioptimalkan lebih lanjut melalui penyesuaian parameter, metode stop, dan lain-lain.
/*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)