La estrategia de negociación Williams %R genera señales basadas en el indicador Williams Percent Range, que mide el impulso del mercado comparando la corriente cercana al intervalo alto-bajo durante un período.
La estrategia es larga cuando la línea %R cruza por encima de sobreventa, y vende cuando la línea cruza por debajo de sobrecompra.
Calcular el Williams %R durante un período de tiempo (por ejemplo, 14 períodos)
Nivel de sobrecompra (por ejemplo, -20) y sobreventa (por ejemplo, -80)
Ir largo cuando la línea % R cruza a través de sobreventa
Cierre de compras largas cuando la línea %R cruza hacia abajo a través de sobrecompras
Esto permite que las entradas alrededor de los puntos de reversión potenciales capitalicen los movimientos a corto plazo.
Parámetros y reglas sencillos
Identificación temprana de las sobrecompras/sobrevendidas
Negociación sistemática de ruptura
El retraso de % R puede perder oportunidades
Requiere la optimización de las entradas
Los niveles de sobreventa/compra son indicadores aproximados
La estrategia Williams %R tiene como objetivo capturar las reversiones mediante el comercio de regiones sobrecompradas / sobrevendidas. Con el tamaño adecuado de la posición y las paradas, el riesgo se puede controlar. Pero el retraso es una limitación clave que requiere herramientas adicionales para la validación y la precaución en el uso.
/*backtest start: 2023-01-01 00:00:00 end: 2023-09-13 00:00:00 period: 12h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © Julien_Eche //@version=5 strategy("Williams %R Strategy", overlay=true, initial_capital=100000, shorttitle="W%R Strategy") // Paramètres length = input(14, "Length") overboughtLevel = input(-20, "Overbought Level") oversoldLevel = input(-80, "Oversold Level") // Calcul du Williams %R williamsR = -100 * (ta.highest(high, length) - close) / (ta.highest(high, length) - ta.lowest(low, length)) // Conditions d'achat et de vente buySignal = ta.crossover(williamsR, oversoldLevel) sellSignal = ta.crossunder(williamsR, overboughtLevel) // Entrée en position longue if buySignal strategy.entry("Buy", strategy.long) // Sortie de la position longue if sellSignal strategy.close("Buy")