Stratégie de tendance à la baisse à court terme basée sur l' EMA et le retracement adaptatif de Fibonacci

Auteur:ChaoZhang est là., Date: 21 septembre 2023 à 21h36
Les étiquettes:

Résumé

Cette stratégie utilise l'EMA pour déterminer la direction de la tendance et le retracement adaptatif de Fibonacci pour identifier automatiquement les points d'inversion, dans le but de vendre haut et d'acheter bas en capturant les tendances.

La logique de la stratégie

  1. Utilisez l'EMA à 9 jours et l'EMA à 21 jours pour déterminer la direction de la tendance.

  2. Mettre en œuvre le retracement adaptatif de Fibonacci avec 100 périodes pour déterminer automatiquement les niveaux de retracement clés en fonction des fluctuations de prix récentes.

  3. La rupture de prix de 0,236 Fibonacci indique un renversement et ferme la position existante.

  4. Lorsque l'EMA de 9 jours dépasse l'EMA de 21 jours, et que le prix est inférieur au sommet adaptatif de Fibonacci, allez court.

  5. L'objectif de profit long est un croisement au-dessus de l'EMA de 200 jours.

Les avantages

  • L'EMA donne des signaux de tendance clairs, faciles à mettre en œuvre

  • Fibonacci adaptatif évite le réglage manuel des paramètres

  • Les transactions fréquentes attirent les mouvements à court terme pour les stratégies à haute fréquence

  • Niveaux de retracement clés pour un stop loss rapide

  • Paramètres configurables pour l'optimisation à travers les cycles

Les risques

  • Le retard de l'EMA nécessite une confirmation par d'autres indicateurs

  • Les risques de suradaptation de Fibonacci avec des niveaux instables

  • Le trading à haute fréquence augmente les coûts liés aux commissions et aux slippages

  • Un filtrage inefficace des tendances liées à la fourchette conduit à de faux signaux

  • Nécessité d'améliorer la gestion des prélèvements et le contrôle du risque-rendement

Amélioration

  • Ajouter des indicateurs de volume pour éviter de faux signaux de divergence prix-volume

  • Optimiser les périodes d'EMA pour mieux s'adapter aux conditions actuelles du marché

  • Mettre en œuvre un stop loss dynamique pour un meilleur contrôle des risques

  • Incorporer l'indice de force de la tendance pour éviter les sauts de fouet

  • Considérer l'impact des coûts de négociation et fixer un objectif de profit minimum

Conclusion

Cette stratégie identifie la direction de la tendance avec l'EMA et détermine les niveaux d'inversion dynamiquement en utilisant le rétractation adaptative de Fibonacci, qui s'adapte automatiquement aux différentes conditions du marché. Mais elle repose davantage sur des indices sans segmentation de tendance et sur la logique Elliott Wave, laissant place à l'optimisation.


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © CheatCode1

//@version=5
strategy("CC-Trend strategy 2", overlay=true, initial_capital = 10000, commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type =  strategy.percent_of_equity, default_qty_value = 100 )
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema55 = ta.ema(close, 55)
ema200 = ta.ema(close, 200)


plot(ema200, '22', color.blue, 2)

FibL = input.int(100, 'Fibonacci Length', 1, 500, group = 'Automatic Fibonacci Retracement')
len1 = input.int(1, 'Show Last', 0, 1000, group = 'Automatic Fibonacci Retracement')
len2 = input.int(5, 'Offset Length', 0, 1000, group = 'Automatic Fibonacci Retracement')

highF = ta.highest(ema55 >= ema9 ? ema55:ema9, FibL)
lowF = ta.lowest(ema55 >= ema9 ? ema9:ema55, FibL)
AvgFib = highF - lowF

//Fibonacci Executions
LL2 = highF + .618 * AvgFib
LL1 = highF + .272 * AvgFib
L1 = highF
L236 = highF - 0.236 * AvgFib
L382 = highF - 0.382 * AvgFib
Mid =  highF - 0.50 * AvgFib
S382 = lowF + 0.382 * AvgFib
S236 = lowF + 0.236 * AvgFib
S1 = lowF
SS1 = lowF - .272 * AvgFib
SS2 = lowF - .618 * AvgFib
//Fibonacci Plot's


high2FP = plot(LL2, 'Highe2', color.red,offset = len2, show_last = len1, trackprice = true)
high1FP = plot(LL1, 'Highe1', color.red,offset = len2, show_last = len1, trackprice = true)
highFP = plot(highF, 'High', color.red,offset = len2, show_last = len1, trackprice = true)
L236P = plot(L236, "0.764", #ED381C, offset = len2, show_last = len1, trackprice = true )
L382P = plot(L382, "0.618", color.white,offset = len2, show_last = len1, trackprice = true )
MidP = plot(Mid, "0.5", color.orange,offset = len2, show_last = len1, trackprice = true )
S382P = plot(S382, "0.382", color.yellow ,offset = len2, show_last = len1, trackprice = true)
S236P = plot(S236, "0.236", color.lime ,offset = len2, show_last = len1, trackprice = true)
lowFP = plot(lowF, 'Low', color.green,offset = len2, show_last = len1, trackprice = true)
low1FP = plot(SS1, 'Lowe1', color.green,offset = len2, show_last = len1, trackprice = true)
low2FP = plot(SS2, 'Lowe2', color.green,offset = len2, show_last = len1, trackprice = true)

plot(ema9, '22', color.yellow, 2)

plot(ema55, '55', color.aqua, 2)

plot(ema200, '200', color.maroon, 2)



shortCondition = close[1] < highF and ema21 < ema55
if (shortCondition)
    strategy.entry("Short", strategy.short)

shorttp = ta.crossover(close, ema200) and strategy.openprofit >= 0
if (shorttp)
    strategy.close('Short', 'Short TP', qty_percent = 100)

shortclose2 = close[1] > L236 and not (shortCondition) 
if(shortclose2)
    strategy.close('Short', 'Short RM', qty_percent = 100)

Plus de