
Esta es una estrategia de trading cuantitativa basada en la confirmación de un doble movimiento de ruptura del índice Williams (Williams %R) y el índice RSI (Relatively Strong). Esta estrategia confirma las señales de negociación observando el cruce de rupturas de los dos indicadores de movimiento, lo que reduce el riesgo de falsas rupturas. La estrategia busca oportunidades de negociación en zonas de sobreventa y sobrecompra para mejorar la precisión de la operación mediante la confirmación conjunta de los dos indicadores.
La estrategia utiliza el Williams %R de 30 ciclos y el RSI de 7 ciclos como indicadores principales. Cuando el Williams %R se eleva a 80 y el RSI se eleva a 20 al mismo tiempo, se activa una señal de multiplicación; cuando el Williams %R se eleva a 20 y el RSI se eleva a 80 al mismo tiempo, se activa una señal de vacío. Este mecanismo de doble confirmación puede filtrar eficazmente las señales falsas que puede generar un solo indicador.
La estrategia construye un sistema de negociación robusto a través de la sinergia de Williams %R y RSI. El mecanismo de confirmación de doble dinámica reduce eficazmente el riesgo de falsas señales, y las operaciones en las zonas de sobrecompra y sobreventa tienen un buen potencial de ganancias. Con un control razonable del riesgo y una optimización continua, la estrategia puede mantener un rendimiento estable en diferentes entornos de mercado.
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Williams %R + RSI Strategy", overlay=true)
// Inputs for Williams %R
wpr_length = input.int(30, title="Williams %R Length", minval=1)
wpr_upper = input.int(-20, title="Williams %R Upper Band", minval=-100, maxval=0)
wpr_lower = input.int(-80, title="Williams %R Lower Band", minval=-100, maxval=0)
// Inputs for RSI
rsi_length = input.int(7, title="RSI Length", minval=1)
rsi_upper = input.int(80, title="RSI Upper Band", minval=0, maxval=100)
rsi_lower = input.int(20, title="RSI Lower Band", minval=0, maxval=100)
// Calculate Williams %R Manually
highest_high = ta.highest(high, wpr_length)
lowest_low = ta.lowest(low, wpr_length)
wpr = ((highest_high - close) / (highest_high - lowest_low)) * -100
// Calculate RSI
rsi = ta.rsi(close, rsi_length)
// Entry and Exit Conditions
longCondition = ta.crossover(wpr, wpr_lower) and ta.crossover(rsi, rsi_lower)
shortCondition = ta.crossunder(wpr, wpr_upper) and ta.crossunder(rsi, rsi_upper)
// Plot Buy/Sell Signals
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy Entry and Exit
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)