Novos testes Monte Carlo, snippet de gerenciamento de dinheiro e blocos personalizados

Nos últimos meses, o servidor de compartilhamento e o Strategy Quant X foram atualizados com novos snippets, o que permite avaliar a robustez das estratégias. Definimos "robustez" como a capacidade das estratégias de preservar seus atributos qualitativos ao longo do tempo.

Incluímos três novos testes de Monte Carlo e um snippet de Money Management. Agora, forneceremos uma descrição concisa de cada um deles e como eles podem ajudar na expansão bem-sucedida da curva de patrimônio de suas estratégias, permitindo que você navegue com sucesso no caminho de um trader algorítmico.

Adicionamos os seguintes novos snippets:

  • Monte Carlo - Modificado Randomizar parâmetros da estratégia 
  • Monte Carlo - Randomize o SWAP de um backtest inteiro  
  • Monte Carlo - Randomize o SWAP de cada negociação 
  • Dimensionamento de posição proporcional fixa
  • Novos blocos personalizados com base na lógica Is rising/ Is falling

 

Este artigo do blog explicará e detalhará esses snippets e como usá-los.

 

Monte Carlo - parâmetros personalizáveis da estratégia de randomização

É uma versão modificada do Randomizar parâmetro de estratégia teste. Para o teste padrão, os parâmetros que são randomizados são predeterminados. As opções de negociação são aleatórias na prática, enquanto os turnos não são. Essa configuração, em minha opinião, nos impede de avaliar as estratégias iniciais com o nível de detalhamento necessário.

Você pode ver a configuração do snippet no exemplo acima.

 

O Monte Carlo Modified Randomize Strategy parameters é um snippet parametrizável que permite que você randomize os parâmetros usados nas estratégias. Você pode especificar o que deseja randomizar.

  • Períodos
  • Turno
  • Constantes
  • Outros parâmetros
  • Saída utilizada
  • Sair Não utilizado
  • Booleano
  • Opções de negociação

Esse teste melhora significativamente sua capacidade de testar estratégias e... Meu fluxo de trabalho típico inclui várias etapas para usar esses testes.

  1. Eu randomizo os períodos dos indicadores.
  2. Eu randomizo a saída usada - stop loss e metas de lucro.
  3. Eu randomizo as constantes. 

 

A maioria das estratégias inclui um indicador com um parâmetro do tipo Período (por exemplo, a Média Móvel tem um período de 20). Em seguida, randomizo os parâmetros de um tipo: Exit Used (stop loss e metas de lucro). No caso de turnos, se estiver testando o parâmetro do tipo Shift, use valores de alteração máxima de 100 ou mais. A alteração máxima de 100 ou mais indica que o turno pode se mover para baixo ou para cima em 100% ou mais (de 1 a 2).

A simetria dos parâmetros (os mesmos parâmetros se aplicam a negociações longas e curtas) também pode ser definida. Por padrão, esse parâmetro é definido como True.

 

Monte Carlo Randomize SWAP de um backtest inteiro 

Um SWAP é a taxa de juros ou crédito que é aplicada à conta de um operador quando ele mantém uma posição durante a noite em uma negociação forex ou de CFD. Essa taxa é determinada pelo diferencial de taxa de juros entre as duas moedas em um par de moedas ou pelo custo de manter uma posição em CFDs. Ela pode ser positiva (um crédito) ou negativa (um débito), dependendo da direção da negociação e do diferencial de taxa de juros.

 

Se aplicarmos esse teste de Monte Carlo, cada backtest conterá valores de swap gerados aleatoriamente dentro do intervalo [-Range,Range]. Dito de forma simples, ao fazer 500 (ou um número diferente) backtests com swaps gerados aleatoriamente, você pode adquirir uma perspectiva de análise de Monte Carlo sobre a alteração dos swaps. 

Neste exemplo específico, executamos 100 simulações com SWAP aleatório para cada negociação.

 

Esse parâmetro no snippet está sujeito à randomização:

  • Intervalo: o intervalo dentro do qual o swap é selecionado.

Um número aleatório dentro do intervalo de -20 a 20 é gerado quando Range = 20 é selecionado. O segundo número aleatório será negativo se o primeiro for positivo. Isso garantirá que especifiquemos consistentemente tanto o spread positivo quanto o negativo.

Os parâmetros a seguir são fixos e não estão sujeitos a randomização:

  • Swap Type - Método de cálculo do swap (pontos, dinheiro, porcentagens) 
  • Swap triplo O dia em que um swap triplo é aplicado 
  • Hora durante a qual o swap é contado

