Estratégia de captura de ímpeto baseada na média móvel

Autora:ChaoZhang, Data: 2023-11-01 15:55:51
Tags:

img

Resumo

Esta estratégia usa a média móvel como o principal sinal de negociação, combinado com Heikin-Ashi para detectar a inversão de tendência, visando capturar o impulso de preço de curto prazo.

Estratégia lógica

  1. Calcular o preço de fechamento de Heikin-Ashi nAMAn como linha de base do preço.

  2. Calcular a média de movimentação rápida fma e a média de movimentação lenta sma com base no nAMAn.

  3. Gerar sinal de compra quando o FMA cruza o SMA, e sinal de venda quando o FMA cruza abaixo do SMA.

  4. A repintura é removida nesta estratégia para gerar sinais de negociação em tempo real e evitar o viés de backtesting.

Análise das vantagens

  1. Heikin-Ashi ajuda a determinar pontos de reversão da tendência com mais precisão.

  2. O cruzamento de MA filtra os falsos sinais de forma eficaz.

  3. Não há atraso na geração de sinal que garanta um desempenho vivo confiável.

  4. Ajuste flexível de parâmetros adaptável a diferentes produtos.

  5. Lógica simples e clara, fácil de entender e implementar.

  6. Pode ser totalmente automatizado para minimizar os riscos de negociação manual.

Análise de riscos

  1. Desempenho fraco no mercado de gama limitada com flutuações de preços.

  2. Propensos a gerar sinais falsos com cruzamento duplo de MA.

  3. Os parâmetros de MA inadequados podem causar tendências em falta ou aumentar o aproveitamento.

  4. Os custos de negociação afetam o lucro líquido nas negociações em tempo real.

  5. O valor da posição em risco deve ser calculado de acordo com o método de classificação da posição em risco.

  6. As estratégias de negociação mecânicas apresentam riscos inerentes de retirada e exigem uma gestão adequada do capital.

Soluções de gestão de riscos:

  1. Adicionar um filtro de volatilidade para evitar o mercado limitado por intervalo.

  2. Adicionar filtros para garantir a qualidade do sinal.

  3. Otimizar os parâmetros de MA através de testes minuciosos.

  4. Ajustar a frequência de negociação para reduzir o impacto dos custos.

  5. Configure o stop loss adequado para controlar a perda em operações individuais.

  6. Otimizar a gestão do capital para controlar o dimensionamento das posições.

Orientações para a melhoria

  1. Otimizar os parâmetros MA para melhorar a qualidade do sinal.

  2. Adicione um filtro de tendência para evitar o mercado de serras.

  3. Incorporar indicadores de volume para confirmar a tendência.

  4. Implementar stop loss dinâmicos e tomada de lucros para otimizar a captura de lucros.

  5. Integrar o módulo de gestão de capital para controlar o dimensionamento das posições.

  6. Adicionar módulo de negociação algorítmica para automação completa.

Resumo

Esta estratégia integra técnicas de crossover Heikin-Ashi e MA para criar uma estratégia simples e prática de tendência de curto prazo. Ela gera sinais de negociação confiáveis em tempo real e mostra bom desempenho na negociação ao vivo.


/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Heikin/Kaufman by Gustavo v5
// strategy('Heikin Ashi EMA v5 no repaint ', shorttitle='Heikin Ashi EMA v5 no repaint', overlay=true, max_bars_back=500, default_qty_value=1000, initial_capital=100000, currency=currency.EUR)


// Settings - H/K
res1 = input.timeframe(title='Heikin Ashi EMA Time Frame', defval='D')
test = input(0, 'Heikin Ashi EMA Shift')
sloma = input(20, 'Slow EMA Period')
nAMA = hlc3

//Kaufman MA
Length = input.int(5, minval=1)
xPrice = input(hlc3)
xvnoise = math.abs(xPrice - xPrice[1])
Fastend = input.float(2.5, step=.5)
Slowend = input(20)
nfastend = 2 / (Fastend + 1)
nslowend = 2 / (Slowend + 1)
nsignal = math.abs(xPrice - xPrice[Length])
nnoise = math.sum(xvnoise, Length)
nefratio = nnoise != 0 ? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMAn = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//Heikin Ashi Open/Close Price
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_close = request.security(ha_t, timeframe.period, nAMAn)
mha_close = request.security(ha_t, res1, hlc3)

//Moving Average
fma = ta.ema(mha_close[test], 1)
sma = ta.ema(ha_close, sloma)
plot(fma, title='MA', color=color.new(color.black, 0), linewidth=2, style=plot.style_line)
plot(sma, title='SMA', color=color.new(color.red, 0), linewidth=2, style=plot.style_line)

//Strategy
golong = ta.crossover(fma, sma)
goshort = ta.crossunder(fma, sma)

strategy.entry('Buy', strategy.long, when=golong)
strategy.entry('Sell', strategy.short,when=goshort)



Mais.