Estratégia de reversão da média móvel


Data de criação: 2024-02-27 17:51:43 última modificação: 2024-02-27 17:51:43
cópia: 0 Cliques: 601
1
focar em
1617
Seguidores

Estratégia de reversão da média móvel

Visão geral

A estratégia de resposta de média móvel é uma estratégia de negociação de tendências muito simples. Sua idéia central é fazer mais quando a média móvel de curto prazo é inferior a uma determinada porcentagem da média móvel de longo prazo, e se equilibrar quando a média móvel de curto prazo atravessa a média móvel de longo prazo. A estratégia primeiro calcula uma média móvel de curto prazo e uma média móvel de longo prazo, e depois gera um sinal de negociação com base na relação entre as duas médias móveis.

Princípio da estratégia

A estratégia depende principalmente de duas médias móveis, uma média móvel de curto prazo e uma média móvel de longo prazo. O parâmetro da média móvel de curto prazo é o smallMAPeriod e o parâmetro da média móvel de longo prazo é o bigMAPeriod. A estratégia primeiro calcula as duas médias móveis e depois compara a relação de tamanho das duas médias móveis.

Quando a média móvel de curto prazo cai de cima para baixo abaixo da média móvel de longo prazo em uma determinada porcentagem (definida pelo parâmetro percentBelowToBuy), gera um sinal de compra, fazendo mais entrada no mercado. Quando a média móvel de curto prazo sobe posteriormente e sobe novamente atravessando a média móvel de longo prazo, gera um sinal de venda, equilibrando a posição.

A estratégia captura a oportunidade de retorno do valor médio entre a média móvel de curto prazo e a média móvel de longo prazo. Quando a média móvel de curto prazo é inferior a uma certa medida da média móvel de longo prazo, isso indica que o ativo pode estar abaixo do valor médio e deve ter a oportunidade de retornar ao valor médio.

Análise de vantagens

A estratégia de resposta média móvel tem as seguintes vantagens:

  1. A ideia é simples, fácil de entender e de implementar.
  2. Capturar os pontos de inflexão das tendências de curto e longo prazo para determinar com precisão o movimento do mercado
  3. Configuração de parâmetros flexível para obter mais sinais de negociação, ajustando o ciclo da média móvel e a porcentagem de cedência
  4. Processos de retrospecção simples para a optimização de simulação de transações quantitativas

A estratégia é simples. Parâmetros de otimização podem ser obtidos com bons resultados. Ao ajustar o parâmetro de média móvel e o parâmetro de porcentagem de concessão, pode ser feito um teste de retorno para diferentes ativos de mercado, como ações, divisas e criptomoedas, para selecionar o melhor conjunto de parâmetros.

Análise de Riscos

A estratégia de resposta média móvel também tem alguns riscos:

  1. Os sinais são menores e não podem ser negociados com frequência.
  2. A tendência é que os preços se revertam de forma errada.
  3. Os parâmetros inadequados podem levar a custos de transação mais elevados e perdas de pontos de deslizamento devido a transações muito frequentes.

O risco pode ser reduzido através das seguintes medidas:

  1. Ajustar os parâmetros adequadamente para que o sinal de negociação seja adequado
  2. A partir daí, a empresa criou uma estratégia de “breaking out” e “breaking in” para evitar falsas brechas.
  3. Combinação de parâmetros de otimização, escolha de períodos de média móvel e percentual de concessão

Direção de otimização

A estratégia de resposta média móvel pode ser otimizada de várias maneiras:

  1. Teste diferentes dados de preços, como o preço de fechamento, o preço máximo, o preço mínimo e o preço típico, como fontes de sinais estratégicos
  2. Experimente diferentes tipos de médias móveis, como médias móveis exponenciais, médias móveis linearmente ponderadas, médias móveis de Hull, etc.
  3. Aumentar as condições de filtragem para evitar transações desnecessárias em mercados fora de tendência
  4. Indicadores de volume de transação para evitar falsas rupturas com preços mais altos, mas pouca capacidade
  5. Parâmetros de otimização automática com aprendizado de máquina ou algoritmos genéticos

Resumir

A estratégia de resposta de média móvel, comparando a relação entre duas médias móveis de curto e longo prazo, capta oportunidades de retorno após o desvio de preços de curto prazo da tendência de longo prazo. A estratégia é simples, fácil de entender e implementar, e pode obter melhores resultados com a otimização de parâmetros. Mas também há menos sinais de negociação, é fácil de perder o risco de uma reversão de preço, e precisa testar e otimizar os parâmetros e as condições de filtragem para maximizar os ganhos da estratégia.

Código-fonte da estratégia
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
//
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//
// @author Sunil Halai
//
// This very simple strategy is an implementation of PJ Sutherlands' Jaws Mean reversion algorithm. It simply buys when a small moving average period (e.g. 2) is below
// a longer moving average period (e.g. 5) by a certain percentage, and closes when the small period average crosses over the longer moving average. 
// 
// If you are going to use this, you may wish to apply this to a range of investment assets, as the amount signals is low. Alternatively you may wish to tweak the settings to provide more
// signals.


strategy("Jaws Mean Reversion [Strategy]", overlay = true)

//Strategy inputs
source = input(title = "Source", defval = close)
smallMAPeriod = input(title = "Small Moving Average", defval = 2)
bigMAPeriod = input(title = "Big Moving Average", defval = 5)
percentBelowToBuy = input(title = "Percent below to buy %", defval = 3)


//Strategy calculation
smallMA = sma(source, smallMAPeriod)
bigMA =  sma(source, bigMAPeriod) 
buyMA = ((100 - percentBelowToBuy) / 100) * sma(source, bigMAPeriod)[0]

if(crossunder(smallMA, buyMA))
    strategy.entry("BUY", strategy.long)

if(crossover(smallMA, bigMA))
    strategy.close("BUY")