
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.
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.
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:
Cette stratégie comporte aussi des risques potentiels:
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.
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:
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.
/*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)