Estratégia de oscilação de avanço lateral

Autora:ChaoZhang, Data: 2024-01-03 11:29:24
Tags:

img

Resumo

A estratégia de oscilação de avanço lateral é uma estratégia de negociação quantitativa que usa as bandas de Bollinger e o indicador MACD para determinar sinais de compra e venda. Esta estratégia é principalmente adequada para oscilar produtos como futuros de índices de ações, forex e moedas digitais.

Princípio da estratégia

A estratégia de oscilação de avanço lateral usa bandas de Bollinger para julgar a faixa de flutuações de preços. As bandas de Bollinger incluem a faixa média, a faixa superior e a faixa inferior. A faixa média é a média móvel simples de n dias, e as bandas superior e inferior são k vezes a faixa verdadeira de n dias acima e abaixo da faixa média, respectivamente. Quando o preço atravessa a faixa inferior, acredita-se que o mercado pode reverter, é emitido um sinal de compra.

Além de usar Bandas de Bollinger para determinar pontos de negociação, esta estratégia também incorpora o indicador MACD para determinar sinais de negociação. O indicador MACD inclui a linha DIF, a linha DEA e a linha MACD. A linha DIF é a diferença entre a média móvel exponencial de 12 dias e a média móvel exponencial de 26 dias, a linha DEA é a média móvel exponencial de 9 dias, e a linha MACD é a diferença entre as linhas DIF e DEA. Um sinal de compra é gerado quando a linha MACD muda de negativa para positiva, e um sinal de venda é gerado quando ela muda de positiva para negativa.

Combinando Bandas de Bollinger e indicadores MACD, as regras de geração de sinal de negociação para a Estratégia de Oscilação de Avanço Lateral são: um sinal de compra é emitido quando o preço atravessa a banda inferior do Canal de Bollinger; Um sinal de venda é emitido quando o preço atravessa a banda superior do Canal de Bollinger. Feche a posição quando o preço atravessa os trilhos do canal novamente.

Análise das vantagens

A estratégia de oscilação de avanço lateral tem as seguintes vantagens:

  1. A estratégia é simples, clara e fácil de compreender e de aplicar, adequada para aprendizagem de iniciantes;
  2. A utilização de bandas de Bollinger para avaliar a faixa de flutuação dos preços e a combinação do indicador MACD com sinais de filtragem podem identificar efetivamente oportunidades de reversão;
  3. A operação bilateral pode captar repetidamente oportunidades de oscilação no mercado, reduzir os falsos positivos e aumentar a rentabilidade;
  4. A estratégia tem poucos parâmetros e é fácil de otimizar com operações estáveis;
  5. A estratégia tem um certo grau de robustez e apresenta bons resultados em vários mercados.

Análise de riscos

Embora a estratégia de oscilação de ruptura lateral tenha muitas vantagens, ainda existem alguns riscos na negociação real, que se refletem principalmente nos seguintes aspectos:

  1. As mudanças nas tendências oscilatórias podem causar falha da estratégia.
  2. A configuração incorreta dos parâmetros do canal de Bollinger também afetará o desempenho da estratégia. Se a largura de banda for definida muito grande ou muito pequena, isso afetará o efeito de captura dos pontos de negociação;
  3. Os parâmetros inadequados do indicador MACD podem causar avanços ou atrasos nos sinais, afetando assim o nível de lucro da estratégia;
  4. A estratégia não considera os factores de gestão do risco e existe um risco de perdas alargadas.

Para reduzir os riscos acima, podemos otimizar a partir dos seguintes aspectos:

  1. Incorporar indicadores de tendência para evitar sinais quando os preços são apenas retracements de curto prazo;
  2. Testar e otimizar os parâmetros dos indicadores Bollinger Channels e MACD para selecionar os parâmetros ideais;
  3. Incorporar estratégias de stop-loss para controlar perdas únicas;
  4. Aumentar o módulo de gestão de posições para controlar o risco.

Direcção de otimização

A estratégia de oscilação de avanço lateral também tem espaço para uma maior otimização, que pode ser feita principalmente nas seguintes direcções:

  1. Incorporar mais indicadores para identificar sinais de negociação, por exemplo, adicionar julgamento de volume, emitir sinais em pontos onde o preço e o volume são simultaneamente amplificados; ou adicionar indicadores RSI para emitir sinais em áreas de sobrecompra e sobrevenda;
  2. Aumentar o mecanismo automático de stop loss. O uso de stop loss móvel ou stop loss percentual pode controlar efetivamente as perdas individuais;
  3. Aumentar o mecanismo de gestão de posições, por exemplo, gestão de posições fixas, gestão de martingale, etc., para alocar razoavelmente os fundos para cada posição de abertura;
  4. Através de backtesting com dados mais históricos, encontrar a combinação ideal de parâmetros para Bollinger Bands e indicadores MACD para melhorar a rentabilidade da estratégia.
  5. Análise avançada, otimização dinâmica de parâmetros em tempo real para um desempenho estratégico mais estável.

Resumo

A estratégia de oscilação de avanço lateral integra Bandas de Bollinger e indicadores MACD para determinar o tempo de entrada e saída, e pode efetivamente capturar oportunidades de reversão em tendências oscilantes usando avanços de preço em ambos os lados. Esta estratégia é simples, flexível na seleção de parâmetros e tem um bom desempenho em diferentes produtos. No entanto, ainda há alguns riscos para a estratégia que exigem mais testes e otimização. Propusemos algumas ideias de otimização. Com melhoria contínua, acreditamos que o desempenho desta estratégia ficará cada vez melhor.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy("Seitwärtsdoppelpenetration", overlay=false)

//Keltner Channel
source = open

useTrueRange = input(true)
length = input(20, minval=1)
mult = input(4.0)

ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult

crossUpper = crossover(source, upper)
crossLower = crossunder(source, lower)

//Entry
buyEntry = cross(lower,source)
sellEntry = cross(upper,source)

if (cross(lower,source))
    strategy.entry("buyEntry", strategy.long, comment="buyEntry")

if (cross(source, upper))
    strategy.entry("sellEntry", strategy.short, comment="sellEntry")

buyExit = cross(source, upper)
sellExit = cross(lower,source)

strategy.close("buyEntry", buyExit)
strategy.close("sellEntry", sellExit)


Mais.