Cette stratégie est une stratégie de trading quantitative basée sur des signaux croisés de multiples moyennes mobiles et indicateurs de choc aléatoires. La stratégie utilise des moyennes mobiles à court, moyen et long terme, combinées avec les caractéristiques de survente et de survente des indicateurs de choc aléatoires, pour capturer les revirements de tendance du marché et les opportunités de négociation via la confirmation de plusieurs signaux.
La stratégie utilise cinq moyennes mobiles à 3, 5, 6, 10 et 80 jours, ainsi qu’un oscillateur stochastique aléatoire. Le déclenchement du signal de négociation est basé sur les conditions suivantes:
La stratégie utilise une combinaison d’indicateurs de multiples moyennes mobiles et de chocs aléatoires pour établir un système de négociation relativement parfait. L’avantage de la stratégie réside dans la fiabilité du signal et la stabilité du système, mais il faut également veiller à la maîtrise des coûts de négociation et à l’adaptation à l’environnement du marché.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Moving Average and Stochastic Crossover Strategy", overlay=true)
// Calculate the moving averages
ma3 = ta.sma(close, 3)
ma5 = ta.sma(close, 5)
ma6 = ta.sma(close, 6)
ma10 = ta.sma(close, 10)
ma80 = ta.sma(close, 80)
// Stochastic Oscillator with settings %K(15), %D(9), and slowing 9
k = ta.stoch(close, high, low, 15)
d = ta.sma(k, 9)
slow_d = ta.sma(d, 9)
// Buy signal confirmation: MA10 crosses above MA5, MA6, and K line crosses above D line
buySignalConfirmation = ta.crossover(ma10, ma5) and ta.crossover(ma10, ma6) and ta.crossover(k, d)
// Sell signal confirmation: MA5 crosses above MA10, MA6, and D line crosses above K line
sellSignalConfirmation = ta.crossunder(ma5, ma10) and ta.crossunder(ma5, ma6) and ta.crossunder(d, k)
// Strategy logic
if (buySignalConfirmation)
strategy.entry("Buy", strategy.long)
if (sellSignalConfirmation)
strategy.entry("Sell", strategy.short)
// Plot the moving averages and Stochastic Oscillator for visualization
plot(ma3, color=color.orange, title="MA3", linewidth=2)
plot(ma5, color=color.blue, title="MA5", linewidth=2)
plot(ma6, color=color.purple, title="MA6", linewidth=2)
plot(ma10, color=color.green, title="MA10", linewidth=2)
plot(ma80, color=color.red, title="MA80", linewidth=2)
plot(k, color=color.blue, title="%K", linewidth=2)
plot(d, color=color.red, title="%D", linewidth=2)
plot(slow_d, color=color.purple, title="Slow %D", linewidth=2)