Stratégie de suivi de tendance utilisant l'indicateur de momentum des prix


Date de création: 2024-01-17 13:58:19 Dernière modification: 2024-01-17 13:58:19
Copier: 1 Nombre de clics: 540
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance utilisant l’indicateur de momentum des prix

Aperçu

Cette stratégie est une stratégie de suivi de tendance réalisée à l’aide d’indicateurs de dynamique des prix. Elle permet de déterminer la tendance du marché en calculant les variations des prix de clôture au cours d’un certain cycle et d’effectuer des opérations de plus ou de moins correspondantes en cas de tendance à la hausse ou à la baisse persistante des prix.

Principe de stratégie

L’indicateur central de cette stratégie est le momentum des prix. La formule de calcul du momentum est:

momentum = close - close[n]

où n représente la longueur du cycle de momentum. Lorsque le momentum est > 0, cela signifie que le prix a augmenté pendant le cycle actuel; lorsque le momentum est < 0, cela signifie que le prix a diminué pendant le cycle actuel.

La stratégie définit d’abord un paramètre confirmBars, qui représente le nombre de lignes K nécessaires à la décision de la tendance avant d’effectuer une transaction. Dans le cadre du repérage, une entrée supplémentaire est effectuée si le momentum > 0 est maintenu sur la ligne confirmBars root K; une entrée blanche est effectuée si le momentum < 0 est maintenu sur la ligne confirmBars root K.

La clé de la stratégie pour déterminer la tendance réside dans la statistique du nombre de lignes K dont le momentum est continuellement supérieur ou inférieur à zéro, réalisée par les variables bcount et scount. Elles retournent à zéro si la condition correspondante est satisfaite, +1, si elle n’est pas satisfaite.

Avantages stratégiques

Il s’agit d’une stratégie de suivi de tendances plus simple, qui présente les avantages suivants:

  1. La logique est simple et la mise en œuvre facile à comprendre.
  2. L’indicateur de dynamique est sensible aux variations de prix et capte rapidement les tendances
  3. Paramètres configurables pour modifier la sensibilité de jugement
  4. Utilisable dans de nombreux environnements de marché

Risque stratégique

Cette stratégie comporte aussi des risques:

  1. Prédisposé à des transactions survoltées et à des transactions excessives
  2. Les paramètres doivent être configurés de manière raisonnable, en particulier les vibrations de filtrage des barres de confirmation
  3. L’incapacité à réagir efficacement aux chocs de marché
  4. La détection peut être différente de celle du disque dur, nécessitant une vérification des données et une optimisation des paramètres supplémentaires

Orientation de l’optimisation de la stratégie

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Augmentation de la logique de stop-loss et maîtrise du risque de transaction unique
  2. L’augmentation des filtres de rupture pour éviter les faux signaux causés par les fluctuations des prix
  3. Paramètres tels que les barres de confirmation adaptées aux variétés et aux conditions du marché
  4. Augmentation des jugements multifactoriels, combinés à d’autres indicateurs de confirmation d’entrée
  5. Adapter les paramètres et les règles de filtrage à l’aide de l’apprentissage automatique

Résumer

Dans l’ensemble, la stratégie de rupture de dynamique est une stratégie de suivi de tendance simple et pratique, adaptée à la quantification des transactions. Dans le processus d’application, il faut faire attention au contrôle de la fréquence des transactions, à la prévention des transactions excessives et des coûts de transaction trop élevés. Dans le même temps, les paramètres et les règles de filtrage doivent être adaptés et optimisés en fonction de la variété réelle et de l’environnement du marché pour tirer le meilleur parti de la stratégie.

Code source de la stratégie
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Momentum Strategy [TS Trader]", overlay=true)

confirmBars = input(1)
momentumLength = input(14, title="Momentum Length")

price = close
momentum = close - close[momentumLength]

// === INPUT BACKTEST RANGE ===
fromYear = input.int(2019, title="Backtest Start Year")
fromMonth = input.int(1, title="Backtest Start Month", minval=1, maxval=12)
fromDay = input.int(1, title="Backtest Start Day", minval=1, maxval=31)
toYear = input.int(2023, title="Backtest End Year")
toMonth = input.int(12, title="Backtest End Month", minval=1, maxval=12)
toDay = input.int(31, title="Backtest End Day", minval=1, maxval=31)

startTimestamp = timestamp(fromYear, fromMonth, fromDay, 00, 00)
endTimestamp = timestamp(toYear, toMonth, toDay, 23, 59)

inBacktestRange = true

// === STRATEGY LOGIC ===
bcond = momentum > 0
bcount = 0
bcount := bcond ? nz(bcount[1]) + 1 : 0
if (bcount == confirmBars and inBacktestRange)
    strategy.entry("Buy", strategy.long, comment="Long")

scond = momentum < 0
scount = 0
scount := scond ? nz(scount[1]) + 1 : 0
if (scount == confirmBars and inBacktestRange)
    strategy.entry("Sell", strategy.short, comment="Short")

// Plotting Momentum
plot(momentum, title="Momentum", color=color.purple)