Chiến lược này sử dụng Bollinger Bands để xác định xem giá đã bước vào khu vực mua quá mức và kết hợp chỉ số RSI để xác định các cơ hội gọi lại.
Chiến lược dựa trên các nguyên tắc sau:
Ưu điểm của chiến lược này:
Rủi ro trong chiến lược này:
Rủi ro có thể được giảm thiểu bằng cách:
Chiến lược này có thể được cải thiện bằng:
Nói tóm lại, đây là một chiến lược bán scalping ngắn nhanh mua quá mức điển hình. Nó tận dụng Bollinger Bands cho các mục nhập giao dịch và RSI để lọc tín hiệu. Rủi ro được quản lý thông qua việc đặt dừng lỗ thận trọng.
/*backtest start: 2023-11-01 00:00:00 end: 2023-11-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Coinrule strategy("Bollinger Band Below Price with RSI", overlay=true, initial_capital=1000, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=70, commission_type=strategy.commission.percent, commission_value=0.1) showDate = input(defval=true, title='Show Date Range') timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0) notInTrade = strategy.position_size <= 0 //Bollinger Bands Indicator length = input.int(20, minval=1) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") basis = ta.sma(src, length) 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 inputs and calculations lengthRSI = 14 RSI = ta.rsi(close, lengthRSI) // Configure trail stop level with input options longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01 shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01 // Determine trail stop loss prices //longStopPrice = 0.0 shortStopPrice = 0.0 //longStopPrice := if strategy.position_size > 0 //stopValue = close * (1 - longTrailPerc) //math.max(stopValue, longStopPrice[1]) //else //0 shortStopPrice := if strategy.position_size < 0 stopValue = close * (1 + shortTrailPerc) math.min(stopValue, shortStopPrice[1]) else 999999 //Entry and Exit strategy.entry(id="short", direction=strategy.short, when=ta.crossover(close, upper) and RSI < 70 and timePeriod and notInTrade) if (ta.crossover(upper, close) and RSI > 70 and timePeriod) strategy.exit(id='close', limit = shortStopPrice)