É possível modificar cada um dos parâmetros mencionados anteriormente.

 

Monte Carlo Randomize SWAP de cada negociação 

Neste exemplo específico, executamos 100 simulações com SWAP aleatório para cada negociação.

 

Esse teste difere do anterior porque randomiza cada negociação no backtest atual. A operação inicial pode envolver um swap positivo longo e um swap negativo curto, enquanto as operações subsequentes podem ter combinações de swap totalmente distintas. Portanto, esse teste implementa um swap aleatório para cada negociação. Se o número de simulações Monte Varlo for definido como 500, haverá 500 backtests existentes, cada um dos quais com um swap exclusivo.

O desempenho da estratégia na presença de mudanças nas taxas de juros que influenciam o tamanho dos swaps deve ser simulado por esses dois testes.

 

Dimensionamento de posição proporcional fixa.

O dimensionamento de posição proporcional fixa é um snippet de gerenciamento de dinheiro que permite que você conecte o tamanho fixo dos contratos de lote com uma proporção específica do saldo. Isso permite uma adaptação mais eficaz ao aumento ou diminuição do saldo durante os backtests.

O exemplo acima ilustra a curva crescente de patrimônio/balanço e o número crescente de lotes negociados em cada negociação.

 

Exemplo de dimensionamento fixo Proporcional em futuros

A estratégia com dimensionamento proporcional de dinheiro fixo negocia um microcontrato Nasdaq para cada 2.000 de saldo. Se o saldo for 4.000, a estratégia negociará dois microcontratos.

Exemplo de dimensionamento de Proporcional fixo em Forex

Tenho um saldo de 2.000 e gostaria de negociar a cada 500 lotes de 0,01. Nesse caso, negociarei 0,04 lote e terei entre $2000 e $2500 em minha conta. Se meu saldo chegar a 2501, negociarei 0,05 lote.

Parâmetros 

  • Tamanho do pedido por proporção de saldo
  • 1TP9Parte do saldo
  • Tamanho mínimo do pedido

O gerenciamento de dinheiro é implementado para as plataformas Metatrader 4, Metatrader 5, Tradestation e Multicharts.

 

Está subindo/está caindo Blocos personalizados 

Os blocos personalizados são essenciais para otimizar a flexibilidade das estratégias de negociação algorítmica no StrategyQuant X. Eles permitem que os usuários estabeleçam sua própria lógica e regras de negociação, além do conjunto padrão de indicadores ou ações disponíveis na plataforma.

Os blocos personalizados podem ser empregados para gerar condições, sinais ou indicadores exclusivos que sejam adequados a determinadas estratégias de negociação. Por exemplo, é possível estabelecer um bloco personalizado que determina se o Índice de Força Relativa (RSI) permanece acima de um limite predeterminado para uma quantidade especificada de barras. Isso permite que os usuários regulem a maneira pela qual suas estratégias respondem a condições específicas do mercado ao longo do tempo 

A lógica avançada, como a detecção de falsos rompimentos, movimentos consecutivos de preços ou condições personalizadas que envolvem várias comparações, também pode ser incorporada aos blocos personalizados. Esses blocos podem ser configurados no Algo Wizard ou utilizados diretamente no StrategyQuant's Builder ou no modelo de estratégia.

A lógica do bloco personalizado isRising/isFalling permitiu a possibilidade de personalização. Esses blocos são parametrizados com mais precisão do que o padrão -> Você pode definir/otimizar a duração da subida ou descida em mais de 2 barras.

Nesse exemplo, podemos ver que o bloco personalizado Is Rising BarRange pode ser otimizado de 2 a 24 barras.

 Há 54 novos blocos personalizados no total.

 

Você pode fazer download de todos os snippets na base de código aqui.

 

 

clonex / Ivan Hudec

Ivan Hudec, conhecido como "Clonex" no fórum, é um experiente operador algorítmico, consultor e pesquisador que negocia há 15 anos e usa o StrategyQuant X (SQX) desde 2014. Ele contribui para o blog do SQX e aprimora o software adicionando novos indicadores, snippets e incorporando a programação Python para análise avançada de dados, algoritmos de aprendizado de máquina e modelagem quantitativa. Ivan oferece sua experiência para ajudar outras pessoas a acelerar seus projetos de negociação e abordá-los de maneiras inovadoras.

Inscrever-se
Notificar de
1 Comentário
mais antigos
mais recentes Mais votado
Feedbacks embutidos
Ver todos os comentários
Chris G
Chris G
2. 10. 2024 2:59 am

Isso é incrível, o Montecarlo em detalhes é sempre necessário!!!

Continuar lendo