Stratégie de tendance haussière multi-EMA

Auteur:ChaoZhang est là., Date: 2024-01-22 12:04:05 Je vous en prie
Les étiquettes:

img

Résumé

La stratégie de tendance haussière multi-EMA est une stratégie de suivi de tendance basée sur plusieurs moyennes mobiles exponentielles (EMA) de différentes périodes pour la détermination de la tendance.

La logique de la stratégie

La stratégie utilise 6 EMA de périodes de 10, 20, 50, 100, 150 et 200 jours. Ces EMA sont utilisées pour déterminer l'étape cyclique actuelle du marché. Lorsque des EMA à plus courte période (par exemple 10 jours) se croisent sur des EMA à plus longue période (par exemple 20 ou 50 jours), cela indique que le marché est entré dans la phase de marge d'une tendance haussière.

Plus précisément, la stratégie sera longue lorsque les conditions suivantes seront remplies:

  1. L'EMA à 10 jours est supérieure à l'EMA à 20 jours
  2. L'EMA à 20 jours est supérieure à l'EMA à 50 jours
  3. L'EMA à 100 jours est supérieure à l'EMA à 150 jours
  4. L'EMA à 150 jours est supérieure à l'EMA à 200 jours
  5. Le prix de clôture dépasse l'EMA à 10 jours

Après avoir ouvert une position longue, un stop-loss de 8% est utilisé pour verrouiller les bénéfices. Cela signifie que la position sera maintenue ouverte tant que le prix ne tombera pas de plus de 8% par rapport au prix d'entrée. Une fois que le drawdown dépasse 8%, la position sera fermée pour arrêter la perte.

En résumé, l'idée clé de cette stratégie est d'entrer dans la tendance haussière lorsqu'elle est confirmée par l'alignement multiple de l'EMA, et d'utiliser le stop loss pour verrouiller les bénéfices.

Analyse des avantages

La stratégie de tendance haussière Multi-EMA présente les points forts suivants:

  1. Il peut filtrer efficacement les fausses ruptures et s'assurer de capturer les cycles de marge, réduisant les transactions inutiles.
  2. Les multiples filtres EMA réduisent les risques d'arrêt de perte, ce qui permet une détention plus sûre des positions.
  3. L'arrêt de perte de 8% n'est ni trop serré ni trop lâche, équilibrant la prise de profit et l'arrêt de perte.
  4. La stratégie permet un réglage flexible des paramètres pour une optimisation sur différents produits.

Analyse des risques

Il y a aussi quelques risques à prendre en compte pour cette stratégie:

  1. La séquence EMA ne peut pas garantir la direction de la tendance pour 100% des cas, certains fléchettes peuvent encore se produire.
  2. L'arrêt de 8% peut entraîner des profits lors d'une forte tendance.
  3. Les systèmes de l'EMA présentent un retard inhérent, la confirmation des points tournants pouvant être légèrement retardée.

Pour faire face à ces risques, nous pouvons optimiser en ajustant les périodes EMA ou en incorporant des indicateurs auxiliaires pour un meilleur jugement.

Directions d'optimisation

Compte tenu des caractéristiques de cette stratégie, les optimisations futures peuvent se concentrer sur les aspects suivants:

  1. Testez différentes combinaisons d'EMA et ensembles de périodes pour trouver les paramètres optimaux.
  2. Ajouter des indicateurs d'indice de volatilité pour mesurer la force de la tendance afin d'éviter les entrées inutiles.
  3. Incluez plus d'indicateurs de filtrage comme MACD, KDJ pour confirmer l'alignement haussier.
  4. Utiliser des algorithmes d'apprentissage automatique pour la mise en œuvre dynamique du stop loss.

Conclusion

Dans l'ensemble, la stratégie de tendance taureau multi-EMA est un système de suivi de tendance robuste et fiable, équilibrant la détermination de la tendance et le contrôle des risques.


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

//@version=5
strategy('SirSeff\'s EMA Rainbow', overlay=true)
// Testing Start dates
testStartYear = input(2000, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2100, 'Backtest Stop Year')
testStopMonth = input(12, 'Backtest Stop Month')
testStopDay = input(30, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
// Component Code Stop

//TSP
trailStop = input.float(title='Long Trailing Stop (%)', minval=0.0, step=0.1, defval=8) * 0.01

longStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - trailStop)
    math.max(stopValue, longStopPrice[1])
else
    0

//PLOTS
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(ta.ema(close, 20))
plot(ta.ema(close, 50))
plot(ta.ema(close, 100))
plot(ta.ema(close, 150))
plot(ta.ema(close, 200))

//OPEN
longCondition =  ta.ema(close, 10) > ta.ema(close, 20) and ta.ema(close, 20) > ta.ema(close, 50) and ta.ema(close, 100) > ta.ema(close, 150) and ta.ema(close, 150) > ta.ema(close, 200)
if longCondition and ta.crossover(close,ta.ema(close,10)) and testPeriod()
    strategy.entry("BUY1", strategy.long)
    
if longCondition and ta.crossover(ta.ema(close,10),ta.ema(close,20)) and testPeriod()
    strategy.entry("BUY2'", strategy.long)

//CLOSE @ TSL
if strategy.position_size > 0 and testPeriod()
    strategy.exit(id='TSP', stop=longStopPrice)
    


Plus de