Estratégias de stop loss e take profit baseadas em preço


Data de criação: 2023-11-23 15:36:00 última modificação: 2023-11-23 15:36:00
cópia: 0 Cliques: 672
1
focar em
1617
Seguidores

Estratégias de stop loss e take profit baseadas em preço

Visão geral

A idéia central desta estratégia é usar o valor de parada de perda de entrada para definir um número razoável de pontos de parada de perda e gerenciar o risco e o lucro de cada transação.

Princípio da estratégia

A estratégia primeiro configura um sinal de entrada aleatório, fazendo mais quando o SMA14 passa pelo SMA28 e fazendo zero quando o SMA14 passa pelo SMA28.

Após a entrada, a estratégia usa a função moneyToSLPoints para calcular o número de pontos de parada correspondente de acordo com o montante de perda de entrada, e também o número de pontos de parada. Assim, é possível definir o limite de parada de perda baseado no valor em dólares.

Por exemplo, se a entrada for feita em mais 100 mãos, cada ponto vale 10 dólares e o stop loss é de 100 dólares, então o ponto de stop loss é 100/10/100 = 0,1 ponto.

Finalmente, use a estratégia.exit para definir o ponto de saída do stop loss. Desenhe o gráfico da linha de stop loss e da linha de stop stop como referência de inicialização.

Análise de vantagens

Esta estratégia baseada no preço de parada de perda, a maior vantagem é que o parâmetro de configuração é intuitivo, pode ver intuitivamente a relação entre risco e ganho, para a seleção de parâmetros.

Além disso, em comparação com os pontos de parada, o stop loss em dólares permite um melhor controle da abertura de risco real. Quando a volatilidade do mercado aumenta, o stop loss em dólares protege melhor os fundos.

Análise de Riscos

A estratégia de stop loss também traz riscos:

  1. Se o ponto de parada é muito largo, é fácil de ser bloqueado. Se a distância de parada for muito longa, a probabilidade de reversão da linha curta é maior. É fácil de ser bloqueada e não pode ser bloqueada.

  2. É difícil lucrar se o ponto de paragem estiver muito próximo. Se o ponto de paragem estiver muito próximo, a operação unilateral normal não pode ser alcançada, é difícil lucrar.

  3. É necessário escolher um contrato com um valor razoável. Se for escolhido um contrato com um valor de ponto muito grande, como o petróleo, então o mesmo dólar é interrompido, o número de pontos correspondente será muito pequeno e será facilmente extraído na flutuação do mercado. Isso requer uma escolha razoável do valor do ponto.

Direção de otimização

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

  1. Os sinais de entrada podem ser otimizados, por exemplo, com opções de combinação de tendências, volatilidade e estacionalidade para um melhor momento de entrada.

  2. Pode-se escolher a percentagem de stop loss adequada de acordo com a variedade. Por exemplo, as mercadorias podem ter um stop loss mais flexível.

  3. Pode ser combinado com a taxa de flutuação, com a liberação apropriada do stop loss quando a flutuação aumenta; com o aperto apropriado do stop loss quando a flutuação diminui.

  4. Pode-se escolher uma estratégia de stop loss diferente de acordo com o horário do dia de negociação. Por exemplo, o tempo de negociação dos EUA é restrito ao stop loss, reduzindo a probabilidade de ser colocado.

Resumir

Esta estratégia tem como parâmetro o valor em dólares, e permite um intuitivo função de parada de perda. A vantagem da estratégia é que a escolha de parâmetros e o controle de fundos são intuitivos, a desvantagem é que é fácil de ser manipulado e difícil de lucrar. Podemos melhorar o tempo de entrada, a otimização dos parâmetros de parada de perda, a escolha de contratos, etc., para tornar a estratégia mais rentável.

Código-fonte da estratégia
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adolgov

// @description
// 

//@version=4
strategy("Stop loss and Take Profit in $$ example", overlay=true)

// random entry condition

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

moneyToSLPoints(money) =>
    strategy.position_size !=0 ? (money / syminfo.pointvalue / abs(strategy.position_size)) / syminfo.mintick : na

p = moneyToSLPoints(input(200, title = "Take Profit $$"))
l = moneyToSLPoints(input(100, title = "Stop Loss $$"))
strategy.exit("x", profit = p, loss = l)

// debug plots for visualize SL & TP levels
pointsToPrice(pp) =>
    na(pp) ? na : strategy.position_avg_price + pp * sign(strategy.position_size) * syminfo.mintick
    
pp = plot(pointsToPrice(p), style = plot.style_linebr )
lp = plot(pointsToPrice(-l), style = plot.style_linebr )
avg = plot( strategy.position_avg_price, style = plot.style_linebr )
fill(pp, avg, color = color.green)
fill(avg, lp, color = color.red)