O recurso está a ser carregado... Carregamento...

Estratégia de rastreamento de reversão dupla

Autora:ChaoZhang, Data: 2023-12-01 15:36:34
Tags:

img

Resumo

A estratégia de rastreamento de reversão dupla gera sinais de negociação rastreando os pontos de reversão dupla dos preços. Ele abrirá uma posição curta quando o preço forma um novo ponto alto e abrirá uma posição longa quando o preço forma um novo ponto baixo. Este rastreamento em tempo real de reversões de preços pode capturar mudanças no impulso do mercado em tempo hábil.

Estratégia lógica

A estratégia Double Reversal Tracking utiliza dois julgamentos de padrão para gerar sinais de negociação, incluindo o padrão de reversão de alta compra (HHS) e o padrão de reversão de baixa venda (LLB).

  1. Padrão HHS: próximo[0] < próximo[1] e alto[0] > alto[1]
  2. Padrão LLB: fechado [0] > fechado [1] e baixo [0] < baixo [1]

Quando as condições acima são atendidas, o índice de barras e o preço do HHS e do LLB serão registrados, respectivamente. Depois disso, a estratégia monitorará em tempo real se o preço atravessa o preço de reversão registrado. Quando o preço atravessa o ponto alto de reversão do HHS, ele indica que o padrão de preço reverteu para uma tendência de queda e a estratégia abrirá uma posição curta. Pelo contrário, quando o preço atravessa o ponto baixo de reversão do LLB, ele indica que o padrão de preço reverteu para uma tendência de alta e a estratégia abrirá uma posição longa. Desta forma, a estratégia de rastreamento de reversão dupla pode capturar dinamicamente oportunidades de reversão de preços.

Quando a estratégia está em execução, também exibirá visualmente os padrões HHS, LLB e situações de ruptura através de marcas e cores de fundo. Isso é muito útil para julgar intuitivamente as condições do mercado e verificar a estratégia.

Análise das vantagens

A estratégia de rastreamento da dupla reversão tem as seguintes vantagens:

  1. O rastreamento em tempo real das reversões de preços permite capturar rapidamente as oportunidades de reversão do mercado.

  2. Ele gera sinais de negociação diretamente a partir dos recursos de reversão de preços, sem muitos parâmetros para otimizar.

  3. As marcas de padrões e breakouts tornam possível a visualização da operação da estratégia, tornando muito fácil a verificação do desempenho da estratégia.

  4. A base de código da estratégia é pequena e fácil de entender e personalizar.

Em resumo, embora simples, a estratégia de Double Reversal Tracking pode capturar efetivamente as reversões de preços e vale a pena ser utilizada como uma estratégia de reversão acelerada.

Análise de riscos

A estratégia de Double Reversal Tracking também apresenta alguns riscos, principalmente:

  1. O julgamento da inversão de preços baseia-se em informações de um único ponto, que têm maior probabilidade de erros de julgamento.

  2. A tendência principal não é considerada e pode ainda gerar sinais curtos incorretos durante tendências de alta.

  3. Não existe um mecanismo de stop loss para controlar a perda de uma única negociação.

  4. Os dados do backtest podem ter viés de otimização e o desempenho ao vivo pode ser inferior aos backtests.

Em geral, como uma estratégia de reversão de rastreamento rápido, esta estratégia tem implementações simples, mas também tem alguma probabilidade de julgamentos errados.

Áreas de melhoria

A fim de reduzir a probabilidade de erros de julgamento e melhorar a estabilidade, a estratégia pode ser reforçada pelos seguintes aspectos:

  1. Adicionar uma validação de ruptura eficaz, como exigir que o preço rompa o ponto de reversão em alguma porcentagem antes de abrir posições.

  2. Adicionar módulo de julgamento de tendências principais para evitar sinais curtos incorretos durante tendências de alta importantes.

  3. Implementar estratégias de stop loss como trailing stop loss e zone stop loss para controlar a perda de uma única negociação dentro de certos limites.

  4. Otimizar os algoritmos de dimensionamento das posições para ajustar o tamanho das posições com base na volatilidade do mercado, reduzindo o tamanho de uma única posição em ambientes de alta volatilidade.

  5. Testar intervalos de tempo mais longos de dados em tempo real para avaliar a estabilidade dos parâmetros e realizar iterações de otimização de várias rodadas.

Com ajustamentos através dos aspectos acima referidos, podem ser alcançadas melhorias significativas no desempenho e estabilidade da estratégia.

Conclusão

A estratégia de rastreamento de reversão dupla capta oportunidades de reversão por monitoramento em tempo real de pontos de reversão de preços. Ele tem lógica simples, execução direta e pode abrir rapidamente posições ao longo de tendências de reversão. Mas também tem alguma probabilidade de julgamentos errados. Ao introduzir filtragem de tendência, estratégias de stop loss e otimização de parâmetros, o risco de erro pode ser efetivamente reduzido para torná-lo uma estratégia estável e eficiente para negociação ao vivo. É especialmente adequado como uma estratégia de reversão de rastreamento rápido.


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Rev. FO", shorttitle="Rev. FO", overlay=true, pyramiding=0,calc_on_order_fills=true,calc_on_every_tick=true,default_qty_type=strategy.percent_of_equity,default_qty_value=50,initial_capital=1000,currency="USD",commission_type=strategy.commission.percent,commission_value=0.2,process_orders_on_close=false)

HHS = close[0] < close[1] and high[0] > high[1]
LLB = close[0] > close[1] and low[0] < low[1]

var trade_long = false
var text_status = "Awaiting Trade..."
var index_hhs = 0
var index_llb = 0
var price_hhs = 0.0
var price_llb = 0.0

if (HHS)
    trade_long := false
    text_status := "Trade in Short"
    index_hhs := bar_index
    price_hhs := high
if (LLB)
    trade_long := true
    text_status := "Trade in Long"
    index_llb := bar_index
    price_llb := low

plotshape(HHS, style=shape.labeldown, title="HHS", location=location.abovebar, color=color.red, text="HHS", textcolor=color.white,size=size.tiny)
plotshape(LLB, style=shape.labelup, title="LLB", location=location.belowbar, color=color.white, text="LLB", textcolor=color.white,size=size.tiny)

// HHS_top = line.new(index_hhs-1,price_hhs,bar_index,price_hhs,extend=extend.right,style=line.style_solid,width=1,color=color.red)
// LLB_bot = line.new(index_llb-1,price_llb,bar_index,price_llb,extend=extend.right,style=line.style_solid,width=1,color=color.white)
// line.delete(HHS_top[1])
// line.delete(LLB_bot[1])

//Calculates how far the signal is painted to right. 
hours = 5
lapos_x = timenow+1000*60*60*hours
lapos_y = highest(20)

// lb = label.new(lapos_x, lapos_y, text=text_status,color=trade_long?color.white:color.red,xloc = xloc.bar_time,style=label.style_diamond,textcolor=trade_long?color.white:color.red,size=size.small)
// label.delete(lb[1])

breakout_hhs = crossover(high,price_hhs)
breakout_llb = crossunder(low,price_llb)

bgcolor(breakout_hhs?color.lime:na,transp=50,title="BO HHS")
bgcolor(breakout_llb?color.maroon:na,transp=50,title="BO LLB")

long_condition = breakout_hhs
long_close = close < price_hhs or breakout_llb
short_condition = breakout_llb
short_close = close > price_llb or breakout_hhs

strategy.entry(id="long",long=true,comment="L",when=long_condition)
strategy.close(id="long",when=long_close)
strategy.entry(id="short",long=false,comment="S",when=short_condition)
strategy.close(id="short",when=short_close)



Mais.