Duração Média Móvel Crossover Estratégia Renko


Data de criação: 2024-01-24 10:55:57 última modificação: 2024-01-24 10:55:57
cópia: 0 Cliques: 717
1
focar em
1617
Seguidores

Duração Média Móvel Crossover Estratégia Renko

Visão geral

A estratégia é uma estratégia de cruzamento de médias móveis baseada no gráfico de Renko. Ela usa o indicador TEMA para construir sinais de cruzamento e filtragem em combinação com a média de longo prazo, com o objetivo de identificar tendências no gráfico de Renko e emitir sinais de compra e venda.

Princípio da estratégia

A principal fonte de sinais da estratégia são os indicadores TEMA de curto prazo e os indicadores SMA. A lógica específica é:

Quando o TEMA curto atravessa o SMA curto, faça mais; quando o TEMA curto atravessa o SMA curto, faça zero.

Além disso, a estratégia também define dois parâmetros opcionais, avg_protection e gain_protection, para ajustar a lógica de entrada e de parada:

  • Quando avg_protection > 0, só se compra quando o preço de fechamento é inferior ao preço médio da posição atual, o que reduz o custo da posição;

  • Quando gain_protection > 0, só é vendido o stop loss quando o preço de fechamento excede uma determinada porcentagem do preço de entrada, bloqueando assim o lucro.

Finalmente, a estratégia também usa um indicador de SMMA de longo prazo como um filtro de tendência. O sinal de multiplicação é emitido somente quando o preço de fechamento está abaixo do SMMA.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. O sistema de filtragem de ruído, baseado no mapa Renko, é capaz de identificar tendências.
  2. A construção de sinais com indicadores TEMA, de alta sensibilidade e boa capacidade de acompanhamento;
  3. O jogo é baseado em uma série de estratégias de entrada que podem ser modificadas com vários parâmetros.
  4. A combinação com a média de curto e longo prazo permite capturar oportunidades em uma tendência.

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. Renko tem um eixo de tempo desigual e não consegue controlar o intervalo de tempo;
  2. A alta sensibilidade do TEMA também é mais propensa a produzir sinais errados.
  3. A configuração incorreta dos parâmetros pode causar vazamentos.

Estes riscos podem ser evitados por meio de ajustes adequados de parâmetros, como a configuração de posições de stop loss.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Testar diferentes combinações de parâmetros para encontrar o melhor;
  2. Aumentar as estratégias de stop loss, como stop loss móvel, stop loss intermitente, etc., para reduzir o DD;
  3. Filtragem de sinais em combinação com outros indicadores para reduzir sinais falsos;
  4. Teste o efeito dos parâmetros de diferentes variedades.

Resumir

A estratégia em geral é uma estratégia de cruzamento de linha de média móvel simples, mas muito prática. Ela se baseia principalmente no excelente efeito de eliminação de ruído da linha Renko K e na alta sensibilidade do indicador TEMA para geração de sinais.

Código-fonte da estratégia
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TEMA Cross", overlay = true)

tema(src, len) =>
    3*ema(src, len) - 3*ema(ema(src, len), len) + ema(ema(ema(src, len),len),len)

smma(src, len) =>
    sa = 0.0
    sa := na(sa[1]) ? sma(src, len) : (sa[1] * (len - 1) + src) / len
    sa

temaLength = input(5)
smaLength = input(3)
smmaLength = input(30)
tema1 = tema(close, temaLength)
sma1 = sma(tema1, smaLength)
smma1 = smma(close,smmaLength)


plot(tema1, color = green, title = "TEMA")
plot(sma1, color = orange, title = "SMA")
plot(smma1, color = red, title = "SMMA")
minGainPercent = input(2)
gainMultiplier = minGainPercent * 0.01 + 1

avg_protection = input(1)
gain_protection = input(1)

longCondition = crossover(tema1, sma1) and tema1 < smma1
shortCondition = crossunder(tema1, sma1)

strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true))
strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))