
A estratégia de ruptura dinâmica de adaptação é uma estratégia de acompanhamento de tendências. Ela identifica sinais de ruptura de uma forte alta acima de um determinado nível de queda, estabelece posições de vários líderes, segue a tendência de alta e obtém lucro no início do dia seguinte.
A estratégia foi desenvolvida por Larry R. Williams, um famoso comerciante de futuros e ações. A estratégia tenta capturar pontos de ruptura nos preços, que muitas vezes indicam uma mudança de tendência.
O indicador central da estratégia é a curva de curvatura horizontal definida, que é calculada pela seguinte fórmula:
一定水平 = 收盘价 + k * (最高价 - 最低价)
Onde k é o coeficiente de experiência, com um valor de 0,6. A fórmula adiciona um componente de variabilidade de preços máximos e mínimos, tornando os pontos de ruptura mais flexíveis e adaptáveis à repetição do mercado.
Quando o preço máximo do dia excede o limite de um determinado nível de preço calculado, indica que o preço se rompe, e a estratégia cria uma posição multiponto. No dia seguinte, a posição será totalmente fechada para obter lucro.
O nível de stop-loss é definido como o preço mínimo do dia anterior e metade do preço de entrada, para evitar a expansão dos prejuízos.
A estratégia tem as seguintes vantagens:
Capturar a dinâmica: a estratégia inclui o cálculo dos pontos de ruptura de preços máximos e mínimos, o que torna os sinais de ruptura mais flexíveis e capazes de capturar o ritmo das mudanças de preço.
Entrando em ações em tempo real e acompanhando as tendências: com os sinais de ruptura calculados diariamente, você pode identificar novas tendências em tempo real e acompanhar o ritmo de aumento dos preços.
Controle de risco em ação: estabelece uma posição de parada razoável para controlar efetivamente os prejuízos individuais.
A estratégia também apresenta os seguintes riscos:
Risco de fracasso de ruptura: a ruptura de preços não precisa ser permanente, pode ser uma falsa ruptura de curto prazo. Isso pode gerar perdas.
Risco de situações extremas: em situações extremas, como catástrofes ou eventos inesperados, os preços podem se fragmentar e saltar, o que leva a que o stop loss seja acionado e cause grandes perdas.
Risco de transações excessivas: construção diária de depósitos aumenta a frequência de transações e a carga de comissões
A estratégia pode ser otimizada a partir da seguinte perspectiva:
Adição de multiplicadores: Adição de um multiplicador na fórmula de cálculo de ruptura, diminuindo adequadamente quando a volatilidade do mercado aumenta e aumentando adequadamente quando o mercado está estável, tornando a estratégia mais flexível.
Prolongar o tempo de detenção: Prolongar o tempo de detenção para 2 ou 3 dias, filtrando brechas falsas de curto prazo.
Optimizar a posição de parada: configure a posição de parada para uma posição de suporte mais profunda, como o limite inferior da faixa de Brin, o preço de fechamento do dia anterior, etc.
A estratégia de ruptura de variabilidade adaptável permite o acompanhamento de tendências através da variabilidade e ritmo dos preços em tempo real. Em comparação com a estratégia de ruptura tradicional, ela é mais flexível e capaz de capturar. Mas também é necessário ter em mente os riscos, pois o stop loss pode ser ultrapassado em situações extremas.
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 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/
// © Dicargo_Beam
//@version=5
strategy("Volatility Breakout Strategy", overlay=true, default_qty_type= strategy.percent_of_equity, default_qty_value=100,process_orders_on_close=false)
k = input.float(0.6)
[o,h,l,c] = request.security(syminfo.tickerid,"D",[open,high,low,close])
lp = math.log(c[1])+(math.log(h[1])-math.log(l[1]))*k
_lp = math.pow(2.718,lp)
longcond = _lp < high
exit = hour==0 or math.log(close) < (math.log(l[1])+lp)/2
plot(_lp,"Entry",color=color.yellow)
//plot(l,"Yesterday's Low")
plot((_lp+l[1])/2,"StopLoss",color=color.red)
strategy.entry("Long", strategy.long,comment = "Long", when = longcond and strategy.opentrades == 0)
strategy.close("Long", comment="Exit", when = exit)
var bg = 0
bg := if hour == 0
bg + 1
else
bg[1]
bgcolor(bg/2== math.floor(bg/2) ? color.new(color.blue,95):na)