Stratégie de renversement de 3 jours pour le trading de tortues

Auteur:ChaoZhang est là., Date: 2023-10-13 15h37 et 18h
Les étiquettes:

Résumé

La stratégie de renversement de 3 jours de la tortue est une modification de la stratégie de renversement de moyenne de 3 jours du livre Trading ETF à haute probabilité de Larry Connors et Cesar Alvarez.

  • Si la clôture d'hier est inférieure à la moyenne mobile simple de 5 jours, achetez aujourd'hui.
  • Si la clôture d'aujourd'hui est supérieure à la moyenne mobile simple de 5 jours, vendez aujourd'hui.

Par la pratique et le backtesting, j'ai constaté que la stratégie fonctionne toujours mieux lorsque l'on utilise une EMA au lieu d'une SMA pour la ligne de tendance.

La logique de la stratégie

La stratégie fonctionne comme suit:

  • Passer à long lorsque les conditions d'achat suivantes sont vraies:
    • La clôture est supérieure à l'EMA de 200 jours
    • Fermeture inférieure à l'EMA à 5 jours
    • Aujourd'hui, le plus haut est inférieur au plus haut d'hier.
    • Le plus bas d'aujourd'hui est inférieur au plus bas d'hier.
    • Le sommet d'hier est inférieur au sommet de la journée précédente.
    • Le plus bas d'hier est inférieur au plus bas du jour précédent.
    • Le niveau le plus élevé du jour précédent est inférieur à celui du jour précédent.
    • Le plus bas de la journée précédente est inférieur à celui d'il y a 2 jours
  • Sortie lorsque la clôture dépasse la EMA de sortie

L'EMA de sortie est définie par défaut sur l'EMA de 5 jours, sa durée est réglable.

L'idée principale de la stratégie est de profiter de la réversion moyenne à court terme. Lorsque les prix baissent continuellement, ils sont susceptibles de rebondir à court terme. La stratégie identifie les opportunités de réversion moyenne en vérifiant si les prix se sont réduits pendant 3 jours consécutifs en dessous d'une EMA à court terme. Une fois que l'inversion se produit, elle sort rapidement lorsque le prix dépasse la EMA de sortie.

Analyse des avantages

Comparée aux stratégies de croisement des moyennes mobiles traditionnelles, cette stratégie présente les avantages suivants:

  1. L'utilisation d'un rétrécissement de 3 jours consécutifs pour identifier les inversions améliore la qualité du signal.

  2. Le filtrage avec des EMA longs et courts évite de négocier sur des marchés en tendance.

  3. L'utilisation de l'EMA au lieu de la SMA pour la ligne de tendance est plus sensible pour détecter les renversements.

  4. La longueur réglable de l'EMA de sortie permet de personnaliser la stratégie de stop loss en fonction des conditions du marché.

  5. Une faible fréquence de négociation avec des périodes de détention de 1-2 jours évite les risques associés aux paris directionnels longs.

Analyse des risques

La stratégie comporte également les risques suivants:

  1. Risque d'échec de l'inversion: le prix peut ne pas rebondir et continuer à baisser après le signal d'inversion.

  2. Risque fréquent de stop loss. Le prix pourrait frapper à plusieurs reprises le stop loss sur les marchés instables.

  3. Le risque d'optimisation des paramètres. L'EMA de sortie et d'autres paramètres nécessitent des tests et des ajustements continus en fonction de l'évolution des marchés. La performance pourrait se dégrader sans ajustement.

  4. Le risque de suradaptation. L'optimisation doit éviter le suradaptation. Les paramètres doivent être robustes.

Les risques peuvent être réduits par:

  1. Suivre strictement les règles de stop loss pour contrôler les pertes d'une seule transaction.

  2. Un réglage robuste des paramètres lors de l'optimisation pour équilibrer le risque et le rendement.

  3. Adaptation de la taille des positions pour réduire le risque par transaction.

Des possibilités d'optimisation

La stratégie peut être améliorée dans les domaines suivants:

  1. Testez différentes longueurs EMA pour l'entrée et la sortie afin de trouver les paramètres optimaux.

  2. Ajouter d'autres filtres comme le volume pour s'assurer que les signaux d'inversion sont plus fiables.

  3. Améliorez le stop loss avec des méthodes telles que l'ATR ou les trailing stops pour plus de flexibilité.

  4. Incorporer un filtre de tendance pour éviter de prendre des signaux d'inversion dans les tendances existantes.

  5. Combiner avec d'autres stratégies d'optimisation et de diversification du portefeuille.

  6. Utiliser l'apprentissage automatique pour le réglage adaptatif des paramètres.

Résumé

La stratégie d'inversion à 3 jours de la tortue identifie les opportunités d'inversion à court terme en détectant des modèles de rétrécissement à 3 jours en dessous d'une EMA courte. Par rapport aux stratégies de moyenne mobile traditionnelles, elle a des signaux d'entrée plus fiables et une EMA de sortie réglable pour optimiser les stop-loss.


/*backtest
start: 2023-10-05 00:00:00
end: 2023-10-12 00:00:00
period: 10m
basePeriod: 1m
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/
// @version = 5
// Author = TradeAutomation


strategy(title="ETF 3-Day Reversion Strategy", shorttitle="ETF 3-Day Reversion Strategy", process_orders_on_close=true, overlay=true, commission_type=strategy.commission.cash_per_order, commission_value=1, initial_capital = 10000000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)


// Backtest Date Range Inputs // 
StartTime = input(defval=timestamp('01 Jan 2012 05:00 +0000'), title='Start Time')
EndTime = input(defval=timestamp('01 Jan 2099 00:00 +0000'), title='End Time')
InDateRange = true

// Strategy Rules //
DayEMA5 = ta.ema(close, 5)
Rule1 = close>ta.ema(close, 200)
Rule2 = close<DayEMA5
Rule3 = high<high[1] and low<low[1] and high[1]<high[2] and low[1]<low[2] and high[2]<high[3] and low[2]<low[3]
ExitEMA = ta.ema(close, input.int(5, "EMA Length For Exit Strategy", tooltip = "The strategy will sell when the price crosses over this EMA"))
plot(DayEMA5)
plot(ExitEMA, color=color.green)

// Entry & Exit Functions //
if (InDateRange)
    strategy.entry("Long", strategy.long, when = Rule1 and Rule2 and Rule3)
//    strategy.close("Long", when = ta.crossunder(close, ATRTrailingStop))
    strategy.close("Long", when = ta.crossover(close, ExitEMA))
if (not InDateRange)
    strategy.close_all()

Plus de