Estratégia de tendência de ações de ruptura de volatilidade ATR de período duplo


Data de criação: 2024-01-17 16:34:23 última modificação: 2024-01-17 16:34:23
cópia: 1 Cliques: 728
1
focar em
1617
Seguidores

Estratégia de tendência de ações de ruptura de volatilidade ATR de período duplo

Esta estratégia permite o acompanhamento da tendência das ações através da computação da volatilidade do preço ATR, combinando o preço médio VWAP de diferentes períodos, definindo as condições de entrada e saída de posições longas.

Visão geral da estratégia

A estratégia é aplicada principalmente para o rastreamento de tendências de produtos de ações, através da computação da volatilidade do ATR e do preço VWAP em combinação com diferentes períodos, para definir condições de compra e venda, para julgar e acompanhar a tendência. A estratégia é mais flexível, pode ser alternada entre a linha longa e a linha curta, e é adequada para capturar a tendência da linha longa e média.

Princípio da estratégia

A estratégia usa o indicador ATR para calcular a volatilidade dos preços e, em combinação com a direção da tendência, determina se os preços quebraram o canal de volatilidade. Ao mesmo tempo, introduz o preço VWAP de diferentes períodos para determinar a consistência das tendências de linha curta e longa. A lógica específica é a seguinte:

  1. Canal de flutuação do ATR para calcular o preço
  2. Determine se o preço quebrou o canal de flutuação
    1. O que é que o governo está a fazer?
    2. A tendência de queda é considerada pessimista.
  3. Introdução dos preços de VWAP de circunferência e diária
    1. Quando os preços se movem para cima, um sinal de posição longa é gerado se a linha do dia e a linha do círculo VWAP estiverem acima do preço
    2. Quando os preços se desviam da trajectória de volatilidade, um sinal de vazio é gerado se a linha do dia e a VWAP circular estiverem abaixo do preço

A lógica central da estratégia é a seguinte: a taxa de flutuação do ATR determina a tendência de curto prazo, o preço do VWAP determina a tendência de longo prazo, ambos combinados para determinar a consistência da tendência, resultando em um sinal de negociação.

Vantagens estratégicas

  • A combinação do ATR e do VWAP é mais confiável para avaliar tendências
  • Parâmetros de ciclo ATR configuráveis para ajustar a sensibilidade da política
  • Introdução de VWAP de diferentes períodos para determinar a consistência das tendências de linha curta e longa
  • Flexível para alternar entre longas e curtas linhas
  • Aplica-se a tendências de longo prazo em ações

Risco e otimização estratégica

  • Como uma estratégia de acompanhamento de tendências, mais transações são feitas durante a fase de ajuste de choque, o que traz risco de deslizamento
  • A configuração dos parâmetros ATR e VWAP pode afetar o desempenho da estratégia e requer testes cuidadosos em diferentes variedades
  • Pode ser considerada a inclusão de um mecanismo de suspensão de perdas para controlar perdas individuais
  • Indicadores como a linha de equilíbrio podem ser incorporados para filtrar os sinais de entrada, reduzindo transações desnecessárias

Resumir

Esta estratégia através da taxa de ATR de flutuação e VWAP julgamento duplo, para realizar o acompanhamento de tendências de ações. A estratégia de otimização de espaço é maior, pode ajustar parâmetros ou adicionar outros indicadores técnicos sinais de otimização.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
strategy(title="VWAP MTF STOCK STRATEGY", overlay=true )

// high^2 / 2 - low^2 -2

h=pow(high,2) / 2
l=pow(low,2) / 2

o=pow(open,2) /2
c=pow(close,2) /2


x=(h+l+o+c) / 4
y= sqrt(x)

source = y
useTrueRange = false
length = input(27, minval=1)
mult = input(0, step=0.1)
ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult
crossUpper = crossover(source, upper)
crossLower = crossunder(source, lower)
bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])
sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1])
crossBcond = false
crossBcond := crossUpper ? true
     : na(crossBcond[1]) ? false : crossBcond[1]
crossScond = false
crossScond := crossLower ? true
     : na(crossScond[1]) ? false : crossScond[1]
cancelBcond = crossBcond and (source < ma or high >= bprice )
cancelScond = crossScond and (source > ma or low <= sprice )

longOnly = true

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

srcX = input(ohlc4)
t = time("W")
start = na(t[1]) or t > t[1]

sumSrc = srcX * volume
sumVol = volume
sumSrc := start ? sumSrc : sumSrc + sumSrc[1]
sumVol := start ? sumVol : sumVol + sumVol[1]

vwapW= sumSrc / sumVol

 
//crossUpper = crossover(source, upper)
//crossLower = crossunder(source, lower)
shortCondition = close < vwap and time_cond and (close < vwapW)
longCondition = close > vwap and time_cond and (close > vwapW)

 


if(longOnly and time_cond)
    if (crossLower and close < vwapW )
        strategy.close("long")
    if (crossUpper and close>vwapW)
        strategy.entry("long", strategy.long, stop=bprice)