La estrategia de negociación de volatilidad es una estrategia basada en la acción del precio. Genera señales de compra y venta mediante el análisis de los cambios de precio y volumen.
Esta estrategia analiza los precios cerrados, abiertos, altos y bajos de los candelabros para determinar las tendencias y el impulso de los precios.
Específicamente, comprueba si los precios de cierre de los 3 candeleros más recientes son continuamente más altos o más bajos que los precios de apertura.
Además, esta estrategia rastrea el volumen máximo durante un cierto período. Si el volumen actual del candelero excede el valor máximo durante el período reciente, sugiere un aumento del volumen de operaciones y fuertes fuerzas que ingresan al mercado.
Cuando el precio se rompe en tres velas consecutivas y el volumen de operaciones se expande, la estrategia producirá señales de compra o venta.
Esta es una estrategia simple pero eficaz que utiliza la acción del precio y las señales de volumen.
También existen algunos riesgos potenciales:
Para mitigar estos riesgos, se puede considerar la adición de stop loss móviles, la optimización de combinaciones de parámetros o la combinación con otros indicadores o estrategias.
Como estrategia básica, todavía hay mucho espacio para la optimización:
En conclusión, esta es una estrategia basada en la acción de precios muy práctica. Tiene los méritos de ser intuitiva, fácil de entender e implementar a bajos costos. Mientras tanto, también tiene cierta ceguera y necesita más optimizaciones y combinaciones para mejorar el rendimiento. En general, este es un concepto de estrategia valioso digno de una investigación y aplicación en profundidad.
/*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)