Il s'agit d'une stratégie de trading quantitative basée sur la confirmation d'une double percée de dynamique en utilisant Williams %R et l'indice de force relative (RSI). La stratégie identifie les signaux de trading par la croisée de deux indicateurs de dynamique, réduisant efficacement le risque de fausses percées. Elle recherche des opportunités de trading dans les zones surachetées et survendues, améliorant la précision du trading grâce à la confirmation mutuelle des deux indicateurs.
La stratégie utilise un Williams %R à 30 périodes et un RSI à 7 périodes comme indicateurs principaux. Un signal d'achat est déclenché lorsque Williams %R dépasse -80 et que le RSI dépasse simultanément -20; un signal de vente est généré lorsque Williams %R dépasse -20 et que le RSI dépasse simultanément -80. Ce double mécanisme de confirmation filtre efficacement les faux signaux potentiels à partir d'indicateurs uniques. La stratégie implémente le calcul manuel du Williams %R en calculant les prix les plus élevés et les plus bas au cours de la période pour des valeurs d'indicateur plus précises.
La stratégie construit un système de trading robuste grâce à la synergie de Williams %R et RSI. Le mécanisme de confirmation de double dynamique réduit efficacement les risques de faux signaux, tandis que le trading dans les zones de surachat et de survente offre un bon potentiel de profit.
/*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)