
A estratégia de captar o momento de força da tendência, através da ruptura da tendência para julgar o momento de entrada.
A estratégia primeiro calcula os preços mais altos e mais baixos das últimas 20 linhas de K, formando um trajeto ascendente e descendente. Quando o preço de fechamento da linha de K atual é superior ao trajeto ascendente, faz-se mais; quando o preço cai abaixo do trajeto descendente, é feito um stop loss.
Concretamente, a estratégia calcula os preços mais altos e mais baixos das últimas 20 linhas de K com as funções mais altas e mais baixas, formando um intervalo. Em seguida, julgue se o preço de fechamento da linha de K atual é maior do que o da linha superior, e se for, faça mais; se o preço for abaixo da linha inferior, pare a posição.
A estratégia baseia-se na ruptura da tendência para determinar o momento de entrada e é uma estratégia de acompanhamento da tendência. Ela só faz mais e não faz vazio, e se aplica a variedades com características de tendência visíveis.
A estratégia tem as seguintes vantagens:
A estratégia é simples, clara e fácil de entender.
O uso de breakouts de tendências para determinar o momento de entrada pode capturar a fase de força da tendência.
O uso de stop loss móvel para controlar o risco pode limitar efetivamente a perda individual.
O que é mais, mais, menos, para variedades com tendências evidentes.
Parâmetros personalizáveis, comprimento de ciclo e amplitude de parada.
A estratégia também apresenta os seguintes riscos:
A falta de informação sobre a reversão da tendência pode levar a um ataque de persecução.
A posição de stop loss é facilmente desencadeada por um salto de preço instantâneo.
Quando as tendências mudam, pode haver vários pequenos estancamentos.
A tendência de queda é muito forte, mas não é possível tirar proveito da tendência.
A configuração inadequada dos parâmetros pode resultar em hipersensibilidade ou retardamento.
A estratégia pode ser melhorada em vários aspectos:
Aumentar os indicadores de julgamento de tendências, evitando ainda fazer mais quando a tendência se inverte. Por exemplo, adicionar indicadores de julgamento de tendências como MACD.
Otimizar a estratégia de stop loss móvel, definir o controle de risco é mais razoável. Por exemplo, adotar stop loss móvel com oscilações de preços.
Aumentar a estratégia de capital em branco, que permite abrir posições em baixa para obter lucro.
Teste e otimize os parâmetros para encontrar a combinação ideal.
Adição de função de otimização automática de parâmetros, ajustando dinamicamente os parâmetros de acordo com a situação do mercado.
Combine vários períodos de tempo para julgar estratégias, evitando ser enganado por um único período.
A estratégia é clara e fácil de entender, e usa a ruptura da tendência para julgar o momento de entrada, para capturar o estágio forte da tendência. Ao mesmo tempo, usa o stop loss móvel para controlar o risco. Mas a estratégia também tem alguns riscos, como a inexactitude do julgamento da tendência, o stop loss foi quebrado. Podemos melhorar o julgamento da tendência, a estratégia de stop loss, a estratégia de ponta, etc., para tornar a estratégia mais abrangente e estável.
/*backtest
start: 2023-10-22 00:00:00
end: 2023-10-24 17:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Donchian Wicks Strategy - Long Only with Customizable Donchian Exit and Stop Loss", "DWS", overlay = true)
// INPUTS
iLength = input(20, "Length", minval = 1)
stopLossPercent = input(1.0, "Stop Loss Percentage", type=input.float) / 100
// SETTING
float up = na
up := close > open ? high : nz(up[1])
float down = na
down := close < open ? low : nz(down[1])
highest = highest(up, iLength)
lowest = lowest(down, iLength)
// PLOT
p1 = plot(highest, "Highest", color.black, 2)
p2 = plot(lowest, "Lowest", color.black, 2)
fill(p1, p2, color.new(color.navy, 90), title="Range")
// ENTRY SIGNALS
wickDown = low < lowest
// STRATEGY IMPLEMENTATION
strategy.entry("Buy", strategy.long, when = wickDown)
strategy.exit("Sell at Donchian High", from_entry="Buy", limit=highest)
// Customizable Stop Loss
stopLossLevel = close * (1 - stopLossPercent)
strategy.exit("Stop Loss", from_entry="Buy", stop=stopLossLevel)