A estratégia de tendência de volume de preços estendido (EPVT) é uma estratégia de combinação de indicadores técnicos.
O indicador central desta estratégia é a tendência do volume de preços estendido (EPVT). Seu método de cálculo é: volume de negociação acumulado * mudança de preço percentual. Em seguida, calcule os valores máximos e mínimos do EPVT durante um determinado período para obter o intervalo de referência. A curva do indicador EPVT é a curva de diferença entre o EPVT e esse intervalo de referência.
Quando a curva do indicador EPVT cruza acima do eixo zero, indica que a pressão de compra está a aumentar e aparece um sinal longo.
Para melhorar a qualidade do sinal, a estratégia também utiliza uma média móvel simples para confirmar a fiabilidade das alterações de tendência.
Esta estratégia combina indicadores de três dimensões: tendência, impulso e volume de negociação, que podem julgar de forma mais abrangente o sentimento e a intensidade do mercado.
Definir três níveis de take-profit para sair pode escolher diferentes rácios de lucro de acordo com a sua própria preferência de risco.
Esta estratégia baseia-se relativamente fortemente na morfologia das curvas de indicadores e emitirá falsos sinais quando a tendência for atípica.
Os parâmetros podem ser ajustados adequadamente ou outros indicadores de filtragem podem ser adicionados para otimizar.
Optimização de parâmetros, como ajustar o parâmetro do ciclo do EPVT para encontrar a combinação ideal de parâmetros.
Adicionar condições de filtragem da tendência, tais como julgar a direção do canal de preços ou a média móvel com base no sinal EPVT.
Optimize as estratégias de stop loss, como definir paradas de valor fixo ou paradas ATR.
A estratégia de tendência de volume de preço estendido de aceleração de impulso capta mudanças no sentimento do mercado através do indicador EPVT, aproveitando potenciais pontos de virada da tendência.
/*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 ///////////