Stratégie de rupture de l' élan inversé

Auteur:ChaoZhang est là., Date: 23 février 2024
Les étiquettes:

img

Résumé

La stratégie de rupture de l'élan inverse est une stratégie de trading quantitative qui génère des signaux de trading à l'aide d'indicateurs d'inversion de prix et d'élan.

Principe de stratégie

La logique de base de cette stratégie est d'identifier les points d'inversion du marché en calculant les prix les plus élevés et les plus bas sur une fenêtre de rétrospective spécifiée (par exemple 20 jours).

  1. Calculer le prix le plus élevé (window_high) et le prix le plus bas (window_low) au cours des 20 derniers jours.

  2. Si le sommet d'aujourd'hui est supérieur au maximum des 20 derniers jours (un nouveau sommet de 20 jours), entrez la période de surveillance de l'inversion du sommet et réglez le compteur sur 5 jours.

  3. Si aucun nouveau sommet n'apparaît, déduire le compteur de 1 chaque jour.

  4. La logique de jugement pour le prix le plus bas est similaire.

  5. Les positions longues et courtes sont prises dans les périodes de surveillance de l'inversion.

La stratégie fixe également l'heure de début des transactions afin d'éviter de générer des signaux sur les données historiques.

Analyse des avantages

La stratégie de rupture de l'élan inverse présente les principaux avantages suivants:

  1. Capture des opportunités d'inversion, adaptée aux tendances d'inversion. Les marchés montrent souvent un certain degré d'inversion après une tendance haussière ou baissière soutenue. Cette stratégie vise à capturer ces points tournants.

  2. Le suivi des prix les plus élevés et les plus bas au cours d'une fenêtre peut identifier de manière sensible les tendances et le timing de l'inversion des prix.

  3. Les signaux sont générés uniquement autour des points clés d'inversion, filtrant un certain bruit.

  4. Permet des positions longues et courtes.

  5. La logique est relativement simple, facile à mettre en œuvre, repose principalement sur des indicateurs de prix et de dynamique simples, facile à coder.

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. Prédiction inexacte d'un renversement de tendance. La stratégie peut entraîner des pertes si la tendance du marché est directionnelle.

  2. Les tendances globales du marché n'ont pas été prises en compte. Les renversements individuels des actions ne représentent pas nécessairement des renversements du marché.

  3. Les retraits potentiellement importants peuvent s'accroître sans inversions réelles.

  4. Les performances peuvent différer considérablement des tests antérieurs.

  5. La période de la fenêtre, les paramètres du compteur, etc. affectent la stabilité.

Les méthodes de contrôle des risques correspondantes comprennent l'optimisation du stop loss, l'intégration de facteurs de marché, l'ajustement des combinaisons de paramètres et la vérification de la stabilité.

Directions de renforcement

Les principales orientations d'optimisation sont les suivantes:

  1. Incorporer des indicateurs de marché. Évaluer la force du marché pour éviter les environnements défavorables.

  2. Choisissez des actions avec des fondamentaux solides et une surévaluation.

  3. Optimisation des paramètres. Ajustez la période de la fenêtre et les paramètres du compteur pour trouver des combinaisons optimales de paramètres.

  4. Ajouter des stratégies de stop loss, par exemple des stops de trailing, des stops de volatilité pour contrôler le maximum de retrait.

  5. Améliorer la précision prédictive de l'apprentissage automatique des inversions de prix.

Conclusion

La stratégie de rupture de l'élan inverse identifie les opportunités d'inversion en suivant le prix et l'élan. Elle réagit de manière sensible et identifie les tendances et le timing de l'inversion. Mais elle comporte des risques qui nécessitent des optimisations et un contrôle des risques appropriés. Dans l'ensemble, lorsqu'elle est bien comprise et optimisée, elle peut former une composante efficace d'un système de trading quantitatif.


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

//@version=5
strategy("New Highs and Lows Momentum Strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

window = input.int(20, title="New Highs and Lows Window", minval=1)
decay = input.int(5, title="Decay", minval=1)
startDate = input(timestamp("1 Jan 2023"), title = "Start Date")
allowShort = input.bool(false, title = "Allow shorting")

var int highDecayCounter = 0
var bool isHighPeriod = false
var int lowDecayCounter = 0
var bool isLowPeriod = false

inTradeWindow = true

window_high = ta.highest(close, window)
window_low = ta.lowest(low, window)

// Logic for Highs
if window_high > ta.highest(close, window)[1]
    highDecayCounter := decay
    isHighPeriod := true
else
    if highDecayCounter > 0
        highDecayCounter := highDecayCounter - 1
    else
        isHighPeriod := false

// Logic for Lows
if window_low < ta.lowest(low, window)[1]
    lowDecayCounter := decay
    isLowPeriod := true
else
    if lowDecayCounter > 0
        lowDecayCounter := lowDecayCounter - 1
    else
        isLowPeriod := false

// Strategy Execution
if inTradeWindow
    if isHighPeriod and highDecayCounter == decay
        strategy.entry("Long", strategy.long)

    if isHighPeriod and highDecayCounter == 0
        strategy.close("Long")

    if isLowPeriod and lowDecayCounter == decay and allowShort
        strategy.entry("Short", strategy.short)

    if isLowPeriod and lowDecayCounter == 0 and allowShort
        strategy.close("Short")

// Plotting
plot(window_high, color=color.green)
plot(window_low, color=color.red)

Plus de