Estratégia de acompanhamento de tendência de média móvel gradual


Data de criação: 2023-10-26 17:08:43 última modificação: 2023-10-26 17:08:43
cópia: 0 Cliques: 666
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendência de média móvel gradual

Visão geral

A estratégia de acompanhamento de tendências de linha média de variação gradual usa várias médias móveis de diferentes períodos para capturar as mudanças de tendência nos preços, auxiliadas por indicadores de oscilador para determinar áreas de sobrevenda e sobrevenda, para alcançar estratégias de negociação de acompanhamento de tendências de baixa e alta venda. A estratégia é aplicável a posições de linha média e longa, para acompanhar tendências mais evidentes.

Princípio da estratégia

A estratégia usa um conjunto de médias móveis de 18 períodos, 26 períodos e 36 períodos para capturar a tendência dos preços. Quando a média de curto prazo cruza a média de longo prazo, considere-se em uma tendência ascendente, faça mais; Quando a média de curto prazo cruza a média de longo prazo, considere-se em uma tendência decrescente, faça um espaço.

Ao mesmo tempo, a estratégia também usa indicadores de osciladores como MACD, RSI e EFI para determinar áreas de sobrevenda e sobrevenda. Por exemplo, a linha de coluna do MACD é mais positiva do que negativa, e fica vazia do que positiva; o RSI fica vazio quando o alto retorna e fica mais quando o baixo retorna; O indicador EFI é menor do que 0 e maior do que 0 e fica vazio.

Regras de entrada:

Múltiplos: Múltiplos em curto e médio AND MACD>0 AND RSI baixa retomada AND EFI<0

Blank: curto abaixo da linha média e longo abaixo da linha média AND MACD <0 AND RSI retorno alto AND EFI> 0

Regras de Stop Loss:

Stop loss múltipla: o indicador EFI é maior do que o depreciado e o preço é abaixo da linha média designada

Stop loss: índice EFI menor que o depreciado e preço quebrando a média designada

Vantagens estratégicas

  1. A robustez e a anti-fragilidade são características-chave que ajudam a garantir a resiliência ao longo do tempo para capturar os principais pontos de mudança de tendência.

  2. Os indicadores combinados de oscilantes são usados para determinar as áreas de sobrevenda e sobrecompra, evitando a busca de alta e baixa.

  3. As regras de parada de prejuízos levam em consideração as tendências e os fluxos de capital e controlam os riscos de forma eficaz.

  4. Os parâmetros da estratégia foram testados e otimizados repetidamente para adaptar-se à maioria dos cenários.

  5. A frequência de operação é moderada, os sinais de negociação são mais estáveis, permitindo o rastreamento de tendências de longo prazo.

Análise de Riscos

  1. A queda brusca causada por um evento inesperado pode levar ao efeito de suspensão de perdas, e a margem de suspensão de perdas deve ser aumentada de forma apropriada.

  2. A frequência de negociação pode ser excessiva em situações de turbulência, e os parâmetros devem ser adequadamente ajustados para reduzir a frequência de negociação.

  3. O excesso de tempo de posse pode levar à expansão dos prejuízos, e deve ser apropriadamente reduzido o ciclo de linha média, e o prejuízo deve ser interrompido em tempo hábil.

  4. O risco de adaptação foi detectado e os efeitos reais devem ser testados.

Direção de otimização

  1. Optimizar a frequência de negociação e o lucro para encontrar a melhor combinação de parâmetros.

  2. Adicionar algoritmos de aprendizagem de máquina, parâmetros de otimização dinâmica e adaptação às mudanças do mercado.

  3. Aumentar o mecanismo de suspensão de perda adaptável, usando diferentes níveis de perda em diferentes situações.

  4. A combinação de mais indicadores para determinar o momento de entrada, aumenta a estabilidade da estratégia.

  5. Aumentar a estratégia de gestão de fundos, controlar o tamanho de cada posição e gerenciar o risco global.

Resumir

A estratégia de acompanhamento de tendências de linha de equilíbrio gradual, que julga a direção da tendência com múltiplas linhas de equilíbrio, combinada com o filtro do indicador para entrar no momento, pode acompanhar efetivamente a tendência maior e alcançar o objetivo de manter um lucro estável na linha longa. A estratégia já tem uma certa estabilidade através da otimização de parâmetros, mas ainda precisa aperfeiçoar o controle de risco e o mecanismo de adaptação, reduzir o recuo e melhorar a taxa de vitória.

Código-fonte da estratégia
/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 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/
// © murdocksilva

