Esta estratégia implementa uma parada de trail e compra de trail simples baseada em porcentagem. Experimentando com diferentes combinações de porcentagem em diferentes prazos e gráficos, os parâmetros da estratégia podem ser otimizados.
A estratégia utiliza principalmente duas métricas para alcançar o trailing stop loss e o trailing buy:
Trailing Stop Line (TSL): Calculado com base em N bares recentes de preços de fechamento e percentagem de compensação de stop loss definida pelo utilizador.
Trailing Buy Line (TBL): Calculado com base nas N barras recentes dos preços mais altos e na percentagem de compensação de compra definida pelo usuário.
Ao comparar o preço com estas duas métricas, as regras de stop loss e trailing buy são implementadas.
As vantagens desta estratégia são as seguintes:
Simples e intuitivos, fáceis de compreender e implementar.
O valor da posição em risco deve ser calculado em função do valor da posição em risco.
Aplicável a todos os mercados e prazos.
Permite seguir a tendência e parar a perda em tempo útil.
Os riscos desta estratégia incluem:
A definição de parâmetros inadequada pode causar stop loss ou compras excessivamente agressivas.
Negociação frequente e deslizamento em mercados variados.
Requer otimização de parâmetros para diferentes características do mercado.
A estratégia pode ser reforçada através de:
Algoritmos adaptativos para otimizar automaticamente parâmetros de compra e parada.
Adição de módulos de dimensionamento de posições e gestão de riscos.
Incorporação de outros indicadores para avaliar a tendência geral, a fim de evitar problemas.
Em resumo, esta é uma estratégia de tendência muito simples e intuitiva. Com ajuste de parâmetros, ele pode ser adaptado em todos os mercados. A incorporação adicional de algoritmos adaptativos e filtros adicionais pode melhorar a robustez.
/*backtest start: 2023-01-12 00:00:00 end: 2024-01-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Developed from ©Finnbo code strategy("Simple Trailing Buy & Stop Strategy", overlay=true) offset = input(defval=1.5, title="Stop Offset %", type=float, minval=0.1, maxval=100, step=0.1) buyoffset = input(defval=1.9, title="Trailing Buy Offset %", type=float, minval=0.1, maxval=100, step=0.1) sumbars = input(defval=6, title="Use last x bars for calculation", minval=1) srcts = input(title="Source Trailing Stop calculation", defval=close) srctb = input(title="Source Trailing Buy calculation", defval=close) srctrigger = input(title="Source Stop Trigger", defval=low) srctriggerbuy = input(title="Source Buy Trigger", defval=high) tsl = rma(srcts, sumbars)*(1-(offset/100))// = (sum(srcts,sumbars)/sumbars)*(1-(offset/100)) tbuy = rma(srctb, sumbars)*(1+(buyoffset/100)) plot(tsl, color=(srctrigger<tsl)?red:green) plot(tbuy, color=(srctriggerbuy>tbuy)?red:green) //plotshape(crossunder(srctrigger,tsl), text="Long Stop", style=shape.circle, color=red) alertcondition(crossunder(srctrigger,tsl), "Long Stop alert", "SELL") //plotshape(crossover(srctriggerbuy,tbuy), text="Long", style=shape.circle, color=green) alertcondition(crossover(srctriggerbuy,tbuy), "Long alert", "BUY") longCondition = crossover(srctriggerbuy,tbuy) if (longCondition) strategy.entry("Long", strategy.long) closeCondition = crossunder(srctrigger,tsl) if (closeCondition) strategy.close("Long")