Sistema dinâmico de negociação de alavancagem ajustado ao risco

Autora:ChaoZhang, Data: 2023-10-16 16:00:52
Tags:

img

Resumo

Este sistema de negociação chamado Dynamic Risk-Adjusted Leverage Trading System tem como objetivo gerenciar negociações com base na volatilidade atual do mercado em relação à média histórica. O sistema calcula o número alvo de negociações abertas com base no indicador ATR e ajusta a alavancagem em conformidade. Ele abre e fecha negociações usando abordagem de pirâmide, permitindo várias posições ao mesmo tempo.

Estratégia lógica

O sistema segue as seguintes etapas:

  1. Calcular o ATR de 14 períodos e normalizá-lo dividindo-o pelo preço de fechamento.

  2. Calcular a média móvel simples (SMA) de 100 dias do ATR normalizado.

  3. Calcular a relação entre o ATR normalizado e a sua SMA de 100 dias.

  4. Determinar a alavancagem-alvo com base na inversa do rácio (2/rácio).

  5. Calcular o número alvo de operações abertas multiplicando a alavancagem alvo por 5.

  6. Objetivo de gráfico e transações abertas atuais no gráfico.

  7. Verifique se existe uma hipótese de compra (se as transacções abertas atuais forem inferiores à meta) ou de fechamento (se as transacções abertas atuais forem superiores à meta mais 1).

  8. Se tiveres oportunidade de comprar, abre a transacção longa e adiciona-a à matriz openTrades.

  9. Se a oportunidade de fechar a negociação e as negociações existirem na matriz openTrades, feche a transação mais recente referenciando a matriz e remova da matriz.

O sistema visa capturar tendências ajustando dinamicamente as negociações abertas e a alavancagem com base na volatilidade do mercado.

Análise das vantagens

As vantagens desta estratégia:

  1. O ajustamento dinâmico da alavancagem e do tamanho da posição com base nas alterações da volatilidade do mercado pode gerenciar eficazmente o risco.

  2. A utilização do indicador ATR para calcular o tamanho da posição-alvo, que reflete a volatilidade do mercado, é uma escolha razoável.

  3. A pirâmide com várias posições pode lucrar com tendências.

  4. O registo de cada operação em matriz permite um controlo explícito da abertura e do encerramento das operações.

  5. A estratégia tem poucos parâmetros e é fácil de implementar e operar.

  6. A lógica é clara e a estrutura do código é bem organizada para fácil otimização e iteração.

Análise de riscos

Os riscos desta estratégia:

  1. O ATR reflete apenas a volatilidade passada, não sendo capaz de prever alterações futuras, pode levar a um ajustamento inadequado da alavancagem.

  2. A pirâmide pode acumular perdas quando a tendência se inverte.

  3. As operações de registro de matriz aplicam-se apenas a operações abertas/fechadas simples.

  4. As definições da alavancagem e do tamanho da posição-alvo devem ser ajustadas com base nas especificidades do símbolo e não em parâmetros fixos.

  5. A dependência de um único indicador pode ser enganosa. Outros indicadores de volatilidade ou algoritmos de aprendizado de máquina podem melhorar a robustez.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Adicionar stop loss para cortar perdas ativamente ao atingir o nível de stop loss.

  2. Otimizar os parâmetros do indicador através do ensaio de diferentes períodos de ATR.

  3. Tente outras estratégias de entrada como entradas de quantidade fixa e teste os resultados.

  4. Adicionar outras métricas de volatilidade como Bollinger Bands WIDTH, KD, RSI etc. para utilização combinada.

  5. Usar modelos de aprendizagem de máquina para prever a volatilidade em vez de suavização simples.

  6. Otimizar o cálculo do tamanho da posição, por exemplo, utilizando múltiplos ATR ou funções de volatilidade.

  7. Registre mais detalhes de entrada, como preço de entrada, tempo, etc. para análise e otimização da estratégia.

  8. Adicione otimização de parâmetros para otimização automática para encontrar conjuntos de parâmetros ideais.

Conclusão

A estratégia ajusta dinamicamente a alavancagem e o tamanho da posição com base no ATR para gerenciar a exposição ao risco durante as tendências e tem certas vantagens.


/*backtest
start: 2022-10-09 00:00:00
end: 2023-10-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("I11L - Risk Adjusted Leveraging", overlay=false, pyramiding=25, default_qty_value=20, initial_capital=20000, default_qty_type=strategy.percent_of_equity,process_orders_on_close=false, calc_on_every_tick=false)

atr = ta.atr(14) / close
avg_atr = ta.sma(atr,100)
ratio = atr / avg_atr

targetLeverage = 2 / ratio
targetOpentrades = 5 * targetLeverage

plot(targetOpentrades)
plot(strategy.opentrades)
isBuy = strategy.opentrades < targetOpentrades
isClose = strategy.opentrades > targetOpentrades + 1

var string[] openTrades = array.new_string(0)

if(isBuy)
    strategy.entry("Buy"+str.tostring(array.size(openTrades)),strategy.long)
    array.push(openTrades, "Buy" + str.tostring(array.size(openTrades)))

if(isClose)
    if array.size(openTrades) > 0
        strategy.close(array.get(openTrades, array.size(openTrades) - 1))
        array.pop(openTrades)

Mais.