Estratégia de rompimento da bandeira de touro com base na relação risco-recompensa e análise técnica


Data de criação: 2024-05-28 10:47:51 última modificação: 2024-05-28 10:47:51
cópia: 1 Cliques: 462
1
focar em
1617
Seguidores

Estratégia de rompimento da bandeira de touro com base na relação risco-recompensa e análise técnica

Visão geral

A estratégia baseia-se na forma de bandeira de boi, comprando após a ruptura do preço do alto da faixa de bandeira, colocando o ponto de parada no baixo da faixa de bandeira, e definindo o lucro-alvo com base na relação de risco-retorno. A estratégia usa a função de preço máximo e mínimo para identificar a faixa de bandeira e julgar a ruptura comparando o preço de encerramento atual com o preço máximo da linha K anterior.

Princípio da estratégia

  1. Identificar a forma de bandeira do touro: use a função de preço máximo e mínimo para calcular os altos e baixos do intervalo de bandeira e determinar se o preço atual quebrou o alto da bandeira.
  2. Entrar: comprar se o preço de fechamento atual ultrapassar o preço máximo da linha K anterior e o preço máximo da linha K anterior estiver abaixo do ponto mais alto da bandeira.
  3. Stop loss: O preço de stop loss é definido como o ponto baixo em forma de bandeira menos um valor de amortização.
  4. Stop Stop: preço-alvo calculado de acordo com a relação de risco-retorno. Preço-alvo = preço de entrada + (preço de entrada - preço de parada) * Ratio de risco-retorno

Vantagens estratégicas

  1. Baseado na forma clássica da bandeira do touro, pode ser usado para capturar oportunidades de retração em uma forte tendência.
  2. A posição de stop loss está no ponto baixo em forma de bandeira, o risco é controlado.
  3. O retorno do risco é mais lucrativo do que o preço-alvo.
  4. A lógica do código é clara, usa funções embutidas no TradingView, é fácil de entender e modificar.

Risco estratégico

  1. Quando o mercado está em turbulência ou a tendência é incerta, o preço pode reverter rapidamente após a ruptura da bandeira, levando a uma retracção maior.
  2. A configuração inadequada da barreira pode levar a uma parada prematura.
  3. A relação de risco/retorno real pode não atingir o valor definido.
  4. A estratégia pode não funcionar para alguns desenhos de bandeiras deformadas.

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

  1. Pode-se considerar a adição de mais filtros condicionais, como mudanças no volume de transação, direção da linha média, etc., para melhorar a qualidade do sinal.
  2. Para diferentes características do mercado, os parâmetros podem ser otimizados, como o comprimento do intervalo de bandeira, a taxa de retorno do risco, o valor de amortização de perda, etc.
  3. Pode-se considerar a construção de depósitos em lotes e a parada dinâmica para reduzir a exposição ao risco.
  4. Adjuntar-se à administração de posições e controlar o risco global.

Resumir

A estratégia é uma estratégia de ruptura baseada no padrão clássico de bandeira de touros, para capturar oportunidades de continuação de tendências através da identificação de bandas de bandeira e brechas de preço. A vantagem da estratégia é a clareza lógica, o risco é controlável, mas há um certo risco quando o mercado está em turbulência ou a tendência se inverte.

Código-fonte 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("Bull Flag Breakout", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Параметры стратегии
riskRewardRatio = 3.0
flagLength = input.int(5, title="Flag Length")
stopLossBuffer = input.float(0.01, title="Stop Loss Buffer", step=0.001)

// Функция для вычисления стоп-лосса и тейк-профита
calcRiskRewardPrice(entryPrice, stopLossPrice, riskRewardRatio) =>
    takeProfitPrice = entryPrice + (entryPrice - stopLossPrice) * riskRewardRatio
    [stopLossPrice, takeProfitPrice]

// Найти минимум и максимум флага
flagLow = ta.lowest(low, flagLength)
flagHigh = ta.highest(high, flagLength)

// Условия для формирования бычьего флага
isBullFlag = high[1] < flagHigh and close > high[1]

// Условия для входа в сделку
if (isBullFlag)
    entryPrice = close
    stopLossPrice = flagLow - stopLossBuffer
    [calculatedStopLoss, calculatedTakeProfit] = calcRiskRewardPrice(entryPrice, stopLossPrice, riskRewardRatio)
    
    // Открыть длинную позицию
    strategy.entry("Bull Flag Long", strategy.long)
    strategy.exit("Take Profit", "Bull Flag Long", limit=calculatedTakeProfit)
    strategy.exit("Stop Loss", "Bull Flag Long", stop=calculatedStopLoss)
    label.new(bar_index, high, "Buy", color=color.green, textcolor=color.white, style=label.style_label_down)