Estratégia de média móvel ATR e T3

Autora:ChaoZhang, Data: 2023-09-17 18:30:48
Tags:

Resumo

Esta estratégia combina a ATR e a média móvel T3 para determinação e rastreamento da tendência. A ATR forma canais de preços para julgar a direção geral da tendência. A média móvel T3 fornece sinais de entrada e pontos de saída de stop loss. A estratégia é adequada para seguidores da tendência que buscam lucros constantes.

Estratégia lógica

  1. A ATR forma canais de preços, a direção do canal determina a tendência principal.

  2. A média móvel T3 ajuda a determinar o momento específico de entrada, comprando na linha de quebra de preços T3.

  3. A quebra do preço abaixo da faixa inferior desencadeia a saída de stop loss; a quebra acima da faixa superior leva ao lucro.

  4. Opções para negociação de longo prazo ou bidireccional.

  5. Optimização de parâmetros combinada com a natureza do indicador para encontrar configurações ideais.

Análise das vantagens

  1. Os canais ATR dão uma identificação clara da tendência e da direção.

  2. Parâmetros T3 ajustáveis para a captação de tendências em diferentes níveis.

  3. Regras consistentes de stop loss e take profit evitam saídas arbitrárias.

  4. A baixa frequência de negociação é adequada a estratégias de detenção de longo prazo.

Análise de riscos

  1. A divergência do indicador pode causar trocas erradas.

  2. Não considerar os padrões individuais de volatilidade das ações corre o risco de excesso de ajustamento.

  3. A baixa frequência de negociação corre o risco de oportunidades perdidas e potencial de lucro limitado.

  4. A detenção de posições pesadas traz riscos de deslizamento no final do dia.

Orientações de otimização

  1. Adicionar outros indicadores para garantir a validade das transacções.

  2. O ajuste de parâmetros para diferentes produtos melhora a adaptabilidade.

  3. Otimizar o dimensionamento das posições para equilibrar a frequência e o risco.

  4. Considere a parada de perda dinâmica e a tomada de lucro para expandir a sala de lucro.

  5. Adicionar FILTROS a nível estratégico para melhorar a robustez.

Resumo

A estratégia integra a média móvel ATR e T3 para rastreamento de tendências simples e eficaz.


/*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)



Mais.