Estratégia de acompanhamento da inversão da média móvel dupla

Autora:ChaoZhang, Data: 2023-12-07 17:40:12
Tags:

img

A ideia principal desta estratégia é usar a cruz de ouro e a cruz morta das médias móveis como sinais de negociação, combinados com a quebra de preço de médias móveis duplas para fazer entradas e paradas.

Os princípios de funcionamento são os seguintes:

  1. Calcular a média móvel simples de curto prazo e a média móvel simples de longo prazo.

  2. Comparar se o preço está acima ou abaixo das médias móveis O preço acima das médias móveis indica posição longa, enquanto o preço abaixo mostra posição curta.

  3. Ir longo quando a SMA curta cruza acima da SMA longa; ir curto quando a SMA curta cruza abaixo da SMA longa.

  4. Troque entre posições longas e curtas.

As principais vantagens desta estratégia são:

  1. A estratégia de média móvel dupla combina a tendência de seguimento e a reversão da média, que aproveita o acompanhamento das tendências do mercado e a captação de oportunidades de reversão.

  2. A cruz de ouro e a cruz morta das médias móveis têm alguma persistência, o que ajuda a filtrar falhas.

  3. Com base na teoria da média móvel, é benéfico bloquear os lucros durante tendências e mercados de intervalo.

Os principais riscos desta estratégia são:

  1. A estratégia de média móvel dupla é sensível aos parâmetros.

  2. As rupturas fracassadas podem levar a perdas, devendo ser implementadas paradas eficazes para controlar os riscos.

  3. A reversão da tendência não é garantida para o sucesso. A tendência original pode continuar resultando em perdas.

As principais direcções de otimização:

  1. Teste e otimize os parâmetros da média móvel para encontrar a melhor combinação de parâmetros.

  2. Adicionar um indicador de determinação de tendências para distinguir entre mercados em tendência e mercados em variação.

  3. Implementar um stop loss eficaz para controlar os riscos, tais como trailing stop loss, stop order loss, etc.

  4. Combinar com outros indicadores para melhorar a robustez da estratégia.

Em conclusão, como uma estratégia de rastreamento de reversão de média móvel dupla, leva em consideração tanto o rastreamento de tendências quanto a negociação de reversão. Com a otimização adequada de parâmetros e controle de risco, pode alcançar bons resultados. No entanto, qualquer estratégia enfrenta riscos como erros direcionais, falha de stop loss, etc. Testes e otimização contínuos são necessários para se adaptar aos mercados em mudança.


/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 10m
basePeriod: 1m
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/
// © HPotter
//  Simple SMA strategy
//
// WARNING:
//      - For purpose educate only
//      - This script to change bars colors
//@version=4
strategy(title="Simple SMA Strategy Backtest", shorttitle="SMA Backtest", precision=6, overlay=true)
Resolution = input(title="Resolution", type=input.resolution, defval="D")
Source = input(title="Source", type=input.source, defval=close)
xSeries = security(syminfo.tickerid, Resolution, Source)
Length = input(title="Length", type=input.integer, defval=14, minval=2)
TriggerPrice = input(title="Trigger Price", type=input.source, defval=close)
BarColors = input(title="Painting bars", type=input.bool, defval=true)
ShowLine = input(title="Show Line", type=input.bool, defval=true)
UseAlerts = input(title="Use Alerts", type=input.bool, defval=false)
reverse = input(title="Trade Reverse", type=input.bool, defval=false)
pos = 0
xSMA = sma(xSeries, Length)
pos := iff(TriggerPrice > xSMA, 1,
         iff(TriggerPrice < xSMA, -1, nz(pos[1], 0)))
nRes = ShowLine ? xSMA : na
alertcondition(UseAlerts == true and pos != pos[1] and pos == 1, title='Signal Buy', message='Strategy to change to BUY')
alertcondition(UseAlerts == true and pos != pos[1] and pos == -1, title='Signal Sell', message='Strategy to change to SELL')
alertcondition(UseAlerts == true and pos != pos[1] and pos == 0, title='FLAT', message='Strategy get out from position')
possig = iff(reverse and pos == 1, -1,
           iff(reverse and pos == -1, 1, pos))
if (possig == 1)
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)
if (possig == 0)
    strategy.close_all()
nColor = BarColors ? possig == -1 ? color.red : possig == 1 ? color.green : color.blue : na 
barcolor(nColor)
plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)

Mais.