
Cette stratégie est un système de trading de tendance basé sur plusieurs indicateurs techniques. Elle identifie les signaux d’achat et de vente du marché en combinant l’indice de force relative (RSI), la convergence et la divergence de la moyenne mobile (MACD) et les indicateurs stochastiques. La stratégie adopte la méthode du seuil de probabilité et utilise la normalisation du score Z pour filtrer les signaux de trading et améliorer la fiabilité des transactions. Cette stratégie est particulièrement adaptée au trading de suivi de tendance au niveau quotidien.
La stratégie repose principalement sur trois indicateurs techniques de base :
Il s’agit d’une stratégie innovante qui combine des indicateurs techniques classiques avec des méthodes statistiques modernes. Grâce à la coordination multi-indicateurs et au filtrage des seuils de probabilité, l’efficacité du trading est améliorée tout en maintenant la robustesse de la stratégie. Cette stratégie présente une forte adaptabilité et une forte évolutivité et convient au trading de tendance à moyen et long terme. Bien qu’il existe un certain risque de décalage, des performances de trading stables peuvent être obtenues grâce à une optimisation raisonnable des paramètres et à une gestion des risques.
/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI-MACD-Stochastic Strategy", shorttitle = "RMS_V1", overlay=true)
// Inputs
use_macd = input.bool(true, title="Use MACD")
use_rsi = input.bool(true, title="Use RSI")
use_stochastic = input.bool(true, title="Use Stochastic")
threshold_buy = input.float(0.5, title="Buy Threshold (Probability)")
threshold_sell = input.float(-0.5, title="Sell Threshold (Probability)")
// Indicators
// RSI
rsi_period = input.int(14, title="RSI Period")
rsi = ta.rsi(close, rsi_period)
// Stochastic Oscillator
stoch_k = ta.stoch(close, high, low, rsi_period)
stoch_d = ta.sma(stoch_k, 3)
// MACD
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
// Calculate Z-score
lookback = input.int(20, title="Z-score Lookback Period")
mean_close = ta.sma(close, lookback)
stddev_close = ta.stdev(close, lookback)
zscore = (close - mean_close) / stddev_close
// Buy and Sell Conditions
long_condition = (use_rsi and rsi < 30) or (use_stochastic and stoch_k < 20) or (use_macd and macd_line > signal_line)
short_condition = (use_rsi and rsi > 70) or (use_stochastic and stoch_k > 80) or (use_macd and macd_line < signal_line)
buy_signal = long_condition and zscore > threshold_buy
sell_signal = short_condition and zscore < threshold_sell
// Trading Actions
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)