Estratégia de quebra de crossover


Data de criação: 2023-10-12 16:47:55 última modificação: 2023-10-12 16:47:55
cópia: 0 Cliques: 584
1
focar em
1617
Seguidores

Visão geral

A estratégia de cruzamento de movimentação é uma estratégia de negociação quantitativa muito comum. A estratégia utiliza a média móvel para determinar a tendência e obter lucro. Quando a média móvel de curto prazo cruza a média móvel de longo prazo, indica que o preço da ação começa a subir e pode fazer mais; Quando a média móvel de curto prazo cruza a média móvel de longo prazo abaixo, indica que o preço da ação começa a cair e pode fazer vazio.

Princípio da estratégia

A estratégia baseia-se no movimento do equilíbrio para determinar o momento de compra e venda.upOrDownelongOrShortDois parâmetros de entrada de Boole para determinar o excesso de vazio;percentInputParâmetros de entrada para definir a porcentagem de desvalorização de mudanças no preço das ações; usoclosePositionDaysIntroduza um parâmetro para definir o número de dias de posse.

A lógica central da estratégia é: Calcule o aumento ou a diminuição de hoje em relação a ontem, e emite um sinal de negociação se atingir o percentual de diminuição de entrada. Se for de baixa, faça mais quando o aumento ou a diminuição de hoje em relação a ontem ultrapassa a diminuição de valor; se for de baixa, faça zero quando o aumento ou a diminuição de hoje em relação a ontem ultrapassa a diminuição de valor.

Depois de fazer mais vazio, o dia será marcado em cores diferentes no mapa e os 4 dias seguintes.

Vantagens estratégicas

  • O uso de um forquilho móvel é uma forma comprovada e confiável de avaliar a tendência do mercado.
  • A lógica da estratégia é simples, clara e fácil de entender.
  • A frequência da estratégia pode ser controlada por ajustes de parâmetros
  • Mecanismos automáticos de parada de prejuízos controlam os riscos de forma eficaz

Risco estratégico

  • A média móvel tem um atraso e pode perder momentos de mudanças rápidas nos preços
  • Os preços das ações podem sofrer grandes oscilações em curto prazo, causando um cruzamento desnecessário.
  • ParameterSet de configuração errada também pode afetar o efeito da política
  • Incapacidade de responder eficazmente às consequências de uma emergência

Medidas de controle de risco:

  1. Parâmetros de média móvel otimizados, com ciclos de prolongamento adequados para ajudar a filtrar o ruído
  2. Aumentar o percentual de desvalorização das ações, reduzindo transações desnecessárias
  3. Teste diferentes dias de posse para controlar perdas individuais
  4. Combinado com outros indicadores, confirmação de sinais de tendência

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

  • Pode-se considerar a mudança da média móvel para a média móvel de índices como EMA, DMA, etc., para torná-la mais sensível às mudanças de preços
  • Aumentar os mecanismos de suspensão de perdas, como a suspensão imediata de perdas em caso de ruptura da linha média
  • Adicionar outros indicadores técnicos para combinação, como MACD, KDJ, etc., para aumentar a taxa de vitória da estratégia
  • Pode tentar métodos de aprendizagem de máquina para otimizar automaticamente os parâmetros
  • Otimizar o tempo de entrada e saída, como breakout entrada

Resumir

A estratégia de cruzamento de equilíbrio móvel é uma estratégia de negociação quantitativa muito simples e prática. Ela aproveita a tendência dos preços das ações, julgando a relação entre as tendências de curto e longo prazo. A estratégia é fácil de implementar, é clara em termos lógicos e é a base de muitas estratégias de negociação quantitativa.

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

//@version=3
//  Created by Leon Ross

strategy(title = "DaysAfterCertainPercentChangev1", shorttitle = "DACPCv1", overlay = true, 
  pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, 
  calc_on_every_tick=true, initial_capital=100000)
  
//Inputs
longOrShort = input(title="Long=Checked Short=Unchecked", type=bool, defval=true) //long=true, down=false
upOrDown = input(title="Direction of Today vs. Previous day: Up=Checked Down=Unchecked", type=bool, defval=true) //up=true, down=false: this is the direction of days vs previous day
percentInput = input(title="Percent", type=float, defval=4.5)
closePositionDays = input(title="How Many Days to Close Position", defval=4)

//Conditions
//percentUpValue = (close / close[1]) - 1
//percentUp = percentUpValue >= (percentInput/100.0)
//upConditions = percentUp
//percentDownValue = 1- (close / close[1])
//percentDown = percentDownValue >= (percentInput/100.0)
//downConditions = percentDown
upValue = (close / close[1]) - 1
downValue = 1 - (close / close[1])
allConditions = if(upOrDown)
    upValue >= (percentInput/100.0)
else
    downValue >= (percentInput/100.0)
    
//Plots
bgcolor(allConditions ? (upOrDown ? green : red) : na, transp=70)
bgcolor(allConditions ? silver : na, transp=70, offset=1)
bgcolor(allConditions ? silver : na, transp=70, offset=2)
bgcolor(allConditions ? silver : na, transp=70, offset=3)
bgcolor(allConditions ? silver : na, transp=70, offset=4)
//bgcolor(downConditions == 1 ? red : na, transp=70)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=1)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=2)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=3)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=4)

//Entires
if(longOrShort)
    strategy.entry(id = "Long", long = true, when = allConditions) 
else
    strategy.entry(id = "Short", long = false, when = allConditions)

//Exits
if (barssince(allConditions) == closePositionDays)
    if(longOrShort)
        strategy.close("Long")
    else
        strategy.close("Short")