Richard Bookstaber, stratégie de rupture de l'élan

Auteur:ChaoZhang est là., Date: 2023-11-02 15:12:46 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie de momentum breakout est basée sur le concept proposé par Richard Bookstaber en 1984 selon lequel une fois qu'il y a un grand mouvement volatil, le marché a tendance à le suivre. Ainsi, il utilise l'ATR pour mesurer la volatilité et émet des ordres lorsque la variation actuelle du prix de clôture dépasse le seuil calculé en multipliant l'ATR par une constante configurable.

La logique de la stratégie

La stratégie calcule d'abord l'indicateur ATR pour mesurer la volatilité du marché. Ensuite, elle calcule la valeur absolue de la variation quotidienne du prix de clôture. Lorsque la variation du prix de clôture dépasse la valeur ATR de plusieurs multiples, des signaux de trading sont générés. Plus précisément, si le prix de clôture augmente plus que le rail supérieur ATR, allez long; si le prix de clôture tombe plus que le rail supérieur ATR, allez court.

La stratégie utilise l'indicateur ATR pour déterminer dynamiquement le seuil de rupture. Lorsque la volatilité du marché augmente, le seuil augmentera pour réduire les transactions erronées. Lorsque la volatilité du marché diminue, le seuil diminuera pour saisir les opportunités de rupture en temps opportun.

Analyse des avantages

  • L'ATR dynamique de stop loss permet de contrôler efficacement les risques avec un stop loss adaptatif basé sur la volatilité du marché.
  • L'utilisation des ruptures pour générer des signaux de trading peut capturer les rotations de tendance du marché.
  • L'espace d'optimisation des paramètres est grand et peut être ajusté pour différents produits et cycles.
  • La logique de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre.

Analyse des risques

  • L'indicateur ATR réagit lentement à des événements soudains, peut manquer l'éclatement initial.
  • Déséquilibré entre long et court, il fonctionne nettement mieux pour un seul côté que pour le commerce bidirectionnel.
  • Les paramètres stratégiques sont faciles à suradapter, les résultats réels peuvent être médiocres.
  • Les échanges sont fréquents, les coûts de transaction peuvent être élevés.

Considérez la combinaison d'autres indicateurs pour sélectionner des opportunités de trading afin d'améliorer l'efficacité. Sélectionnez également des paramètres optimaux basés sur les caractéristiques du produit. Utilisez des techniques comme Martingale pour contrôler la fréquence de trading.

Directions d'optimisation

  • Envisagez de combiner d'autres indicateurs comme le RSI, le MACD pour déterminer la direction de la tendance et éviter les mauvais métiers.
  • Peut ajouter un module de gestion des positions pour ajuster les positions en fonction des conditions du marché.
  • Peut sélectionner des ensembles de paramètres optimaux pour différents produits.
  • Peut combiner des techniques d'apprentissage automatique pour optimiser automatiquement les paramètres.

Résumé

La stratégie de rupture d'élan est simple et directe, générant des signaux de trading à partir de ruptures. L'ATR stop loss lui permet de s'adapter à la volatilité du marché. La stratégie repose sur l'optimisation des paramètres pour des résultats décents. Mais il y a aussi des problèmes comme les ruptures initiales manquantes, le trading fréquent, etc. Des améliorations supplémentaires en les combinant avec d'autres techniques sont nécessaires pour des profits stables sur des marchés complexes.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
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/
// © EduardoMattje

//@version=5
strategy("Volatility System", overlay=false, margin_long=0, margin_short=0, default_qty_type=strategy.percent_of_equity, 
 default_qty_value=100, process_orders_on_close=true, initial_capital=20000)

// Inputs

var averageLength = input.int(14, "Average length", 2)
var multiplier = input.float(2.0, "Multiplier", 0.0, step=0.1)

// Calculations

atr = ta.atr(averageLength) * multiplier
closingChange = ta.change(close, 1)

atrPenetration(int signal) =>
    res = closingChange * signal > atr[1]

longCondition = atrPenetration(1)
shortCondition = atrPenetration(-1)

// Order calls

if (longCondition)
    strategy.entry(strategy.direction.long, strategy.long)

if (shortCondition)
    strategy.entry(strategy.direction.short, strategy.short)

// Visuals

plot(atr, "ATR", color.white, 2)
plot(math.abs(closingChange), "Absolute close change", color.red)


Plus de