Stratégie de tendance baissière basée sur les retracements EMA et Fibonacci


Date de création: 2023-09-21 21:36:16 Dernière modification: 2023-09-21 21:36:16
Copier: 1 Nombre de clics: 827
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie utilise l’indicateur EMA pour déterminer la direction de la tendance et, en combinaison avec l’adaptation au retrait de Fibonacci, pour déterminer automatiquement le point d’inversion, réaliser un achat et une vente bas, capturer la tendance à la baisse. La stratégie fonctionne fréquemment et convient aux transactions à court terme.

Principe de stratégie

  1. L’EMA du 9e jour et l’EMA du 21e jour sont utilisés pour déterminer la direction de la tendance. La traversée de l’EMA du 21e jour par l’EMA du 55e jour est considérée comme un signal de départ de la tendance à la baisse.

  2. L’indicateur de rétractation Fibonacci adaptatif est réglé sur 100 cycles et détermine automatiquement le taux de rétractation critique en fonction de la gamme des fluctuations récentes des prix.

  3. Lorsque le prix dépasse la retraite de Fibonacci de 0,236, il est considéré comme un signal de revers et la position de placement est maintenue.

  4. Faire une entrée en bourse lorsque l’EMA du 9e jour est inférieure à l’EMA du 21e jour et que le prix est inférieur au sommet de Fibonacci adapté.

  5. Les conditions de sortie pour les gains multiples sont de dépasser l’EMA de 200 jours. Les conditions de sortie pour les pertes aériennes sont de dépasser le retrait de Fibonacci de 0,236.

Avantages stratégiques

  • Les signaux de commande sont simples et clairs

  • Adaptation au retrait de Fibonacci sans paramètres définis manuellement

  • Opération de stratégie fréquente, capture des changements de ligne courte, mise en œuvre de stratégies à haute fréquence

  • Utilisation des points de retrait clés pour déterminer le renversement et arrêter les pertes en temps opportun

  • Paramètres configurables, stratégies d’optimisation adaptées à différents cycles

Risque stratégique

  • Le retard de l’EMA doit être confirmé par une combinaison d’autres indicateurs

  • L’adaptation à Fibonacci peut être sur-optimisée et le point de rétractation instable

  • Les transactions à haute fréquence augmentent les coûts de transaction et les coûts des points de glissement

  • Les tendances sismiques ne peuvent pas être filtrées efficacement, il y a trop de faux signaux

  • La gestion des retraits et le contrôle des pertes et des pertes doivent être améliorés

Orientation de l’optimisation de la stratégie

  • Augmentation de l’indicateur de quantité d’énergie pour éviter les signaux erronés causés par des écarts de prix

  • Optimiser les paramètres cycliques des EMA pour les rendre plus adaptés à l’environnement actuel du marché

  • Configurer le stop-loss dynamique pour mieux contrôler le risque

  • L’indicateur de tendance forte et faible permettent d’éviter les échanges répétés en période de choc

  • Prendre en compte l’impact sur les coûts réels de la transaction et définir un seuil d’amortissement minimal

Résumer

Cette stratégie utilise l’EMA pour déterminer la direction de la tendance et l’adaptation de la dynamique de rétractation de Fibonacci pour déterminer le point de basculement. Elle s’adapte automatiquement aux différents changements du marché. Cependant, la stratégie repose davantage sur les indications de l’indicateur et manque de segmentation de la tendance et de la logique de jugement des vagues.

Code source de la stratégie
/*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)