
Esta estrategia utiliza el indicador MACD de OBV para determinar la tendencia y el punto de inflexión de la potencia de OBV para impulsar la decisión de negociación. Su idea básica es que la figura de la columna MACD de OBV genere una señal de compra cuando se rompe el eje 0 de la zona negativa y se ingresa en la zona positiva; y una señal de venta cuando se cae el eje 0 de la zona positiva y se ingresa en la zona negativa.
El indicador central de esta estrategia es el indicador MACD de OBV. El indicador OBV puede reflejar la tendencia de la energía cuantitativa de las acciones, que determina si la energía ascendente se ha fortalecido o debilitado mediante la estadística de la dirección de los cambios en el precio de cierre y la relación entre los cambios en el volumen de transacción durante un período de tiempo. El indicador MACD puede mostrar el diferencial entre las diferentes líneas medias y reflejar la dinámica de los cambios en los precios.
Concretamente, esta estrategia primero calcula el indicador OBV, que calcula la línea de energía OBV por medio de la relación entre la dirección del cambio de precio de cierre y el volumen de transacciones durante un período de tiempo. Luego, calcula su indicador MACD sobre la base de la línea de energía OBV, que incluye la línea MACD, la línea de señal y el gráfico de columnas de histogramas.
De esta manera, se puede mejorar la precisión de las decisiones de negociación mediante el MACD que muestra intuitivamente las características de la potencia de OBV, se puede juzgar la tendencia de cambio de la potencia, y se puede emitir una señal de negociación con una ruptura del MACD.
Esta estrategia, combinada con el análisis cuantitativo de la energía OBV y el indicador de la dinámica MACD, permite determinar con mayor precisión el cambio de la energía en la contrapartida y el movimiento de los precios, y puede filtrar eficazmente las señales ALSE. Las ventajas específicas son:
La estrategia también tiene algunos riesgos, que se centran en los siguientes aspectos:
Los siguientes pasos pueden ser tomados para contrarrestar estos riesgos:
La estrategia tiene espacio para una mayor optimización, principalmente en lo que se refiere a:
La estrategia puede convertirse en una estrategia de comercio cuantitativo estable y eficiente a través de pruebas y optimizaciones continuas.
Esta estrategia es una estrategia cuantitativa típica que combina análisis cuantitativo y indicadores dinámicos para determinar la tendencia de los precios y emitir señales de negociación. Puede identificar claramente los puntos de inflexión de las fluctuaciones de precios, las señales de negociación son más confiables y, si los parámetros se establecen de manera razonable, se puede obtener un mejor efecto de la estrategia.
/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "MACD of OBV", overlay = false)
//////////////////////// OBV ///////////////////////////
src = close
obv = cum(change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume)
//////////////////////// OBV //////////////////////////
//////////////// MACD OF OBV ////////////////////////////
sourcemacd = obv
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)
fastMA = ema(sourcemacd, fastLength)
slowMA = ema(sourcemacd, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
delta=macd-signal
swap1 = delta>0?green:red
plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20)
p1 = plot(macd,color=blue,title='MACD Line')
p2 = plot(signal,color=red,title='Signal')
fill(p1, p2, color=blue)
hline(0)
/////////////////////////MACD OF OBV //////////////////////////
// Conditions
longCond = na
sellCond = na
longCond := crossover(delta,0)
sellCond := crossunder(delta,0)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( longCond )
strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")
else
strategy.cancel(id="BUY")
if ( sellCond )
strategy.close("BUY")