
A estratégia de rastreamento de duplas reviravoltas permite a geração de sinais de negociação através do rastreamento de duplas reviravoltas de preços. Quando os preços formam novos altos, a estratégia entra em uma posição vazia; Quando os preços formam novos baixos, a estratégia entra em uma posição múltipla.
A estratégia de rastreamento de dupla reviravolta usa dois tipos de julgamentos para gerar sinais de negociação, incluindo o modelo de reviravolta de alta compra (HHS) e o modelo de reviravolta de baixa venda (LLB). Sua fórmula de julgamento é a seguinte:
A estratégia monitora, em tempo real, se o preço quebrou o recorde de conversão. Quando o preço quebrou o recorde de conversão do HHS, indicando que o padrão de preço havia sido invertido para a tendência de queda, a estratégia abriu uma posição vazia; ao contrário, quando o preço quebrou o recorde de conversão do LLB, indicando que o padrão de preço havia sido invertido para a tendência de alta, a estratégia abriu uma posição mais alta.
Quando a estratégia é executada, também é possível visualizar a forma do HHS, LLB e os avanços de preço através do desenho de marcas e cores. Isso é muito útil para avaliar intuitivamente a configuração do mercado e validar o funcionamento da estratégia.
A estratégia de rastreamento de duplas reviravoltas tem as seguintes vantagens:
A estratégia de rastrear as reviravoltas de preços em tempo real permite capturar rapidamente oportunidades de reversão de mercado. A estratégia de rastrear as reviravoltas de preços em tempo real é mais ágil em relação a outras estratégias de rastrear indicadores como as médias móveis.
O uso da própria característica de conversão do preço para gerar sinais de negociação, sem excesso de parâmetros que necessitam de ajustes de otimização, a implementação é simples e direta.
Desenhar marcas de forma e marcas de ruptura para visualizar o processo de operação da estratégia de forma intuitiva e verificar a eficácia da estratégia facilmente.
A implementação da estratégia é feita com pouco código, é fácil de entender e de reutilizar. Pode ser aprendida como uma estratégia de introdução para a negociação quantitativa.
Em geral, a estratégia de dupla rotação de rastreamento é relativamente simples, mas é eficaz para capturar a reversão de preços e vale a pena ser usada como uma estratégia de rastreamento rápido.
A estratégia de duplo rastreamento de redirecionamento também apresenta alguns riscos, como:
A inversão de preços depende de informações pontuais, e a probabilidade de erro é maior. A probabilidade de erro pode ser reduzida com o monitoramento efetivo do valor de queda após a ruptura do preço.
Sem levar em conta a tendência de preços em grande escala, ainda pode haver sinais de posição vazia errôneos durante a subida principal. Pode-se adicionar um filtro de tendência para evitar esse risco.
Não há um mecanismo de parada de perda para controlar a perda individual. No disco físico, é necessário definir uma estratégia de parada de perda razoável para controlar a perda individual dentro do limite aceitável.
Os dados de detecção apresentam um desvio de otimização, o desempenho em disco pode ser inferior ao resultado de detecção. A verificação em disco é crucial.
Em geral, a estratégia é implementada como uma estratégia de reversão de classe de rastreamento rápido, simples, mas também com um risco de erro de probabilidade. A adição de módulos como filtragem de tendência e estratégia de parada de perda pode reduzir o risco de forma eficaz, tornando-a uma estratégia estável e confiável.
Para reduzir a probabilidade de erro de julgamento e aumentar a estabilidade, a estratégia pode ser otimizada em:
O preço de admissão é efetivamente determinado pela ruptura, se o preço exigido cair abaixo do ponto de viragem em uma determinada proporção, a posição será aberta.
Adicione o módulo de determinação de tendências de grande nível, evitando a falta de espaço em ondas principais. Pode usar indicadores como a média móvel do índice para determinar as tendências.
Aumentar as estratégias de stop loss, como tracking stop loss, stop loss intervalo, etc., para controlar os perdas individuais dentro de certos limites.
Algoritmos de posições de otimização, que podem ajustar o tamanho das posições de acordo com a volatilidade do mercado, reduzindo as posições individuais em situações de alta volatilidade.
Testar dados em disco rígido em períodos de tempo mais longos, avaliar a estabilidade dos parâmetros e realizar várias otimizações em iterativo.
Otimizando os ajustes nas várias direções acima, pode-se melhorar significativamente o desempenho e a estabilidade da estratégia no disco rígido.
A estratégia de duplo rastreamento de reversão capta oportunidades de reversão monitorando os pontos de reversão dos preços em tempo real. Ela é simples de julgar, é implementada diretamente e pode abrir rapidamente posições de reversão de tendências. Mas a estratégia também existe um risco de erro de julgamento de certa probabilidade.
/*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)