Estratégia de rastreamento de reversão de média móvel dupla


Data de criação: 2023-12-07 17:40:12 última modificação: 2023-12-07 17:40:12
cópia: 0 Cliques: 611
1
focar em
1619
Seguidores

Estratégia de rastreamento de reversão de média móvel dupla

A principal idéia da estratégia é usar a média móvel como um sinal de compra e venda, combinando a forma como os preços quebram a linha de paridade para a construção de posições e paradas. A estratégia gera um sinal de compra quando a média curta atravessa a média de longo prazo e gera um sinal de venda quando a média curta atravessa a média de longo prazo.

A estratégia funciona da seguinte forma:

  1. Calcule 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 da média móvel, baseando-se no preço acima da média móvel como a cabeça superior, e o preço abaixo da média móvel como a cabeça vazia.

  3. Faça mais quando você usa uma linha média longa em uma linha média curta; deixe vazio quando você usa uma linha média longa abaixo da linha média curta.

  4. A partir daí, é possível trocar posições.

As principais vantagens desta estratégia são:

  1. A estratégia de linha dupla combina o acompanhamento de tendências e a negociação de reversões, permitindo ao mesmo tempo acompanhar as tendências do mercado e capturar oportunidades de reversão.

  2. O forquilho de ouro de linha uniforme tem uma certa durabilidade e pode efetivamente eliminar a falsa ruptura.

  3. O uso da teoria da linha média é útil para bloquear lucros durante oscilações de tendências.

Os principais riscos desta estratégia são:

  1. A estratégia de linha dupla é sensível aos parâmetros, e a configuração inadequada dos parâmetros da média móvel pode causar transações frequentes ou oportunidades perdidas.

  2. O fracasso na ruptura pode causar prejuízos, e o controle do risco requer uma parada de prejuízos eficaz.

  3. A inversão de tendência não é necessariamente bem-sucedida, mas pode ser prejudicial se a tendência for mantida.

As principais melhorias da estratégia são:

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

  2. Adicionar indicadores de tendência, diferenciando tendências e mercados de turbulência.

  3. Aumentar o stop loss eficaz para controlar o risco, como o rastreamento do stop loss, o envio de um stop loss, etc.

  4. Combinação com outros indicadores para melhorar a estabilidade da estratégia.

Em resumo, esta estratégia é uma estratégia de rastreamento de inversão de duplo equilíbrio, que considera o acompanhamento de tendências e a inversão de negociações, e pode obter melhores resultados com a otimização de parâmetros e o controle de risco. No entanto, qualquer estratégia pode enfrentar riscos de erro de julgamento de direção, falha de stop loss e outros.

Código-fonte da estratégia
/*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)