Estratégia CAT de flutuação de reversão

Autora:ChaoZhang, Data: 2024-02-19 14:29:51
Tags:

img

Resumo

A estratégia CAT de flutuação de reversão é uma estratégia quantitativa de negociação baseada em indicadores técnicos. Esta estratégia julga a tendência do mercado e as posições de suporte / resistência através de MA, EMA e outros indicadores, e combina indicadores personalizados de cisne preto e cisne branco para determinar flutuações anormais, implementando assim uma estratégia de negociação de tendência de compra baixa e venda alta.

Princípios de estratégia

A lógica central da estratégia CAT de Fluctuação de Reversão é julgar a tendência geral através de indicadores técnicos, como MA e EMA, e, em seguida, capturar as oportunidades de flutuações anormais usando indicadores personalizados de cisne preto e cisne branco.

  1. Utilize indicadores como SMA e EMA para determinar a direção geral da tendência. Por exemplo, a EMA144 cruzando acima da EMA169 é considerada um sinal de alta, e a EMA144 cruzando abaixo da EMA169 é considerada um sinal de baixa.

  2. Um indicador de cisne negro personalizado é definido como (fechar - abrir) / fechar. Reflete o grau de flutuação anormal de um candelabro. Quando o indicador de cisne negro excede o limiar (como 0,0191) e o fechamento é menor que o aberto, ele indica uma flutuação anormal descendente que apresenta uma oportunidade de curto.

  3. O indicador de cisne branco é semelhante ao indicador de cisne preto, que também reflete o grau de flutuação anormal de um candelabro.

  4. Após capturar as oportunidades de flutuações anormais, ele esperará por sinais de reversão de indicadores como a EMA para fechar posições, alcançando assim compras baixas e vendas altas.

Esta estratégia combina o uso de médias móveis para determinar tendências e indicadores personalizados para capturar anomalias, que implementa uma estratégia quantitativa típica de reversão de negociação.

Análise das vantagens

A estratégia CAT de flutuação inversa tem as seguintes vantagens:

  1. Captura de flutuações anormais com taxa de ganho relativamente alta. Os indicadores cisne preto e cisne branco podem capturar efetivamente flutuações anormais de preços. Essas flutuações geralmente implicam reversões, de modo que a taxa de ganho do comércio é maior.

  2. Os critérios de entrada e saída desta estratégia são muito claros, o que ajuda a evitar operações aleatórias e emocionais pelos traders.

  3. Múltiples parâmetros e indicadores para otimização e ajuste. tais como os parâmetros do ciclo de MA e EMA, os parâmetros de limiar dos indicadores de cisne negro e cisne branco, etc., podem ser otimizados e ajustados para tornar a estratégia melhor adaptada a diferentes produtos e ambientes de negociação.

  4. Esta estratégia combina tendência e reversão e pode ser configurada para diferentes ciclos de tempo para uso em cenários de negociação de alta e baixa frequência.

  5. Medidas relativamente completas de controlo de riscos: a estratégia adota uma percentagem do capital próprio para a colocação de ordens e dispõe também de um mecanismo de stop loss para controlar eficazmente as perdas de transacções individuais.

Análise de riscos

A estratégia CAT de Fluctuação de Reversão também apresenta alguns riscos, principalmente:

  1. Risco de otimização de parâmetros. A definição de parâmetros como cisne preto e cisne branco tem um grande impacto no desempenho da estratégia. Se os parâmetros forem definidos incorretamente, isso reduzirá muito a lucratividade da estratégia.

  2. Quando o mercado apresenta uma tendência unilateral mais prolongada, esta estratégia pode produzir certas perdas consecutivas e maiores retiradas.

  3. Risco de Falsa Breakout. Falsa breakouts muitas vezes aparecem na realidade no curto prazo. Se os parâmetros são muito sensíveis pode causar muitas negociações desnecessárias.

