Estrategia ampliada de tendencia del volumen de precios

El autor:¿ Qué pasa?, Fecha: 2024-01-18 16:32:28
Las etiquetas:

img

Resumen general

La estrategia de tendencia de volumen de precios extendido (EPVT) es una estrategia de combinación de indicadores técnicos. Combina el indicador de aceleración de impulso con otros indicadores auxiliares para identificar posibles puntos de inversión de tendencia y cambios en el impulso.

Principio de la estrategia

El indicador central de esta estrategia es la tendencia del volumen de precios extendido (EPVT). Su método de cálculo es: volumen de operaciones acumulado * cambio de precio porcentual. Luego, calcular los valores máximos y mínimos de EPVT durante un cierto período para obtener el rango de referencia. La curva del indicador EPVT es la curva de diferencia entre EPVT y este rango de referencia.

Cuando la curva del indicador EPVT cruza por encima del eje cero, indica que la presión de compra está aumentando y aparece una señal larga.

Para mejorar la calidad de la señal, la estrategia también utiliza una media móvil simple para confirmar la fiabilidad de los cambios de tendencia.

Análisis de ventajas

Esta estrategia combina indicadores de tres dimensiones: tendencia, impulso y volumen de negociación, que pueden juzgar de manera más completa el sentimiento e intensidad del mercado.

Establecer tres niveles de ganancia para salir puede elegir diferentes ratios de ganancia de acuerdo con su propia preferencia de riesgo.

Análisis de riesgos

Esta estrategia se basa en gran medida en la morfología de las curvas de indicadores y emitirá señales falsas cuando la tendencia es atípica.

Los parámetros se pueden ajustar adecuadamente o se pueden agregar otros indicadores de filtrado para optimizar.

Dirección de optimización

  1. Optimización de parámetros, como ajustar el parámetro del ciclo de EPVT para encontrar la combinación óptima de parámetros.

  2. Añadir condiciones de filtrado de tendencia, como juzgar la dirección del canal de precios o la media móvil en función de la señal EPVT.

  3. Optimice las estrategias de stop loss, como establecer paradas de valor fijo o paradas ATR.

Resumen de las actividades

La estrategia de tendencia de volumen de precios ampliado de aceleración de impulso captura cambios en el sentimiento del mercado a través del indicador EPVT, aprovechando los posibles puntos de inflexión de la tendencia.


/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Extended Price Volume Trend", overlay=true )//@version=5
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
    runtime.error("No volume is provided by the data vendor.")
src = close
lenght = input(200,"Trend Lenght")   
vt = ta.cum(ta.change(src)/src[1]*volume)
upx = ta.highest(vt,lenght)
downx = ta.lowest(vt,lenght)
basex = (upx +downx)/2
VTX = vt - basex
VTY = ta.valuewhen(ta.cross(VTX,0),close,0)
plot(VTY, color=color.black, title="Extended-PVT")

/////////////////////// STRATEGY ////////////////
/////////////////////// TAKE PROFIT SECTION ////////////////
longConditionx = ta.crossover(close,VTY)
ShortConditionx = ta.crossunder(close,VTY)
tp1 = input.int(10, minval=1,title = "TP-1")
tp2 = input.int(20, minval=1,title = "TP-2")
tp3 = input.int(30, minval=1,title = "TP-3")

ematp = ta.ema(close,2)
TPTAKA1S = VTY*(1-tp1/100)
plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1)
TPTAKA2S = VTY*(1-tp2/100)
plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1)
TPTAKA3S = VTY*(1-tp3/100)
plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1)

TPTAKA1B = VTY*(1+tp1/100)
plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1)
TPTAKA2B = VTY*(1+tp2/100)
plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1)
TPTAKA3B = VTY*(1+tp3/100)
plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1)

BUYTP = ta.crossunder(close,VTY) or ta.crossunder(ematp,TPTAKA1B) or ta.crossunder(ematp,TPTAKA2B) or ta.crossunder(ematp,TPTAKA3B) 
SELLTP = ta.crossover(close,VTY) or ta.crossover(ematp,TPTAKA1S) or ta.crossover(ematp,TPTAKA2S) or ta.crossover(ematp,TPTAKA3S)
/////////////////////// STRATEGY ////////////////
// Check for Long Entry
longCondition = longConditionx==true
if longCondition
    strategy.entry('Long', strategy.long, comment = "ENTER-LONG")

buyclose = ShortConditionx==true or BUYTP==true 
// Exit condition 
strategy.close('Long', when=buyclose or BUYTP==true, comment = "EXIT-LONG")

// Check for Short Entry
ShortCondition = ShortConditionx==true
if ShortCondition
    strategy.entry('Short', strategy.short, comment = "ENTER-SHORT")

sellclose = longConditionx==true or SELLTP ==true
// Exit condition 
strategy.close('Short', when=sellclose or SELLTP==true, comment = "EXIT-SHORT")
///// END OF STRATEGY ///////////


Más.