Chiến lược trái ngược biến động RWI tính toán mức cao và thấp của RWI trong một khoảng thời gian nhất định để xác định xem thị trường có ở trạng thái đảo ngược để phát hiện cơ hội đảo ngược không.
Chiến lược này đầu tiên tính toán mức cao và thấp của RWI trong một khoảng thời gian nhất định (chẳng hạn như 14 nến).
RWI cao = (tối cao - thấp nhất trong N giai đoạn trước) / (ATR của N giai đoạn * sqrt(N))
RWI thấp = (tối cao nhất trong số N kỳ trước - thấp nhất) / (ATR của N kỳ * sqrt(N))
Sau đó tính toán sự khác biệt giữa mức RWI cao/ thấp và ngưỡng để xác định xem nó có dưới ngưỡng (chẳng hạn như 1).
Nếu mức RWI cao hơn mức RWI thấp hơn ngưỡng, nó được xác định rằng giá sắp đảo ngược, và người ta có thể xem xét đi ngắn. Nếu mức RWI thấp hơn mức RWI cao hơn ngưỡng, nó được xác định rằng giá sắp đảo ngược, và người ta có thể xem xét đi dài. Điều này tạo thành một chiến lược giao dịch trái ngược dựa trên RWI để xác định trạng thái đảo ngược thị trường.
Chiến lược chống biến động RWI có những lợi thế sau:
Chiến lược chống biến động RWI cũng có những rủi ro sau:
Để kiểm soát rủi ro, các thông số RWI có thể được điều chỉnh phù hợp, các bộ lọc có thể được thêm vào, phạm vi đảo ngược có thể được giới hạn, v.v.
Chiến lược có thể được tối ưu hóa thêm theo các cách sau:
Chiến lược chống biến động RWI có logic rõ ràng sử dụng RWI để xác định sự đảo ngược. Logic giao dịch vững chắc và hoạt động tốt trong các thị trường khác nhau. Bằng cách tối ưu hóa các tham số, kiểm soát rủi ro vv, chiến lược có thể được áp dụng ổn định và hiệu quả hơn.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Copyright (c) 2020-present, JMOZ (1337.ltd) strategy("RWI Strategy", overlay=false) length = input(title="Length", type=input.integer, defval=14, minval=1) threshold = input(title="Threshold", type=input.float, defval=1.0, step=0.1) rwi(length, threshold) => rwi_high = (high - nz(low[length])) / (atr(length) * sqrt(length)) rwi_low = (nz(high[length]) - low) / (atr(length) * sqrt(length)) is_rw = rwi_high < threshold and rwi_low < threshold [is_rw, rwi_high, rwi_low] [is_rw, rwi_high, rwi_low] = rwi(length, threshold) long = not is_rw and rwi_high > rwi_low short = not is_rw and rwi_low > rwi_high strategy.entry("Long", strategy.long, when=long) strategy.entry("Short", strategy.short, when=short) plot(rwi_high, title="RWI High", linewidth=1, color=is_rw?color.gray:color.blue, transp=0) plot(rwi_low, title="RWI Low", linewidth=1, color=is_rw?color.gray:color.red, transp=0)