
La estrategia se basa en el cruce de promedios móviles a largo plazo del volumen de operaciones. Utiliza EMAs de diferentes períodos para calcular la tendencia a largo plazo del volumen de operaciones y construye un indicador de oscilación a través de su diferencia. El indicador de oscilación se incrementa cuando pasa por el eje cero y se vacía cuando pasa por el eje cero. Además, combina los máximos y mínimos anteriores para determinar la dirección de la operación específica.
El indicador central de la estrategia es el indicador de la oscilación del volumen de transacciones, que refleja la tendencia de los cambios en el volumen de transacciones a través de la diferencia de los promedios móviles del índice de volumen de transacciones a largo plazo. La fórmula específica de cálculo es la siguiente:
Volume Oscillator = (ShortEMA - LongEMA) / LongEMA * 100
Entre ellos, ShortEMA y LongEMA representan las medias móviles del índice a corto y largo plazo respectivamente. Cuando ShortEMA atraviesa LongEMA, el indicador es positivo, lo que significa que el volumen de operaciones se está expandiendo; cuando ShortEMA atraviesa LongEMA, el indicador es negativo, lo que significa que el volumen de operaciones se está reduciendo.
Después de calcular el indicador de oscilación, la estrategia utiliza su cruce con el eje cero para generar una señal de negociación. Cuando el indicador se transfiere negativamente, es decir, sube por el eje cero, haga más; cuando el indicador se transfiere positivamente, es decir, baja por el eje cero, haga un vacío. Esto refleja la transformación de la energía dinámica de la cantidad de transacción.
Además, la estrategia también combina los puntos altos y bajos anteriores para determinar la dirección específica de la operación. Es decir, cuando el indicador pasa el eje cero, si el punto alto anterior es mayor que el valor absoluto del punto bajo anterior, mira más; por el contrario, mira hacia abajo.
La estrategia tiene las siguientes ventajas:
El uso del volumen de transacciones como indicador básico puede determinar eficazmente la voluntad de los participantes en el mercado y tiene una gran utilidad.
En combinación con las EMA a largo y corto plazo, se pueden capturar tendencias a medio y largo plazo y dinámicas a corto plazo.
Las señales de transacción que se forman al cruzar el indicador con el eje cero son simples, claras y fáciles de juzgar.
La suma de los puntos altos y bajos anteriores para determinar la dirección de la operación concreta permite aprovechar el volumen de transacciones de manera efectiva.
La estrategia es clara, los parámetros se ajustan con flexibilidad y la adaptabilidad es fuerte.
La estrategia también tiene algunos riesgos a tener en cuenta:
Los indicadores de volumen de operaciones son susceptibles a las falsas rupturas del mercado y pueden generar señales erróneas. Se puede establecer un stop loss para controlar el riesgo.
En situaciones de crisis, los cruces de volúmenes pueden ser frecuentes y se requiere una confirmación razonable de los giros de indicadores.
Los máximos y mínimos anteriores solo reflejan la expansión más reciente, y no se puede determinar la continuidad de su intensidad.
Los parámetros de las diferentes variedades y períodos de tiempo necesitan ser optimizados por separado y no son lo suficientemente generales.
El indicador de volumen de transacciones es lento en reaccionar a las transacciones programadas de alta frecuencia y puede perder el mejor momento de entrada.
La estrategia puede ser optimizada en los siguientes aspectos:
Añadir condiciones de filtración para evitar falsas señales, como la confirmación de la inclusión de un indicador de precios.
Optimización de los parámetros de ciclo de las EMA de largo y corto plazo para que se ajusten mejor a las características de las diferentes variedades.
Establezca un parámetro de ciclo para el punto más bajo y más alto anterior, utilizando el precio más alto y el precio más bajo de un período de tiempo.
Establezca la zona de conversión del indicador como un intervalo para evitar el comercio frecuente.
Aumentar las estrategias de stop loss y controlar las pérdidas individuales.
Indicadores de tecnología de la medida en combinación con otros indicadores de tecnología de la medida, como el indicador de precio de VRP.
Optimización automática de los parámetros mediante métodos de aprendizaje automático.
En general, la estrategia de cruce de líneas largas y cortas basada en el indicador de la oscilación del volumen de transacciones aprovecha al máximo las características de la inversión del volumen de transacciones, tiene un buen juicio y una buena detección en los inicios de la evolución de la tendencia. Al mismo tiempo, se combina con los altos y bajos anteriores para determinar la dirección específica y hacer que las decisiones de negociación sean más precisas.
/*backtest
start: 2022-12-05 00:00:00
end: 2023-03-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("SB_Volume_oscillator_Prev_high_low", overlay=true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
shortlen = input(5, minval=1)
longlen = input(10, minval=1)
short = ema(volume, shortlen)
long = ema(volume, longlen)
osc = 100 * (short - long) / long
//hline(0, title="Zero")
//plot(osc)
zero=input(0.0)
low_val=input(0.0)
high_val=input(0.0)
prev_high_val=input(0.0)
prev_low_val=input(0.0)
where=input(0)
where:=nz(where[1])
low_val:=nz(low_val[1])
high_val:=nz(high_val[1])
prev_high_val:=nz(prev_high_val[1])
prev_low_val:=nz(prev_low_val[1])
if(crossover(osc,zero))
high_val:=osc
where:=1
prev_low_val:=low_val
low_val:=osc
if(crossunder(osc,zero))
low_val:=osc
where:=-1
prev_high_val:=high_val
high_val:=osc
if(where==1)
if(high_val<osc)
high_val:=osc
if(where==-1)
if(low_val>osc)
low_val:=osc
if (crossover(osc,zero))
if(prev_high_val<=abs(prev_low_val))
strategy.entry("My Long Entry Id", strategy.long)
if(prev_high_val>abs(prev_low_val))
strategy.entry("My Short Entry Id", strategy.short)
if (crossunder(osc,zero))
if(prev_high_val<=abs(prev_low_val))
strategy.entry("My Long Entry Id", strategy.long)
if(prev_high_val>abs(prev_low_val))
strategy.entry("My Short Entry Id", strategy.short)