Esta estratégia visa utilizar a função de stop de trailing da Bitmex
A estratégia utiliza principalmente 3 indicadores: preço mais alto, preço mais baixo e preço de fechamento.longoffset
para uma longa distância de travagem e parada; eshortoffset
A distância longa por defeito é 228,5 pontos e a distância curta é 243,5 pontos.
Em seguida, a estratégia usa a seguinte lógica para ajustar o preço do trailing stoptrailstop
:
Se o preço mais baixo da última vela é inferior ao preço de parada de trail da vela anterior, e o preço mais baixo da vela antes disso é superior ao preço de parada de trail das 2 velas anteriores, então o preço de parada de trail da vela atual = preço de fechamento + curta distância de parada de trail
Se o preço mais alto da última vela é maior do que o preço do trailing stop da vela anterior, e o preço mais alto da vela antes disso é menor do que o preço do trailing stop das 2 velas anteriores, então o preço do trailing stop da vela atual = preço de fechamento - longa distância de trailing stop
Se o preço mais alto da última vela é maior do que o preço de parada da vela anterior, então o preço de parada da vela atual = max ((preço de parada da vela anterior, preço mais alto da vela anterior - longa distância de parada da vela)
Se o preço mais baixo da última vela for menor do que o preço da vela anterior, então o preço da vela atual = min ((preço da vela anterior, preço mais baixo da vela mais recente + curta distância da vela)
Caso contrário, o preço de parada da vela atual = preço de fechamento
Este sistema ajusta dinamicamente o preço da parada de tração com base nas alterações dos preços de mercado mais altos e mais baixos para alcançar paradas dinâmicas.
A maior vantagem desta estratégia é a implementação de paradas de tração verdadeiramente dinâmicas e flexíveis. Em comparação com os preços de stop loss fixos, o tracking dinâmico pode ajustar a faixa de stop loss com base nas flutuações do mercado, evitando perdas desnecessárias devido a distâncias de parada muito grandes, ao mesmo tempo em que evita ser parado por flutuações normais de preços quando a distância é muito pequena. Isso reduz as perdas desnecessárias, além de reduzir a probabilidade de paradas prematuras.
Outra vantagem é que a distância de stop loss é personalizável e otimizável. Os usuários podem escolher intervalos de stop loss adequados para si mesmos de acordo com as características de diferentes produtos e estilos de negociação. Isso permite que a estratégia seja aplicada a uma ampla gama de cenários.
Por último, a lógica de stop loss desta estratégia é simples e clara, fácil de entender e fácil de desenvolver e integrar em outras estratégias.
Os principais riscos desta estratégia são:
As paradas dinâmicas só podem reduzir perdas em condições normais de mercado, mas não podem suportar grandes eventos ou condições extremas de mercado.
Se a distância de parada traseira for definida de forma muito grande, pode levar a maiores perdas. Se for definida de forma muito pequena, pode parar prematuramente. A configuração precisa de testes e otimização cuidadosos com base nas características do produto.
Nas primeiras velas após a abertura de uma posição, devido ao mecanismo de trailing stops, a distância de parada pode ser muito grande, representando algum risco adicional durante este período.
Esta estratégia pode ser otimizada nos seguintes aspectos:
Optimização de parâmetros para diferentes produtos: Escolha distâncias razoáveis de parada de trail longo e curto com base na volatilidade, faixa intradiária e outras métricas para diferentes produtos.
Reduzir o risco adicional nas velas iniciais após a abertura de posições: limitar o intervalo de ajuste das distâncias de parada traseiras nas primeiras velas para evitar distâncias muito grandes.
Incorporar indicadores de volume de negociação: por exemplo, reduzir a distância de parada durante os aumentos de volume para evitar ser parado por arbitragem.
Combinar com outras estratégias de entrada/saída: a principal função desta estratégia é a de trailing stop loss. Pode ser integrada com outras estratégias com regras de entrada e saída.
Esta estratégia implementa um stop loss dinâmico baseado em mudanças nos preços mais altos e mais baixos do mercado. Pode efetivamente reduzir perdas desnecessárias sob condições normais de mercado e resolver o problema de distâncias fixas serem muito grandes ou pequenas. As principais direções de otimização são testar parâmetros adequados em diferentes produtos e controlar os riscos nas velas iniciais após a abertura de posições. A lógica de stop loss é simples e clara, fácil de entender e integrar em outras estratégias ou usar isoladamente como uma ferramenta de stop loss.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //By River strategy("BitMex Trailing Stop Strategy", overlay=true) longoffset = input(defval=228.5, title="Long Trailing Stop Size", type=float, minval=0.5, maxval=1000, step=0.5) shortoffset = input(defval=243.5, title="Short Trailing Stop Size ", type=float, minval=0.5, maxval=1000, step=0.5) hiprice = request.security(syminfo.tickerid, "1", high) loprice = request.security(syminfo.tickerid, "1", low) price = request.security(syminfo.tickerid, "1", close) trailstop = price trailstop := (loprice <= trailstop[1] and loprice[1] >= trailstop[2]) ? price + shortoffset : ((hiprice >= trailstop[1] and hiprice[1] <= trailstop[2]) ? price - longoffset : (hiprice > trailstop[1] ? max(hiprice - longoffset, trailstop[1]) : (loprice < trailstop[1] ? min(loprice + shortoffset, trailstop[1]) : price))) trailcol = trailstop > price ? red : green plot(trailstop, color=trailcol) longCondition = trailcol == green alertcondition(longCondition, "Long Stop alert", "BUY") if (longCondition) strategy.entry("Long", strategy.long) shortCondition = trailcol == red alertcondition(shortCondition, "Short alert", "SELL") if (shortCondition) strategy.entry("Short", strategy.short)