Estratégia de compra e parada simples baseada em porcentagem

Autora:ChaoZhang, Data: 2024-01-19 14:30:59
Tags:

img

Resumo

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.

Estratégia lógica

A estratégia utiliza principalmente duas métricas para alcançar o trailing stop loss e o trailing buy:

  1. 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.

  2. 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.

Vantagens

As vantagens desta estratégia são as seguintes:

  1. Simples e intuitivos, fáceis de compreender e implementar.

  2. O valor da posição em risco deve ser calculado em função do valor da posição em risco.

  3. Aplicável a todos os mercados e prazos.

  4. Permite seguir a tendência e parar a perda em tempo útil.

Riscos

Os riscos desta estratégia incluem:

  1. A definição de parâmetros inadequada pode causar stop loss ou compras excessivamente agressivas.

  2. Negociação frequente e deslizamento em mercados variados.

  3. Requer otimização de parâmetros para diferentes características do mercado.

Oportunidades de melhoria

A estratégia pode ser reforçada através de:

  1. Algoritmos adaptativos para otimizar automaticamente parâmetros de compra e parada.

  2. Adição de módulos de dimensionamento de posições e gestão de riscos.

  3. Incorporação de outros indicadores para avaliar a tendência geral, a fim de evitar problemas.

Conclusão

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")


Mais.