Estratégia de quebra de tendência - Long Shadow


Data de criação: 2023-11-15 16:43:17 última modificação: 2023-11-15 16:43:17
cópia: 2 Cliques: 665
1
focar em
1617
Seguidores

Estratégia de quebra de tendência - Long Shadow

Esta estratégia determina a direção da tendência atual através do cálculo da proporção de comprimento de sombra de sol da linha K. Identifica a tendência em conjunto com o ATR de amplitude real média. Abrir posições de reversão no ponto de ruptura e definir um stop loss para capturar a tendência de curto prazo.

Princípio da estratégia

A estratégia consiste em calcular a relação entre o comprimento da sombra solar e o comprimento da linha K para determinar a direção da tendência atual. Quando o comprimento da linha solar é excessivo, a tendência é descendente, e quando o comprimento da sombra solar é excessivo, a tendência é ascendente.

A lógica da estratégia é a seguinte:

  1. Calcule o comprimento da sombra inferior da linha K: close-low (preço de fechamento - preço mínimo)
  2. Calcule o comprimento da sombra superior da linha K: high-open ((o preço mais alto - o preço de abertura)
  3. Tire o máximo da sombra abaixo e da sombra acima como comprimento da sombra
  4. Calcule o comprimento da entidade de linha K: high-low (o preço mais alto - o preço mais baixo)
  5. Calcule a relação entre o comprimento da sombra e o comprimento do objeto
  6. Quando a proporção é maior do que 0,5 e a sombra inferior é maior do que a sombra superior, julgar como uma tendência para baixo e configurar uma entrada múltipla
  7. Quando a proporção é maior do que 0,5 e a sombra superior é maior que a inferior, julgar como uma tendência ascendente e definir a entrada em branco
  8. Ao entrar no campo, julgue simultaneamente se o comprimento da entidade da linha K é maior do que a amplitude real média do ATR de 0,75 vezes, para evitar a ruptura ineficaz.
  9. Depois de entrar, configure o stop loss, o stop loss é o preço de entrada multiplicado pelo fator, o stop loss é o preço de entrada multiplicado pelo fator 2 vezes, para obter uma relação de ganhos e perdas de 2: 1

Isso é a lógica básica de negociação da estratégia, que consiste em abrir posições de retorno através da identificação de breakouts de tendência e, depois de definir um stop loss, otimizar o lucro.

Vantagens estratégicas

  1. O uso da taxa de sombra do sol para determinar a direção da tendência, com alta distinção
  2. Combinação de indicadores ATR para um julgamento de ruptura eficaz, evitando sinais falsos
  3. Estabelecimento de um Stop Loss Stop para o controle de risco
  4. Realização de uma relação de ganhos e perdas de 2: 1 que atenda aos padrões de transação quantitativa
  5. Ações de curto prazo com alta volatilidade
  6. A lógica da estratégia é simples, clara e fácil de entender.

Risco estratégico

  1. Quando os preços das ações flutuam fortemente, o stop loss pode ser ultrapassado, causando uma expansão dos prejuízos.
  2. O efeito está intimamente relacionado com a configuração de parâmetros, que precisam ser otimizados.
  3. A tendência pode virar e causar perdas.
  4. A expansão simultânea dos limites de stop loss e de paralisação aumenta a probabilidade de perda
  5. A falha na invasão pode trazer grandes perdas.

O risco pode ser controlado por meio de stop loss razoável, parâmetros de otimização e stop loss oportuno.

Otimização de Estratégia

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar os parâmetros de proporção de sombra solar para encontrar os melhores valores
  2. Optimizar os parâmetros ATR para determinar a melhor distância K
  3. Optimizar o coeficiente de suspensão de perdas para obter a melhor relação risco-recompensa
  4. Aumentar a gestão da posição, por exemplo, aumentando a posição gradualmente
  5. Aumentar o rastreamento de perdas e proteger os lucros
  6. Combinação de outros indicadores para filtrar o sinal de entrada
  7. Optimizar o período de retrospectiva para testar a eficácia em diferentes fases do mercado

O efeito da estratégia pode ser maximizado por meio de testes e otimização multifacetados.

Em geral, a estratégia é uma estratégia de ruptura de linha curta com um efeito estável, aproveitando as flutuações de preços de curto prazo através da identificação de tendências e controle de risco. Se otimizada, pode ser uma parte fundamental da negociação quantitativa.

Código-fonte da estratégia
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ondrej17

//@version=4
strategy("longWickstrategy", overlay=true )
 
// Inputs
st_yr_inp = input(defval=2020, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')
sltp_inp = input(defval=0.8, title='N - % offset for N*SL and (2N)*TP')/100
 
// Dates
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00)
canTrade = time >= start and time <= end
// Indicators Setup


 
// Strategy Calcuations
lowerWick = (open > close) ? close-low : open - low
upperWick = (open > close) ? high-open : high-close
wickLength = max(lowerWick,upperWick)
candleLength = high-low
wickToCandleRatio = wickLength / candleLength
entryFilterCandleLength = candleLength > 0.75*atr(48)


// Entries and Exits
 
longCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick > upperWick and canTrade and strategy.position_size == 0
shortCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick < upperWick and canTrade and strategy.position_size == 0

strategy.entry("pendingLong", strategy.long, limit=low+wickLength/2, when = longCondition)
strategy.entry("pendingShort", strategy.short, limit=high-wickLength/2, when = shortCondition)

longStop = strategy.position_size > 0 ? strategy.position_avg_price*(1-sltp_inp) : na
longTP = strategy.position_size > 0 ? strategy.position_avg_price*(1+2*sltp_inp) : na
shortStop = strategy.position_size < 0 ? strategy.position_avg_price*(1+sltp_inp) : na
shortTP = strategy.position_size < 0 ? strategy.position_avg_price*(1-2*sltp_inp) : na

strategy.exit("longSLTP","pendingLong", stop=longStop, limit = longTP)
strategy.exit("shortSLTP","pendingShort", stop=shortStop, limit = shortTP)  
 

plot(longStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(shortStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(longTP, color=color.green, style=plot.style_linebr, linewidth=2)
plot(shortTP, color=color.green, style=plot.style_linebr, linewidth=2)

plotLongCondition = longCondition ? high+abs(open-close) : na
plot(plotLongCondition, style=plot.style_circles, linewidth=4, color=color.green)
plotShortCondition = shortCondition ? high+abs(open-close) : na
plot(plotShortCondition, style=plot.style_circles, linewidth=4, color=color.red)