Chiến lược này xây dựng một kênh SuperTrend dựa trên chỉ số Average True Range (ATR) để tạo ra tín hiệu mua và bán khi giá vượt qua kênh. Nó kết hợp các lợi thế của việc theo xu hướng và quản lý dừng lỗ.
Các băng tần trên và dưới của kênh SuperTrend được tính như sau:
Phạm vi trên = (Giá cao nhất + Giá thấp nhất) / 2 + ATR ((n) * Nhân tố Phạm vi thấp hơn = (Giá cao nhất + Giá thấp nhất) / 2 - ATR ((n) * Nhân tố
Trong đó ATR(n) là khoảng trung bình thực tế n-phần và Factor là một tham số có thể điều chỉnh, mặc định là 3.
Một tín hiệu tăng được tạo ra khi giá đóng vượt trên dải trên. Một tín hiệu giảm được tạo ra khi giá đóng vượt dưới dải dưới. Chiến lược xác định các bước vào và ra dựa trên các tín hiệu này.
Phương pháp giải quyết rủi ro:
Chiến lược này sử dụng kênh SuperTrend để theo dõi xu hướng và quản lý dừng lỗ. Sự phù hợp giữa thời gian ATR và các thông số yếu tố là rất quan trọng. Bước tiếp theo là tối ưu hóa thêm chiến lược thông qua điều chỉnh tham số, lọc tín hiệu vv, làm cho nó thích nghi với môi trường thị trường phức tạp hơn.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend Backtest", shorttitle="STBT", overlay=true) // Input for ATR Length atrLength = input.int(10, title="ATR Length", minval=1) atrFactor = input.float(3.0, title="Factor", minval=0.01, step=0.01) // Calculate SuperTrend [supertrend, direction] = ta.supertrend(atrFactor, atrLength) supertrend := barstate.isfirst ? na : supertrend // Define entry and exit conditions longCondition = ta.crossover(close, supertrend) shortCondition = ta.crossunder(close, supertrend) // Plot the SuperTrend plot(supertrend, color=color.new(color.blue, 0), title="SuperTrend") // Plot Buy and Sell signals plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal") // Strategy Entry and Exit strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition)