Estratégia de negociação quantitativa de cruz de ouro cruz morta

Autora:ChaoZhang, Data: 2024-02-02 14:46:11
Tags:

img

Resumo

Esta estratégia calcula a média móvel simples de 30 dias (MA30) e a média móvel simples de 200 dias (MA200) do XAUUSD (ouro) para implementar compras cruzadas de ouro e vendas cruzadas de ouro.

Princípio da estratégia

Os principais indicadores desta estratégia são MA30 e MA200. Quando MA30 cruza acima de MA200, um sinal de compra é gerado. Quando MA30 cruza abaixo de MA200, um sinal de venda é gerado. Esses cruzes são chamados de cruzes douradas e cruzes mortas.

Especificamente, a estratégia usa a biblioteca ta para calcular MA30 e MA200. As funções ta.crossover e ta.crossunder então julgam se elas se cruzam. Quando ocorre um cruzamento ascendente (cruz de ouro), o valor de longCondition é definido como verdadeiro para comprar. Quando ocorre um cruzamento descendente (cruz morto), o valor de shortCondition é definido como verdadeiro para vender.

Para a execução de ordens, os preços de stop loss e take profit de 40.000 pontos cada são definidos para negociações longas e curtas. Isso corresponde a uma mudança de preço de 4.000 pontos em XAUUSD. Quando o preço aciona o stop loss ou take profit, as ordens fecharão posições automaticamente.

Além disso, um mecanismo de hedge é estabelecido na estratégia. Se a posição atual for longa, um sinal de cruz morta subsequente achatará diretamente a posição e a reverterá. Se a posição atual for curta, um sinal de cruz de ouro subsequente também achatará diretamente e reverterá a posição. Isso evita grandes perdas durante reversões de tendência.

Vantagens

Trata-se de uma estratégia de tendência muito simples e intuitiva, com as seguintes vantagens:

  1. Regras claras e fáceis de implementar.
  2. Aplicável a vários prazos de negociação diária e a longo prazo.
  3. Alinha-se com os ciclos de mercado e capta as reversões de tendência.
  4. Configura o mecanismo de saída automática com stop loss/profit para controlar a perda de uma única transação.
  5. Estabelece a cobertura para evitar perdas de reversões de tendência.

Análise de riscos

Há alguns riscos nesta estratégia:

  1. Os indicadores de MA estão atrasados e podem perder a melhor entrada para inversões de tendência a curto prazo.
  2. A definição inadequada de stop loss pode provocar uma saída prematura das operações.
  3. Muitos sinais reversos aumentam a troca desnecessária.
  4. A estratégia tem requisitos de capital para suportar os recortes.

Estes riscos podem ser geridos por otimização de parâmetros, ajuste dos níveis de stop loss, filtragem de sinais reversos, etc.

Optimização

A estratégia pode ser otimizada de várias maneiras:

  1. Otimizar os parâmetros MA utilizando a EMA ou as médias móveis ponderadas.
  2. Adicionar outros filtros como volume, indicadores de volatilidade, etc.
  3. Ativar o mecanismo de cobertura apenas em sinais significativos.
  4. Estabelecer o dimensionamento das posições para uma melhor eficiência do capital.
  5. Otimizar de forma dinâmica as paradas/lucros utilizando algoritmos de aprendizagem automática.

O ajuste de parâmetros, a adição de filtros, o dimensionamento da posição, etc., podem melhorar ainda mais a estabilidade da estratégia.

Conclusão

Esta é uma estratégia de cruzamento de média móvel simples e prática. Ela se alinha com os ciclos de mercado, controla o risco através de saídas automáticas de stop loss / lucro e mecanismos de cobertura. Fácil de entender e implementar, é aplicável a vários produtos e prazos. Outras otimizações podem melhorar o perfil de risco / recompensa.


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

//@version=5
strategy("Estrategia de Cruce de Medias Móviles", overlay=true)

// Medias móviles
ma30 = ta.sma(close, 30)
ma60 = ta.sma(close, 60)
ma200 = ta.sma(close, 200)

// Cruce de medias móviles
crossoverUp = ta.crossover(ma30, ma200)
crossoverDown = ta.crossunder(ma30, ma200)

// Señales de compra y venta
longCondition = crossoverUp
shortCondition = crossoverDown

// Ejecución de órdenes
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Cover", "Buy", stop=close - 40.000, limit=close + 40.000)
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=close + 40.000, limit=close - 40.000)

// Plot de las medias móviles
plot(ma30, color=color.blue, title="MA 30")
plot(ma60, color=color.orange, title="MA 60")
plot(ma200, color=color.green, title="MA 200")

// Condiciones para cerrar la posición contraria
if (strategy.position_size > 0)
    if (crossoverDown)
        strategy.close("Buy")
if (strategy.position_size < 0)
    if (crossoverUp)
        strategy.close("Sell")

Mais.