Estratégia Qiyuan Axu baseada na média móvel suavizada


Data de criação: 2024-01-25 15:26:25 última modificação: 2024-01-25 15:26:25
cópia: 1 Cliques: 623
1
focar em
1617
Seguidores

Estratégia Qiyuan Axu baseada na média móvel suavizada

Visão geral

A ideia principal da estratégia é usar as médias móveis suaves para calcular a média de abertura suave para descobrir a tendência dos preços e fazer mais quando o preço forca com a média de abertura suave e fechar quando forca.

Princípio da estratégia

A estratégia começa por definir uma função para calcular a média móvel suave (smoothedMovingAvg), que usa a média móvel do período anterior e o valor mais recente para calcular a média móvel do período atual, com um certo peso.

A função getHAClose é então definida para calcular o preço de fechamento da linha de média em função do preço de abertura, do preço máximo, do preço mínimo e do preço de fechamento.

Na lógica da estratégia principal, primeiro obtemos o preço original dos diferentes períodos, depois calculamos a média móvel suave usando a função SmoothedMovingAvg, e depois calculamos o preço de encerramento de início suave usando a função getHAClose.

Por fim, quando o preço sobe e abre o preço de encerramento, faça mais e baixe a posição de equilíbrio; quando o preço desce e abre o preço de encerramento, faça vazio e suba a posição de equilíbrio

Análise de vantagens

A maior vantagem desta estratégia é que a utilização de médias móveis suaves para calcular a linha de alerta suave permite uma determinação mais precisa da tendência dos preços, filtrando parte do ruído e evitando a produção de sinais errados durante a oscilação. Além disso, a linha de alerta em si tem a vantagem de destacar a tendência e, em combinação com o preço, pode aumentar ainda mais a precisão de julgamento.

Análise de Riscos

A estratégia enfrenta os principais riscos:

  1. A configuração inadequada dos parâmetros de smoothing pode levar a estratégias que perdem oportunidades de reversão de preços ou produzem sinais errados. O melhor parâmetro deve ser encontrado por meio de repetidas ressonâncias e otimização.
  2. Quando os preços estão em forte volatilidade, o equilíbrio médio pode atrasar o acompanhamento das mudanças de preço, o que pode levar a perdas ou perder oportunidades de reversão. Neste momento, é necessário reduzir o risco de evasão de posições.

Para os riscos acima, podemos reduzir o risco e aumentar a estabilidade da estratégia por meio de métodos como ajustar os parâmetros de suavização, introduzir mecanismos de stop loss e reduzir a posição de negociação individual.

Direção de otimização

A estratégia também pode ser melhorada nos seguintes aspectos:

  1. Aumentar o parâmetro de suavização de adaptação e ajustar o parâmetro automaticamente quando a volatilidade do mercado aumenta.
  2. Combinação com outros indicadores como filtros para evitar sinais errados em caso de flutuação de preços. Como MACD, KD, etc.
  3. Aumentar o mecanismo de stop loss para controlar os perdas individuais. Pode ser definido como stop loss percentual ou stop loss oscilante.
  4. Optimizar as variedades e os períodos de negociação, concentrando-se nas variedades e nos períodos de negociação mais vantajosos.

Otimizando os pontos acima, pode-se reduzir ainda mais o risco de curva de ajuste da estratégia e aumentar a adaptabilidade e a estabilidade da estratégia.

Resumir

A estratégia geral é clara e fácil de entender, através do cálculo de uma linha de medição de iluminação suave para julgar a tendência de preços, e, portanto, para fazer a curta e curta. A maior vantagem é que pode filtrar parte do ruído, melhorar a precisão do julgamento do sinal. Mas também existe uma certa dificuldade de otimização de parâmetros e o risco de perder uma rápida reversão.

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

 //@version=5
strategy("Smoothed Heiken Ashi Strategy", overlay=true)

// Inputs
g_TimeframeSettings = 'Display & Timeframe Settings'
time_frame = input.timeframe(title='Timeframe for HA candle calculation', defval='', group=g_TimeframeSettings)

g_SmoothedHASettings = 'Smoothed HA Settings'
smoothedHALength = input.int(title='HA Price Input Smoothing Length', minval=1, maxval=500, step=1, defval=10, group=g_SmoothedHASettings)

// Define a function for calculating the smoothed moving average
smoothedMovingAvg(src, len) => 
    smma = 0.0
    smma := na(smma[1]) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len 
    smma

// Function to get Heiken Ashi close
getHAClose(o, h, l, c) =>
    ((o + h + l + c) / 4)

// Calculate smoothed HA candles
smoothedHAOpen = request.security(syminfo.tickerid, time_frame, open)
smoothedMA1close = smoothedMovingAvg(request.security(syminfo.tickerid, time_frame, close), smoothedHALength)
smoothedHAClose = getHAClose(smoothedHAOpen, smoothedHAOpen, smoothedHAOpen, smoothedMA1close)

// Plot Smoothed Heiken Ashi candles
plotcandle(open=smoothedHAOpen, high=smoothedHAOpen, low=smoothedHAOpen, close=smoothedHAClose, color=color.new(color.blue, 0), wickcolor=color.new(color.blue, 0))

// Strategy logic
longCondition = close > smoothedHAClose
shortCondition = close < smoothedHAClose

strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition)

plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)