Chiến lược giao dịch xung đột RSI của Boll là một chiến lược giao dịch xung đột ngắn sử dụng chỉ số Boll và chỉ số tương đối mạnh (RSI). Chiến lược này thu lợi nhuận bằng cách nắm bắt sự biến động xung đột của giá giữa đường ray trên và dưới của Boll.
Đầu tiên, chiến lược này sử dụng các chỉ số Boll band để phân tích các giới hạn trên và dưới của biến động giá. Khi giá gần đường lên, nó được gọi là mua quá mức và khi nó gần đường xuống, nó được gọi là bán quá mức.
Thứ hai, kết hợp với chỉ số RSI để đánh giá sức mạnh của quá mua quá bán. RSI cao hơn 70 là quá mua, thấp hơn 30 là quá bán.
Khi giá chạm đường Bol xuống và RSI cho thấy quá bán, hãy làm thêm; Khi giá chạm đường Bol lên và RSI cho thấy quá mua, hãy làm trống.
Chỉ số Bollinger Bands có thể xác định chính xác phạm vi biến động của giá cả.
Chỉ số RSI tránh làm quá nhiều việc vắng một cách mù quáng.
Các nhà đầu tư cũng có thể sử dụng các tính năng này để tạo ra lợi nhuận.
Giao dịch thường xuyên, có khả năng lợi nhuận liên tục.
Có thể áp dụng cho các giống và thời gian khác nhau.
Các tham số Bollinger Bands không được thiết lập đúng, không thể định vị giá trị quan trọng.
Các tham số RSI được thiết lập không hợp lý, tạo ra tín hiệu giả.
Không có khả năng phản kháng, và stop loss được kích hoạt.
Các nhà đầu tư phải chịu chi phí trượt do tần suất giao dịch cao hơn.
Trong một thị trường biến động, rất khó để nắm bắt được xu hướng.
Tối ưu hóa tham số để làm cho các vùng Boolean gần với phạm vi dao động thực tế.
Điều chỉnh chu kỳ RSI để đảm bảo lọc tiếng ồn.
Đánh giá theo dõi giá, giảm lỗ mạo hiểm.
Lựa chọn các giống có khối lượng giao dịch lớn, giảm tác động của điểm trượt.
Các chỉ số khác có thể hỗ trợ để xác định xu hướng.
Chiến lược giao dịch xung đột RSI của Bollinger Bands, có thể nắm bắt hiệu quả sự biến động hai chiều của giá trong phạm vi. Bằng cách điều chỉnh tham số và quản lý rủi ro, có thể thu được lợi nhuận ổn định. Đây là một chiến lược giao dịch định lượng ngắn hạn được đề xuất.
/*backtest
start: 2023-08-16 00:00:00
end: 2023-09-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Swing trading strategy FOREX ", shorttitle="BB+RSI", overlay=true)
////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2022, title = "To Year", minval = 1970)
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//
//
///////////// RSI
RSIlength = input(6,title="RSI Period Length")
RSIoverSold = input(defval = 65, title = "RSIoverSold", minval = 1, maxval = 100)
RSIoverBought = input(defval = 35, title = "RSIoverBought", minval = 1, maxval = 100)
price = close
vrsi = rsi(price, RSIlength)
///////////// Bollinger Bands
BBlength = input(200, minval=1,title="Bollinger Period Length")
BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=color.aqua,title="Bollinger Bands SMA Basis Line")
p1 = plot(BBupper, color=color.silver,title="Bollinger Bands Upper Line")
p2 = plot(BBlower, color=color.silver,title="Bollinger Bands Lower Line")
fill(p1, p2)
///////////// Colors
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? color.red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? color.green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)
///////////// RSI + Bollinger Bands Strategy
//for buy
cond1=crossover(vrsi, RSIoverSold)
cond2=crossover(source, BBlower)
//for sell
cond3=crossunder(vrsi, RSIoverBought)
cond4=crossunder(source, BBupper)
if (not na(vrsi))
if (cond1 and cond2 and time_cond)
strategy.entry("RSI_BB_LONG", strategy.long, stop=BBlower, comment="LONG",alert_message = "long")
else
strategy.cancel(id="RSI_BB_LONG")
if (cond3 and cond4 and time_cond)
strategy.entry("RSI_BB_SHORT", strategy.short, stop=BBupper, comment="SHORT",alert_message = "short")
//strategy.close("RSI_BB_LONG")
else
strategy.cancel(id="RSI_BB_SHORT")
//strategy.exit("closelong", "RSI_BB_LONG" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closelong")
//strategy.exit("closeshort", "RSI_BB_SHORT" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closeshort")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)