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.
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.
Il s'agit d'une stratégie simple mais efficace utilisant des signaux d'action des prix et de volume.
Il existe également des risques potentiels:
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.
En tant que stratégie de base, il y a encore beaucoup de place pour l'optimisation:
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)