Estratégia dinâmica de suspensão de perdas

Autora:ChaoZhang, Data: 2024-01-31 15:05:30
Tags:

img

Resumo

Esta estratégia é baseada em um mecanismo dinâmico de stop loss para definir linhas de stop loss para posições longas e curtas com base nos preços mais altos e mais baixos de uma ação.

Princípio

As principais etapas desta estratégia são:

  1. Parâmetros de entrada: escolha de longo ou curto, definir o comprimento do período, deslizamento da parada de atraso
  2. Calcular os preços mais altos e mais baixos: obter os preços mais altos e mais baixos com base no comprimento de entrada
  3. Calcular as linhas de stop-loss: para longo, preço mais baixo menos deslizamento; para curto, preço mais alto mais deslizamento
  4. Posições abertas e fechadas: quando o preço atinge a linha de stop loss, fechar a posição em direção atual e abrir a posição em direção oposta

O que está acima é a lógica básica da estratégia. À medida que o preço se move, a linha de stop loss continua a ser atualizada para rastreamento dinâmico.

Análise das vantagens

As principais vantagens desta estratégia:

  1. Lógica simples e limpa, fácil de compreender e implementar
  2. Controlo dinâmico de perdas de parada de tração de perdas individuais
  3. Flexível para escolher longo ou curto, adaptável aos diferentes ambientes de mercado
  4. Personalização do período e deslizamento para otimização

Em resumo, através de mecanismos simples de stop loss, esta estratégia pode gerir eficazmente as posições e é uma estratégia típica de Gestão de Riscos.

Análise de riscos

Há também alguns riscos a ter em conta:

  1. A volatilidade dos preços pode desencadear freqüentemente o stop loss, levando ao excesso de negociação
  2. Configurações de período incorretas podem causar linhas de stop loss inadequadas
  3. A configuração excessiva de deslizamento pode resultar em perda de parada frouxa, incapaz de parar a perda a tempo

Estes riscos podem ser otimizados ajustando o período, reduzindo razoavelmente o deslizamento para criar linhas de stop loss mais sensíveis.

Orientações de otimização

A estratégia pode ser melhorada a partir dos seguintes aspectos:

  1. Adicionar otimização para o ajuste dinâmico da linha de stop loss, evitar linhas de stop loss apertadas ou soltas
  2. Adicionar condições de posição aberta para evitar a abertura de posições em momentos inadequados
  3. Incorporar indicadores de tendência para seguir tendências com maior potencial de lucro
  4. Adicionar dimensionamento de posições para ajustar dinamicamente as posições com base nos níveis de risco

Conclusão

A estratégia de negociação realiza o gerenciamento de posições dinâmicas através de métodos simples de stop loss. É fácil de entender e implementar e pode controlar efetivamente a perda de uma única negociação. Analisamos as vantagens, riscos potenciais e direções de otimização futuras. Em conclusão, esta é uma estratégia de gerenciamento de risco altamente típica e prática.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's Trailing-Stop Strategy", shorttitle = "Trailing", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(20, minval = 1)
shift = input(0.0, minval = 0, title = "Trailing Stop")
background = input(false)

//Levels
max = highest(high, length)
min = lowest(low, length)

//Trailing
size = strategy.position_size
longtrailing = 0.0
shorttrailing = 0.0
longtrailing := size <= 0 ? min - ((min / 100) * shift) : max(min - ((min / 100) * shift), longtrailing[1])
shorttrailing := size >= 0 ? max + ((max / 100) * shift) : min(max + ((max / 100) * shift), shorttrailing[1])
trailing = size <= 0 ? shorttrailing : longtrailing
col = size == size[1] ? size > 0 ? color.red : color.lime : na
plot(trailing, color = col, linewidth = 2, transp = 0)

//Background
bgcol = background ? size > 0 ? color.lime : color.red : na
bgcolor(bgcol, transp = 80)

if trailing > 0 and size <= 0
    strategy.entry("Long", strategy.long, needlong ? na : 0, stop = trailing)
if trailing > 0 and size >= 0
    strategy.entry("Short", strategy.short, needshort ? na : 0, stop = trailing)

Mais.