Estratégia de negociação quantitativa de rompimento de média móvel dupla


Data de criação: 2024-02-04 16:06:46 última modificação: 2024-02-04 16:06:46
cópia: 0 Cliques: 606
1
focar em
1617
Seguidores

Estratégia de negociação quantitativa de rompimento de média móvel dupla

Visão geral

A estratégia de quebra de linha dupla é uma estratégia de negociação quantitativa mais típica para o acompanhamento de tendências. A estratégia julga a posição por meio da computação de médias móveis simples de diferentes períodos e define o sinal de negociação como uma média móvel de quebra de preço.

Princípio da estratégia

A lógica central da estratégia de ruptura de dupla linha é:Usar médias móveis de diferentes períodos para capturar tendências de preços e emitir sinais de negociação quando os preços quebram as médias móveis

Especificamente, a estratégia usa uma média móvel simples de 20 dias e uma média móvel simples de 60 dias. Estas duas médias móveis podem ser vistas como ferramentas para capturar tendências de curto prazo e tendências de médio prazo, respectivamente. Quando o preço de curto prazo supera o preço de médio e longo prazo, representando uma tendência ascendente atual, deve-se fazer mais; quando o preço de curto prazo supera o preço de médio e longo prazo, representando uma tendência descendente atual, deve-se reduzir a posição.

Passado no códigota.crossovereta.crossunderPara determinar se o preço vai ultrapassar ou ultrapassar uma média móvel. Quando ocorre uma ruptura, é emitida uma instrução para fazer mais ou menos posições.

Vantagens estratégicas

A estratégia de ruptura de dupla linha de equilíbrio tem as seguintes vantagens:

  1. O conceito é simples, fácil de entender e implementar.
  2. O que é um bom negócio é que você pode acompanhar as tendências do mercado e evitar o ruído.
  3. A estratégia tem poucos parâmetros e é fácil de otimizar.
  4. A flexibilidade de escolher o ciclo da média móvel para ajustar a sensibilidade ao mercado.

Risco estratégico

A estratégia de ruptura de dupla linha de equilíbrio também tem alguns riscos:

  1. Quando o mercado está em uma tendência de turbulência, pode ocorrer uma série de sinais errôneos. Pode ser mitigado com o aumento do período de detenção.
  2. Os indicadores podem ser combinados com outros indicadores como filtros.
  3. As médias móveis são inerentemente lagging e não conseguem reagir antecipadamente às mudanças de preço. As melhorias de ciclo podem ser apropriadamente reduzidas.

Direção de otimização da estratégia

A estratégia de ruptura de dupla equilíbrio pode ser otimizada a partir das seguintes dimensões:

  1. Otimizar os parâmetros de periodicidade das médias móveis para encontrar a melhor combinação de parâmetros.
  2. Adicione outros indicadores de julgamento para evitar sinais errados, como MACD, KD, etc.
  3. Aumentar a lógica de stop-loss.
  4. Combinando com a análise de mais ciclos de tempo, realização de mais quadros de tempo.

Resumir

A estratégia de ruptura de linha dupla é uma estratégia de acompanhamento de tendências simples e práticas. Ela pode capturar efetivamente as tendências de médio e longo prazo, evitando a interferência do ruído do mercado de curto prazo.

Código-fonte da estratégia
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
basePeriod: 15m
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/
// © Astorhsu

//@version=5
strategy("Astor SMA20/60", overlay=true)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31)  //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)  //回測開始的時間函數

//Indicators
sma10 = ta.sma(close,10)
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")

//進場條件
// trend1 = sma60 > sma20 //假設目前趨勢為60>20
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition) 
    strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")


shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition) 
    strategy.close("open long20",comment="跌破m20平倉", qty=1)     
    
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1) 
    strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")


shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1) 
    strategy.close("open long60",comment="跌破m60平倉", qty=1)     
    
// longCondition2 = ta.crossover(close, ta.sma(close, 10))
// if (longCondition2) 
//     strategy.entry("open long10", strategy.long, qty=1, comment="站上m10做多")


// shortCondition2 = ta.crossunder(close, ta.sma(close, 10))
// if (shortCondition2)
//     strategy.close("open long10",comment="跌破m10平倉", qty=1)