É um sistema de ponto de equilíbrio de tendência primitivo criado por Welles Wilder em 1978, cujas regras de negociação podem ser encontradas em seu livro, The New Concept Technical Analysis System. O sistema usa o indicador de momentum para identificar tendências e definir paradas de perda de forma específica, formando um sistema de acompanhamento de tendências mais robusto.
Os principais componentes da estratégia e as regras de negociação são os seguintes:
Indicador de dinâmica: Calcule a variação do preço de fechamento de N ciclos para determinar a tendência dos preços.
Multicondicionamento: aumento contínuo do valor do momento no ciclo atual e nos dois últimos ciclos.
Condição de vazio: diminuição contínua dos valores de potência do ciclo atual e dos dois últimos ciclos.
Ponto de paragem: a média do dia anterior + a margem de variação do dia anterior.
Ponto de paragem: o dobro do preço médio do dia anterior - o preço mínimo ((fazer mais) ou o dobro do preço médio - o preço máximo ((fazer menos)
A entrada é feita com um preço de parada ou de perda.
A estratégia é simples e direta, usa a dinâmica para determinar a direção da tendência e controla o risco com um método específico de parada de perdas, formando um sistema de acompanhamento de tendências mais robusto.
A estratégia tem as seguintes principais vantagens em comparação com outras estratégias de acompanhamento de tendências:
O cálculo do índice de dinâmica é simples e fácil de implementar.
A combinação de múltiplos períodos de julgamento permite filtrar o ruído.
O sistema de prevenção de danos é mais robusto.
O montante da perda individual pode ser limitado.
A retirada é controlada e os lucros são claros.
A implementação não é muito difícil e pode ser operada de forma flexível.
Parâmetros ajustáveis para diferentes mercados.
A estratégia é intuitiva e simples.
Em geral, a estabilidade e a capacidade de controlar o risco são mais fortes.
Mas a estratégia também traz os seguintes riscos:
O indicador de velocidade está atrasado e pode ter perdido uma curva importante.
O efeito depende do grau de otimização dos parâmetros.
Não se considera o volume de transações, mas o risco de ser enganado.
O Stop Loss Stop é uma configuração arbitrária, que pode falhar.
O ciclo de resposta é curto e a estabilidade a longo prazo deve ser verificada.
A operação de posição fixa não pode ser ajustada dinamicamente.
O espaço para otimização é limitado, e os lucros extras são incertos.
A taxa de retração dos lucros deve ser observada para evitar a sobre-configuração.
Em vista da análise acima, a estratégia pode ser otimizada a partir das seguintes dimensões:
Tente um método diferente de cálculo da potência.
Acompanhe a verificação do volume da transação.
Optimizar o parâmetro de parada de perda.
Introduzir o aprendizado de máquina para gerar sinais dinâmicos.
Avaliação da robustez multivariada e multicíclica.
Construir um modelo de gestão de posições dinâmicas.
Configure a tolerância máxima de retirada.
Otimizar estratégias de gestão de fundos.
Avaliar continuamente e evitar otimização.
A estratégia em geral é um sistema de acompanhamento de tendências relativamente simples e direto. Mas qualquer estratégia precisa ser constantemente otimizada e verificada para se manter adaptada ao mercado. O trabalho sistemático pode aumentar a eficácia e a estabilidade da estratégia.
/*backtest
start: 2023-09-15 00:00:00
end: 2023-09-22 00:00:00
period: 5m
basePeriod: 1m
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/
// © 2020 X-Trader.net
//@version=3
strategy("Trend Balance Point System by Welles Wilder", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000)
MomPer = input(2, "Momentum Period")
isLong = strategy.position_size > 0
isShort = strategy.position_size < 0
longTrigger = mom(close, MomPer)[1] > mom(close, MomPer)[2] and mom(close, MomPer)[1] > mom(close, MomPer)[3]
shortTrigger = mom(close, MomPer)[1] < mom(close, MomPer)[2] and mom(close, MomPer)[1] < mom(close, MomPer)[3]
longEntry = (not isLong) and longTrigger
shortEntry = (not isShort) and shortTrigger
longStop = valuewhen(longEntry, ((high[1]+low[1]+close[1])/3 - (high[1]-low[1])), 0)
longTP = valuewhen(longEntry, (2*(high[1]+low[1]+close[1])/3 - low[1]), 0)
shortStop = valuewhen(shortEntry, ((high[1]+low[1]+close[1])/3 + (high[1]-low[1])), 0)
shortTP = valuewhen(shortEntry, (2*(high[1]+low[1]+close[1])/3 - high[1]), 0)
strategy.entry(id = "Long", long = true, when = longEntry)
strategy.exit("Exit Long", "Long", profit = longTP, loss = longStop, when = isLong)
strategy.entry(id = "Short", long = false, when = shortEntry)
strategy.exit("Exit Short", "Short", profit = shortTP, loss = shortStop, when = isShort)