Stratégie de retournement de tendance basée sur le lissage gaussien


Date de création: 2023-11-07 15:01:19 Dernière modification: 2023-11-07 15:01:19
Copier: 0 Nombre de clics: 686
1
Suivre
1617
Abonnés

Stratégie de retournement de tendance basée sur le lissage gaussien

Aperçu

Il s’agit d’une stratégie qui utilise un indicateur de volatilité des prix basé sur une tendance à la baisse personnalisée basée sur un Gaussian Smooth pour identifier un revirement potentiel des prix. Cette stratégie, combinée à un indicateur de volatilité des prix basé sur une tendance à la baisse et à une moyenne mobile Gaussian Smooth du cycle des prix, définit des conditions d’entrée et de sortie spécifiques pour capturer les opportunités de revirement des prix.

Principe de stratégie

La stratégie commence par calculer l’indicateur de fluctuation des prix sans tendance (GDPO), en comparant les prix de clôture et les moyennes mobiles indicielles d’une certaine période pour identifier les cycles de prix à court terme. Ensuite, le PIBO est aplani à Gauss, en utilisant la technique de l’aplaniement Gauss avec les moyennes mobiles d’Arnaud Legoux (ALMA) pour filtrer le bruit et donner une image plus claire de la tendance des prix.

La stratégie consiste à déterminer les conditions d’entrée et de sortie pour les prises de positions à plus de blanchiment en croisant la version arriérée du GDPR après l’aplatissement. Lorsque la version arriérée du GDPR est négative, les prises de positions à plus de blanchiment sont effectuées.

Sur le graphique, le GDPR et sa version retardée après lissage sont dessinés en différentes couleurs pour visualiser leur croisement. L’axe zéro est dessiné en même temps pour référence. Le changement de couleur de fond est défini pour indiquer l’entrée de la stratégie. Un marqueur en forme de fourchette est dessiné au point de croisement du GDPR pour indiquer le point de sortie.

Analyse des avantages

Cette stratégie, combinée à la technologie de détrend et au filtrage de Gauss sur le bruit, permet d’identifier plus clairement les occasions de revers des prix. Par rapport aux autres indicateurs de choc, le GDPR améliore la précision en associant la détrend à l’analyse cyclique. Le détrend sur le bruit supprime une grande quantité de bruit, ce qui rend le signal plus clair.

Analyse des risques

La stratégie est sensible à la régulation des paramètres, tels que la longueur des cycles, les paramètres de lissage, etc. La stratégie doit être suffisamment retracée pour déterminer la combinaison de paramètres appropriée, sinon il peut y avoir trop de signaux d’erreur. Dans le cas d’une tendance, la stratégie peut générer des pertes continues.

Il est possible d’optimiser la stabilité de la stratégie en ajustant dynamiquement les paramètres, en combinant les indicateurs de jugement de tendance. Il est également possible de définir des arrêts de perte dynamiques pour contrôler le risque.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Ajustez dynamiquement les paramètres de lissage pour augmenter l’intensité de lissage dans une tendance et réduire les signaux erronés.

  2. La combinaison d’indicateurs de jugement de tendance, tels que l’ADX, permet d’éviter les pertes persistantes lors d’une stratégie d’inversion de tendance.

  3. Augmentation des stratégies de stop loss, telles que l’ajustement des points de stop loss en fonction des fluctuations des prix ou le déplacement des stop loss après les gains.

  4. Optimisation des conditions d’admission, qui peuvent être combinées à d’autres indicateurs ou formes de confirmation, pour améliorer la précision de l’admission.

  5. Optimisation de la gestion des fonds, ajustement des positions et des points de rupture en fonction des conditions du marché.

  6. Tester différentes données de prix, telles que la ligne du jour, la ligne de la nuit, etc., pour évaluer l’efficacité de la stratégie à différentes périodes.

Résumer

Basé sur la stratégie de retour de tendance de Gauss, l’utilisation de l’indicateur GDPR pour identifier la périodicité à court terme des prix et l’application de la technique d’extraction de signaux Gauss pour capturer les opportunités de retour dans des conditions d’entrée et de sortie claires. Cette stratégie maîtrise efficacement le risque de retournement des transactions, mais nécessite une attention particulière à l’optimisation des paramètres et au jugement de la tendance. La stabilité de la stratégie peut être encore améliorée par l’ajustement dynamique, la confirmation et la combinaison de l’indicateur et de la stratégie de stop loss.

Code source de la stratégie
/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 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
// © DraftVenture

//@version=5
strategy(title="Gaussian Detrended Reversion Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

//Detrended Price Oscillator for price cycles
period_ = input.int(50, title="Price Length", minval=1)

barsback = period_/2 + 1
ma = ta.ema(close, period_)
dpo = close - ma[barsback]

// Rounded ALMA Calculations for gaussian smoothing
almaSource = dpo
almaWindowSize = input(title="Smoothing Length", defval=50)
lagLength = input(title="Lag Length", defval=25)
almaSmoothed = ta.alma(almaSource, almaWindowSize, 0.85, 6)
almaLag = almaSmoothed[lagLength]

// Reversion entry conditions
entryL = ta.crossover(almaSmoothed, almaLag) and almaSmoothed < 0
exitL = ta.crossunder(almaSmoothed, almaLag) or ta.crossunder(almaSmoothed, 0)
entryS = ta.crossunder(almaSmoothed, almaLag) and almaSmoothed > 0
exitS = ta.crossover(almaSmoothed, almaLag) or ta.crossover(almaSmoothed, 0)

// Long entry and exit
if entryL
    strategy.entry("Long", strategy.long)

if exitL
    strategy.close("Long")

// Short entry and exit
if entryS
    strategy.entry("Short", strategy.short)

if exitS
    strategy.close("Short")

// Plot the oscillator
plot(almaSmoothed, title="GDPO", color=color.green)
plot(almaLag, title="Lag", color=color.white)

hline(0, title="Zero Line", color=color.white)

bgcolor(entryL ? color.new(color.green, 40) : na)
bgcolor(entryS ? color.new(color.red, 40) : na)

plotshape(series=ta.crossunder(almaSmoothed, almaLag) or ta.crossunder(almaSmoothed, 0), style=shape.xcross, location=location.top, color=color.white, size=size.tiny)
plotshape(series=ta.crossover(almaSmoothed, almaLag) or ta.crossover(almaSmoothed, 0), style=shape.xcross, location=location.bottom, color=color.white, size=size.tiny)

//Strategy by KP