Estratégia de negociação quantitativa baseada na operação da média móvel mensal e trimestral

Autora:ChaoZhang, Data: 2023-12-15 11:49:06
Tags:

img

Resumo

Esta estratégia é baseada principalmente nas médias móveis das linhas mensais e trimestrais para operação. Especificamente, a linha de 20 dias é usada como a linha mensal e a linha de 60 dias como a linha trimestral. Os sinais de estratégia vêm da cruz de ouro e da cruz da morte das duas médias móveis. Quando a linha mensal cruza acima da linha trimestral, vá longo; quando a linha mensal cai abaixo da linha trimestral, feche posições. Esta estratégia é adequada para operações de médio e longo prazo para capturar oportunidades de consolidação e divergência.

Estratégia lógica

Esta estratégia utiliza a média móvel simples de 20 dias como indicador de linha mensal e a média móvel simples de 60 dias como indicador de linha trimestral.

  1. Quando a linha de 20 dias cruzar acima da linha de 60 dias, ou seja, uma cruz de ouro ocorrer, vá longo.
  2. Quando o preço recuar mais de 10% do ponto mais alto nos últimos 10 dias, feche posições longas para obter lucro.
  3. Quando a linha de 20 dias cruzar abaixo da linha de 60 dias, ou seja, ocorrer uma cruz de morte, feche todas as posições.
  4. Quando a perda atingir 10%, parar de perder.

Usar as cruzações médias móveis de linhas mensais e trimestrais para determinar tendências de médio e longo prazo. A cruz de ouro para longo indica o início de um mercado de alta de médio e longo prazo, enquanto a cruz de morte para curto indica o início de um mercado de baixa de médio e longo prazo. Ao mesmo tempo, use estratégias de stop profit e stop loss para controlar riscos.

Vantagens da estratégia

  1. A utilização de médias móveis mensais e trimestrais filtra o ruído do mercado e capta as tendências de médio e longo prazo.
  2. Os parâmetros da estratégia são simples e fáceis de implementar.
  3. Parâmetros de captação de lucro e stop loss personalizáveis para controlar os riscos.

Análise de riscos

  1. Incapaz de determinar pontos de inversão da tendência, com risco de perdas.
  2. As médias móveis mensais e trimestrais têm efeitos atrasados, potencialmente perdendo oportunidades de curto prazo.
  3. Precisa de selecionar pontos de parada de perda apropriados para evitar ser parado fora muito rápido.

Soluções:

  1. Adotar stop loss para parar em tempo hábil.
  2. Incorporar outros indicadores para filtrar sinais e determinar tendências.
  3. Ajustar os parâmetros da média móvel para otimizar a estratégia.

Orientações para a otimização da estratégia

  1. Adicionar outros indicadores de filtragem, como o indicador KD, etc., para evitar falsas rupturas.
  2. Otimizar os parâmetros da média móvel para encontrar a melhor combinação de parâmetros.
  3. Incorporar estratégias adicionais de lucro, como a retirada de lucro para capturar mais lucros.

Resumo

Esta estratégia utiliza sistematicamente as vantagens das médias móveis mensais e trimestrais, julgando as direções de tendência de médio e longo prazo através da cruz de ouro e cruz de morte das médias móveis. Ao mesmo tempo, mecanismos razoáveis de stop loss e take profit são configurados para controlar os riscos.


/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("均線操作-月季", overlay=true, initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30)
sma20 = sma(close, 20)
sma60 = sma(close, 60)

plot(sma20, title="月線", color=color.purple,linewidth=2)
plot(sma60, title="季線", color=color.yellow,linewidth=2)

backtest_year = input(title="backtest_year",type=input.integer,defval=2020)
backtest_month = input(title="backtest_month",type=input.integer,defval=10)
backtest_date = input(title="backtest_date",type=input.integer,defval=1)
backtest_start_time = timestamp(backtest_year,backtest_month,backtest_date,0,0,0)

to_long = sma20 > sma60  and close > highest(10)*0.9 // 黃金交叉
to_close = sma20 < sma60 // 死亡交叉
to_exit = close < highest(10)*0.9 //股價嚴重回檔
to_stop = close < 0.9*strategy.position_avg_price 

// to_long = crossover(sma20, sma60)   // 黃金交叉
// to_close = crossunder(sma20, sma60) // 死亡交叉

//plotchar(to_long, char="B", text="買", color=color.red, location=location.belowbar)
//plotchar(to_close, char="S", text="賣", color=color.green, location=location.abovebar)
//strategy.close("open long",when = tslide, comment="多單滑價7%出場")
if true
    strategy.entry("golden", strategy.long,  when=to_long,comment="多單入場")
    strategy.close("golden",  when=to_exit,comment="多單滑價7%出場")
    strategy.close("golden",  when=to_close,comment="月線季線死亡交叉")
    strategy.close("golden",  when=to_stop,comment="虧損10%強迫停損")


Mais.