O recurso está a ser carregado... Carregamento...

Tendência de seguimento com filtro de ruptura e frequência (apenas longo)

Autora:ChaoZhang, Data: 2024-05-28 14:00:24
Tags:EMAAO

img

Resumo

Esta estratégia é uma estratégia de seguimento de tendência baseada em breakout e filtragem de frequência, tomando apenas posições longas. A ideia principal da estratégia é usar o indicador EMA para determinar a direção da tendência atual, gerar um sinal longo quando o preço sai do preço mais alto dentro de um determinado intervalo e usar um filtro de frequência para controlar a frequência de negociação para evitar abrir posições com muita frequência. A estratégia também define um ponto de stop loss para controlar o risco e fecha posições quando a tendência termina.

Princípio da estratégia

  1. Calcule o indicador EMA para determinar a direção da tendência atual.
  2. Calcule o preço mais alto dentro de um determinado intervalo como condição de ruptura. Quando o preço de fechamento rompe o preço mais alto dentro do período de retrospecção mais curto ou mais longo e a tendência atual é de alta, um sinal longo é gerado.
  3. Introduzir um filtro de frequência para controlar o intervalo mínimo de tempo entre as aberturas de posições consecutivas, a fim de evitar uma frequência excessiva de negociação.
  4. Quando o preço cair abaixo do preço de stop loss, feche a posição para controlar o risco.
  5. Definir o sinal de fim da tendência. Quando o preço de fechamento cai abaixo da EMA, a tendência é considerada como terminada. Se uma posição longa for mantida neste momento, feche a posição.

Vantagens da estratégia

  1. Seguimento da tendência: Ao utilizar o indicador EMA para determinar a direcção da tendência e negociar em conformidade com a tendência, ajuda a melhorar os retornos da estratégia.
  2. Confirmação de ruptura: Usar a ruptura de preço como sinal de entrada permite uma entrada oportuna no início da tendência, capturando mais potencial de lucro.
  3. Controlo da frequência: a introdução de um filtro de frequência para controlar o intervalo de tempo entre as aberturas de posições consecutivas evita a negociação excessiva e reduz os custos e os riscos de negociação.
  4. Protecção de stop loss: definir um ponto de stop loss para parar imediatamente a perda quando o preço se move na direção oposta por uma certa magnitude controla efetivamente o risco de queda.
  5. Fechamento dinâmico de posições: o fechamento dinâmico de posições com base no sinal de fim da tendência permite o bloqueio oportuno dos lucros existentes e evita as perdas causadas pela inversão da tendência.

Riscos estratégicos

  1. Sensibilidade de parâmetros: o desempenho da estratégia é relativamente sensível à seleção de parâmetros, e diferentes configurações de parâmetros podem levar a diferenças significativas no desempenho da estratégia.
  2. Falha de ruptura: as rupturas de preços não garantem que a tendência continuará definitivamente, e pode haver casos de falha de ruptura, resultando em perdas consecutivas para a estratégia.
  3. Reconhecimento da tendência: A estratégia baseia-se no indicador EMA para julgar a tendência, mas o indicador EMA pode apresentar atraso ou erro de julgamento, afetando a precisão da estratégia.
  4. Negociação frequente: Embora a estratégia introduza um filtro de frequência, a abertura e o fechamento frequentes de posições ainda podem ocorrer quando a volatilidade do mercado é elevada, aumentando os custos de negociação.
  5. Risco de stop loss: a definição do ponto de stop loss pode não evitar completamente o aproveitamento máximo da estratégia, podendo ainda ocorrer grandes perdas em condições de mercado extremas.

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

  1. Optimização de parâmetros: Otimize os parâmetros-chave da estratégia, tais como comprimento da EMA, comprimento do período de revisão, percentagem de stop loss, etc., para encontrar a combinação ideal de parâmetros e melhorar a estabilidade e rentabilidade da estratégia.
  2. Filtragem do sinal: após a geração do sinal de ruptura, podem ser introduzidos outros indicadores ou condições técnicas para confirmar o sinal uma segunda vez, melhorando a qualidade do sinal e reduzindo os erros de julgamento e os falsos sinais.
  3. Julgamento da tendência: tente usar outros indicadores de julgamento da tendência, como MACD, DMI, etc., ou combine vários indicadores para julgar conjuntamente a tendência e melhorar a precisão do reconhecimento da tendência.
  4. O preço de paragem de perda dinâmica: ajustar dinamicamente o ponto de paragem de perda de acordo com as condições de volatilidade do mercado, por exemplo, utilizando o indicador ATR para calcular o preço de paragem de perda dinâmica ou introduzindo uma estratégia de paragem de perda para controlar melhor o risco.
  5. Gestão de posições: Otimizar a estratégia de gestão de posições, ajustar dinamicamente o tamanho da posição de acordo com a volatilidade do mercado e as condições de capital da conta, controlar a exposição ao risco de uma única transação e melhorar a eficiência da utilização do capital.

