Tendência dinâmica de ruptura seguindo a estratégia

Autora:ChaoZhang, Data: 2023-12-29 17:32:10
Tags:

img

Resumo

Esta é uma tendência dinâmica após a estratégia de breakout. Ele rastreia o preço mais alto e mais baixo das ações em tempo real. Quando o preço atravessa o preço mais alto no período recente, ele vai longo. Quando o preço atravessa o preço mais baixo no período recente, ele vai curto. Enquanto isso, o stop loss e o take profit são definidos para controlar os riscos e garantir a relação de recompensa de risco fixo.

Estratégia lógica

A lógica central desta estratégia é rastrear e negociar pontos de ruptura de tendências de preços. Especificamente, a estratégia calcula a maior alta e a menor baixa nos últimos 20 dias. Quando o preço de fechamento de hoje ultrapassa o máximo de ontem, ele é considerado um sinal de ruptura de tendência ascendente e vai longo. Quando o preço de fechamento de hoje ultrapassa o mínimo de ontem, ele é considerado um sinal de ruptura de tendência descendente e vai curto.

Após o longo ou curto, o stop loss de 1% e o take profit de 2% são definidos.

Vantagens

A maior vantagem desta estratégia é a rápida captação dos pontos de reversão das tendências de preços, controlando simultaneamente os riscos de cada operação.

  1. Cálculo dinâmico do preço mais alto e mais baixo, rastreamento em tempo real das mudanças da tendência de preços, que pode capturar rapidamente os sinais de reversão de preços.

  2. Usar o método de separação para as entradas melhora a qualidade das entradas.

  3. A definição de stop loss e take profit para controlar a relação de risco-recompensação do single trade gerencia efetivamente o risco comercial.

  4. Lógica simples e fácil de entender, adequada para principiantes em quantidade.

  5. Menos código que é fácil de testar e otimizar.

Riscos

Há também alguns riscos desta estratégia:

  1. Seguir as tendências das entradas pode perder os melhores pontos de viragem da inversão de preços.

  2. O stop loss e o take profit fixos não podem adaptar-se às mudanças do mercado, podem parar ou atingir o lucro prematuramente.

  3. Não há lógica de pirâmide para entradas adicionais posteriores, não pode seguir as tendências.

  4. Nenhuma consideração dos grandes ciclos, pode entrar em conflito com a tendência principal causando perdas.

  5. Sem módulo de dimensionamento de posição, não pode controlar a gestão geral da posição.

Orientações de otimização

Ainda há muito espaço para otimização, principalmente nas seguintes direcções:

  1. Adicione stop loss dinâmico e take profit baseado na volatilidade do mercado.

  2. Adicionar um filtro de direção da tendência baseado na média móvel para evitar conflitos de tendências principais.

  3. Adicionar indicador de força da tendência para garantir a entrada apenas em tendências fortes.

  4. Adicione a lógica da pirâmide para maximizar os lucros seguindo as tendências.

  5. Combinar com o módulo de dimensionamento de posição para ajustar dinamicamente o tamanho da posição e controlar o risco global.

  6. Otimizar parâmetros para encontrar conjuntos de parâmetros ideais.

Resumo

Em resumo, esta estratégia é adequada para iniciantes quant aprender e praticar em geral. Sua vantagem reside na simplicidade e fácil compreensão, também com stop loss e take profit lógica para controlar o risco. Mas ainda tem muitos aspectos para otimizar, pode servir como chance para mais aprendizado.


/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Trend Following Breakout Strategy with 2:1 RRR", overlay=true)

// 定义前高和前低的计算
length = input(20, minval=1, title="Length")
highestHigh = highest(high, length)
lowestLow = lowest(low, length)

// 定义买入和卖出的条件
longCondition = close > highestHigh[1] // 当前收盘价高于前一期的最高价
shortCondition = close < lowestLow[1] // 当前收盘价低于前一期的最低价

// 为了确保盈亏比为2:1,我们需要定义止损和目标价
stopLoss = input(1, title="Stop Loss %") / 100
takeProfit = stopLoss * 2

// 如果满足买入条件,进入多头
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long TP", "Long", profit=takeProfit * close, loss=stopLoss * close)

// 如果满足卖出条件,进入空头
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short TP", "Short", profit=takeProfit * close, loss=stopLoss * close)

// 绘图显示前高和前低
plot(highestHigh, color=color.green, title="Previous High")
plot(lowestLow, color=color.red, title="Previous Low")


Mais.