Stratégie de suivi du Crypto Bull Run

Auteur:ChaoZhang est là., Date: 2023-12-08 15:45:47 La date est fixée à
Les étiquettes:

img

Résumé

Cette stratégie suit la tendance en calculant deux moyennes mobiles dynamiques, DEMA et TEMA, et en établissant des positions longues ou courtes lorsqu'elles génèrent des croix dorées ou des croix mortelles.

La logique de la stratégie

La logique de base de cette stratégie consiste à déterminer la direction de la tendance en fonction du croisement entre deux moyennes mobiles dynamiques, DEMA et TEMA.

DEMA est l'abréviation de Double Exponential Moving Average. Il combine la fonction d'assouplissement pondéré de l'EMA et optimise le problème de retard de l'EMA. Sa formule est:

Le nombre total d'émissions de CO2 est calculé en fonction de la fréquence d'émission de CO2.

Ici, N est la longueur d'onde.

TEMA est l'abréviation de Triple Exponential Moving Average.

Le montant de l'émission est calculé à partir de la valeur de l'émission. Le nombre d'heures d'essai est calculé en fonction de la fréquence de l'essai. Le nombre d'heures d'essai est calculé en fonction de la fréquence de l'essai. TEMA est égal à 3Le taux de change de l'épargneLes échanges de titres

Lorsque TEMA traverse le DEMA, il est considéré comme un signe de croix dorée pour aller long.

En outre, la stratégie définit les delayBars pour assurer la validité des signaux et éviter les faux signaux.

Enfin, la stratégie adopte une logique de double vérification, qui vérifie si la position opposée doit être fermée avant d'ouvrir de nouvelles transactions, évitant ainsi le risque de positions à double sens.

Analyse des avantages

  1. Une appréciation plus précise de la tendance à l'aide de deux MA dynamiques

Par rapport aux EMA et SMA traditionnels, les DEMA et TEMA sont des MAs dynamiques plus sensibles qui peuvent rapidement capturer les changements de tendance, améliorant ainsi la précision des jugements sur les tendances du marché.

  1. Filtrage des faux signaux en définissant une période de retard

Le paramètre delayBars oblige la stratégie à attendre un certain temps après l'émergence du signal avant d'entrer dans les positions.

  1. Réduction des risques par double contrôle

En vérifiant si la position opposée doit être fermée avant d'ouvrir de nouvelles transactions, la stratégie évite de détenir des positions à double sens et minimise les pertes liées aux opérations de couverture.

  1. Une grande universalité

Cette stratégie repose principalement sur le croisement entre les indicateurs de marché, un indicateur technique commun, pour déterminer les tendances et les signaux.

Analyse des risques

  1. Ils sont enclins à être pris au piège dans les marchés de la scie

Dans un marché avec d'énormes fluctuations latérales, les MAs peuvent fréquemment se croiser et générer de faux signaux qui causent des pertes.

Les solutions consistent à mettre en pause la stratégie lors de l'identification de tendances latérales ou à ajuster correctement les paramètres de l'AM et les périodes de retard.

  1. Échec à identifier les pièges ou les événements du cygne noir

La stratégie suit purement les tendances des prix et ne peut pas prédire les pièges à court terme ou les renversements de tendance causés par des événements majeurs.

Les solutions consistent à intégrer d'autres indicateurs pour évaluer les risques ou à réduire correctement la taille des positions.

Directions d'optimisation

  1. Tester plus de types d'AM

Outre le DEMA et le TEMA, des combinaisons de SMA, EMA et d'autres MAs améliorées sont testées pour trouver les plus appropriées pour ce marché.

  1. Optimiser les paramètres de l'AM et les périodes de retard

Exécuter des optimisations pour trouver les longueurs de MA optimales et les périodes de retard du signal pour des signaux de trading plus précis.

  1. Adapter les paramètres pour les différents produits

Compte tenu des différentes caractéristiques des produits, trouver des combinaisons appropriées de longueurs d'AM, de périodes de retard pour leurs fluctuations de prix et de tendance.

  1. Incorporer d'autres indicateurs pour l'évaluation des risques

Par exemple, utiliser les bandes de Bollinger pour juger de la volatilité et du niveau des prix afin d'éviter les marchés à piqûres.

Conclusion

Il s'agit d'une stratégie de suivi de tendance de base basée sur des croisements dynamiques de MA entre DEMA et TEMA. Ses avantages sont une grande stabilité, fiabilité et universalité. Mais il a également une certaine capacité de détection de renversement en retard et faible. Cet article fournit une analyse complète de ses avantages, inconvénients et directions d'optimisation, servant de références précieuses pour l'utilisation de cette stratégie. Dans l'ensemble, il offre un exemple typique de conception de stratégie de trading quantitative digne d'une étude plus approfondie.


/*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=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jacobdickson255

strategy("Crypto Bull Run Tracker", overlay=true, pyramiding=0)

//Dema Scripting
Demalength = input.int(230, minval=1)
src = close
e1 = ta.ema(src, Demalength)
e2 = ta.ema(e1, Demalength)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)

//Tema Scripting
Temalength = input.int(210, minval=1)
ema1 = ta.ema(close, Temalength)
ema2 = ta.ema(ema1, Temalength)
ema3 = ta.ema(ema2, Temalength)
tema = 3 * (ema1 - ema2) + ema3
plot(tema, "TEMA", color=#2962FF)

delayBars = input(5, title="Bar Delay")
var int lastTradeBar = na

longCondition = ta.crossover(tema, dema) 
longExit = ta.crossunder(tema, dema)
shortCondition = ta.crossunder(tema, dema)
shortExit = ta.crossover(tema, dema)

// Exit conditions should be checked before entry conditions
// Close short position if a long condition is present
if ((shortExit and strategy.position_size < 0)) // If conditions for exiting the short are met, and there is a balance in the short direction, exit the short
    strategy.close("Short")
   

// Close long position if a short condition is present
if ((longExit and strategy.position_size > 0))
    strategy.close("Long")
   
// Now check for entry conditions
if (longCondition)
    strategy.entry("Long", strategy.long)
    lastTradeBar := bar_index

if (shortCondition)
    strategy.entry("Short", strategy.short)
    lastTradeBar := bar_index


Plus de