Estratégia de lucro stop-loss baseada em tendências


Data de criação: 2024-02-21 14:55:41 última modificação: 2024-02-21 14:55:41
cópia: 0 Cliques: 629
1
focar em
1617
Seguidores

Estratégia de lucro stop-loss baseada em tendências

Visão geral

A principal idéia da estratégia é determinar a direção de um binário com base na tendência de preços da semana, entrando em um binário após o surgimento de uma forma de linha de sol em um caso de bullish; parando quando o preço sobe até o ponto de parada predeterminado e parando se cair até o ponto de parada predeterminado.

Princípio da estratégia

A estratégia define primeiro os critérios para julgar as tendências semanais:

isUptrend = close > close[1] 

isDowntrend = close < close[1]

Se o preço de fechamento atual for maior do que o preço de fechamento do dia anterior, será considerado uma tendência de alta, ou vice-versa.

Define então o sinal de negociação intradiária:

buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

O preço de fechamento do dia anterior é maior do que o preço de abertura do dia anterior, e o preço de abertura do dia anterior é maior do que o preço de fechamento do dia anterior, e está em uma tendência de otimismo, satisfazendo a condição de entrada múltipla.

Após a entrada, o ponto de parada é definido como o preço de fechamento do dia anterior menos 1.382 vezes o comprimento da linha física do dia anterior:

stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen()) 

O ponto de parada é definido como o preço de fechamento do dia anterior mais o dobro do ponto de parada e o preço de fechamento:

takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

A fim de alcançar a recuperação dos prejuízos.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Negociação baseada em tendências, evitando os riscos de queda de mercado
  2. Combinação de sinais de luz solar diurna e portão para evitar entrada prematura de passageiros.
  3. A posição de stop loss é racional e controla a perda individual.
  4. Mais espaço para parar, mais potencial de lucro

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. Não se sabe onde está o ponto de viragem e pode ter sido uma oportunidade perdida.
  2. A perda de tempo é muito próxima e é mais provável que seja apanhada.
  3. A frequência excessiva de transações, sem considerar o controle de custos, pode reduzir a receita

Para controlar esses riscos, considere a inclusão das seguintes otimizações:

  1. Estabelecer trailers perto do ponto de parada para rastrear a parada
  2. Adição de módulo de controle de custos para limitar a frequência de abertura de estoques
  3. Aumentar o julgamento de SUPPORT/RESISTANCE

Direção de otimização

A estratégia também pode ser melhorada para:

  1. Tendências baseadas em mais fatores, como direção da média móvel, mudanças no volume de negócios, etc.
  2. Optimizar o sinal de entrada, combinando mais formas de linha K
  3. Paradas de perda de rastreamento dinâmico, ajustamento automático de acordo com oscilações de preço
  4. Adição de módulo de quantificação para controlar o tamanho da posição
  5. Combinação de períodos de tempo múltiplos, utilizando filtros de tendências em níveis mais altos

Resumir

A estratégia é bastante prática no seu conjunto, com a ideia central de destacar o comércio de tendências e controlar o risco. Pode ser usada como estratégia básica para o comércio de linha curta no dia, mas também pode ser modular e otimizada de acordo com diferentes mercados e variedades, permitindo um portfólio de negociações diversificado. Na aplicação prática, é ainda necessário prestar atenção ao controle de custos e prevenção de riscos, mantendo a mentalidade apropriada.

Código-fonte da estratégia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true)

// Function to get previous day's close and open
getPrevDayClose() =>
    request.security(syminfo.tickerid, "D", close[1])

getPrevDayOpen() =>
    request.security(syminfo.tickerid, "D", open[1])

// Determine weekly trend
isUptrend = close > close[1]
isDowntrend = close < close[1]

// Determine daily conditions for buy
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

// Calculate stop loss and take profit
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

// Strategy logic
if (isUptrend)
    strategy.entry("Buy", strategy.long, when = buyCondition)
    strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit)
    
if (isDowntrend)
    strategy.entry("Sell", strategy.short)

// Plotting the trend on the chart
plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar)

// Plotting stop loss and take profit levels on the chart
plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross)
plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)