Stratégie de négociation de rupture de volatilité

Auteur:ChaoZhang est là., Date: 2023-12-11 14:20:48 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie de trading de rupture de volatilité est une stratégie basée sur une action de prix unique. Elle génère des signaux d'achat et de vente en analysant les changements de prix et de volume.

La logique de la stratégie

Cette stratégie analyse les prix de clôture, d'ouverture, de hausse et de baisse des chandeliers pour déterminer les tendances et l'élan des prix.

Plus précisément, il vérifie si les prix de clôture des 3 bougies les plus récentes sont continuellement supérieurs ou inférieurs aux prix d'ouverture.

En outre, cette stratégie suit le volume maximal sur une certaine période. Si le volume du chandelier actuel dépasse la valeur maximale sur la période récente, cela suggère un volume de négociation en hausse et des forces fortes entrant sur le marché.

Lorsque le prix éclate sur trois chandeliers consécutifs et que le volume des transactions augmente, la stratégie produira des signaux d'achat ou de vente.

Les avantages

Il s'agit d'une stratégie simple mais efficace utilisant des signaux d'action des prix et de volume.

  1. Logique claire, facile à comprendre et à mettre en œuvre
  2. Très sensibles aux changements volatiles du marché, saisissant les changements en temps opportun
  3. Ne nécessite que des données de base sur le chandelier et le volume, pas d'algorithmes complexes
  4. Paramètres flexibles adaptés à différents produits et délais
  5. Faible coût, adapté aux petits investisseurs

Analyse des risques

Il existe également des risques potentiels:

  1. Aucune prévision de prix, une certaine cécité existe
  2. Prédisposé à de faux signaux par contact accidentel
  3. Peut générer des signaux inappropriés sur les marchés à plage
  4. Aucun mécanisme d'arrêt des pertes, risque d'accroissement des pertes

Pour atténuer ces risques, on peut envisager d'ajouter un stop loss mobile, d'optimiser les combinaisons de paramètres ou de les combiner avec d'autres indicateurs ou stratégies.

Directions d'optimisation

En tant que stratégie de base, il y a encore beaucoup de place pour l'optimisation:

  1. Ajouter des mécanismes de stop loss pour contrôler les pertes
  2. Optimiser les paramètres pour plus de produits et de périodes
  3. Ajouter d'autres indicateurs aux signaux filtrés
  4. Combiner avec des stratégies de suivi des tendances pour un ajustement automatique des tendances
  5. Incorporer des algorithmes d'apprentissage automatique pour l'optimisation des paramètres dynamiques et du signal
  6. Construire des modules de recherche quantitative et de rétroaction pour une évolution continue

Conclusion

En conclusion, il s'agit d'une stratégie basée sur l'action des prix très pratique. Elle présente les avantages d'être intuitive, facile à comprendre et à mettre en œuvre à faible coût. Pendant ce temps, elle présente également une certaine cécité et nécessite d'autres optimisations et combinaisons pour améliorer les performances.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-03-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SPAS", overlay=true, pyramiding=5, calc_on_order_fills=true)

int signal_hh = 0
int signal_ll = 0

if close[1] >= open[1] and close[2] >= open[2] and close[3] >= open[3]
    signal_hh := 1

if close[1] <= open[1] and close[2] <= open[2] and close[3] <= open[3]
    signal_ll := 1

plotchar(signal_hh, char='H', size=size.tiny, location=location.abovebar)
plotchar(signal_ll, char='L', size=size.tiny, location=location.abovebar)

int signal_vol = 0
float max_volume = 0.0
int vol_length = input(title="Volume length", type=input.integer, defval=3)

for i = vol_length to 1
    if volume[i] > max_volume
        max_volume := volume[i]

if volume[0] > max_volume
    signal_vol := 1

plotchar(signal_vol, char='V', size=size.tiny, location=location.bottom)

int signal_buy = 0
int signal_sell = 0

if signal_hh and signal_vol
    signal_buy := 1
    label.new(bar_index, high, "B", color=color.green)
    strategy.entry("buy", strategy.long, 5)//, when=strategy.position_size <= 0)

if signal_ll and signal_vol
    signal_sell := 1
    label.new(bar_index, low, "S", color=color.red)
    strategy.entry("sell", strategy.short, 5)//, when=strategy.position_size > 0)

//plotchar(signal_buy, char='B', color=color.green, size=size.tiny, location=location.abovebar)
plotarrow(signal_buy, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)

//plotchar(signal_sell, char='S', color=color.red, size=size.tiny, location=location.abovebar)
plotarrow(signal_sell * -1, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)



Plus de