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.
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.
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.
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.
Optimización de parámetros, como ajustar el parámetro del ciclo de EPVT para encontrar la combinación óptima de parámetros.
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.
Optimice las estrategias de stop loss, como establecer paradas de valor fijo o paradas ATR.
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 ///////////