Stratégie de croisement des moyennes mobiles

Auteur:ChaoZhang est là., Date: 2023-12-08 12:20:42 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie génère des signaux de trading en calculant deux moyennes mobiles de différentes périodes et en traçant leurs points de croisement.

La logique de la stratégie

La stratégie est basée sur l'avantage des moyennes mobiles - elles éliminent le hasard dans les séquences de prix et extraient la tendance principale.

Lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, elle indique que les prix entrent dans une tendance haussière.

Plus précisément, la stratégie calcule la moyenne mobile simple de 7 jours (SMA) et la moyenne mobile simple de 20 jours. Lorsque les deux moyennes se croisent, elle juge un renversement de tendance et déclenche un signal commercial. Pour différencier les types de croisement, nous définissons la ligne à court terme au-dessus de la ligne à long terme comme une tendance à la hausse des prix et inversement pour une tendance à la baisse. Lorsque la ligne à court terme traverse au-dessus de la ligne à long terme, c'est-à-dire le début d'une tendance à la hausse, une position longue est entrée. Lorsque la ligne à court terme traverse en dessous, c'est-à-dire le début d'une tendance à la baisse, une position courte est entrée.

Analyse des avantages

(1) La logique de la stratégie est simple et facile à comprendre et à mettre en œuvre.

(2) Les moyennes mobiles comme indicateurs de suivi des tendances peuvent filtrer efficacement un certain bruit dans les prix.

(3) Configurations de paramètres flexibles pour répondre aux différentes conditions du marché et aux exigences commerciales.

(4) L'utilisation de deux périodes de moyennes mobiles couramment utilisées facilite la détermination de signaux de négociation clairs.

(5) Visualisation puissante pour une tendance intuitive, identification des niveaux clés, etc.

(6) Les paramètres peuvent être optimisés par le backtesting pour améliorer le rendement de la stratégie.

Analyse des risques

(1) La stratégie est très sensible aux fluctuations du marché.

(2) Les croisements peuvent ne pas indiquer avec précision les niveaux d'inversion de tendance et pourraient déclencher de faux signaux.

(3) Les règles rigides ne peuvent pas s'adapter à des événements drastiques qui affectent les marchés, ce qui peut entraîner d'énormes pertes.

(4) Des paramètres incorrects peuvent également conduire à des signaux inexacts et à des transactions manquées.

Pour atténuer ces risques, les paramètres peuvent être ajustés en conséquence. D'autres indicateurs peuvent être ajoutés pour la confirmation. Les stratégies de stop loss peuvent contrôler les pertes. Les paramètres ou stratégies peuvent être ajustés selon les régimes du marché.

Directions de renforcement

(1) L'intégration d'autres indicateurs techniques pour former une stratégie combinée pourrait accroître la précision du signal.

(2) Ajout de stratégies de stop loss pour contrôler efficacement les pertes d'une seule transaction. Par exemple, sortie de position si les prix dépassent les moyennes mobiles d'un certain seuil.

(3) Tester et optimiser les périodes de moyennes mobiles. Essayer différentes combinaisons rapides et lentes pour trouver les meilleurs paramètres. D'autres moyennes mobiles comme EMA, WMA peuvent également être testées.

(4) Ajustement des paramètres en fonction des différents produits et des conditions du marché.

Conclusion

La stratégie de croisement des moyennes mobiles est une stratégie de suivi des tendances très typique et de base. En calculant deux moyennes mobiles de différentes périodes et en observant leurs croisements, elle juge les changements de tendance des prix. Les signaux de trading sont générés lorsque la moyenne mobile de la période la plus courte croise au-dessus ou en dessous de la plus longue. Cette logique simple est facile à mettre en œuvre et flexible à ajuster, ce qui en fait une stratégie quantitative d'introduction. Mais elle présente également des défauts tels que la sensibilité aux fluctuations du marché et les signaux potentiellement inexacts. En combinant avec d'autres indicateurs, en ajoutant des arrêts et en optimisant les paramètres, la stratégie peut être améliorée pour devenir très pratique pour le trading quantitatif.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ma stratégie", overlay=true)

// Multi-timeframe and price input
pricetype = input(close, title="Price Source For The Moving Averages")
useCurrentRes = input(true, title="Use Current Timeframe As Resolution?")
resCustom = input(title="Use Different Timeframe? Then Uncheck The Box Above",  defval="W")
res = useCurrentRes ? timeframe.period : resCustom
price = request.security(syminfo.tickerid, res, pricetype)

// MA period input
shortperiod = input(7, title="Short Period Moving Average")
longperiod = input(20, title="Long Period Moving Average")



short = ema(price, shortperiod) 
long = ema(price, longperiod) 
   
// MA trend direction color
shortcolor = short > short[1] ? lime : short < short[1] ? red : blue
longcolor = long > long[1] ? lime : long < long[1] ? red : blue

// MA output
MA1 = plot(short, title="Short Period Moving Average", style=linebr, linewidth=2, color=shortcolor)
MA2 = plot(long, title="Long Period Moving Average", style=linebr, linewidth=4, color=longcolor)
fill(MA1, MA2, color=silver, transp=50)

// MA trend bar color
TrendingUp() => short > long 
TrendingDown() => short < long 
barcolor(TrendingUp() ? green : TrendingDown() ? red : blue)

// MA cross alert
MAcrossing = cross(short, long) ? short : na
plot(MAcrossing, style = cross, linewidth = 4,color=black)

// MA cross background color alert
Uptrend() => TrendingUp() and TrendingDown()[1]
Downtrend() => TrendingDown() and TrendingUp()[1]
bgcolor(Uptrend() ? green : Downtrend() ? red : na,transp=50)

// Buy and sell alert
Buy = Uptrend() and close > close[1]
Sell = Downtrend() and close < close[1]
plotshape(Buy, color=black, style=shape.arrowup, text="Buy", location=location.bottom)
plotshape(Sell, color=black, style=shape.arrowdown, text="Sell", location=location.top)



if (Buy)
    strategy.entry("My Long Entry Id", strategy.long)


if (Sell)
    strategy.entry("My Short Entry Id", strategy.short)

Plus de