Estrategia de seguimiento de tendencias basada en el precio de cierre del día anterior y el indicador ATR


Fecha de creación: 2024-01-31 14:39:09 Última modificación: 2024-01-31 14:39:09
Copiar: 3 Número de Visitas: 676
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias basada en el precio de cierre del día anterior y el indicador ATR

Descripción general

Esta estrategia se basa en el precio de cierre del día anterior y en el indicador ATR para establecer el precio de apertura y el precio de cierre de la posición más vacío, para permitir el seguimiento de la tendencia. Cuando el precio rompe el precio de apertura de la posición, se abre más para hacer un descubierto, detener o liquidar la posición después de la parada.

Principio de estrategia

La estrategia utiliza los precios de cierre, máximo y mínimo del día anterior y el indicador ATR para calcular los precios de entrada y los precios de parada. La fórmula específica para calcular los precios es la siguiente:

Precio de apertura de posición múltiple TPup = precio de cierre del día anterior + ATR* 0.8 Precio de apertura de posición en blanco TPdown = precio de cierre del día anterior - ATR* 0.8

Slup del precio de parada múltiple = cierre del día anterior + ATR* 0.2 El precio de cierre en blanco es sldown = el precio de cierre del día anterior - ATR* 0.2

El precio de la parada múltiple de la ganancia = el precio mínimo del día anterior + ATR* 1.7
El precio de la parada en blanco profitleveldown = el precio más alto del día anterior - ATR* 1.7

Cuando el precio rompa el precio de apertura de posición TPup, haga más según el número de 10; cuando el precio rompa el precio de apertura de posición TPdown, haga vacío según el número de 10 .

Análisis de las ventajas

Las principales ventajas de esta estrategia son:

  1. El indicador ATR establece precios de apertura y de cierre de posición dinámicos que se pueden ajustar a la volatilidad del mercado para que las operaciones se adapten mejor al entorno del mercado.

  2. Utiliza el precio de cierre del día anterior para determinar la dirección, y luego combina el indicador ATR para determinar el precio de negociación específico, evitando ser engañado por los precios en tiempo real con demasiado ruido.

  3. Al mismo tiempo, los mecanismos de stop loss y stop-loss pueden ayudar a controlar el riesgo de una sola transacción.

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. Los precios establecidos por el indicador ATR pueden ser demasiado idealizados y no reflejar realmente la situación del mercado, lo que provoca un alto riesgo de pérdidas frecuentes. Se puede ajustar adecuadamente el parámetro ATR o aumentar el nivel de pérdidas.

  2. El cierre del día anterior no puede determinar la tendencia futura, y si se produce una reversión drástica, puede confundir la elección de la dirección de la operación. Se puede considerar la confirmación de tendencias en combinación con otros indicadores.

  3. La parada de pérdida y la posición de parada pueden ser manipuladas para evitar que se produzca una parada real. Se puede configurar la parada de pérdida por lotes de componentes para evitar que se bloquee.

Dirección de optimización

Esta estrategia puede ser optimizada en los siguientes aspectos:

  1. Optimización de los parámetros ATR para que los precios de las transacciones se ajusten mejor a la volatilidad del mercado.

  2. Aumentar el mecanismo de determinación de tendencias para evitar que el mercado cambie. Por ejemplo, los indicadores como la combinación de MA.

  3. Ajuste la amplitud de la parada de la ganancia para reducir la probabilidad de que se activen las ganancias de la ganancia al mismo tiempo que se mantiene la rentabilidad.

  4. Configuración de paradas y paradas por lotes de componentes para reducir la probabilidad de pérdidas y pérdidas

  5. Aumentar el mecanismo de gestión de posiciones para aumentar las posiciones en la fase de tendencia.

Resumir

Esta estrategia se basa en el precio de negociación del día anterior y en la dinámica establecida por el indicador ATR para lograr un seguimiento efectivo de la tendencia. Al mismo tiempo, establece mecanismos de stop loss y stop loss para controlar el riesgo de las operaciones individuales. Las direcciones de optimización incluyen optimización de parámetros, aumento de mecanismos de juicio, ajuste de stop loss y administración de posiciones, etc. En general, esta estrategia logra un mejor seguimiento de la tendencia.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("PC with ATR Strategy (by Zhipengcfel)", shorttitle="PC_ATR", pyramiding=1, overlay=true)

// Zhipengcfel's Previous day's close with ATR Strategy
//
// Version 1.0
// @copyright Idea by Zhipengcfel on June 29, 2017.

//Previous day's close plus ATR strategy. 
//Buy (if breaking PC+ATR*0.8) or sell (if breaking PC-0.8*ATR). 

//This is just a demo vision and can not be used for real auto trading



///////////// ATR value
ATRlength = input(14, minval=1, title="lookback length of ATR")
//ATR = atr(ATRlength)
ATR = request.security(syminfo.tickerid, 'D', atr(ATRlength))

///////////// Entry levels and target levels
entr = input(0.8, minval=0.1, step = 0.05, title="Entry level for ATR")
tplevel = input(1.7, minval=0.1, step = 0.05, title="Exit level for ATR")
yesterday = request.security(syminfo.tickerid, 'D', close[1])
dl = request.security(syminfo.tickerid, 'D', low[1])
dh = request.security(syminfo.tickerid, 'D', high[1])
TPup = yesterday+entr*ATR
TPdown = yesterday-entr*ATR
profitlevelup = dl+tplevel*ATR
profitleveldown = dh-tplevel*ATR

///////////// Stop loss level
sl = input( 0.2  ,minval=0.01, step = 0.05, title="Stop loss level for ATR") //82 for 2, 83 for 3 and more positions
slup = yesterday+sl*ATR
sldown = yesterday-sl*ATR

///////////// Starting year to backtest
yer = input( 2014  , title="Backtest Starting year")


///////////// strategy: PC + ATR
if (close > TPup) and (close < profitlevelup)
    strategy.entry("LONG", strategy.long, 10, comment="Buy", when = year > yer, oca_name="My oca")
    strategy.exit("Stopped", "LONG",  stop = slup, limit= profitlevelup, oca_name="My oca")
            

if (close < TPdown) and (close > profitleveldown)
    strategy.entry("SHORT", strategy.short, 10, comment="Sell", when = year > yer, oca_name="My oca")
    strategy.exit("Stopped", "SHORT", stop = sldown, limit= profitleveldown, oca_name="My oca")