La estrategia contraria a la volatilidad del RWI calcula los máximos y mínimos del RWI durante un cierto período para determinar si el mercado se encuentra en un estado de reversión con el fin de descubrir oportunidades de reversión.
La estrategia calcula primero los máximos y mínimos del RWI durante un período de tiempo determinado (por ejemplo, 14 velas).
El valor de las pérdidas por error se calculará en función de las pérdidas por error.
La RWI baja = (Mejor de N períodos anteriores - Bajo) / (ATR de N períodos * sqrt(N))
Luego, calcule la diferencia entre los máximos/mínimos del RWI y el umbral para determinar si está por debajo del umbral (como 1).
Si el máximo de RWI está por encima del mínimo de RWI por más del umbral, se determina que el precio está a punto de revertirse, y uno puede considerar ir corto.
La estrategia contraria a la volatilidad del RWI tiene las siguientes ventajas:
La estrategia contraria a la volatilidad del RWI también presenta los siguientes riesgos:
Para controlar los riesgos, los parámetros del RWI pueden ajustarse en consecuencia, se pueden añadir filtros, limitarse los rangos de inversión, etc.
La estrategia se puede optimizar aún más de las siguientes maneras:
La estrategia contraria a la volatilidad de RWI tiene una lógica clara utilizando RWI para determinar las reversiones. La lógica de negociación es sólida y funciona bien en mercados variados. Al optimizar los parámetros, controlar los riesgos, etc., la estrategia se puede aplicar de manera más estable y eficiente.
/*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)