Estratégia de negociação de ruptura de momento

Autora:ChaoZhang, Data: 2024-01-31 14:14:56
Tags:

img

Resumo

Esta é uma tendência baseada em impulso após a estratégia de negociação de ruptura. Ele calcula os preços mais altos e mais baixos durante um determinado período para determinar a direção da tendência, e entra em negociações longas ou curtas quando os preços quebram níveis-chave.

Estratégia lógica

A lógica central desta estratégia é a seguinte:

  1. Utilize as funções mais elevadas e mais baixas para calcular os preços mais elevados e mais baixos dos últimos 20 candelabros, como indicadores de impulso para julgar a tendência.

  2. Quando o último preço de fechamento ultrapassar o preço mais alto do período anterior, vá longo.

  3. Quando o último preço de fechamento for abaixo do preço mais baixo do período anterior, vá para curto.

  4. Para controlar os riscos, defina uma distância de stop loss de 1% e uma distância de take profit de 2%, dando um rácio risco-recompensa de 2:1.

  5. Trace os preços mais altos e mais baixos dentro dos 20 velas para determinar visualmente a direção da tendência e os níveis de ruptura.

O acima é a lógica de negociação principal desta estratégia. Ele usa indicadores de impulso para julgar a tendência e negocia breakouts de níveis-chave, tornando-se uma tendência após a estratégia de breakout.

Vantagens

As vantagens desta estratégia incluem:

  1. Calcular os preços mais altos e mais baixos ajuda a filtrar sinais falsos dos mercados de gama.

  2. Lógica simples e clara, muito acima do máximo anterior e pouco abaixo do mínimo anterior, fácil de entender e implementar.

  3. Riscos controlados: a perda máxima é de 1% e o lucro máximo é de 2% com stop loss e take profit definidos, dando uma relação risco-recompensa razoável.

  4. Fácil de otimizar. O período de cálculo pode ser ajustado para melhor tempo de entrada. Os níveis de stop loss e take profit também podem ser ajustados para mais lucros ou menores riscos.

Riscos

Há também alguns riscos:

  1. O stop loss ainda é possível com oscilações rápidas e enormes de preços.

  2. Falta de sinais de reversão se o período de cálculo for muito longo.

  3. As configurações incorretas dos parâmetros podem levar à não lucratividade.

Optimização

Esta estratégia pode ser melhorada em aspectos como:

  1. Adicionar filtros para garantir força de tendência suficiente antes de entrar em negociações.

  2. Ajustar o parâmetro do período para equilibrar a puntualidade e a estabilidade do julgamento da tendência.

  3. Incorporar stop loss para bloquear os lucros e evitar que o stop loss seja atingido.

  4. Optimização de parâmetros através de backtesting histórico para encontrar as combinações ideais de configurações.

Conclusão

Esta é uma tendência típica após a estratégia de negociação de ruptura. Ele usa indicadores de momento para determinar a tendência e negocia rupturas de níveis-chave. Os prós são simplicidade, riscos controláveis e facilidade de compreensão / otimização. Mas pode ter um desempenho inferior em certos ambientes de mercado.


/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
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.