
Il s’agit d’une stratégie de négociation quantitative basée sur la confirmation de la double rupture dynamique de l’indicateur Williams (Williams %R) et de l’indicateur relativement faible (RSI). Cette stratégie confirme le signal de négociation en observant la rupture croisée des deux indicateurs dynamiques, ce qui réduit efficacement le risque de fausse rupture. La stratégie recherche des opportunités de négociation dans les zones de survente et de survente, afin d’améliorer la précision des transactions en confirmant conjointement les deux indicateurs.
La stratégie utilise le Williams %R sur 30 cycles et le RSI sur 7 cycles comme indicateurs principaux. Lorsque Williams %R atteint 80 et que le RSI atteint 20 simultanément, un signal de multiplication est déclenché; lorsque Williams %R atteint 20 et que le RSI atteint 80 simultanément, un signal de rupture est déclenché. Ce mécanisme de double confirmation permet de filtrer efficacement les faux signaux pouvant être générés par un seul indicateur.
La stratégie construit un système de négociation robuste grâce à la synergie de Williams %R et RSI. Le mécanisme de confirmation de double dynamique réduit efficacement le risque de faux signaux, et les transactions dans les zones de surachat et de survente ont un bon potentiel de profit. Grâce à une maîtrise raisonnable des risques et une optimisation continue, la stratégie peut maintenir une performance stable dans différents environnements de marché.
/*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)