Estratégia de ruptura de média móvel dupla

Autora:ChaoZhang, Data: 2024-02-04 16:06:46
Tags:

img

Resumo

A estratégia de ruptura de média móvel dupla é uma tendência típica após a estratégia de negociação quantitativa.

Estratégia lógica

A lógica central da estratégia de MA dupla é a de:utilizar médias móveis de diferentes períodos para capturar as tendências de preços e gerar sinais de negociação quando o preço ultrapassa as médias móveis.

Especificamente, esta estratégia emprega médias móveis simples de 20 dias e 60 dias. Estas duas médias móveis podem ser vistas como ferramentas para capturar tendências de curto e médio prazo, respectivamente. Quando o preço de curto prazo quebra o preço de médio e longo prazo, ele sinaliza que o mercado está em uma tendência ascendente e, portanto, deve ir longo. Quando o preço de curto prazo cai abaixo do preço de médio e longo prazo, ele sinaliza que o mercado está em uma tendência descendente e, portanto, as posições devem ser reduzidas.

O código utilizata.crossovereta.crossunderPara determinar se o preço rompeu ou caiu abaixo de uma média móvel, os sinais de negociação de posição longa ou de redução são emitidos de acordo quando ocorre uma ruptura.

Vantagens

A estratégia de ruptura da média móvel dupla tem as seguintes vantagens:

  1. O conceito é simples e fácil de compreender e implementar.
  2. Pode acompanhar eficazmente as tendências do mercado e evitar interferências sonoras.
  3. Poucos parâmetros estratégicos e fácil de otimizar.
  4. Flexível na escolha dos períodos de média móvel para ajustar a sensibilidade do mercado.

Riscos

Há também alguns riscos com a estratégia:

  1. São propensos a flutuações quando o mercado está em variação, podendo ser aliviados aumentando o período de detenção.
  2. Não é eficaz na detecção de reversões rápidas do mercado. Outros indicadores podem ser adicionados como filtros.
  3. As médias móveis são inerentemente atrasadas, incapazes de sinalizar mudanças de preço cedo.

Áreas de melhoria

A estratégia pode ser reforçada pelas seguintes dimensões:

  1. Otimizar os períodos de média móvel para encontrar os melhores conjuntos de parâmetros.
  2. Adicionar outros indicadores para filtrar sinais falsos, por exemplo MACD, KD, etc.
  3. Adicione a lógica de stop loss.
  4. Incorporar uma análise de vários prazos para determinar a robustez.

Resumo

A estratégia de ruptura de média móvel dupla é uma estratégia simples e prática de tendência. Ela pode capturar efetivamente tendências de médio e longo prazo, evitando o ruído do mercado de curto prazo. Além disso, a lógica fácil de entender e os parâmetros limitados tornam-na muito adequada para negociação quantitativa.


/*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)   


Mais.