Type/to search

Estratégia de Grade Dinâmica Adaptativa para Longo e Curto

Common strategy
Created: 2024-03-19 14:19:12
Last modified: 2 years ago
1
Follow
1802
Followers

img

Visão Geral

Esta é uma estratégia de trading em grid dinâmico adaptativo long/short, escrita em Pine Script. A ideia central é calcular automaticamente os limites superior e inferior de uma grade com base nos pontos máximos e mínimos recentes dos preços ou numa média móvel simples, dividindo então essa faixa em várias linhas de grade. Quando o preço atinge uma determinada linha de grade, uma posição long é aberta ou fechada nesse nível. Desta forma, a estratégia consegue abrir e fechar posições continuamente em mercados laterais, obtendo ganhos com os spreads. Além disso, ao ajustar dinamicamente os limites da grade, também consegue adaptar-se a diferentes tendências de mercado.

Princípio da Estratégia

  1. Cálculo dos limites superior e inferior da grade. Conforme a escolha do utilizador, os limites podem basear-se no máximo e mínimo das últimas N barras, com a opção de expandir ou reduzir uma percentagem; ou podem basear-se na média móvel simples dos preços de fecho das últimas N barras, com uma percentagem de desvio definida.

  2. Geração do array de linhas de grade. De acordo com o número definido de linhas de grade, a faixa da grade é dividida uniformemente, gerando um array de preços correspondentes às linhas.

  3. Entrada / Adição de posição. Percorrer as linhas de grade de baixo para cima; se o preço de fecho atual for inferior ao preço de uma determinada linha de grade e essa linha ainda não tiver posição, abrir uma posição long nesse nível. Assim, quando o preço atinge linhas de grade mais altas, a posição é continuamente aumentada.

  4. Saída / Redução de posição. Percorrer as linhas de grade de cima para baixo; se o preço de fecho atual for superior ao preço de uma determinada linha de grade e a linha de grade imediatamente inferior tiver uma posição aberta, fechar a posição long dessa linha inferior. Desta forma, quando o preço recua, a posição é progressivamente reduzida.

  5. Ajuste dinâmico. Se a opção de grelha dinâmica estiver ativada, os limites superior e inferior da grade e o array de linhas são recalculados em cada barra, permitindo que a grade se adapte continuamente às mudanças do mercado.

Análise de Vantagens

  1. Elevada adaptabilidade. A estratégia de grid adapta-se a mercados laterais e de tendência. Em mercados laterais, a grade abre e fecha posições continuamente, ganhando spreads; em mercados de tendência, como a grade acompanha o movimento do preço, consegue manter uma certa exposição, capturando ganhos de tendência.

  2. Risco controlável. O tamanho de cada posição aberta é determinado pelo número de linhas de grade definido, resultando numa exposição ao risco por operação pequena e controlável. Além disso, como o fecho de posições lucrativas ocorre quando o preço atinge as linhas de grade superiores, também há uma certa proteção contra perdas potenciais.

  3. Elevado grau de automação. A estratégia pode funcionar praticamente de forma totalmente automática, sem necessidade de intervenção manual, sendo adequada para investidores que procuram retornos consistentes a longo prazo.

  4. Parâmetros flexíveis. O utilizador pode ajustar flexivelmente o número de linhas de grade, os parâmetros de grade dinâmica, etc., de acordo com as características do mercado, de modo a otimizar o desempenho da estratégia.

Análise de Riscos

  1. Risco de cisne negro. Em caso de movimentos extremos, como uma queda abrupta com gap de preço diretamente abaixo da linha de grade mais baixa, a estratégia pode ficar totalmente exposta e sofrer um drawdown significativo. Para mitigar este risco, pode ser definida uma condição de stop loss, fechando todas as posições quando a perda atinge um limiar.

  2. Definição inadequada dos parâmetros da grade. Se a densidade da grade for demasiado elevada, os spreads entre cada abertura e fecho serão muito pequenos, e as comissões podem corroer a maior parte dos ganhos. Se a largura da grade for demasiado grande, a proporção de posição aberta de uma só vez será elevada, aumentando a exposição ao risco. É necessário avaliar cuidadosamente as características do ativo subjacente e escolher os parâmetros de grade adequados.

  3. Risco de base. Esta estratégia define as condições de abertura e fecho com base no preço atual. Em mercados como futuros, se o preço do contrato diferir significativamente do preço do ativo subjacente, os níveis reais de abertura/fecho podem desviar-se consideravelmente do esperado.