Resumo

Esta estratégia é uma estratégia de seguimento de tendências baseada em breakout e filtragem de frequência. Ele usa o indicador EMA para determinar a direção da tendência, usa a breakout de preço como o sinal de entrada, introduz um filtro de frequência para controlar a frequência de negociação e define um ponto de stop loss para controlar o risco. As vantagens da estratégia estão no seguimento de tendências, confirmação de breakout, controle de frequência, proteção de stop loss e fechamento de posição dinâmica, mas também tem riscos potenciais como sensibilidade de parâmetros, falha de breakout, reconhecimento de tendência, negociação frequente e risco de stop loss. Para otimizar ainda mais a estratégia, podemos começar a partir de aspectos como otimização de parâmetros, filtragem de sinal, julgamento de tendência, stop loss dinâmico e gerenciamento de posição para melhorar a estabilidade e lucratividade da estratégia.


/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend Following with Breakout and Frequency Filter (Long Only)", overlay=true)

// 输入参数
emaLength = input.int(50, title="EMA长度")
lookbackPeriodMin = input.int(80, title="最短回溯期")
lookbackPeriodMax = input.int(120, title="最长回溯期")
stopLossPct = input.float(2, title="止损百分比") / 100  // 止损百分比
minHoldBars = input.int(10, title="最小持仓K线数量")  // 最小持仓K线数量

// 计算EMA
ema = ta.ema(close, emaLength)

// 计算最高价和最低价
highestHigh = ta.highest(high, lookbackPeriodMax)
lowestLow = ta.lowest(low, lookbackPeriodMax)

// 定义趋势方向
isBullish = close > ema

// 定义突破信号
breakoutCondition = (ta.crossover(close, highestHigh[lookbackPeriodMin]) or ta.crossover(close, highestHigh[lookbackPeriodMax])) and isBullish

// 计算止损点
stopLossLevelLong = close * (1 - stopLossPct)

// 绘制EMA
plot(ema, title="EMA", color=color.blue)

// 记录上次开仓时间
var float lastEntryTime = na

// 策略执行并标注信号
if (breakoutCondition and (na(lastEntryTime) or (time - lastEntryTime) > minHoldBars * timeframe.multiplier))
    strategy.entry("做多", strategy.long)
    label.new(bar_index, high, text="买入", style=label.style_label_up, color=color.green, textcolor=color.white)
    strategy.exit("止损", from_entry="做多", stop=stopLossLevelLong)
    lastEntryTime := time

// 定义趋势结束信号
exitCondition = close < ema

if (exitCondition and (strategy.position_size > 0) and (time - lastEntryTime) > minHoldBars * timeframe.multiplier)
    strategy.close("做多")
    label.new(bar_index, low, text="卖出", style=label.style_label_down, color=color.red, textcolor=color.white)

Relacionados

Mais.