Em resposta aos riscos acima referidos, podem ser adoptadas as seguintes medidas:

  1. Estabelecer um mecanismo de otimização de parâmetros, utilizar dados históricos para um rigoroso backtesting e otimização para garantir configurações razoáveis de parâmetros.

  2. Configure um mecanismo de stop loss.

  3. Ajustar a sensibilidade dos parâmetros. Evitar configurações de parâmetros excessivamente sensíveis adicionando certas condições de filtragem para evitar interferências falsas de ruptura.

Orientações de otimização

A estratégia CAT de Fluctuação de Reversão também tem grande espaço para otimização.

  1. Refinar ainda mais os indicadores do cisne preto e do cisne branco, definindo diferentes combinações de parâmetros para identificar as flutuações anormais de forma mais precisa e abrangente.

  2. Aumentar os algoritmos de aprendizagem de máquina, usar redes neurais ou métodos de aprendizagem em conjunto para otimizar automaticamente as configurações de parâmetros para que os parâmetros da estratégia se ajustem dinamicamente para melhor adaptação às mudanças do mercado.

  3. Usar tecnologia de aprendizagem profunda para identificar padrões de gráficos para ajudar a julgar sinais de inversão de preços e melhorar o desempenho da estratégia.

  4. Adicionar controle lógico difuso sobre a sensibilidade do parâmetro, manter os parâmetros estáveis quando a tendência é óbvia e aumentar a sensibilidade do parâmetro em pontos de inflexão quando a tendência se inverte.

  5. Combinar métodos globais de otimização, tais como algoritmos genéticos sem parâmetros e recozimento simulado, para alcançar uma otimização global de vários parâmetros.

  6. Expandir as variedades de negociação, aumentar outras variedades como ações e criptomoedas para arbitragem entre mercados.

Através da otimização sistemática do modelo e dos parâmetros, a robustez da estratégia CAT de Fluctuação de Reversão pode ser ainda melhorada, obtendo assim resultados comerciais superiores.

Conclusão

A estratégia CAT de flutuação de reversão combina médias móveis e indicadores personalizados para identificar efetivamente as reversões do mercado em uma estratégia de negociação quantitativa. Esta estratégia tem vantagens como capturar flutuações anormais, regras de entrada e saída padrão e grande espaço de otimização. O efeito pode ser ainda melhorado através de otimização de parâmetros e modelos.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4


//适合1分钟-3分钟的k线,发生波动超过百分之二时,自动报警
strategy("BlackSwan strategy", overlay=true,
         initial_capital=10000, currency='USD', default_qty_type=strategy.percent_of_equity,
         default_qty_value=100, commission_type= strategy.commission.percent, commission_value=0.075,pyramiding=3)
//-------------------------------------------
//-------------------------------------------
timecondition =  timeframe.period =="480"  or timeframe.period =="240" or timeframe.period =="D"  or timeframe.period =="720"
// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=11, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2018, minval=1800, maxval=2100)
endDate = input(title="End Date", type=input.integer,
     defval=1, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=11, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2031, minval=1800, maxval=2100)
// Look if the close time of the current bar
// falls inside the date range
inDateRange = (time >= timestamp(syminfo.timezone, startYear,
         startMonth, startDate, 0, 0)) and
     (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))
     
     

// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")


ma60 = sma(close,60)
ema144 = ema(close,144)

ema169 = ema(close,169)
ma20=sma(close,20)

     
plot(ema144,color=color.yellow, title="144")
plot(ema169,color=color.orange, title="169")

    
heitiane=(close-open)
heitiane:=abs(heitiane)
heitiane:=heitiane/close

if (inDateRange and  heitiane >0.0191 and close<open) //  and close>f3
    strategy.entry("botsell20", strategy.short, comment = "黑天鹅追空"+tostring(heitiane))

if(crossover(ema144,ema169))
    strategy.close("botsell20", comment = "平空")
if (inDateRange and  heitiane >0.0191 and close>open) //  and close>f3
    strategy.entry("botbuy20", strategy.long, comment = "白天鹅追多"+tostring(heitiane))

if(crossunder(ema144,ema169))
    strategy.close("botbuy20", comment = "平多")
  


Mais.