Stratégie de suivi de tendance basée sur le score Z

EMA
Date de création: 2024-04-29 17:03:15 Dernière modification: 2024-04-29 17:03:15
Copier: 0 Nombre de clics: 1206
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance basée sur le score Z

Aperçu

Les stratégies de suivi de tendance basées sur les valeurs Z utilisent les valeurs Z, un indicateur statistique, pour saisir les opportunités de tendance en mesurant l’écart des prix par rapport à leurs moyennes mobiles et en utilisant l’écart standard comme échelle de normalisation. La stratégie est réputée pour sa simplicité et son efficacité, en particulier dans les marchés où les mouvements de prix retournent souvent à la moyenne.

Principe de stratégie

Le cœur de la stratégie est le calcul de la valeur Z. La valeur Z est obtenue en calculant la différence entre le prix actuel et la moyenne mobile de l’indice des prix (EMA) de la longueur définie par l’utilisateur, puis en divisant la différence par la norme de prix de la même longueur:

z = (x - μ) / σ

Dans ce cas, x est le prix actuel, μ est la moyenne de l’EMA et σ est la différence standard.

Les signaux de transaction sont générés sur la base du passage d’une valeur Z à un seuil prédéterminé:

  • Entrée multiple: lorsque la valeur de Z dépasse le seuil positif.
  • La multiplication: lorsque la valeur de Z passe la barre négative vers le bas.
  • Entrée à vide: lorsque la valeur de Z dépasse la barre négative.
  • La tête vide: lorsque la valeur de Z dépasse le seuil positif.

Avantages stratégiques

  1. Bref et efficace: la stratégie repose sur une poignée de paramètres, est facile à comprendre et à mettre en œuvre, tout en étant extrêmement efficace pour saisir les opportunités de tendance.
  2. Les bases statistiques: les valeurs Z sont des outils statistiques éprouvés qui fournissent une base théorique solide pour la stratégie.
  3. Adaptabilité: la stratégie peut s’adapter de manière flexible à différents styles de négociation et environnements de marché en ajustant des paramètres tels que les marges, les EMA et les cycles de calcul des écarts standards.
  4. Signaux clairs: Les signaux de transaction basés sur des valeurs Z traversant des seuils sont simples et clairs, ce qui favorise une prise de décision et une exécution rapides.

Risque stratégique

  1. Paramètres sensibles: des paramètres mal réglés (par exemple, des seuils trop élevés ou trop bas) peuvent fausser le signal de négociation, manquer des opportunités ou entraîner des pertes.
  2. Identification des tendances: La stratégie peut faire face à de fréquents signaux de fausse alerte et ne pas fonctionner correctement en cas de choc ou de correction.
  3. Effet de retard: en tant que stratégie de suivi des tendances, les signaux d’entrée et de sortie sont retardés et risquent de manquer le meilleur moment.

Les risques susmentionnés peuvent être contrôlés et atténués par une analyse continue du marché, une optimisation des paramètres et une mise en œuvre prudente sur la base de la rétro-évaluation.

Orientation de l’optimisation de la stratégie

  1. Thresholds dynamiques: introduire des thresholds dynamiques liés à la volatilité, permettant une adaptation efficace aux différentes conditions du marché et améliorant la qualité du signal.
  2. Indicateur combiné: Indicateur combiné avec d’autres indicateurs techniques tels que RSI, MACD, etc. pour une confirmation secondaire des signaux de négociation et une meilleure fiabilité.
  3. Gestion des positions: intégration de mécanismes de contrôle des positions tels que l’ATR, pour réduire les positions en temps opportun dans les marchés en crise et augmenter les positions en temps opportun dans les marchés en tendance, afin d’optimiser le ratio de risque / rendement.
  4. Plusieurs échelles de temps: calculer des valeurs Z à plusieurs échelles de temps, capturer les tendances à différents niveaux, enrichir les dimensions de la stratégie.

Résumer

La “stratégie de suivi de tendance basée sur les valeurs Z” offre une perspective unique pour saisir les opportunités de tendance avec sa simplicité, sa robustesse et sa flexibilité. Grâce à des paramètres raisonnables, une gestion prudente des risques et une optimisation continue, la stratégie est susceptible d’être une aide précieuse pour les traders quantifiés.

Code source de la stratégie
/*backtest
start: 2023-04-23 00:00:00
end: 2024-04-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PresentTrading

// This strategy employs a statistical approach by using a Z-score, which measures the deviation of the price from its moving average normalized by the standard deviation.
// Very simple and effective approach

//@version=5
strategy('Price Based Z-Trend - strategy [presentTrading]',shorttitle = 'Price Based Z-Trend - strategy [presentTrading]', overlay=false, precision=3, 
         commission_value=0.1, commission_type=strategy.commission.percent, slippage=1, 
         currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)

// User-definable parameters for the Z-score calculation and bar coloring
tradeDirection = input.string("Both", "Trading Direction", options=["Long", "Short", "Both"]) // User selects trading direction

priceDeviationLength = input.int(100, "Standard Deviation Length", step=1) // Length for standard deviation calculation
priceAverageLength = input.int(100, "Average Length", step=1) // Length for moving average calculation
Threshold = input.float(1, "Threshold", step=0.1) // Number of standard deviations for Z-score threshold
priceBar = input(title='Bar Color', defval=true) // Toggle for coloring price bars based on Z-score


// Z-score calculation based on user input for the price source (typically the closing price)
priceSource = input(close, title="Source")
priceZScore = (priceSource - ta.ema(priceSource, priceAverageLength)) / ta.stdev(priceSource, priceDeviationLength) // Z-score calculation

// Conditions for entering and exiting trades based on Z-score crossovers
priceLongCondition = ta.crossover(priceZScore, Threshold) // Condition to enter long positions
priceExitLongCondition = ta.crossunder(priceZScore, -Threshold) // Condition to exit long positions

longEntryCondition = ta.crossover(priceZScore, Threshold)
longExitCondition = ta.crossunder(priceZScore, -Threshold)
shortEntryCondition = ta.crossunder(priceZScore, -Threshold)
shortExitCondition = ta.crossover(priceZScore, Threshold)


// Strategy conditions and execution based on Z-score crossovers and trading direction
if (tradeDirection == "Long" or tradeDirection == "Both") and longEntryCondition
    strategy.entry("Long", strategy.long) // Enter a long position

if (tradeDirection == "Long" or tradeDirection == "Both") and longExitCondition
    strategy.close("Long") // Close the long position

if (tradeDirection == "Short" or tradeDirection == "Both") and shortEntryCondition
    strategy.entry("Short", strategy.short) // Enter a short position

if (tradeDirection == "Short" or tradeDirection == "Both") and shortExitCondition
    strategy.close("Short") // Close the short position


// Dynamic Thresholds Visualization using 'plot'
plot(Threshold, "Dynamic Entry Threshold", color=color.new(color.green, 50))
plot(-Threshold, "Dynamic Short Entry Threshold", color=color.new(color.red, 50))


// Color-coding Z-Score
priceZScoreColor = priceZScore > Threshold ? color.green : 
              priceZScore < -Threshold ? color.red : color.blue
plot(priceZScore, "Z-Score", color=priceZScoreColor)

// Lines
hline(0, color=color.rgb(255, 255, 255, 50), linestyle=hline.style_dotted)

// Bar Color
priceBarColor = priceZScore > Threshold ? color.green :
           priceZScore > 0 ? color.lime :
           priceZScore < Threshold ? color.maroon :
           priceZScore < 0 ? color.red : color.black
barcolor(priceBar ? priceBarColor : na)