Estrategia de la media móvil ATR y T3

El autor:¿ Qué pasa?, Fecha: 2023-09-17 18:30:48
Las etiquetas:

Resumen general

Esta estrategia combina ATR y T3 promedio móvil para la determinación y seguimiento de la tendencia. ATR forma canales de precios para juzgar la dirección general de la tendencia.

Estrategia lógica

  1. ATR forma canales de precios, la dirección del canal determina la tendencia principal.

  2. La media móvil T3 ayuda a determinar el momento de entrada específico, comprando en la línea de ruptura de precios T3.

  3. La ruptura del precio por debajo de la banda inferior desencadena la salida de stop loss; la ruptura por encima de la banda superior lleva ganancias.

  4. Opciones de negociación solo a largo plazo o bidireccional.

  5. Optimización de parámetros combinada con la naturaleza del indicador para encontrar ajustes óptimos.

Análisis de ventajas

  1. Los canales ATR dan una clara identificación de tendencia y dirección.

  2. Parámetros T3 ajustables para capturar las tendencias en diferentes niveles.

  3. Las reglas consistentes de stop loss y take profit evitan las salidas arbitrarias.

  4. La baja frecuencia de negociación es adecuada para estrategias de tenencia a largo plazo.

Análisis de riesgos

  1. La divergencia de los indicadores puede causar operaciones incorrectas.

  2. No tener en cuenta los patrones de volatilidad de las acciones individuales es un riesgo de sobreajuste.

  3. La baja frecuencia de las operaciones entraña riesgos de pérdida de oportunidades y potencial de ganancia limitado.

  4. La tenencia de posiciones pesadas conlleva riesgos de deslizamiento al final del día.

Direcciones de optimización

  1. Añadir otros indicadores para garantizar la validez de las operaciones.

  2. El ajuste de parámetros para diferentes productos mejora la adaptabilidad.

  3. Optimizar el tamaño de las posiciones para equilibrar la frecuencia y el riesgo.

  4. Considere el stop loss dinámico y la toma de ganancias para ampliar el espacio de ganancias.

  5. Añadir filtros a nivel de estrategia para mejorar la robustez.

Resumen de las actividades

La estrategia integra la media móvil ATR y T3 para un seguimiento de tendencias simple y efectivo.


/*backtest
start: 2023-09-09 00:00:00
end: 2023-09-16 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Author - CryptoJoncis
strategy("ATR and T3 strategy", shorttitle="AT3S_CryptoJoncis", overlay=true)

shorting = input(false, title="shorts on?")
precentage_diff = input(5,title="Precantage")/100
Lengthx = input(25, title="Lenght of T3")

//For best results use 0.7 or 0.618
Vfactx = input(0.72, minval=0.01,step=0.01, title="Volume Factor of T3 with HA source")

Source_of_T3_Normal = close
Source_of_T3 =  Source_of_T3_Normal 
FirstEMAx = ema(Source_of_T3, Lengthx)
SecondEMAx = ema(FirstEMAx, Lengthx)
ThirdEMAx = ema(SecondEMAx, Lengthx)
FourthEMAx = ema(ThirdEMAx, Lengthx)
FifthEMAx = ema(FourthEMAx, Lengthx)
SixthEMAx = ema(FifthEMAx, Lengthx)

//Doing all the calculations which are from 
c1x = -Vfactx*Vfactx*Vfactx
c2x = 3*Vfactx*Vfactx + 3*Vfactx*Vfactx*Vfactx
c3x = -6*Vfactx*Vfactx -3*Vfactx -3*Vfactx*Vfactx*Vfactx
c4x = 1 + 3*Vfactx + Vfactx*Vfactx*Vfactx + 3*Vfactx*Vfactx

//Assigning EMAS to T3 Moving average
T3MAx = c1x * SixthEMAx + c2x * FifthEMAx + c3x * FourthEMAx + c4x * ThirdEMAx

color_of_Tilson_Moving_Average = T3MAx > T3MAx[1] ? lime : red
plot(T3MAx, title="Tilson Moving Average(ema)", color=color_of_Tilson_Moving_Average)

t_up = T3MAx + (T3MAx * precentage_diff)
t_dn = T3MAx - (T3MAx * precentage_diff)

x=plot(t_up, color=color_of_Tilson_Moving_Average)
z=plot(t_dn, color=color_of_Tilson_Moving_Average)
fill(x,z, color= T3MAx[1] < T3MAx ? lime : gray)

Factor=input(5, minval=1)
Pd=input(5, minval=1)
//

Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))


TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

linecolor = Trend == 1 ? green : red
//
b=plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "")

Factor1=input(1, minval=1)
Pd1=input(1, minval=1)
//

Up1=hl2-(Factor1*atr(Pd1))
Dn1=hl2+(Factor1*atr(Pd1))


TrendUp1=close[1]>TrendUp1[1]? max(Up1,TrendUp1[1]) : Up1
TrendDown1=close[1]<TrendDown1[1]? min(Dn1,TrendDown1[1]) : Dn1

Trend1 = close > TrendDown1[1] ? 1: close< TrendUp1[1]? -1: nz(Trend1[1],1)
Tsl1 = Trend1==1? TrendUp1: TrendDown1

linecolor1 = Trend1 == 1 ? green : red
//
a=plot(Tsl1, color = linecolor1 , style = line , linewidth = 2,title = "")

long = (close > Tsl and close > Tsl1 and close > T3MAx)

short = (close < Tsl and close < Tsl1 and close < T3MAx)

if(shorting==true)
    strategy.entry("MacdSE", strategy.short, comment="Open Short", when=short)
    strategy.entry("MacdLE", strategy.long, comment="Open Long", when=long)
    strategy.close("MacdLE", when=hl2 < t_dn)
    strategy.close("MacdSE", when=hl2 > t_up)
if(shorting==false)
    strategy.entry("MacdLE", strategy.long, comment="Open Long", when=long)
    strategy.close("MacdLE", when=hl2 < t_dn)
fill(a,b,color=linecolor)



Más.