Stratégie croisée précise d'inversion de tendance de la moyenne mobile

Auteur:ChaoZhang est là., Date: 22 janvier 2024
Les étiquettes:

img

Résumé

Cette stratégie est appelée Golden Cross Death Cross Strategy. Son idée principale est de capitaliser sur les puissants signaux générés par la croix dorée et la croix de la mort de deux moyennes mobiles de délais différents pour attraper les renversements de tendance sur le marché et tirer profit de l'achat faible / vente élevée.

La logique de la stratégie

Dans cette stratégie, nous calculons les lignes de moyenne mobile simple (SMA) de 50 périodes et 200 périodes. Traditionnellement, lorsque la SMA de 50 jours franchit le seuil inférieur à la SMA de 200 jours, elle est appelée une croix de mort qui indique une perspective baissière. Et lorsque la SMA de 50 jours franchit le seuil supérieur à la SMA de 200 jours, c'est une croix d'or qui indique la hausse.

La logique du trading consiste simplement à prendre des positions basées sur ces signaux - shorting à la croix de la mort et long à la croix d'or. Cela nous permet de profiter autour des points d'inflexion lorsque la tendance du marché s'inverse.

En outre, la stratégie fournit des plages de dates personnalisables pour les backtests. Nous pouvons donc examiner l'efficacité réelle de ces signaux croisés sur différentes périodes.

Les avantages

  1. Capture efficacement les points de renversement de tendance pour ouvrir des positions près des zones clés
  2. La combinaison de deux SMA de périodes différentes filtre les faux signaux
  3. La fonction de backtesting examine les performances réelles dans les régimes de marché
  4. Les graphiques propres affichent visuellement les signaux de croisement et les changements de position

Les risques

  1. Les croisements SMA retardent les renversements extrêmes et ne peuvent pas les prédire
  2. Les données des tests antérieurs peuvent différer des performances en direct en raison des coûts et des glissements
  3. Les sélections de paramètres comme les périodes SMA affectent grandement les résultats
  4. Besoin d'incorporer les fondamentaux et les techniques, pas seulement le commerce mécanique

Pour faire face aux risques, nous pouvons optimiser les paramètres, ajouter des filtres, gérer le risque, négocier la stratégie, etc. pour minimiser les risques.

Des possibilités d'amélioration

Les principaux moyens d'optimiser cette stratégie sont les suivants:

  1. Test des SMA de différentes combinaisons de périodes
  2. Ajout de filtres comme le volume, la volatilité pour éviter les coups de fouet
  3. Incorporation de données économiques ou d'actualités pour le filtre
  4. Mettre en œuvre des mécanismes d'arrêt des pertes tels que les arrêts de mouvement/temps
  5. Évaluation des performances sur différentes périodes de détention

En examinant les impacts des paramètres, nous pouvons découvrir de meilleurs systèmes croisés de moyennes mobiles.

Conclusion

Cette stratégie tire parti de l'indicateur technique classique des croix moyennes mobiles pour capturer les points d'inflexion clés sur les marchés. Avec une logique simple et des fonctionnalités de backtest pratiques, elle peut aider à suivre les tendances dans le cadre d'un système plus large.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[S_R__9] - Death and Golden Cross", overlay=true)

// Specific Time Date Range For Backtest
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31, group='DATE CONFIG')
startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12, group='DATE CONFIG')
startYear = input.int(title='Start Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

endDate = input.int(title='End Date', defval=31, minval=1, maxval=31, group='DATE CONFIG')
endMonth = input.int(title='End Month', defval=12, minval=1, maxval=12, group='DATE CONFIG')
endYear = input.int(title='End Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

SPECIFIC_DATE = input.bool(title='USE SPECIFIC DATE ?', defval=false, group='DATE CONFIG')

inDateRange = SPECIFIC_DATE ? time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0) : true

// Calculate 50 SMA and 200 SMA
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)

// Detect a Death Cross (50 SMA crossing below 200 SMA)
deathCross = ta.crossunder(sma50, sma200)
// Detect a Golden Cross (50 SMA crossing above 200 SMA)
goldenCross = ta.crossover(sma50, sma200)

// Strategy Execution
if (inDateRange)
    if (deathCross)
        strategy.entry("Death Cross long", strategy.short)

    if (goldenCross)
        strategy.entry("Golden Cross short", strategy.long)

// Plot SMAs
plot(sma50, color=color.red, title="50 SMA")
plot(sma200, color=color.blue, title="200 SMA")

// Plotting Death Cross signal
plotshape(series=deathCross and inDateRange, title="Death Cross Signal", location=location.belowbar, color=color.red, style=shape.labeldown, text="DEATH CROSS")

// Plotting Golden Cross signal
plotshape(series=goldenCross and inDateRange, title="Golden Cross Signal", location=location.abovebar, color=color.green, style=shape.labelup, text="GOLDEN CROSS")


Plus de