Cette stratégie est un système de trading quantitatif qui combine l'oscillateur d'accélérateur (AC) et les indicateurs stochastiques. Elle capture les changements de dynamique du marché en identifiant les divergences entre les prix et les indicateurs techniques pour prédire les renversements de tendance potentiels.
La logique de base est basée sur la synergie de plusieurs indicateurs techniques. L'AC est calculé en utilisant la différence entre les SMA de 5 périodes et 34 périodes des points moyens des prix, moins sa moyenne mobile de N périodes. Les valeurs stochastiques K et D sont calculées pour confirmer les signaux de divergence.
Il s'agit d'une stratégie de trading quantitative intégrant plusieurs indicateurs techniques, capturant les points tournants du marché grâce à des signaux de divergence. Ses atouts résident dans la validation croisée de plusieurs indicateurs et un système de contrôle des risques complet, tout en accordant une attention particulière aux fausses ruptures et à l'optimisation des paramètres.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © JayQwae //@version=5 strategy("Enhanced AC Divergence Strategy with Stochastic Divergence", overlay=true) // Input settings tp_pips = input.float(0.0020, "Take Profit (in price)", step=0.0001) sl_pips = input.float(0.0040, "Stop Loss (in price)", step=0.0001) // 40 pips ac_length = input.int(5, "AC Length") rsi_length = input.int(14, "RSI Length") stoch_k = input.int(14, "Stochastic K Length") stoch_d = input.int(3, "Stochastic D Smoothing") stoch_ob = input.float(80, "Stochastic Overbought Level") stoch_os = input.float(20, "Stochastic Oversold Level") // Accelerator Oscillator Calculation high_low_mid = (high + low) / 2 ao = ta.sma(high_low_mid, 5) - ta.sma(high_low_mid, 34) ac = ao - ta.sma(ao, ac_length) // RSI Calculation rsi = ta.rsi(close, rsi_length) // Stochastic Oscillator Calculation k = ta.sma(ta.stoch(close, high, low, stoch_k), stoch_d) d = ta.sma(k, stoch_d) // Stochastic Divergence Detection stoch_bull_div = ta.lowest(close, 5) < ta.lowest(close[1], 5) and ta.lowest(k, 5) > ta.lowest(k[1], 5) stoch_bear_div = ta.highest(close, 5) > ta.highest(close[1], 5) and ta.highest(k, 5) < ta.highest(k[1], 5) // Main Divergence Detection bullish_div = ta.lowest(close, 5) < ta.lowest(close[1], 5) and ac > ac[1] and stoch_bull_div bearish_div = ta.highest(close, 5) > ta.highest(close[1], 5) and ac < ac[1] and stoch_bear_div // Plot divergences plotshape(bullish_div, title="Bullish Divergence", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(bearish_div, title="Bearish Divergence", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Strategy rules if (bullish_div) strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + tp_pips, stop=close - sl_pips) if (bearish_div) strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - tp_pips, stop=close + sl_pips) // Alerts if (bullish_div) alert("Bullish Divergence detected! Potential Buy Opportunity", alert.freq_once_per_bar) if (bearish_div) alert("Bearish Divergence detected! Potential Sell Opportunity", alert.freq_once_per_bar)