Estratégia de fuga de canal para cima e para baixo


Data de criação: 2024-02-28 18:12:47 última modificação: 2024-02-28 18:12:47
cópia: 1 Cliques: 695
1
focar em
1617
Seguidores

Estratégia de fuga de canal para cima e para baixo

Visão geral

Esta estratégia utiliza o canal de ascensão que se forma entre o indicador de amplitude real média e o preço calculado para produzir um sinal de negociação quando o preço quebra o canal. A estratégia possui uma excelente capacidade de acompanhamento de tendências.

Princípio da estratégia

Esta estratégia primeiro calcula o indicador ATR como uma medida da oscilação dos preços, e depois combina o valor médio dos preços mais altos, mais baixos e mais baixos, para calcular a ascensão e a descensão. Quando os preços sobem, eles produzem um sinal de compra. Quando os preços caem, eles produzem um sinal de venda.

Após o lançamento, a estratégia define um objetivo de pontos de lucro e um ponto de parada. A parada é feita quando o preço atinge o objetivo e a retirada é interrompida se o retorno atinge o ponto de parada.

Análise de vantagens

A maior vantagem desta estratégia reside na sua excelente capacidade de acompanhamento de tendências. O canal de elevação é capaz de se adaptar e capturar mudanças na tendência de preços.

Análise de Riscos

Um dos principais riscos desta estratégia é a propensão a produzir mais períodos de posições vazias. Quando os preços estão em um estado de agitação, muitas vezes o que leva a um canal ascendente ou descendente a ser acionado com frequência, o que pode resultar em mais negociações inválidas. Além disso, a configuração do número de pontos de parada também pode afetar diretamente os resultados finais.

Para reduzir esses riscos, pode-se considerar otimizar os parâmetros do ATR ou ajustar a largura do canal para que o canal fique mais próximo da tendência real. Além disso, pode ser usado em combinação com outros indicadores para filtrar o tempo de entrada no mercado.

Direção de otimização

A estratégia pode ser melhorada em alguns aspectos:

  1. Optimizar os parâmetros do ATR. Pode testar diferentes parâmetros de ciclo, para que o ATR reflita melhor as flutuações reais.

  2. Optimizar a largura do canal. Pode testar diferentes valores de multiplicação para determinar o melhor parâmetro.

  3. Adicionar filtros de outros indicadores. Por exemplo, combinando os indicadores MACD para determinar os pontos de compra e venda, pode reduzir em certa medida as transações inválidas.

  4. Optimizar o número de pontos de stop loss e o número de pontos de parada. Teste o impacto de diferentes parâmetros na taxa de retorno final.

  5. Considere a taxa de Sharpe ou a taxa de perdas e prejuízos como um objetivo de otimização. Para avaliar a qualidade da estratégia de forma mais abrangente.

Resumir

Esta estratégia permite um excelente acompanhamento de tendências por meio da adaptação de canais de ascensão e princípios de ruptura. Além disso, possui uma lógica de stop-loss relativamente clara. Com a otimização de certos parâmetros e regras, espera-se aumentar ainda mais a capacidade de acompanhamento dinâmico da estratégia, permitindo a sua aplicação em um ambiente de mercado mais amplo.

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

//@version=5
strategy("Supertrend Strategy", overlay=true)

// Input parameters
atr_length = input.int(10, title="ATR Length")
multiplier = input.float(3.0, title="Multiplier")

target_points = input.int(100, title="Target Points")
stop_loss_points = input.int(50, title="Stop Loss Points")

// Calculate ATR and Supertrend
atr = ta.atr(atr_length)
upper_band = hlc3 + (multiplier * atr)
lower_band = hlc3 - (multiplier * atr)
is_uptrend = close > lower_band
is_downtrend = close < upper_band
trend_changed = (is_uptrend[1] and is_downtrend) or (is_downtrend[1] and is_uptrend)

// Strategy logic
long_condition = is_uptrend and trend_changed
short_condition = is_downtrend and trend_changed

// Plot Supertrend
plot(is_uptrend ? lower_band : na, color=color.green, title="Supertrend Up", style=plot.style_linebr)
plot(is_downtrend ? upper_band : na, color=color.red, title="Supertrend Down", style=plot.style_linebr)

// Strategy entry and exit
if long_condition
    strategy.entry("Long", strategy.long)
if short_condition
    strategy.entry("Short", strategy.short)

// Calculate target and stop loss levels
long_target = strategy.position_avg_price + target_points
long_stop_loss = strategy.position_avg_price - stop_loss_points
short_target = strategy.position_avg_price - target_points
short_stop_loss = strategy.position_avg_price + stop_loss_points

// Strategy exit
strategy.exit("Long Exit", "Long", limit=long_target, stop=long_stop_loss)
strategy.exit("Short Exit", "Short", limit=short_target, stop=short_stop_loss)