Estratégia de ciclo Els baseada em suavização de sinal


Data de criação: 2024-02-19 10:42:34 última modificação: 2024-02-19 10:42:34
cópia: 2 Cliques: 627
1
focar em
1617
Seguidores

Estratégia de ciclo Els baseada em suavização de sinal

Visão geral

Esta estratégia, combinando a teoria dos indicadores circulares de Ehlers com a análise de sinais de preços que foram processados de forma suave, desenha uma estratégia de negociação de Ehlers circular que suaviza os sinais de negociação. Esta estratégia pode filtrar eficazmente o ruído do mercado e produzir sinais de negociação mais confiáveis.

Princípio da estratégia

  1. O sinal de preço original src é processado em suavização de segunda fase, obtendo um sinal de suavização suave.

  2. O indicador de ciclo é calculado com base no sinal de suavização. O método de cálculo é: cycle := (1 - .5 alpha) (1 - .5 alpha) (smooth - 2 smooth[1] + smooth[2]) + 2 (1 - alpha) cycle[1] - (1 - alpha) (1 - alpha) * cycle[2]

onde α é o parâmetro de suavização ≠ .

  1. O indicador de ciclo é alinhado por um índice de fase para obter um sinal de negociação final. O método de cálculo é: signal := alpha2 cycle + (1 - alpha2) nz(signal[1])

onde α2 é o parâmetro de suavização de um grau.

  1. Quando o sinal atravessa o sinal[1] fazer mais quando; quando sinal debaixo do sinal[1] quando estiver livre.

Análise de vantagens estratégicas

  1. A suavização de segundo grau dos sinais de preços pode filtrar eficazmente o ruído de alta frequência, tornando os sinais de negociação mais confiáveis.

  2. Aplicando a teoria dos indicadores de ciclo de Ells, é possível determinar com mais precisão os pontos de conversão das tendências do mercado.

  3. O índice de primeira fase limpa o ruído dos indicadores circulares, produzindo um sinal de negociação mais confiável.

  4. Todo o processo de estratégia é racional, científico, o espaço de otimização de parâmetros é grande, o desempenho do disco é excelente.

Análise de Riscos

  1. Como outras estratégias de indicadores técnicos, a estratégia é sensível ao risco sistemático do mercado. Em caso de um grande evento de black swan, pode ocorrer um grande prejuízo.

  2. Uma vez que o processo de cálculo é mais complexo, a configuração inadequada dos parâmetros pode causar atrasos no cálculo, afetando a eficácia do disco rígido. É necessário testar cuidadosamente para garantir que a configuração dos parâmetros seja cientificamente razoável.

  3. O processamento de smoothing também pode levar a um atraso no sinal de negociação, podendo não ser capaz de capturar os pontos de inflexão do mercado a tempo, perdendo assim a oportunidade. A configuração dos parâmetros de smoothing deve ser balanceada.

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

  1. Pode-se testar diferentes tipos de algoritmos de suavização, como suavização de um grau, suavização de linha média, etc., para encontrar a solução de suavização ideal.

  2. Pode-se introduzir um mecanismo de regulação de parâmetros adaptativos, que ajusta dinamicamente os parâmetros de acordo com a situação do mercado, aumentando a robustez da estratégia.

  3. Pode-se desenhar estratégias de stop loss e stop-loss para reduzir o risco de perdas individuais e, ao mesmo tempo, bloquear os lucros.

  4. Modelos de aprendizagem de máquina que podem ser combinados com outros modelos para implementar combinações de modelos e usar outros modelos para filtrar sinais de transação.

Resumir

Esta estratégia usa a suavidade dos sinais de preço e o cálculo do indicador do ciclo de Els para projetar uma estratégia de negociação do ciclo de Els para suavizar os sinais de negociação. Esta estratégia pode filtrar o ruído de forma eficaz e produzir sinais de negociação mais confiáveis.

Código-fonte da estratégia
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ehlers Cyber Cycle Strategy",overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, commission_type = strategy.commission.percent, commission_value = 0.1)
src = input(hl2, title = "Source") 
alpha = input(.07, title = "Alpha")
lag = input(9, title = "Lag")
smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6

cycle = na
if na(cycle[7])
    cycle := (src - 2 * src[1] + src[2]) / 4
else
    cycle := (1 - .5 * alpha) * (1 - .5 * alpha) * (smooth - 2 * smooth[1] + smooth[2]) + 2 * (1 - alpha) * cycle[1] - (1 - alpha) * (1 - alpha) * cycle[2]

alpha2 = 1 / (lag + 1)
signal = na
signal := alpha2 * cycle + (1 - alpha2) * nz(signal[1])
oppositeTrade = input(true)
barsSinceEntry = 0
barsSinceEntry := nz(barsSinceEntry[1]) + 1
if strategy.position_size == 0
    barsSinceEntry := 0
if (crossover(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossunder(signal, signal[1]))
    strategy.entry("Long", strategy.long)
    barsSinceEntry := 0
if (crossunder(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossover(signal, signal[1]))
    strategy.entry("Short", strategy.short)
    barsSinceEntry := 0
if strategy.openprofit < 0 and barsSinceEntry > 8
    strategy.close_all()
    barsSinceEntry := 0
    
    
plot(0, title="ZeroLine", color=gray) 
plotSrc = signal
cyclePlot = plot(plotSrc, title = "CyberCycle", color = blue)
triggerPlot = plot(plotSrc[1], title = "Trigger", color = green)
fill(cyclePlot, triggerPlot, color = plotSrc < plotSrc[1] ? red : lime, transp = 50)