Stratégie de croisement de moyennes mobiles

MA SMA
Date de création: 2024-04-30 17:33:09 Dernière modification: 2024-04-30 17:33:09
Copier: 1 Nombre de clics: 644
1
Suivre
1617
Abonnés

Stratégie de croisement de moyennes mobiles

Aperçu

La stratégie utilise deux moyennes mobiles ((MA) pour générer un signal de transaction. Elle génère un signal d’achat lorsque le MA de plus courte période traverse le MA de plus longue période par le bas vers le haut; elle génère un signal de vente lorsque le MA de plus courte période traverse le MA de plus longue période par le haut vers le bas. La stratégie définit à la fois une période de négociation (de 8h à 20h UTC) et un point d’arrêt (de 150 points).

Principe de stratégie

  1. Calculer une moyenne mobile de deux périodes différentes (en supposant 5 périodes et 20 périodes par défaut).
  2. Détermine si la MA à courte période est en hausse/baisse par rapport à la MA à longue période, ce qui sert de signal d’achat/vente.
  3. La période de négociation est définie entre 08:00 et 20:00 UTC, et les transactions sont effectuées uniquement dans cette période.
  4. Détermine si les 4 dernières lignes de K se terminent au-dessus ou au-dessous de la MA pour confirmer la tendance.
  5. Si vous remplissez les conditions d’achat/vente, ouvrez une position et placez un stop de 150 points.

Avantages stratégiques

  1. L’utilisation de deux MA de différentes périodes permet de capturer efficacement les tendances et s’applique à un marché tendance.
  2. La définition d’une période de négociation permet d’éviter de négocier à des moments de faible liquidité et de réduire les risques.
  3. En déterminant si les 4 lignes K les plus récentes sont fermées au-dessus / en dessous de la MA, la tendance peut être confirmée et la fiabilité du signal peut être améliorée.
  4. Les points d’arrêt fixes permettent de verrouiller efficacement les bénéfices et de contrôler les risques.

Risque stratégique

  1. Dans les marchés en crise, cette stratégie peut souvent donner de mauvais signaux et entraîner des pertes.
  2. Les points d’arrêt fixes peuvent limiter l’espace de profit de la stratégie.
  3. La stratégie n’a pas de stop loss, ce qui pourrait entraîner un risque plus élevé en cas de reprise rapide de la tendance.

Orientation de l’optimisation de la stratégie

  1. L’introduction de plus d’indicateurs techniques tels que le RSI, le MACD, etc. peut être envisagée pour améliorer la fiabilité du signal.
  2. Il est possible d’optimiser les paramètres du point d’arrêt, par exemple en utilisant un arrêt d’arrêt dynamique ou un arrêt d’arrêt basé sur ATR.
  3. Les signaux de négociation peuvent être confirmés à deux reprises en combinant des informations sur la microstructure du marché, telles que le flux d’ordres.
  4. Les paramètres peuvent être réglés de manière différente pour les différentes conditions du marché (trend/choc) afin d’améliorer l’adaptabilité de la stratégie.

Résumer

La stratégie est basée sur le croisement de deux moyennes mobiles de différentes périodes pour générer des signaux de négociation et s’applique aux marchés en tendance. Le risque peut être contrôlé dans une certaine mesure en définissant des périodes de négociation et des points d’arrêt fixes.

Code source de la stratégie
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Moving Average Crossover Strategy", overlay=true)

// User-defined moving average periods
ma1Periods = input(5, title="First Moving Average Periods")
ma2Periods = input(20, title="Second Moving Average Periods")

// Calculate moving averages
ma1 = sma(close, ma1Periods)
ma2 = sma(close, ma2Periods)

// Plot moving averages
plot(ma1, color=color.red, linewidth=2, title="First Moving Average")
plot(ma2, color=color.blue, linewidth=2, title="Second Moving Average")

// Detect crossovers and crossunders
bullishCross = crossover(ma1, ma2)
bearishCross = crossunder(ma1, ma2)

// Define trading hours (8 AM to 2 PM UTC)
startHour = 8
endHour = 20
utcHour = hour(time, "UTC")
isMarketOpen = true

// Define profit target
profitTarget = 150

// Check if the price has closed above/below the MA for the past 4 bars
aboveMa = close[4] > ma1[4] and close[3] > ma1[3] and close[2] > ma1[2] and close[1] > ma1[1]
belowMa = close[4] < ma1[4] and close[3] < ma1[3] and close[2] < ma1[2] and close[1] < ma1[1]

// Create buy and sell signals
if (bullishCross and isMarketOpen and aboveMa)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", profit=profitTarget)
if (bearishCross and isMarketOpen and belowMa)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", profit=profitTarget)

// Plot shapes on crossovers
plotshape(series=bullishCross and isMarketOpen and aboveMa, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=bearishCross and isMarketOpen and belowMa, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")