
A estratégia de acompanhamento de tendências de média móvel usa uma combinação de média móvel simples e média móvel rápida para determinar a direção da tendência do mercado e, em seguida, produz um sinal de negociação. Quando o preço sobe através da média móvel simples e da média móvel rápida, faz mais e quando o preço desce através da média móvel simples e da média móvel rápida, faz zero.
A estratégia usa a função sma para calcular uma média móvel simples de 50 ciclos de comprimento sma, bem como uma média móvel rápida fsma. A fsma é calculada com base na sma somada a 6 vezes a diferença padrão de n ciclos de preço.
A estratégia usa duas variáveis booleanas long e short para registrar a posição de alta e baixa. Quando o preço sobe através de sma e fsma, long é definido como 1, fazendo alta; quando o preço baixa, long é definido como -1, equilibra. As variáveis short também usam uma lógica semelhante para lidar com a posição de baixa.
A estratégia usa uma variável de tendência para registrar os julgamentos de tendência. Quando o preço está acima da fsma e da sma, a tendência é 1, indicando uma tendência ascendente; quando o preço está abaixo da fsma e da sma, a tendência é -1, indicando uma tendência descendente.
De acordo com o julgamento em tempo real da tendência, gera sinais de negociação longos e curtos. Quando a tendência muda de baixa para alta, se o preço estiver acima da fsma, faça mais; Quando a tendência muda de alta para baixa, se o preço estiver abaixo da sma, faça um vazio.
A análise da estratégia contempla métodos de discernimento de tendências e de ruptura de transações que permitem capturar de forma eficaz as oportunidades de negociação decorrentes de uma mudança de tendência.
Usando o modelo de confirmação dupla, duas médias móveis podem ser detectadas ao mesmo tempo, o que permite filtrar eficazmente as falsas rupturas.
A combinação de discernimento de tendências e negociações de ruptura permite a captura de oportunidades em pontos de mudança de tendências.
Teste e otimização sem retrocesso, todos os sinais de negociação são gerados em tempo real, sem curva de ajuste.
A lógica da estratégia é simples e clara, fácil de entender e modificar.
Os parâmetros de configuração de visualização, o período de duração, o número de vezes, etc. podem ser ajustados de acordo com o mercado.
A estratégia de dupla linha de equilíbrio é propensa a transações frequentes e perda de reversão.
O afeto de atraso da própria média móvel pode ter perdido a mudança de tendência.
A falta de um mecanismo de prevenção de perdas não permite controlar as perdas individuais.
Parâmetros inadequados podem levar a transações muito frequentes ou muito atrasadas.
Para os riscos 1 e 2, pode-se prolongar adequadamente o ciclo de linha média e adicionar um stop loss de retração.
Para o risco 3, pode-se definir um stop loss percentual ou um stop loss suspenso.
Para o risco 4, os parâmetros devem ser ajustados para diferentes mercados, evitando um único parâmetro fixo.
Aumentar as condições de filtragem de tendências, usando indicadores de confirmação de tendências como MACD, DMI e outros.
O KD, o RSI e outros indicadores são usados para entrar em ações em caso de sobrecompra e sobrevenda.
Aumentar os mecanismos de stop loss global, como stop loss de rastreamento, stop loss de porcentagem, etc.
Adição de módulos de gerenciamento de posição, como o ajuste dinâmico do tamanho da posição.
Optimizar a configuração dos parâmetros para que eles se adaptem mais eficazmente a diferentes ciclos de eventos.
Adição de módulos de aprendizado de máquina para otimização automática de parâmetros usando tecnologia de IA.
Construir estratégias complexas e usar outros indicadores para evitar falhas.
A tecnologia de aprendizagem profunda é usada para identificar padrões de tendências mais complexos.
A estratégia de acompanhamento de tendências de média móvel é uma estratégia de acompanhamento de tendências mais simples. Utiliza uma combinação de linha média rápida e lenta para auxiliar na determinação da direção da tendência, fazendo mudanças de tendência em pontos de mudança de tendência, e pode efetivamente capturar a mudança da tendência de preço. Mas a estratégia também tem alguns problemas, como risco de negociação freqüente, atraso, etc. A direção de otimização futura inclui o aumento de filtros de tendência, módulo de parada de perda, parâmetros de ajuste dinâmico, etc.
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SMA STRATEGY", shorttitle="SMA TREND", overlay=true, calc_on_order_fills=true)
length = input(title="Length", type=input.integer, defval=50)
src_=input(close, title="Source", type=input.source)
mult=input(6.0, title="Mult")
barc=input(true, title="Use barcolor?")
plots=input(false, title="Show plots?")
tri=input(false, title="Use triangles?")
r(src, n)=>
s = 0.0
for i = 0 to n-1
s := s + ((n-(i*2+1))/2)*src[i]
x=s/(n*(n+1))
x
l=sma(low, length)
h=sma(high, length)
lr= l+mult*r(low, length)
hr= h+mult*r(high, length)
trend=0
trend:=src_ > lr and src_ > hr ? 1 : src_ < lr and src_ < hr ? -1 : trend[1]
strategy.close("Long", when=trend==-1)
strategy.close("Short", when=trend==1)
strategy.entry("Long", strategy.long, when=trend==1 and src_>h)
strategy.entry("Short", strategy.short, when=trend==-1 and src_<l)
long=0
short=0
long:= trend==1 and src_>h ? 1 : trend==-1 ? -1 : long[1]
short:= trend==-1 and src_<l ? 1 : trend==1 ? -1 : short[1]
barcolor(barc? (long>0? color.green : short>0? color.red : trend>0? color.orange: trend<0 ? color.white : color.blue) : na)
plotshape(tri? close : na, style= shape.diamond, color= long>0? color.green : short>0? color.red : trend>0? color.orange: trend<0 ? color.white : color.blue, location=location.top)
//shortenter=
a1=plot(plots? l : na, color=color.blue, linewidth=1)
//longenter=
a2=plot(plots? h : na, color=color.blue, linewidth=1)
fill(a1, a2, color=color.blue)
//stopshort=
b1=plot(plots? hr : na, color=color.navy, linewidth=1)
//stoplong=
b2=plot(plots? lr : na, color=color.navy, linewidth=1)
fill(b1, b2, color=color.navy)