Uma estratégia simples baseada em trailing stop e trailing buy


Data de criação: 2024-01-19 14:30:59 última modificação: 2024-01-19 14:30:59
cópia: 4 Cliques: 554
1
focar em
1617
Seguidores

Uma estratégia simples baseada em trailing stop e trailing buy

Visão geral

A estratégia permite uma combinação simples de tracking stop-loss e tracking buy-in baseada em percentagens. A otimização dos parâmetros da estratégia pode ser alcançada testando diferentes combinações de percentagens em diferentes prazos e gráficos.

Princípio da estratégia

A estratégia é executada principalmente através de dois indicadores:

  1. Trailing Stop Line (TSL): calculada com base na percentagem de desvio de parada definida pelo usuário e com base na média móvel do preço de fechamento da linha K da raiz N mais recente. Quando o preço está abaixo dessa linha, a parada de liquidação é feita.
  2. Trailing Buy Line (TBL): calculada com base na percentagem de desvio de compra definida pelo utilizador e com base na média móvel do preço mais alto da linha N-K mais recente. Quando o preço é superior a esta linha, é criada uma posição multi-cabeça.

Comparando a relação entre os preços e os dois indicadores, realiza-se a regra do stop loss e do buy-in.

Vantagens estratégicas

A estratégia tem as seguintes vantagens:

  1. Simples, intuitivo, fácil de entender e de implementar;
  2. Elasticidade de parar e recuperar perdas através de ajustes de parâmetros;
  3. A aplicação pode ser adaptada a diferentes mercados e diferentes períodos de tempo;
  4. O que é um “trend tracker” para parar perdas em tempo real?

Risco estratégico

A estratégia também apresenta os seguintes riscos:

  1. A configuração inadequada dos parâmetros pode levar a uma paralisação ou recuperação excessivamente radical;
  2. A frequência de transações e a perda de pontos em mercados turbulentos;
  3. Os parâmetros precisam ser apropriadamente otimizados para se adaptar às características de diferentes mercados.

Direção de otimização da estratégia

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar automaticamente as posições de stop loss e os parâmetros de compra usando algoritmos adaptativos;
  2. Aumentar o número de posições e o módulo de gestão de risco;
  3. A análise de tendências, combinada com outros indicadores, evita que os mercados se encaixem em situações de turbulência.

Resumir

A estratégia, como um todo, é uma estratégia de acompanhamento de tendências muito simples e intuitiva. Pode ser aplicada a diferentes mercados por meio de ajustes de parâmetros, enquanto a combinação de algoritmos de adaptação e outros indicadores pode aumentar ainda mais a estabilidade e a praticidade da estratégia.

Código-fonte da estratégia
/*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")