Stratégie de moyenne mobile triple exponentielle longue seulement

Auteur:ChaoZhang est là., Date: 2023-11-15 10:54:39 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie de la triple moyenne mobile exponentielle longue est une stratégie de suivi de tendance à long terme basée sur l'indicateur de la triple moyenne mobile exponentielle (TEMA). Elle utilise TEMA pour filtrer le bruit du marché à court terme et identifier les directions de tendance à moyen et long terme.

La logique de la stratégie

La stratégie identifie les tendances à moyen et à long terme à l'aide de l'indicateur TEMA. TEMA est un indicateur de tendance lissé dérivé d'un triple lissage exponentiel de l'EMA standard.

Plus précisément, la stratégie calcule d'abord l'EMA (ema1) de la période fastEmaPeriod, puis calcule une autre EMA (ema2) d'EMA1 en utilisant la même période, et calcule enfin ema3 basé sur ema2.

Grâce à un lissage exponentiel multiple, TEMA peut identifier efficacement les tendances à moyen et long terme malgré les zigzags et les renversements, filtrant le bruit à court terme.

Analyse des avantages

  • TEMA identifie efficacement les tendances à moyen et à long terme et filtre le bruit à court terme, évitant ainsi les problèmes.

  • Seules les positions longues évitent les risques de court-circuits à la baisse illimités.

  • Pourcentage des positions classées en fonction de la taille du compte pour le contrôle des risques.

  • Le backtesting des fenêtres de temps optimise les paramètres sur des périodes historiques spécifiques.

Analyse des risques

  • Les événements sévères de cygne noir peuvent provoquer des retours brusques pendant de longues périodes de conservation, entraînant de grandes pertes.

  • TEMA peut ne pas indiquer les changements de tendance pour un stop loss rapide.

  • La taille en pourcentage ne limite pas la taille des pertes par transaction, ce qui nécessite des arrêts.

  • Les risques de suradaptation des tests de retour, les paramètres optimisés peuvent ne pas convenir aux marchés futurs.

Directions d'amélioration

  • Ajouter des mesures de volatilité pour renforcer les paramètres.

  • Mettre en œuvre un stop loss pour contrôler la taille des pertes d'une seule transaction.

  • Optimiser la taille des positions pour réduire leur taille pendant les retraits.

  • Ajouter des indicateurs de tendance transversaux pour améliorer la précision de la tendance.

  • Testez différents paramètres de la période de conservation pour l'optimisation.

Conclusion

En résumé, la Triple EMA Long Only Strategy identifie les directions de tendance via l'indicateur TEMA, détient des positions à long terme pour éviter le bruit à court terme, ne reste que longtemps pour éviter une baisse illimitée et capte efficacement les tendances à moyen et long terme.


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

//@version=2
strategy("TEMA_System_long_only", overlay=true)

//Collect inputs parameters

fastEmaPeriod = input(7, minval=1, title="Fast TEMA Period")

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 4, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2000)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

fastEma = ema(close, fastEmaPeriod)

//convert EMA into TEMA

ema1 = ema(close, fastEmaPeriod)
ema2 = ema(ema1, fastEmaPeriod)
ema3 = ema(ema2, fastEmaPeriod)

fastTEMA = 3 * (ema1 - ema2) + ema3


buy  = close > fastTEMA
sell = close < fastTEMA

plot(fastTEMA, title = 'TEMA', linewidth=3, color=white)

if window()
    strategy.entry("long",strategy.long, when = buy)
    strategy.close("long", when = sell )

Plus de