Stratégie d'inversion de la moyenne mobile croisée double

Auteur:ChaoZhang est là., Date: 2023-12-01 16:56:43 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie d'inversion du croisement de la moyenne mobile double est une stratégie de trading quantitative typique qui suit les tendances. La stratégie utilise les signaux de croisement de la ligne de 9 jours et de la ligne de 14 jours dans l'indicateur de moyenne mobile double pour construire des signaux d'achat et de vente. Elle achète lorsque la ligne de 9 jours traverse la ligne de 14 jours en bas pour former une croix dorée, et vend lorsque la ligne de 9 jours traverse la ligne de 14 jours en haut pour former une croix de mort. Pour filtrer les faux signaux, la stratégie introduit également l'indicateur de ligne de 50 jours pour déterminer si le prix traverse.

Principe de stratégie

Cette stratégie se base principalement sur les signaux de croix dorée et de croix de mort de l'indicateur de moyenne mobile double. Dans les moyennes mobiles doubles, la ligne de 9 jours représente les tendances à court terme, la ligne de 14 jours représente les tendances à moyen terme, et leur croisement est un indicateur technique efficace pour juger des virages dans les tendances du marché. Lorsque la ligne de tendance à court terme traverse la ligne de tendance à moyen terme par le bas pour former une croix dorée, elle indique que la ligne de tendance à court terme se renforce, ce qui est un signal d'achat; lorsqu'elle traverse par le haut pour former une ligne de tendance à mort, elle indique que la ligne de tendance à court terme s'affaiblit, ce qui est un signal de vente.

En outre, la stratégie introduit également la ligne de 50 jours pour filtrer les signaux trompeurs. Elle ne génère un achat que lorsque le prix est au-dessus de la ligne de 50 jours; et ne génère une vente que lorsque le prix est en dessous de la ligne de 50 jours. La ligne de 50 jours représente les tendances à moyen et long terme.

La logique de base est la suivante:

// Buy condition: 9-day line crosses above 14-day line and close price is above 50-day line 
buyCondition = ta.crossover(sma9, sma14) and close > sma50 

// Sell condition: 9-day line crosses below 14-day line and close price is below 50-day line
sellCondition = ta.crossunder(sma9, sma14) and close < sma50

Analyse des avantages

Les avantages de la double stratégie de moyenne mobile sont évidents:

  1. Simple à comprendre et à mettre en œuvre, adapté aux débutants.
  2. Suivez la tendance, évitez d'être pris au piège dans des marchés à portée limitée.
  3. Utiliser des indicateurs à moyen et à long terme pour filtrer les signaux trompeurs et éviter de se laisser berner par le bruit du marché à court terme.
  4. Peut suivre les tendances des marchés et réaliser des profits efficacement pendant de longues périodes.

Analyse des risques

La stratégie de la double moyenne mobile comporte également certains risques:

  1. Dans des conditions de marché extrêmes telles que les crashs du marché, il peut y avoir de gros retrait avant qu'une croix de la mort ne se forme.
  2. Dans les marchés de variation, les croix d'or et les croix de la mort alternent, ouvrant et arrêtant à plusieurs reprises des positions.

Pour faire face aux risques, des optimisations telles que celles ci-dessous peuvent être effectuées:

  1. Introduisez d'autres indicateurs pour réduire rapidement les pertes dans les conditions de marché.
  2. Ajoutez plus de filtres d'ouverture pour éviter les croisements alternatifs dans les marchés variés.

Directions d'optimisation

La double stratégie de moyenne mobile peut être optimisée sous plusieurs aspects:

  1. Optimisation des paramètres, ajustement des périodes moyennes mobiles, optimisation des paramètres des indicateurs.
  2. Filtrez davantage les signaux d'ouverture et intégrez plus d'indicateurs pour juger des conditions du marché et éviter les faux signaux.
  3. Mettre en place des mécanismes d'arrêt des pertes, employer des méthodes d'arrêt des pertes en mouvement, d'arrêt des pertes en pénétration et d'autres méthodes d'arrêt.
  4. Combiner avec d'autres stratégies de négociation telles que les stratégies de volume et de volatilité.
  5. Utiliser de manière appropriée l'effet de levier pour améliorer l'efficacité opérationnelle.

Résumé

La stratégie de la moyenne mobile double est généralement une stratégie efficace de génération de bénéfices. Elle peut profiter en suivant les tendances en continu. En même temps, elle comporte certains risques et doit être améliorée. En optimisant les paramètres, les méthodes d'arrêt et les combinaisons de stratégies, les effets de cette stratégie peuvent être encore améliorés.


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

//@version=5
strategy("smaCrossReverse", shorttitle="smaCrossReverse", overlay=true)

// Define the length for the SMAs
sma9Length = input(9, title="SMA 9 Length")
sma14Length = input(14, title="SMA 14 Length")
sma50Length = input(50, title="SMA 50 Length")  // Add input for SMA 50

// Calculate SMAs
sma9 = ta.sma(close, sma9Length)
sma14 = ta.sma(close, sma14Length)
sma50 = ta.sma(close, sma50Length)  // Calculate SMA 50

// Buy condition: SMA 9 crosses above SMA 14 and current price is above SMA 50
buyCondition = ta.crossover(sma9, sma14) and close > sma50

// Sell condition: SMA 9 crosses below SMA 14 and current price is below SMA 50
sellCondition = ta.crossunder(sma9, sma14) and close < sma50

// Track the time since position was opened
var float timeElapsed = na
if (buyCondition)
    timeElapsed := 0
else
    timeElapsed := na(timeElapsed[1]) ? timeElapsed[1] : timeElapsed[1] + 1

// Close the buy position after 5 minutes
if (timeElapsed >= 5)
    strategy.close("Buy")

// Track the time since position was opened
var float timeElapsedSell = na
if (sellCondition)
    timeElapsedSell := 0
else
    timeElapsedSell := na(timeElapsedSell[1]) ? timeElapsedSell[1] : timeElapsedSell[1] + 1

// Close the sell position after 5 minutes
if (timeElapsedSell >= 5)
    strategy.close("Sell")

// Plot the SMAs on the chart
plot(sma9, title="SMA 9", color=color.blue)
plot(sma14, title="SMA 14", color=color.red)
plot(sma50, title="SMA 50", color=color.green)  // Plot SMA 50 on the chart

// Strategy entry and exit conditions using if statements
if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.entry("Sell", strategy.short)


Plus de