Direções de Otimização

  1. Inclusão de filtro de tendência. A estratégia de grid tem um desempenho fraco em mercados de tendência unilateral. Pode ser adicionado um indicador de tendência como filtro, por exemplo, ativando a grade apenas quando o ADX está abaixo de um determinado limiar, e desativando-a quando a tendência é clara, mantendo apenas uma posição direcional.

  2. Otimização de sinais. Podem ser sobrepostos outros sinais à grade, como grade + média móvel: a grade determina principalmente as aberturas/fechos, mas a posição só é aberta quando o preço cruza uma determinada média móvel; caso contrário, não há abertura. Isto reduz os custos associados a entradas e saídas frequentes.

  3. Gestão de posição. Atualmente, a posição por linha de grade é fixa. Pode-se ajustar a posição por linha para ser menor quando o preço está longe do preço médio de mercado, e maior quando está próximo da média, melhorando a eficiência da utilização de capital.

  4. Densidade de grade adaptativa. Ajustar dinamicamente a densidade da grade com base na volatilidade do preço: quando a volatilidade é alta, pode-se aumentar o número de linhas de grade; quando é baixa, reduzir. Isto otimiza a largura da grade e melhora a utilização de capital.

Resumo

Esta estratégia, através de uma grade dinâmica adaptativa, consegue abrir e fechar posições frequentemente em mercados laterais para ganhar spreads, e também manter uma certa exposição direcional em mercados de tendência para capturar ganhos de tendência. É uma estratégia quantitativa de médio/longo prazo com boa adaptabilidade. Com uma definição adequada da lógica de acionamento da grade e gestão de posição, é possível obter retornos consistentes. No entanto, é necessário estar atento ao risco de movimentos extremos e gaps de preço, o que requer a definição de condições de stop loss apropriadas para controlar o risco. Além disso, há espaço para otimização adicional na definição de parâmetros e gestão de risco, podendo recorrer a filtros de tendência, sobreposição de sinais, gestão de posição e densidade de grade adaptativa para melhorar a robustez e rentabilidade da estratégia. Em suma, esta estratégia, baseada na lógica fundamental de grade e com um mecanismo de adaptação dinâmica, pode oferecer novas ideias e referências para investidores quantitativos de médio/longo prazo.

Source
Pine
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jcloyd

//@version=4
strategy("(IK) Grid Script", overlay=true, pyramiding=14, close_entries_rule="ANY", default_qty_type=strategy.cash, initial_capital=100.0, currency="USD", commission_type=strategy.commission.percent, commission_value=0.1)
i_autoBounds    = input(group="Grid Bounds", title="Use Auto Bounds?", defval=true, type=input.bool)                             // calculate upper and lower bound of the grid automatically? This will theorhetically be less profitable, but will certainly require less attention
i_boundSrc      = input(group="Grid Bounds", title="(Auto) Bound Source", defval="Hi & Low", options=["Hi & Low", "Average"])     // should bounds of the auto grid be calculated from recent High & Low, or from a Simple Moving Average
i_boundLookback = input(group="Grid Bounds", title="(Auto) Bound Lookback", defval=250, type=input.integer, maxval=500, minval=0) // when calculating auto grid bounds, how far back should we look for a High & Low, or what should the length be of our sma
i_boundDev      = input(group="Grid Bounds", title="(Auto) Bound Deviation", defval=0.10, type=input.float, maxval=1, minval=-1)  // if sourcing auto bounds from High & Low, this percentage will (positive) widen or (negative) narrow the bound limits. If sourcing from Average, this is the deviation (up and down) from the sma, and CANNOT be negative.
i_upperBound    = input(group="Grid Bounds", title="(Manual) Upper Boundry", defval=0.285, type=input.float)                      // for manual grid bounds only. The upperbound price of your grid
i_lowerBound    = input(group="Grid Bounds", title="(Manual) Lower Boundry", defval=0.225, type=input.float)                      // for manual grid bounds only. The lowerbound price of your grid.
i_gridQty       = input(group="Grid Lines",  title="Grid Line Quantity", defval=8, maxval=15, minval=3, type=input.integer)       // how many grid lines are in your grid
Strategy parameters
Strategy parameters
Grid Bounds
Use Auto Bounds?
(Auto) Bound Source
(Auto) Bound Lookback
(Auto) Bound Deviation
(Manual) Upper Boundry
(Manual) Lower Boundry
Grid Lines
Grid Line Quantity
Comment
All comments (0)
No data
No data
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)