Estratégia de acompanhamento de tendências com base no sistema de média móvel SMA


Data de criação: 2024-02-23 12:29:51 última modificação: 2024-02-23 12:29:51
cópia: 0 Cliques: 613
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendências com base no sistema de média móvel SMA

Visão geral

Esta estratégia é conhecida como a estratégia de acompanhamento de tendências baseada no sistema de linha média SMA, cuja ideia principal é construir sinais de negociação usando a linha média SMA de diferentes comprimentos de parâmetros, para entrar em ações em pontos de ruptura, ao mesmo tempo em que o risco é controlado pelo mecanismo de parada.

Princípio da estratégia

A estratégia usa duas linhas médias de SMA, ou seja, SMA1 e SMA2. Delas, SMA1 tem um comprimento e SMA2 tem um comprimento de 3 anos. A estratégia gera um sinal de compra ao atravessar SMA1 com SMA2 e um sinal de venda ao atravessar SMA1 com SMA2, para capturar a tendência de preço.

Especificamente, a estratégia julga a relação de ruptura da linha média SMA através das funções ta.crossover e ta.crossunder, resultando em uma variável de longo e curto prazo. Quando a longCondition é verdadeira, gera um sinal de compra; quando a shortCondition é verdadeira, gera um sinal de venda. A estratégia faz a entrada no ponto de sinal, atualizando as variáveis profitAccumulated e lastTradeProfit para acompanhar os ganhos acumulados.

Para controlar o risco, a estratégia também estabelece um mecanismo de stop loss baseado em um número fixo de pontos. Começando no ponto de entrada, se o preço atingir o ponto de stop loss definido, a parada de stop loss será acionada.

Vantagens estratégicas

A maior vantagem da estratégia é que ela usa o rastreamento de tendências da linha média SMA para capturar efetivamente as mudanças na tendência de preços. Em comparação com a estratégia de linha média única, a estratégia de linha média dupla pode usar a relação de cruzamento entre as linhas de igualdade para determinar a direção da tendência, gerando assim um sinal de negociação. Além disso, a estratégia inclui um mecanismo de parada de perda que pode controlar efetivamente a perda individual.

Análise de Riscos

O principal risco que esta estratégia apresenta é que a estratégia de linha média é propensa a produzir falsos sinais. Quando os preços são agitados, a linha média SMA pode frequentemente cruzar, resultando em sinais de negociação desnecessários.

Direção de otimização

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

  1. Ajustar o parâmetro SMA para encontrar a melhor combinação de comprimentos de linha média. O parâmetro ótimo pode ser obtido através da ressonância.

  2. Aumentar as condições de filtragem e definir condições de ruptura de preços perto dos pontos de interseção da linha média, evitando sinais falsos.

  3. Pode-se testar diferentes tipos de parada, como parada móvel, parada pendurada, etc.

  4. Aumentar o controle do tamanho da posição e otimizar a eficiência do uso do capital.

Resumir

Esta estratégia, em geral, é uma estratégia típica de acompanhamento de tendências. Ela usa a relação de ruptura da linha média SMA para determinar a direção da tendência dos preços e entrar em ação no ponto de mudança de tendência.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cesarpieres72

//@version=5
strategy("Estrategia SMA y Ganancias Acumuladas con Stop Loss", shorttitle="SMA_Ganancias", overlay=true)

// Definir las variables de las medias móviles
sma1_length = input(1, title="SMA 1 Longitud")
sma2_length = input(3, title="SMA 2 Longitud")

// Calcular las medias móviles
sma1 = ta.sma(close, sma1_length)
sma2 = ta.sma(close, sma2_length)

// Condiciones para las señales de compra y venta
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

// Acumular las ganancias
var float profitAccumulated = 0.0
var float lastTradeProfit = na

if (longCondition)
    strategy.entry("Buy", strategy.long)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

// Mostrar las señales en el gráfico
plot(sma1, color=color.blue, title="SMA 1")
plot(sma2, color=color.red, title="SMA 2")

// Añadir stop loss
stopLossPips = input(5000, title="Stop Loss (en pips)")
stopLossPrice = strategy.position_avg_price * (1 - stopLossPips * syminfo.mintick)
strategy.exit("SL", "Buy", stop=stopLossPrice)