Les ressources ont été chargées... Je charge...

Stratégie de volatilité de l'ATR pour la percée de l'élan

Auteur:ChaoZhang est là., Date: 12 janvier 2024
Les étiquettes:

img

Résumé

Cette stratégie utilise une combinaison de la simple moyenne mobile double moyenne mobile, complétée par l'indice de volatilité ATR pour déterminer la volatilité du marché. Lorsque la ligne moyenne à court terme traverse au-dessus de la ligne moyenne à long terme, elle est déterminée comme un marché haussier et une position longue est prise. Lorsque la ligne moyenne à court terme traverse au-dessous de la ligne moyenne à long terme, elle est déterminée comme un marché baissier et une position courte est prise.

Principe de stratégie

Le noyau est la stratégie de la moyenne mobile double. La stratégie de la moyenne mobile double sélectionne généralement une moyenne mobile à court terme et une moyenne mobile à long terme, comme la moyenne mobile de 50 jours et la moyenne mobile de 200 jours. Un signal d'achat est généré lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme. Un signal de vente est généré lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme.

Cette stratégie sélectionne la moyenne mobile de 50 jours comme moyenne mobile à court terme et la moyenne mobile de 200 jours comme moyenne mobile à long terme. Combiné avec le prix moyen pondéré par volume VWAP pour déterminer la fiabilité du signal de moyenne mobile. C'est-à-dire, n'entrez sur le marché que lorsque le signal de moyenne mobile est aligné avec VWAP. Cela filtre certains faux signaux.

En outre, l'indicateur RSI est incorporé pour éviter les surachats et les survente.

Enfin, l'amplitude moyenne de fluctuation de l'indicateur ATR est utilisée pour déterminer la volatilité et le niveau de risque du marché. Lorsque la valeur ATR est supérieure à 1,18, elle est définie comme une volatilité élevée.

Analyse des avantages

Les principaux avantages de cette stratégie se traduisent par trois aspects:

  1. La moyenne mobile double représente le tournant de la tendance à moyen et à long terme du marché et utilise le trading de tendance pour obtenir des bénéfices relativement élevés.

  2. Combiner le VWAP pour filtrer les faux signaux et améliorer la fiabilité du signal.

  3. Introduction de l'indicateur RSI pour éviter les transactions contre le marché, ce qui peut réduire les pertes.

  4. L'application de l'indice de volatilité ATR pour déterminer les conditions de risque de marché permet d'éviter les périodes de forte volatilité, ce qui peut réduire les pertes.

  5. La combinaison de divers indicateurs est simple et facile à comprendre et à mettre en œuvre, adaptée à l'entrée quantitative dans le commerce.

Analyse des risques

Cette stratégie comporte également des risques:

  1. La solution consiste à réduire le cycle de la moyenne mobile pour accélérer la vitesse de réaction de l'indicateur.

  2. La solution consiste à confirmer avec d'autres indicateurs.

  3. À la fin de la tendance, le RSI peut rester dans la zone de surachat/survente pendant une longue période, manquant le tournant de l'inversion de tendance.

  4. L'ATR peut être retardé lors du jugement de la volatilité du marché. La solution consiste à combiner le prix le plus élevé, le prix le plus bas, etc. pour déterminer la volatilité du marché.

  5. Le rendement peut ne pas répondre aux attentes et les paramètres doivent être ajustés en conséquence.

Direction de l'optimisation

Il y a encore une grande marge d'optimisation dans cette stratégie:

  1. Testez plus de combinaisons de moyennes mobiles pour trouver des paramètres optimaux.

  2. Ajoutez plus d'indicateurs auxiliaires aux signaux filtrés, tels que MACD, KDJ, etc.

  3. Optimiser les paramètres de stop loss et de profit pour réduire les pertes et augmenter les bénéfices.

  4. Évaluer la différence entre les stratégies de négociation des actions fortes et des actions faibles pour la modélisation de la classification.

  5. Incorporer des algorithmes d'apprentissage automatique tels que RNN pour optimiser automatiquement les paramètres et évaluer les stratégies.

  6. Développer des systèmes de négociation automatisés et se connecter au trading en direct pour le backtesting.

Résumé

Dans l'ensemble, cette stratégie est une stratégie de suivi des tendances relativement simple. Le noyau utilise des moyennes mobiles doubles pour déterminer les tendances à long et à court terme. Combine VWAP et RSI pour traiter les signaux et appliquer ATR pour évaluer les risques. L'idée de stratégie est simple et facile à comprendre et à utiliser.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple Moving Averages", overlay=true)

sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)
rsi = ta.rsi(close, 14)
[diPlus, diMinus, adx_val] = ta.dmi(14, 14)
atr_val = ta.atr(14)

plot(sma50, color=color.new(color.green, 0))
plot(sma200, color=color.new(color.red, 0))
plot(vwap)

longCondition = ta.crossover(sma50, sma200) and vwap > close
shortCondition = ta.crossunder(sma50, sma200) and vwap < close

if (longCondition)
    strategy.entry("Long", strategy.long)
    
if (shortCondition)
    strategy.entry("Short", strategy.short)

barcolor = sma50 > sma200 ? (vwap < close ? (rsi < 70 ? color.green : color.blue) : color.yellow) : (sma50 < sma200 ? (vwap > close ? (rsi > 30 ? color.red : color.orange) : color.yellow) : na)
barcolor(barcolor)
bgcolor(adx_val > 25 and atr_val > 1.18 ? color.new(color.gray, 50) : color.new(color.black, 50), transp=90)

// ADX and ATR Label Box
// label.new(bar_index, high, "ADX: " + str.tostring(adx_val, "#.##") + "\nATR: " + str.tostring(atr_val, "#.##"), color=color.new(color.white, 0), textcolor=color.new(color.black, 0), style=label.style_labeldown, yloc=yloc.price, xloc=xloc.bar_index, size=size.small, textalign=text.align_left)

// Exit conditions (optional)
strategy.close("Long", when = ta.crossunder(sma50, sma200))
strategy.close("Short", when = ta.crossover(sma50, sma200))

// Take Profit and Stop Loss
takeProfitPercentage = 5
stopLossPercentage = 3

strategy.exit("Take Profit / Stop Loss", "Long", profit = takeProfitPercentage, loss = stopLossPercentage)
strategy.exit("Take Profit / Stop Loss", "Short", profit = takeProfitPercentage, loss = stopLossPercentage)

Plus de