//@version=5

strategy("Daily_Mid Term_Consulting BOLT")

//calculo longuitud
longuitud = input(58, title= "longitud_sma")


px = ta.sma(close, 1)
px2 = ta.sma(low, 1)

Length1 = input.int(18)
Length2 = input.int(18)
Length3 = input.int(26)
Length4 = input.int(36)
Length5 = input.int(78)
Length6 = input.int(1)
Length7 = input.int(1500)
Length8 = input.int(58)
Length9 = input.int(3000)
Length10 = input.int(2)
Length11 = input.int(14)
ma1 = ta.sma(low, Length1)
ma2 = ta.sma(high, Length2)
ma3 = ta.sma(close, Length3)
ma4 = ta.sma(close, Length4)
ma5 = ta.sma(close, Length5)
ma6 = ta.sma(close, Length6)
ma7 = ta.sma(close, Length7)
ma8 = ta.sma(close, Length8)
ma9 = ta.sma(close, Length9)
ma10 = ta.sma(close, Length10)
ma11 = ta.sma(close, Length11)

// calculo EFI
efi = (close[1]-close) * volume / 1000
efi_indicador = (efi[1] + efi) / 2

//Variable  RSI - calculo desv estandar
b = (px-ma10)*(px-ma10)
b2 = (px[1]-ma10[1])*(px[1]-ma10[1])
c = b + b2
c2 = c / 2
desv = math.sqrt(c2)/10

//calculo MACD
macd = ma4 - ma5

//calculo RSI
rsi = ta.rsi(close, 9)

// calculo Divergencia
ma = ta.sma(close, longuitud)
dist = close - ma
porcentaje = dist * 100 / close
ma_dista = ta.sma(porcentaje, 333)

//condición de entrada y salida long
long = ma1[1] < ma1 and ma2[1] < ma2 and macd > 0 and px > ma3 and efi_indicador < 9 and px > ma7 and macd[1] < macd
clong = efi_indicador > 22000 and px < ma8
strategy.entry("BUY", strategy.long, when = long)
strategy.close("BUY", when = clong)

//condición de entrada y salida short
short = ma1[1] > ma1 and ma2[1] > ma2 and macd < 0 and px < ma3 and efi_indicador > 9 and macd[1] > macd 
cshort =  efi_indicador < 14000 and px > ma8 and ma11 > desv
strategy.entry("SELL", strategy.short, when = short)
strategy.close("SELL", when = cshort)

//SL Y TP
//strategy.exit("long exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick)
//strategy.exit("shot exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick)

// GRAFICA smas
plot(ma1, color=color.new(color.orange, 0))
plot(ma2, color=color.new(color.orange, 0))
plot(ma3, color=color.new(color.orange, 0))
plot(ma4, color=color.new(color.orange, 0))
plot(ma5, color=color.new(color.orange, 0))
plot(ma6, color=color.new(color.green, 0))
plot(ma7, color=color.new(color.orange, 0))
plot(ma8, color=color.new(color.orange, 0))
plot(ma9, color=color.new(color.orange, 0))
//GRAFICA MACD
plot(macd, color=color.new(color.red, 0), style = plot.style_columns)
//GRAFICA DIVERGENCIA
plot(porcentaje, style = plot.style_columns)
//GRAFICA MA DIVERGENCIA
plot(ma_dista, color=color.new(color.white, 0))
//GRAFICA MA DIVERGENCIA
plot(desv, color=color.new(color.blue, 0))
//GRAFICA EFI
plot(efi_indicador, color=color.new(color.yellow, 0))
// GRAFICA RSI
l1 = hline(70, color=color.new(color.green, 0))
l2 = hline(30, color=color.new(color.green, 0))
plot(rsi, color=color.new(color.white, 0))




//prueba 1 stop loss and take profit
//sl = 0.05
//tp = 0.1    
//calculo de precio para sl y tp
//longstop=strategy.position_avg_price*(1-sl)
//longprofit=strategy.position_avg_price*(1+tp)

//shortstop=strategy.position_avg_price*(1+sl)
//shortprofit=strategy.position_avg_price*(1-tp)

//if (long)
  //  strategy.exit("BUY", strategy.long)

//sl and tp  long|short
//if strategy.entry("BUY", strategy.long)

//if strategy.position_avg_price > 0
//strategy.exit("BUY", limit = longprofit, stop = longstop)

//if strategy.position_avg_price < 0
//strategy.exit("SELL", limit = shortprofit, stop=shortstop)