
Chiến lược này tích hợp ba chỉ số Brin, chỉ số tương đối mạnh (RSI) và chỉ số trung bình di chuyển (EMA) để thực hiện một chiến lược giao dịch tự động cổ phiếu được nắm giữ dài. Lưu ý rằng RSI tạo ra tín hiệu mua khi nó thấp hơn đường bán và giá gần hoặc chạm đường Brin xuống; tạo ra tín hiệu bán khi giá lên chạm đường Brin, sử dụng Brin để xác định xu hướng thị trường và lọc kép mua quá bán.
Chiến lược này chủ yếu dựa trên ba chỉ số Brin, RSI và EMA. Đường đường trung tâm trong vùng Brin là đường trung bình di chuyển đơn giản của giá, đường đường trên và dưới là khoảng cách hai lần so với giá chuẩn. Dải Brin có thể xác định sự quá mua quá bán của thị trường, giá gần đường dưới là quá bán, khi gần đường trên là quá mua. Chỉ số RSI là một trong những chỉ số quan trọng để xác định xem cổ phiếu có quá mua hay không, RSI thấp hơn 30 là quá bán, cao hơn 70 là quá mua.
Điều kiện mua của chiến lược này là: Một tín hiệu mua được tạo ra khi đường bán tháo của chỉ số RSI thấp hơn 30, và cần phải đáp ứng đồng thời với tình trạng bán tháo của giá đã gần hoặc chạm vào đường đi xuống của Brin, để tránh tín hiệu sai.
Điều kiện bán của chiến lược này là: Trong thời gian giá tăng, khi chạm vào dây thừng Brin tạo ra tín hiệu bán, comboBox1 ⋅ Như vậy, sử dụng dây thừng Brin để đánh giá tình trạng mua quá mức, thực hiện bán dừng ⋅
Phương pháp giải quyết rủi ro:
Chiến lược này có thể được tối ưu hóa theo một số hướng sau:
Chiến lược này tích hợp ba chỉ số Bollinger Bands, RSI và EMA, thực hiện một chiến lược giao dịch tự động giữ dây dài với phán đoán lọc kép. Cơ chế lọc kép để đánh giá trạng thái quá mua quá bán có thể tránh hiệu quả các tín hiệu sai, sử dụng EMA để đánh giá xu hướng có thể tránh giao dịch ngược. Trong khi đó, các tham số chiến lược có thể được thiết lập linh hoạt, áp dụng cho các cổ phiếu khác nhau, một chiến lược giao dịch định lượng thực tế đơn giản.
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by ChartArt) v1.3", shorttitle="rsi 30 min ADJ Buy", overlay=true)
///////////// RSI
RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length
RSIoverSold = input(30, title="RSI Oversold Level") // Adjustable RSI oversold level
RSIoverBought = input(80, title="RSI Overbought Level") // Adjustable RSI overbought level
price = close
vrsi = rsi(price, RSIlength)
///////////// Bollinger Bands
BBlength = input(231, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length
BBmult = 2
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
///////////// EMA
useEMA = input(true, title="Use EMA?")
emaLength = input(20, title="EMA Period Length")
ema = useEMA ? ema(close, emaLength) : na
source = close
buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band
sellEntry = crossunder(source, BBupper)
///////////// Plotting
plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line")
plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line")
plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line")
plot(ema, color=color.orange, title="EMA") // Plot EMA
///////////// RSI + Bollinger Bands Strategy
long = crossover(vrsi, RSIoverSold) and buyEntry
close_long = close >= BBupper
if (not na(vrsi))
if long
strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy")
else
strategy.cancel(id="Buy")
if close_long
strategy.close("Buy")