Estrategia de tendencia bursátil de ruptura de volatilidad ATR de período dual


Fecha de creación: 2024-01-17 16:34:23 Última modificación: 2024-01-17 16:34:23
Copiar: 1 Número de Visitas: 728
1
Seguir
1617
Seguidores

Estrategia de tendencia bursátil de ruptura de volatilidad ATR de período dual

Esta estrategia permite el seguimiento de la tendencia de las acciones mediante el cálculo de la volatilidad del precio ATR, combinado con el promedio de VWAP de diferentes períodos, y el establecimiento de condiciones de entrada y salida de posiciones largas.

Descripción general de la estrategia

La estrategia se aplica principalmente para el seguimiento de tendencias de productos de tipo equitativo, mediante el cálculo de la volatilidad de ATR y la combinación de los precios VWAP de diferentes períodos, para establecer condiciones de compra y venta, para el juicio y seguimiento de la tendencia. La estrategia es más flexible, se puede cambiar entre la línea larga y la línea corta, para capturar la tendencia de la línea media y larga.

Principio de estrategia

La estrategia utiliza el indicador ATR para calcular la volatilidad de los precios, y en combinación con la dirección de la tendencia para determinar si los precios rompen el canal de la volatilidad. Al mismo tiempo, se introduce el precio VWAP de diferentes períodos para determinar la consistencia de la tendencia de las líneas largas y cortas. La lógica específica es la siguiente:

  1. El canal de fluctuación de ATR para calcular el precio
  2. Determina si el precio ha roto el canal de fluctuación
    1. La brecha en la vía fue juzgada como una tendencia.
    2. La tendencia a la baja se considera una tendencia a la baja.
  3. Introducción de los precios VWAP de las líneas circunferenciales y diarias
    1. Cuando el precio se desvía a través de la volatilidad, se genera una señal de posición larga si la línea diaria y la VWAP circular están por encima del precio
    2. Cuando el precio se desvía por debajo de la fluctuación, se genera una señal de vacío si la línea de sol y la línea de circunferencia VWAP están por debajo del precio

Esta es la lógica central de la estrategia. La volatilidad de la tasa ATR determina la tendencia a corto plazo, y el precio VWAP determina la tendencia a largo plazo, que se combinan para determinar la consistencia de la tendencia y generar una señal de negociación.

Ventajas estratégicas

  • La combinación de ATR y VWAP para determinar tendencias es más fiable
  • Parámetros de ciclo ATR configurables para ajustar la sensibilidad de la estrategia
  • Introducción de VWAP de diferentes períodos para determinar la consistencia de las tendencias largas y cortas
  • Cambio flexible entre líneas largas y cortas
  • Aplicación para el seguimiento de tendencias de líneas largas en acciones

Riesgo y optimización de la estrategia

  • Como estrategia de seguimiento de tendencias, se generan más operaciones en la fase de ajuste de la oscilación, con riesgo de deslizamiento
  • La configuración de los parámetros ATR y VWAP afecta el rendimiento de la estrategia y requiere pruebas de precaución en diferentes variedades
  • Se puede considerar la inclusión de un mecanismo de suspensión de pérdidas para controlar las pérdidas individuales
  • Se puede combinar con indicadores como la línea uniforme para filtrar las señales de entrada y reducir las transacciones innecesarias

Resumir

Esta estrategia permite el seguimiento de las tendencias de las acciones a través de la doble determinación de la volatilidad de ATR y VWAP. La estrategia tiene un gran espacio para optimizar, puede ajustar los parámetros o agregar señales de optimización de otros indicadores técnicos. En general, la lógica de la estrategia es clara y fácil de entender, tiene un rendimiento sólido y es adecuada para seguir las tendencias de la línea media y larga.

Código Fuente de la Estrategia
/*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)