Stratégie de trading de rupture de volatilité


Date de création: 2023-12-11 14:20:48 Dernière modification: 2023-12-11 14:20:48
Copier: 1 Nombre de clics: 638
1
Suivre
1621
Abonnés

Stratégie de trading de rupture de volatilité

Aperçu

La stratégie de rupture de volatilité est une stratégie basée sur l’action des prix individuels. Elle déclenche des signaux d’achat et de vente en analysant les variations des prix et du volume des transactions.

Principe de stratégie

Cette stratégie permet de juger de la dynamique et de la force des prix en analysant les prix de clôture, d’ouverture, de sommet et de bas de la ligne K.

En particulier, il analyse si la clôture des 3 dernières lignes K est continuellement supérieure ou inférieure à la clôture de la ligne. Si c’est le cas, cela indique que le prix a fait une rupture continue à la hausse ou à la baisse, générant une tendance.

En outre, la stratégie permet de calculer le volume maximal de transactions sur une période donnée. Si le volume de transactions sur la ligne K actuelle dépasse le volume maximal de transactions sur la période la plus récente, cela indique une augmentation du volume des transactions, ce qui reflète une force de transaction énorme sur le marché.

Cette stratégie génère un signal d’achat ou de vente, tout en générant trois ruptures consécutives de la ligne K et une augmentation du volume de transactions.

Avantages stratégiques

Il s’agit d’une stratégie simple et efficace qui exploite les signaux d’action des prix et de volume. Ses principaux avantages sont:

  1. Les principes sont clairs, faciles à comprendre et à mettre en œuvre
  2. Il est très sensible aux situations inattendues et capte rapidement les changements de marché.
  3. Il suffit d’analyser les lignes K de base et les données de transaction, sans algorithmes complexes.
  4. Adaptation des paramètres en fonction des variétés et des cycles
  5. Un investisseur à faible coût et avec des capitaux modestes

Analyse des risques

Cette stratégie comporte aussi des risques potentiels:

  1. Il y a une certaine aveuglement à l’égard de l’évolution des prix.
  2. Les signaux de déclenchement erronés sont plus sensibles et peuvent augmenter les transactions inutiles.
  3. Les signaux d’erreur peuvent être facilement générés lors d’une évaluation.
  4. Il n’y a pas de couvre-feu et il y a un risque de perte accrue.

Pour maîtriser ces risques, on peut envisager d’ajouter un stop mobile, d’optimiser une combinaison de paramètres ou de l’utiliser avec d’autres indicateurs ou combinaisons de stratégies.

Direction d’optimisation

Il s’agit d’une stratégie de base, mais il y a encore beaucoup de place pour l’optimisation, principalement dans les domaines suivants:

  1. Augmenter les stratégies de stop-loss pour contrôler les pertes
  2. Optimisation des paramètres pour plus de variétés et de cycles
  3. Ajouter d’autres indicateurs au filtrage
  4. Combiné avec une stratégie de suivi des tendances, pour un ajustement automatique des tendances
  5. L’optimisation des paramètres dynamiques et des signaux, combinée à des algorithmes d’apprentissage automatique
  6. L’ajout de modules de recherche quantitative et de rétroaction pour une évolution et une optimisation continues des stratégies

Résumer

Cette stratégie est globalement une stratégie très pratique basée sur la théorie de l’action des prix. Elle présente des avantages tels que la participation, la facilité de compréhension et le faible coût de mise en œuvre.

Code source de la stratégie
/*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)