Système de stratégie quantitative d'inversion de momentum multifréquence


Date de création: 2024-11-29 14:47:54 Dernière modification: 2024-11-29 14:47:54
Copier: 0 Nombre de clics: 377
1
Suivre
1617
Abonnés

Système de stratégie quantitative d’inversion de momentum multifréquence

Aperçu

Cette stratégie est un système de trading quantitatif basé sur les caractéristiques d’un mouvement continu du marché, qui capture les occasions de retournement du marché en analysant la fréquence de la hausse ou de la baisse continue des prix. Le cœur de la stratégie est de prendre des décisions de négociation en prenant des actions inverses en fixant des seuils de baisse ou de baisse continue, en prenant des mesures inverses lorsque les seuils sont atteints, tout en combinant des indicateurs multidimensionnels tels que le temps de tenue de position et la forme de la ligne K.

Principe de stratégie

La logique fondamentale de la stratégie comprend les éléments clés suivants :

  1. Statistiques de séquence: le système mesure en temps réel les hausses et les baisses de prix en séquence et les compare avec les baisses prévues.
  2. Option de direction: vous pouvez choisir de faire plus ou de faire court dans les deux sens, en faisant plus, vous vous concentrez sur une baisse continue, en faisant court, vous vous concentrez sur une hausse continue.
  3. Gestion des cycles de détention: définir des cycles de détention fixes, expiration automatique des positions, éviter les détentions excessives.
  4. Le filtrage des étoiles croisées: l’introduction du jugement des étoiles croisées pour filtrer les faux signaux pendant les chocs du marché.
  5. Contrôle de position: utilisation d’une seule position pour la négociation, pas d’ajout de position ou d’opérations de création de position par lots.

Avantages stratégiques

  1. La logique est claire: la logique de la stratégie est intuitive, facile à comprendre et à exécuter.
  2. Risques maîtrisés: les risques sont maîtrisés par une période de détention fixe et une position unique.
  3. Adaptabilité: les paramètres peuvent être adaptés en fonction des caractéristiques du marché.
  4. Autonomie élevée: le processus est entièrement automatisé par le système, réduisant l’intervention humaine.
  5. Analyse multidimensionnelle: combinaison de plusieurs dimensions telles que les tendances des prix, la forme de la ligne K.

Risque stratégique

  1. Risque de poursuite de la tendance: il peut y avoir erreur de jugement dans un marché en forte tendance.
  2. Sensitivité des paramètres: la définition de la valeur limite et de la durée de détention a un impact direct sur la performance de la stratégie.
  3. La dépendance aux conditions du marché: la performance est meilleure en cas de turbulence, mais les pertes peuvent être fréquentes en cas de défaillance.
  4. Effets des points de glissement: les transactions à haute fréquence peuvent être affectées par les points de glissement.
  5. La pression sur les coûts: les transactions fréquentes entraînent des coûts de transaction plus élevés.

Orientation de l’optimisation de la stratégie

  1. Introduction d’indicateurs de volatilité: réglage des seuils à l’aide d’indicateurs tels que ATR
  2. Augmentation du filtrage des tendances: augmentation du taux de victoire en combinant les jugements des tendances à long terme.
  3. Cycle dynamique de détention: Adaptez le temps de détention en fonction des caractéristiques du marché.
  4. Optimisation de la gestion des positions: mise en place d’un mécanisme de gestion dynamique des positions.
  5. Analyse de cycles multiples: ajout d’un mécanisme de confirmation de signaux multiples.

Résumer

La stratégie est un système de trading quantitatif basé sur des caractéristiques de retournement du marché, qui capture les opportunités de retournement du marché en analysant les mouvements continus des prix. La stratégie est conçue pour être raisonnable, le risque est contrôlable, mais les paramètres doivent être ajustés en fonction de l’environnement du marché.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Streak-Based Trading Strategy", overlay=true)

// User Inputs
trade_direction = input.string(title="Trade Direction", defval="Long", options=["Long", "Short"]) // Option to choose Long or Short
streak_threshold = input.int(title="Streak Threshold", defval=8, minval=1) // Input for number of streaks before trade
hold_duration = input.int(title="Hold Duration (in periods)", defval=7, minval=1) // Input for holding the position
doji_threshold = input.float(0.01, title="Doji Threshold (%)", minval=0.001) / 100 // Doji sensitivity

// Calculate win or loss streak
is_doji = math.abs(close - open) / (high - low) < doji_threshold
win = close > close[1] and not is_doji
loss = close < close[1] and not is_doji

// Initialize variables for streak counting
var int win_streak = 0
var int loss_streak = 0
var bool in_position = false
var int hold_counter = 0

// Track streaks (only when not in a position)
if not in_position
    if win
        win_streak += 1
        loss_streak := 0
    else if loss
        loss_streak += 1
        win_streak := 0
    else
        win_streak := 0
        loss_streak := 0

// Logic for closing the position after the holding duration
if in_position
    hold_counter -= 1
    if hold_counter <= 0
        strategy.close_all() // Close all positions
        in_position := false // Reset position flag
        win_streak := 0 // Reset streaks after position is closed
        loss_streak := 0

// Trade condition (only when no position is open and streak is reached)
if not in_position
    if trade_direction == "Long" and loss_streak >= streak_threshold
        strategy.entry("Long", strategy.long) // Open a long position
        in_position := true
        hold_counter := hold_duration // Set holding period

    if trade_direction == "Short" and win_streak >= streak_threshold
        strategy.entry("Short", strategy.short) // Open a short position
        in_position := true
        hold_counter := hold_duration // Set holding period

// Plotting streaks for visualization
plot(win_streak, color=color.green, title="Winning Streak", style=plot.style_histogram, linewidth=2)
plot(loss_streak, color=color.red, title="Losing Streak", style=plot.style_histogram, linewidth=2)