Estratégia de tendência de volume de preço estendido de aceleração de momentum


Data de criação: 2024-01-18 16:32:28 última modificação: 2024-01-18 16:32:28
cópia: 2 Cliques: 556
1
focar em
1617
Seguidores

Estratégia de tendência de volume de preço estendido de aceleração de momentum

Visão geral

A estratégia de aceleração do volume de preços estendidos (EPVT) é uma estratégia de combinação de indicadores técnicos. Combina o indicador de aceleração do volume de preços com outros indicadores auxiliares para identificar potenciais pontos de reversão de tendência e momentos de mudança de dinâmica.

Princípio da estratégia

O indicador central da estratégia é a tendência de expansão dos preços (EPVT). A sua forma de cálculo é: volume de transação acumulado * oscilação dos preços. Em seguida, calcula-se o máximo e o mínimo de EPVT em um determinado período de tempo, obtendo a zona de referência. A curva do indicador EPVT é a curva de diferença entre o EPVT e a zona de referência.

Quando o indicador da curva do EPVT atravessa o eixo zero para cima, um sinal de aumento de pressão de compra é emitido. Por outro lado, quando o EPVT atravessa o eixo zero para baixo, um sinal de vazio é emitido.

Para melhorar a qualidade do sinal, a estratégia também auxiliou o uso de médias móveis simples para confirmar a confiabilidade da mudança de tendência.

Análise de vantagens

A estratégia combina indicadores de três dimensões de tendência, dinâmica e volume de transação, permitindo uma compreensão mais abrangente da vontade e intensidade de compra e venda do mercado. Usando o indicador de tendência de volume de expansão de preços, há uma boa identificação de tendências de excesso de volume em curto prazo, para capturar o ponto de viragem do mercado.

O sistema de três posições de suspensão para fora do campo permite que você escolha uma proporção de suspensão diferente de acordo com suas preferências de risco.

Análise de Riscos

A estratégia é mais dependente da característica morfológica da curva do indicador, emitindo sinais errados quando o movimento não é típico. Além disso, situações como a reversão de três barras também podem levar a uma abertura de posição desnecessária.

Os parâmetros podem ser ajustados de forma apropriada, ou adicionar outros indicadores de fluxo para otimizar. A estratégia de parada de perda também pode reduzir a perda única.

Direção de otimização

  1. Optimização de parâmetros. Por exemplo, ajustar os parâmetros do ciclo EPVT para encontrar a melhor combinação de parâmetros.

  2. Aumentar as condições de filtragem de tendência. Por exemplo, baseando-se nos sinais EPVT para determinar a direção do canal de preço ou da linha média.

  3. Optimizar estratégias de stop loss, como a configuração de stop loss de valor fixo ou stop loss ATR.

Resumir

A estratégia de expansão de tendências de preços de aceleração de impulso, explorando mudanças na vontade de compra e venda do mercado por meio do indicador EPVT, para capturar possíveis pontos de mudança de tendência. A configuração de três saídas de parada em diferentes proporções pode atender às diferentes preferências de risco dos investidores.

Código-fonte da estratégia
/*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 ///////////