Guia do Usuário do StrategyQuant
Guia do Usuário do StrategyQuant
EstratégiaQuant
Guia do usuário
Apoiar
Se você tiver dificuldade para entender alguma coisa, precisar de ajuda ou simplesmente tiver alguma dúvida a fazer
(relacionada ao sistema), lembre-se de que sua compra também inclui suporte.
Estamos aqui para você, você pode entrar em contato conosco em:
[Link]
[Link]/articles
[Link]/forum
Direitos autorais
O software StrategyQuant, as estratégias de bônus e o conteúdo deste Manual são protegidos por direitos autorais.
Você pode usá-los somente com uma licença válida.
Nenhuma parte desta publicação pode ser reproduzida, armazenada em um sistema de recuperação ou transmitida de
qualquer forma ou por qualquer meio - incluindo eletrônico, mecânico, fotocópia, gravação, digitalização ou outro - sem a
autorização prévia por escrito do autor.
2
Machine Translated by Google
Divulgação de Riscos
Negociar qualquer mercado financeiro envolve risco. Este Manual não é uma solicitação nem uma oferta para Comprar/
Vender qualquer produto financeiro. O conteúdo deste Manual é apenas para fins informativos gerais.
Embora todas as tentativas tenham sido feitas para garantir a precisão, o autor não dá nenhuma garantia expressa ou implícita
quanto à sua precisão. O autor não aceita nenhuma responsabilidade por erro ou omissão. Todos os exemplos são fornecidos
apenas para fins ilustrativos e não devem ser interpretados como aconselhamento de investimento.
Não está sendo feita nenhuma representação de que qualquer conta ou trader irá ou provavelmente irá obter lucros ou perdas
semelhantes aos discutidos neste Manual. O desempenho passado não pode ser considerado indicativo de
desempenho futuro.
As informações fornecidas neste Manual não se destinam à distribuição ou uso por qualquer pessoa ou entidade em qualquer
jurisdição ou país onde tal distribuição ou uso seja contrário à lei ou regulamento ou que sujeite o autor a qualquer exigência de
registro em tal jurisdição ou país.
Resultados de desempenho hipotéticos têm muitas limitações inerentes, algumas das quais são mencionadas abaixo. Nenhuma
representação está sendo feita de que qualquer conta irá ou provavelmente irá atingir lucros ou perdas semelhantes aos mostrados.
Na verdade, frequentemente há diferenças acentuadas entre resultados de desempenho hipotéticos e resultados reais
subsequentemente alcançados por qualquer sistema de negociação específico.
Uma das limitações dos resultados hipotéticos de desempenho é que eles geralmente são preparados com o benefício da
retrospectiva. Além disso, a negociação hipotética não envolve risco financeiro e nenhum registro hipotético de negociação pode
explicar completamente o impacto do risco financeiro na negociação real.
Por exemplo, a capacidade de suportar perdas ou aderir a um programa de negociação específico apesar das perdas de negociação
são pontos materiais, que também podem afetar adversamente os resultados de negociação. Existem vários outros fatores
relacionados ao mercado em geral ou à implementação de qualquer programa de negociação específico, que não podem ser
totalmente contabilizados na preparação de resultados de desempenho hipotéticos. Todos os quais podem afetar adversamente os
resultados reais de negociação.
Isenção de responsabilidade exigida pelo governo dos EUA - Comissão de negociação de futuros de commodities A negociação de
futuros, moedas e opções tem grandes recompensas potenciais, mas também grandes riscos potenciais. Você deve estar ciente
dos riscos e estar disposto a aceitá-los para investir nos mercados de futuros e opções. Não negocie com dinheiro que você não
pode perder. Isto não é uma solicitação nem uma oferta para comprar/vender futuros ou opções. Nenhuma representação está
sendo feita de que qualquer conta irá ou provavelmente irá obter lucros ou perdas semelhantes aos discutidos neste site. O
desempenho passado de qualquer sistema ou metodologia de negociação não é necessariamente indicativo de resultados futuros.
REGRA 4.41 DA CFTC - RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES. AO CONTRÁRIO DE UM REGISTRO DE DESEMPENHO
REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM NEGOCIAÇÕES REAIS. ALÉM DISSO, COMO AS NEGOCIAÇÕES NÃO FORAM EXECUTADAS, OS RESULTADOS
PODEM TER SIDO SUBCOMPENSADOS OU SUPERCOMPENSADOS PELO IMPACTO, SE HOUVER, DE CERTOS FATORES DE MERCADO, COMO FALTA DE LIQUIDEZ.
PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL TAMBÉM ESTÃO SUJEITOS AO FATO DE QUE SÃO PROJETADOS COM O BENEFÍCIO DE
RETROSPETIVAMENTE. NÃO ESTÁ SENDO FEITA NENHUMA REPRESENTAÇÃO DE QUE QUALQUER CONTA IRÁ OU É PROVÁVEL QUE ALCANCE LUCROS OU PERDAS
3
Machine Translated by Google
Isenção de garantia
Você concorda em usar este programa por sua conta e risco.
O software StrategyQuant pode falhar ou não funcionar corretamente. Todo software está sujeito a erros de programação inadvertidos e bugs incorporados no código que o
compõe. Qualquer um desses erros e bugs pode fazer com que o software no qual eles estão localizados falhe ou não funcione corretamente. O aplicativo StrategyQuant e as
estratégias de negociação geradas pelo programa estão sujeitos a esse risco. Apesar dos testes, erros e bugs inadvertidos ainda podem causar uma falha na estratégia de
VOCÊ TEM QUE ESTAR CIENTE DE QUE AS ESTRATÉGIAS DE NEGOCIAÇÃO AUTOMÁTICA PODEM FALHAR POR QUALQUER MOTIVO E
ELES PODEM RESULTAR NA PERDA DE TODO O DINHEIRO QUE VOCÊ DEPOSITOU NA CONTA DA CORRETORA
VOCÊ USA PARA NEGOCIAÇÃO AO VIVO COM BASE NOS ALGORITMOS QUE VOCÊ GEROU PELA StrategyQuant. VOCÊ DEVE DISCUTIR COM UM PROFISSIONAL
DE INVESTIMENTO OS RISCOS DA NEGOCIAÇÃO EM GERAL E DA NEGOCIAÇÃO ALGORITMICA EM PARTICULAR. VOCÊ USA QUALQUER ALGORITMO NA
PRODUÇÃO PARA GARANTIR QUE ESTEJA FUNCIONANDO CORRETAMENTE E EM CONFORMIDADE COM TODAS AS REGRAS APLICÁVEIS.
ISENÇÃO DE GARANTIA. O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE QUALQUER
TIPO, INCLUINDO, MAS SEM LIMITAÇÃO, AS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. TODO O RISCO QUANTO
LIMITAÇÃO DE RESPONSABILIDADE. SOB NENHUMA CIRCUNSTÂNCIA E SOB NENHUMA TEORIA LEGAL, ATO ILÍCITO, CONTRATO OU OUTRO, O AUTOR OU SEUS
FORNECEDORES OU REVENDEDORES SERÃO RESPONSÁVEIS POR VOCÊ OU QUALQUER OUTRA PESSOA POR
INCLUINDO, SEM LIMITAÇÃO, DANOS POR PERDA DE BOA VONTADE, INTERRUPÇÃO DE TRABALHO,
FALHA OU MAU FUNCIONAMENTO, OU QUAISQUER OUTROS DANOS OU PERDAS COMERCIAIS. EM NENHUMA HIPÓTESE SERÁ
O AUTOR SERÁ RESPONSÁVEL POR QUAISQUER DANOS QUE EXCEDAM O PREÇO DE LISTA DO AUTOR PARA UMA LICENÇA DO SOFTWARE,
MESMO QUE O AUTOR TENHA SIDO INFORMADO DA POSSIBILIDADE DE TAIS DANOS, OU DE QUALQUER RECLAMAÇÃO POR
QUALQUER OUTRA PARTE. ESTA LIMITAÇÃO DE RESPONSABILIDADE NÃO SE APLICARÁ À RESPONSABILIDADE POR MORTE OU DANOS PESSOAIS.
DANOS NA MEDIDA EM QUE A LEI APLICÁVEL PROÍBE TAL LIMITAÇÃO. ALÉM DISSO, ALGUNS ESTADOS NÃO PERMITEM A EXCLUSÃO OU LIMITAÇÃO DE DANOS
4
Machine Translated by Google
Este documento legal é um acordo entre você, o usuário final ('Usuário'), e a Sonarbytes Ltd ('Autor').
ACORDO - Ao instalar o StrategyQuant ('Software'), copiar o Software e/ou clicar no botão 'Concordo' durante a instalação, você concorda com
todos os termos deste contrato de licença de software ('Contrato').
Se você não concordar com todos os termos deste contrato, clique no botão "Não concordo" e/ou não instale, copie ou use o software.
PROPRIEDADE INTELECTUAL. O Software e quaisquer materiais associados são protegidos por lei de direitos autorais.
O pacote é um produto proprietário do Autor. O Autor retém o título e a propriedade dos direitos autorais do programa de software e dos materiais
associados. Você reconhece que o Autor possui todos os direitos, títulos e interesses no e para o Software, incluindo, sem limitação, todos os
Direitos de Propriedade Intelectual.
'Direitos de Propriedade Intelectual' significa todos e quaisquer direitos existentes de tempos em tempos sob a lei de patentes, lei de direitos
autorais, lei de segredos comerciais, lei de marcas registradas, lei de concorrência desleal e todos e quaisquer outros direitos de propriedade, e
todas e quaisquer aplicações, renovações, extensões e restaurações dos mesmos, agora ou doravante em vigor e efeito em todo o mundo.
Você concorda em não modificar, adaptar, traduzir, descompilar, fazer engenharia reversa, desmontar ou de outra forma tentar derivar o código-
fonte do Software.
REGISTRO. Este programa não é freeware nem de domínio público. O uso requer licença válida.
Entre em contato conosco em [Link] para obter licenças em massa ou preços com desconto.
CONCESSÃO. O Autor concede a você uma licença não exclusiva e intransferível para usar o Software mediante o pagamento da Taxa de Licença
até a data de expiração da licença (se houver). O Autor não garante a frequência, valor, aplicabilidade ou conteúdo de futuras atualizações ou
modificações no Software. O Software será disponibilizado a você somente em formato eletrônico para download.
O requisito de pagar uma taxa de licença não se aplica a cópias de avaliação para as quais o Autor não cobra uma taxa de licença. As licenças de
avaliação expiram 14 dias corridos a partir da data deste acordo, a menos que acordado de outra forma por escrito pelo Autor. Na data de
expiração da licença, o Usuário concorda em comprar o Software pelo preço de tabela em vigor naquele momento ou destruir todas as
cópias do Software em formato eletrônico ou outro, incluindo quaisquer cópias em fitas de backup ou outras mídias.
O uso do Software pelo Usuário será limitado ao uso em um único chassi de hardware, em uma única unidade central de processamento, conforme
aplicável, ou ao uso em um número maior de chassis ou unidades centrais de processamento, desde que o Usuário tenha pago a taxa de licença
necessária.
Você não pode: permitir que outras pessoas usem o Software, exceto sob os termos listados acima; traduzir, fazer engenharia reversa,
descompilar, descriptografar, fazer engenharia reversa, desmontar (exceto na medida em que as leis aplicáveis proíbam especificamente tal
restrição) ou criar trabalhos derivados com base no Software; copiar o Software (exceto para fins de backup); alugar, arrendar, transferir, ceder,
sublicenciar ou de outra forma transferir direitos do Software; ou remover quaisquer avisos ou rótulos de propriedade no Software.
ISENÇÃO DE GARANTIA. O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE QUALQUER TIPO, INCLUINDO,
SEM LIMITAÇÃO, AS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. TODO O RISCO QUANTO À
QUALIDADE E DESEMPENHO DO
O SOFTWARE É POR SUA CONTA.
LIMITAÇÃO DE RESPONSABILIDADE. SOB NENHUMA CIRCUNSTÂNCIA E SOB NENHUMA TEORIA LEGAL, ATO ILÍCITO, CONTRATO OU
OUTRO, O AUTOR OU SEUS FORNECEDORES OU REVENDEDORES SERÃO RESPONSÁVEIS PERANTE VOCÊ OU QUALQUER OUTRA
PESSOA POR QUAISQUER DANOS INDIRETOS, ESPECIAIS, INCIDENTAIS OU CONSEQUENCIAIS OU PUNITIVOS DE QUALQUER
NATUREZA, INCLUINDO, MAS SEM LIMITAÇÃO, DANOS POR PERDA DE BOA VONTADE, INTERRUPÇÃO DE TRABALHO, FALHA
OU MAU FUNCIONAMENTO DO COMPUTADOR, OU QUAISQUER OUTROS DANOS OU PERDAS COMERCIAIS. EM NENHUMA HIPÓTESE O
AUTOR SERÁ RESPONSÁVEL POR QUAISQUER DANOS QUE EXCEDAM O PREÇO DE LISTA DO AUTOR PARA UMA LICENÇA DO
SOFTWARE, MESMO QUE O AUTOR TENHA SIDO INFORMADO DA POSSIBILIDADE DE TAIS DANOS, OU POR QUALQUER RECLAMAÇÃO POR
5
Machine Translated by Google
QUALQUER OUTRA PARTE. ESTA LIMITAÇÃO DE RESPONSABILIDADE NÃO SE APLICARÁ À RESPONSABILIDADE POR MORTE OU DANOS PESSOAIS.
DANOS NA MEDIDA EM QUE A LEI APLICÁVEL PROÍBE TAL LIMITAÇÃO. ALÉM DISSO, ALGUNS ESTADOS NÃO PERMITEM A EXCLUSÃO OU LIMITAÇÃO DE DANOS
INCIDENTAIS OU CONSEQUENCIAIS, PORTANTO ESTA LIMITAÇÃO E EXCLUSÃO PODEM NÃO SE APLICAR A VOCÊ.
RESCISÃO. Esta licença será rescindida automaticamente se você não cumprir com as limitações descritas acima. Na rescisão, você deve destruir todas as cópias do
Software em formato eletrônico ou outro, incluindo quaisquer cópias em fitas de backup ou outras mídias. Após a rescisão desta Licença por qualquer motivo, você não terá
6
Machine Translated by Google
Índice
1 Introdução.............................................................................................................................................. 9
1.1 O que é StrategyQuant? .......................................................................................................... 9
1.2 Requisitos do sistema............................................................................................................. 11
1.3 Instalação................................................................................................................................. 12
1.3.1 Etapas pós-instalação................................................................................................... 12
1.4 Mecanismos de backtesting - NinjaTrader e MetaTrader4........................................... ................... 13
2 Como funciona?............................................................................................................................ 15
2.1 Geração aleatória de estratégias de negociação......................................................................... 15
2.2 Evolução genética .............................................................................................................. 16
4 Modos de programa............................................................................................................................. 33
4.1 Gerenciador de dados............................................................................................................ 33
4.1.1 Dados históricos................................................................................................................... 33
4.1.2 Indicadores personalizados.......................................................................................................... 34
4.2 Construir estratégias................................................................................................................... 35
4.3 Estratégias de reteste.............................................................................................................. 36
4.4 Melhorar estratégias................................................................................................................. 36
4.5 Otimizador................................................................................................................................... 36
5 Layout do programa............................................................................................................................. 37
5.1 Progresso................................................................................................................................ 38
5.2 Configurações.............................................................................................................................. 39
5.2.1 Dados ................................................................................................................................... 39
5.2.2 Blocos de construção................................................................................................................... 42
5.2.3 Opções de estratégia ................................................................................................................ 43
5.2.4 Opções genéticas ............................................................................................................. 46
5.2.5 Gestão de dinheiro.............................................................................................. 48
5.2.6 Testes de robustez............................................................................................................. 49
5.2.7 Opções de classificação............................................................................................................. 51
5.2.8 Partes a melhorar................................................................................................................ 53
5.2.9 Parâmetros.................................................................................................................... 54
5.2.10 Critérios de sucesso .............................................................................................................. 55
7
Machine Translated by Google
6 Funcionalidade avançada.............................................................................................................. 62
6.1 Testes e análises de robustez............................................................................................. 62
6.2 Otimização......................................................................................................................... 68
6.2.1 Otimização simples....................................................................................................... 68
8
Machine Translated by Google
1 Introdução
StrategyQuant é um programa que gera automaticamente novas estratégias de negociação exclusivas para forex, ações ou ETFs.
Usando o StrategyQuant, você pode encontrar estratégias de trading lucrativas para praticamente qualquer mercado,
qualquer período de tempo e qualquer tipo de gráfico. Não é necessário conhecimento de programação ou trading.
As estratégias resultantes podem ser salvas como um MetaTrader 4 Expert Advisor com código-fonte completo.
• Gere um número ilimitado de estratégias de negociação exclusivas para praticamente qualquer mercado ou
prazo
• Salve suas estratégias como uma estratégia MetaTrader Expert Advisor ou Ninja Trader com total
código fonte
• Encontre novas estratégias de negociação que não sejam apenas únicas, mas também não óbvias
• Reduza o tempo necessário para construir uma estratégia de semanas e meses para minutos!
Se você negocia usando um sistema de negociação automático (também chamado de robôs ou Expert Advisors) ou planeja
desenvolver suas próprias estratégias de negociação, o StrategyQuant pode economizar seu dinheiro e centenas de horas
do seu tempo.
Alguns traders preferem comprar um robô de negociação existente; há uma infinidade de ofertas especialmente para Forex.
Embora essa possa ser uma maneira eficaz, ao comprar o robô forex de alguém, você geralmente está comprando uma caixa preta:
você não sabe como ele funciona, quais são as regras exatas e está à mercê de seu criador, com possíveis adaptações às mudanças
nas condições do mercado.
O StrategyQuant permite que você crie suas próprias estratégias de negociação, exportáveis para um código-fonte simples do Expert
Advisor, para que você tenha controle total sobre sua estratégia.
Você ainda pode usar o StrategyQuant para gerar ideias de negociação. Você ficará surpreso ao encontrar muitas estratégias
Cada estratégia criada pelo StrategyQuant pode ser exportada para um pseudocódigo legível com descrição completa das regras
9
Machine Translated by Google
O que esperar
Por favor, tenha em mente que o StrategyQuant é uma ferramenta poderosa, mas não é uma caixa mágica que vai
começar a fazer você ganhar dinheiro com um clique em um botão. Ele tem que ser usado da maneira certa para obter os resultados.
O restante do trabalho deve ser dedicado à avaliação das estratégias geradas para filtrar aquelas que são ajustadas à curva ou
não são robustas o suficiente.
Cabe a você avaliar suas novas estratégias adequadamente e conhecer seus pontos fortes, fracos e limitações antes de
colocá-las em prática.
Pode facilmente acontecer que, de todas as estratégias lucrativas geradas pelo StrategyQuant, apenas 1 em cada 10 passe na
avaliação e possamos considerar usá-la para negociações ao vivo.
Mas - o número de estratégias que podemos gerar é quase infinito, então mesmo 5-10% do infinito é um número bem
grande :-)
Existem algumas etapas para avaliar a qualidade das estratégias e medir o quão boas elas serão em negociações reais. Leia a
seção Avaliando Estratégias Geradas para obter mais informações.
10
Machine Translated by Google
StrategyQuant não é um EA, é um programa normal (arquivo EXE) para Microsoft Windows e pode ser executado em
todos os computadores padrão com conexão à Internet.
• 512 MB de RAM
Poder de computação
A geração de estratégias e o backtesting exigem muito poder de processamento, então quanto mais rápido o
computador tiver, mais estratégias serão geradas e testadas.
O componente mais importante que afeta a velocidade do teste é o processador (CPU). O StrategyQuant é capaz de
usar todos os núcleos do
processador, então os melhores resultados serão alcançados usando processadores multi-core, como i5 ou i7.
11
Machine Translated by Google
1.3 Instalação
O StrategyQuant vem com um assistente de configuração padrão: basta baixar e executar o arquivo EXE de instalação e seguir
os passos do assistente de instalação.
Importante !!!
Por favor, NÃO instale o StrategyQuant no diretório padrão C:\Program Files!
Pode não funcionar corretamente porque as configurações de segurança do Windows não permitem que o programa grave em seus
arquivos de dados.
Em vez disso, instale-o em qualquer unidade ou diretório normal no disco, como C:\StrategyQuant
ou C:\Trading\StrategyQuant
há algumas coisas que você deve fazer após a instalação, dependendo da plataforma de negociação que você usa.
MetaTrader4
Alguns dos indicadores técnicos usados no StrategyQuant não são indicadores MT4 padrão e você precisa adicioná-los ao
MT4. Todos esses indicadores adicionais são parte do pacote de instalação, você pode encontrá-los na pasta {StrategyQuant}/
custom_indicators/mt4 .
Basta copiar todos os arquivos *.mq4 desta pasta para a instalação do MetaTrader no caminho:
{Seu diretório de instalação do MetaTrader}/experts/indicators
Se você usar mais de uma instalação do MetaTrader, será necessário repetir esta etapa para cada MetaTrader instalado.
Nota importante! Se você atualizou para o MT4 Build 600+, as pastas MetaTrader têm
alterado. A pasta Indicators NÃO ESTÁ MAIS no diretório de instalação do MetaTrader, você pode obter sua localização abrindo
o MetaTrader, Arquivo -> Abrir Pasta de Dados.
C:\Usuários\[nome de usuário]\AppData\Roaming\MetaQuotes\Terminal\[id_de_string_única]\MQL4\Indicadores
-------------------------------------------------- -------------------------------------------------- ----------------
Ninja Trader
Para que as estratégias SQ funcionem com o NinjaTrader, você precisa importar alguns scripts do NinjaTrader para o seu
NinjaTrader.
Abra seu NinjaTrader, vá em Arquivo -> Utilitários -> Importar Script Ninja...
então encontre o arquivo:
{StrategyQuant}/custom_indicators/SQ_NinjaTrader.zip e importe-o.
Isso importará todos os indicadores adicionais e classes base que o StrategyQuant usa, para que suas novas estratégias
sejam executadas no NinjaTrader.
12
Machine Translated by Google
Existem algumas diferenças entre essas plataformas na forma como cada uma delas lida com negociações, abre e fecha posições,
O StrategyQuant permite que você alterne o mecanismo de backtesting entre MetaTrader4/NinjaTrader para que o mecanismo de
teste interno saiba como tratar as negociações de uma forma que corresponda à plataforma selecionada.
Cada plataforma de negociação e mecanismo de backtesting também permite que você configure algumas configurações específicas
Por que uma estratégia pode ter resultados diferentes em diferentes mecanismos de backtesting
Como mencionado anteriormente, há diferenças em como cada plataforma lida com negociações e como seu mecanismo
Por esse motivo, a estratégia pode ter resultados diferentes quando testada com outro mecanismo de backtesting.
Observação
Certifique-se de testar sua estratégia negociando-a em uma conta de papel antes de colocá-la em prática.
dinheiro.
Há diferenças na forma como as velas (barras) são calculadas e desenhadas em cada plataforma, por exemplo:
• no MetaTrader4, vela de 15 minutos com tempo 13:15 significa vela que começou às 13:15:00 e contém dados de 13:15:00 a 13:29:59
• no NinjaTrader, vela de 15 minutos com tempo 13:15 significa vela que terminou em 13:15, então ela contém dados de 13:00:01
a 13:15:00
Além disso, diferentemente do forex, futuros e ações não são negociados 24/7. Eles são negociados em bolsas com horários de
negociação determinados, então as sessões de negociação entram em jogo quando você trabalha, por exemplo, com dados de futuros.
Por isso, agora é necessário escolher o tipo de dado ao importá-lo para o StrategyQuant e é recomendável usar apenas os
dados da plataforma específica durante a geração da estratégia.
13
Machine Translated by Google
Além disso, por esse motivo, há uma diferença em como cada dado é manipulado pelo StrategyQuant para corresponder a cada
plataforma. Como resultado, o StrategyQuant pode calcular automaticamente prazos maiores a partir de dados de minuto para
forex, mas não pode fazer isso para dados do NinjaTrader (porque as sessões de negociação teriam que ser
consideradas).
Para simplificar o trabalho com sessões de negociação, você precisa importar diretamente o período de tempo alvo
para o StrategyQuant.
14
Machine Translated by Google
2 Como funciona?
O que ele faz é combinar aleatoriamente blocos de construção disponíveis (indicadores, preços, etc.) para criar novas regras de
negociação. A estratégia resultante é então testada em dados históricos para ver se é lucrativa.
A geração aleatória é a base do StrategyQuant. Estratégias geradas dessa forma podem ser melhoradas (evoluídas) ainda mais
Uma estratégia de negociação na população inicial é construída usando uma combinação de padrões de preços, indicadores
técnicos, tipos de ordens e outras partes para formar as regras de entrada e saída.
StrategyQuant pode usar todos os indicadores técnicos e osciladores padrão (como CCI, RSI, Stochastic, etc.), valores de tempo
(como hora do dia, dia da semana) e padrões de preço. Esses blocos de construção são então combinados usando
operadores lógicos e de igualdade (e, ou, >, <, etc.) para formar uma regra de entrada ou saída.
Além disso, ele suporta diferentes tipos de ordens de entrada e saída (ordem de mercado, ordem de limite, meta de lucro fixa,
Com todas as combinações possíveis de regras e ordens, o StrategyQuant é capaz de gerar literalmente trilhões de
O processo de construção em si é completamente aleatório: o construtor escolhe aleatoriamente diferentes blocos de construção
do conjunto disponível e os combina para criar uma regra de entrada, um tipo de ordem e uma regra de saída.
Existem algumas restrições de validade que garantem que, por exemplo, o preço não seja comparado ao valor do tempo, etc.
O resultado é uma estratégia de negociação aleatória completamente nova. Claro, nem toda estratégia criada aleatoriamente
15
Machine Translated by Google
A estratégia é lucrativa, mas a StrategyQuant pode produzir e testar milhares de novas estratégias por hora, e há muitas
lucrativas nessa quantidade.
A evolução genética leva o processo de encontrar estratégias de negociação adequadas ainda mais longe.
Neste modo, o StrategyQuant primeiro cria uma série de estratégias aleatórias, que são usadas como população inicial na
evolução.
Essa geração inicial de estratégias é então "evoluída" ao longo de gerações sucessivas usando tecnologia de
programação genética.
Esse processo imita a evolução: o algoritmo escolhe as estratégias mais adequadas (usando critérios de desempenho
selecionados) em cada geração, e o grupo de candidatos mais adequados é então usado para produzir uma nova geração de
estratégias de negociação.
Assim como na evolução, isso deve resultar em candidatos cada vez melhores, no nosso caso, em estratégias mais
lucrativas, mais estáveis ou geralmente melhores nos critérios de desempenho selecionados.
16
Machine Translated by Google
Abaixo está um exemplo de pseudocódigo de uma estratégia gerada pelo StrategyQuant. Você pode ver que a
estratégia consiste em ordens de entrada, ordens de saída e comandos de gerenciamento de negociação – como
movimentos de trailing stop, etc.
Cada estratégia gerada pelo programa pode ser visualizada neste pseudocódigo ou exportada na forma de estratégia
MetaTrader Expert Advisor (EA) ou NinjaTrader NinjaScript C#.
================================================= ==================
== Condições de entrada
================================================= ==================
================================================= ==================
== Ordens de entrada
================================================= ==================
-- Entrada longa
se nenhuma posição estiver aberta, compre em Ichimoku(6, 18, 38, Kijun-sen) + (0,4 * ATR(86)) Limite;
Mova o Stop Loss para o preço de entrada quando o lucro for de pelo menos (77 * ATR(12)) pips;
-- Entrada curta
Se nenhuma posição estiver aberta, então venda em Ichimoku(6, 18, 38, Kijun-sen) + (-0,4 * ATR(86)) Limite; A
================================================= ==================
== Ordens de saída
17
Machine Translated by Google
================================================= ==================
-- Saída longa
Desde a versão 3.5, é possível usar a abordagem de 3 partes de dados ao utilizar a evolução genética para geração de estratégias.
Tradicionalmente, apenas In Sample + Out of sample (2 partes de dados) eram usados na evolução. As estratégias eram desenvolvidas
Com a abordagem de 3 partes de dados, podemos dividir os dados de amostra em duas partes adicionais, então obteremos três
partes:
parte é usada para evolução das estratégias. A aptidão da estratégia é medida nesta parte de dados e as estratégias com melhor aptidão
esta parte é usada para comparar o desempenho com a parte de Treinamento. A aptidão da estratégia é medida nesta parte também e você
pode reiniciar a evolução quando a aptidão ou o desempenho começar a estagnar nos dados de Validação, ou se o desempenho
da estratégia (Lucro Líquido, Fator de Lucro, etc.) nos dados de Validação não corresponder ao desempenho nos dados de Treinamento.
fora da amostra (OOS) é usada para verificar a estratégia em dados desconhecidos. Como usamos a validação IS para influenciar a
evolução, então ela não é mais uma parte "desconhecida" dos dados, devemos testar a estratégia em uma parte nova e desconhecida (OOS)
negociação.
Dividir os dados em três partes nos permite controlar melhor a evolução. Comparando o desempenho na parte de Treinamento vs.
Validação, podemos decidir reiniciar a evolução para evitar desperdiçar tempo com a evolução indo a lugar nenhum.
Artigos científicos sugerem que usar a abordagem de 3 partes de dados pode trazer melhores resultados mais rapidamente.
18
Machine Translated by Google
Todas as configurações estão na aba Opções genéticas , na seção Gerenciamento de evolução . Aqui você pode definir
que deseja usar a abordagem de 3 partes marcando "Dividir no período de amostra para treinamento/validação".
Uma boa regra é dividir a arte In Sample em 50%. Então, se o seu período Out of Sample for cerca de 30% dos dados e
você dividir a parte In Sample pela metade, todas as três partes serão cerca de 1/3 de todos os dados
disponível.
Por exemplo:
Digamos que todos os dados tenham 900 dias.
A parte Fora da Amostra é cerca de 1/3 disto, que é 300 dias. Na parte da Amostra se o resto: 600 dias.
Quando dividimos a Amostra pela metade entre Treinamento/Validação, o Treinamento de IS será 50% de todos os dados da
Amostra (50% de 600 dias), o que equivale a 300 dias, e o mesmo se aplica à parte de Validação de IS.
Portanto, o treinamento IS será de 1/3 (300 dias), a validação IS será de 1/3 (300 dias) e fora da amostra será de 1/3 (300 dias).
Dividir o período In Sample em Treinamento/Validação é o primeiro passo, agora também devemos usá-lo para gerenciar
a evolução.
A configuração mais simples é reiniciar a evolução se a aptidão estagnar por X gerações na parte de validação do IS - se
essa
estagnação acontecer, significa que a evolução possivelmente atingiu o fim das melhorias e uma evolução posterior não
criaria estratégias melhores, então devemos reiniciá-la.
19
Machine Translated by Google
da estratégia top / top 5 estratégias entre a parte de Treinamento e Validação. Tenha em mente que você está comparando a estratégia top ou
Razões
Todas as proporções estão em porcentagem, por exemplo:
Proporção - Lucro Líquido de Treinamento vs Validação da Melhor Estratégia é a proporção percentual do Lucro Líquido da melhor estratégia
Por exemplo, se a estratégia de ponta lucrou US$ 5.000 na parte de treinamento e US$ 3.000 na parte de validação, essa proporção será de 60%,
porque a estratégia lucrou apenas 60% do lucro líquido na parte de validação em comparação à parte de treinamento.
Se a proporção entre Treinamento/Validação for muito pequena, também é um bom sinal de que a evolução chegou a um beco sem saída e
devemos reiniciá-la.
Desempenho exato
além de proporções, você pode escolher reiniciar a evolução também verificando os resultados de desempenho da estratégia top / top 5 estratégias
Top 5 Strategies Avg Validation Profit Factor retorna o Top 5 strategies average Profit Factor na parte de validação (não uma proporção
entre treinamento/validação). Por exemplo, podemos reiniciar a evolução se o Top 5 strategies average Profit Factor nos dados de validação for
dos dados.
Os gráficos abaixo são um exemplo de evolução executada por 100 gerações sem nenhuma reinicialização. Você pode ver que neste exemplo,
mesmo que o desempenho da estratégia (fitness) esteja melhorando para a parte de treinamento de IS, ele está estagnado na parte de
Então a evolução pode ter sido reiniciada em algum lugar por volta da 20ª-30ª geração, porque desde então não houve nenhuma melhoria em partes
Se você escolher alguma estratégia do banco de dados e olhar para seu gráfico de patrimônio, você pode ver como ela é dividida em três partes e o
desempenho em cada uma delas. Neste exemplo, a estratégia tem desempenho negativo na parte de Validação de IS.
20
Machine Translated by Google
Uma estratégia melhor deveria se parecer mais com o exemplo abaixo, onde todas as três partes têm aproximadamente
o mesmo desempenho (visível pela linha vermelha). Essa estratégia ainda não é perfeita (rebaixamentos muito grandes), é
apenas um exemplo.
21
Machine Translated by Google
Se a estratégia render US$ 6.000 em todo o período dentro da amostra e US$ 4.000 no período fora da amostra, então seu lucro líquido
(relação IS/OOS) será de 66,6% (porque US$ 4.000 é 66,6% de US$ 6.000).
Essas novas condições personalizadas podem ser usadas para filtrar estratégias que apresentam desempenho muito pior na parte de dados
O suporte para barras Range/Renko é a mais nova adição aos recursos do StrategyQuant. Agora você pode usar o StrategyQuant para
A plataforma NinjaTrader tem suporte integrado para esses tipos de gráficos, então a única coisa que você precisa fazer para usar esses
gráficos no SQ é exportar os dados do gráfico (veja mais informações sobre isso nos próximos capítulos).
A plataforma MetaTrader4 não oferece suporte nativo aos gráficos Range ou Renko. Para exibi-los e usá-los, você precisa de um plugin
de terceiros.
Fornecedor muito acessível de plugins Range/Renko para MT4 que testamos e podemos recomendar
é [Link]
22
Machine Translated by Google
Eles são gráficos alternativos que não exibem dados em blocos agrupados por tempo (5 minutos, 15 minutos, 1 hora), mas por outro
critério. Para a barra Range, uma vela no gráfico representa um intervalo dado, por exemplo, 10 pips. Então, toda vez que o
Para mais informações sobre gráficos Range ou Renko, consulte o Google ou o site [Link].
Funciona da mesma forma que com dados de período de tempo padrão – você precisa importar os dados do intervalo ou do gráfico
renko como qualquer outro dado histórico e executar a geração de estratégias normalmente.
1. Apenas a precisão “Período de tempo selecionado” está disponível para esses tipos de gráficos, então você não poderá testá-
2. Você deve gerar dados para gráficos Range / Renko usando spreads fixos. StrategyQuant não é
23
Machine Translated by Google
Atualmente, o StrategyQuant oferece suporte aos seguintes componentes para criar regras de entrada e saída:
Indicadores
Valores de preço
Abrir Baixo
Alto Fechar
24
Machine Translated by Google
Operadores
Maior Adição (+)
Mais baixo Subtração (-)
Cruzes Acima Multiplicação (*)
Cruzes Abaixo É igual a
E Não é igual a
Ou Fecha acima
Fecha abaixo
Valores de tempo
Tipos de pedidos
Entrar no Mercado Entre no Stop
Entrar/Reverter no Mercado Entrar no Limite
Tipos de saída
Meta de lucro
Parar Perda
Mover Stop Loss para o ponto de equilíbrio
Sair após X barras
Pare de arrastar
Regra de Saída (Preço + Operadores + Indicadores, ...)
Lucro à vista
O operador de cruzamentos acima funciona para qualquer indicador versus Indicador e verifica se o Indicador1 estava
abaixo do Indicador2 na vela anterior e agora cruzou acima do Indicador2 na vela atual.
Desde a versão 2.0, o programa oferece flexibilidade quase infinita de blocos de construção com indicadores
personalizados. Em contraste com indicadores integrados, o StrategyQuant não sabe como calcular indicadores personalizados;
eles são definidos por seus dados. Isso permitirá que você use virtualmente qualquer um dos seus indicadores favoritos no
StrategyQuant.
Não há limites reais – você pode usar indicadores multi-timeframe ou multi-símbolos, geralmente todos os indicadores que
funcionam no MetaTrader podem ser usados no StrategyQuant.
25
Machine Translated by Google
O funcionamento é que você precisa exportar os valores do indicador calculado em um símbolo e período de tempo específicos para um
arquivo e, em seguida, importar esse arquivo como um indicador personalizado para o Builder.
Dessa forma, você criará um novo indicador personalizado (com valores calculados em outro programa, como o MT4) para esse símbolo
Lembre-se de que cada indicador personalizado é definido para uma combinação específica de símbolo e período de tempo (no qual foi
calculado).
Para usar o mesmo indicador em outro símbolo ou período, você precisa recalcular seus dados no MT4, exportá-los e criar um novo indicador
Você pode encontrar mais informações sobre indicadores personalizados nestes tópicos:
26
Machine Translated by Google
3.1.1 Disposição
Ao iniciar o programa pela primeira vez, você verá a tela principal como na imagem abaixo.
27
Machine Translated by Google
O Databank é o conceito mais importante que você deve entender ao usar o StrategyQuant. Não importa qual modo
você usa, as melhores estratégias resultantes são sempre armazenadas no Databank.
Lá você pode classificar as estratégias por suas propriedades, carregá-las e salvá-las e, ao clicar duas vezes em uma
linha, os detalhes do teste de estratégia serão abertos na janela de resultados acima.
Você pode configurar quantas estratégias principais (10, 100 ou 500) serão armazenadas no Databank, qual
critério de comparação usar e quais estratégias descartar automaticamente (por exemplo, aquelas com P/L
negativo).
28
Machine Translated by Google
As estratégias no StrategyQuant são salvas em seu próprio formato de arquivo proprietário (com extensão .str) que pode
ser aberto somente pelo StrategyQuant.
Se você encontrar estratégias potencialmente boas, você deve sempre salvá-las para que possa trabalhar com elas
mais tarde.
Observe que os arquivos exportados (*.MQ4) não são legíveis pelo StrategyQuant, portanto, certifique-se de sempre salvar
sua estratégia também como um arquivo de estratégia normal (*.str).
29
Machine Translated by Google
Consulte a seção Artigos em nosso site para obter as dicas mais atualizadas sobre como usar o
programa:
[Link]
O fluxo geral de trabalho ao gerar novas estratégias pode ser descrito da seguinte forma:
Você também pode usar dados adicionais ou testes de robustez para testar automaticamente a robustez da estratégia.
2. Configurar as definições
Passe por todas as configurações e configure o tipo de estratégia, indicadores e tipos de ordem a serem usados para regras de
negociação. Opcionalmente, use restrições de tempo para limitar a negociação a um determinado intervalo de tempo.
As opções de classificação permitem que você selecione os Critérios de Seleção de Estratégia, que é como as melhores estratégias
são determinadas.
Você também deve configurar Condições Personalizadas para filtrar apenas estratégias que atendem a determinados critérios.
Faz sentido descartar todas as estratégias que têm muito pouco lucro ou negociações, ou Fator de Lucro, Relação Retorno/DD ou
4. Executar compilação
Inicie o processo de construção. Dependendo das suas configurações, você pode deixá-lo rodar por vários minutos, várias horas ou
até vários dias. Quanto mais tempo ele rodar, mais estratégias potenciais ele testará.
Os melhores deles serão armazenados no banco de dados.
Passe pelas estratégias geradas e avalie-as. Você pode avaliá-las visualmente, verificando o gráfico de patrimônio, ou classificando-as
Escolha os melhores para passar para a próxima etapa e salve-os no arquivo de projeto StrategyQuant (.sqn) para que você possa
A avaliação pode consistir também em testar novamente as estratégias em símbolos e/ou prazos adicionais, ou com spread e slippage
30
Machine Translated by Google
O objetivo da avaliação estratégica é encontrar estratégias que sejam robustas - o que significa que funcionam em
condições diferentes
e não se desfaçam quando houver uma pequena alteração nos parâmetros ou nos dados de preços ou se perderem alguns
negócios.
31
Machine Translated by Google
6. Melhore a estratégia
Você pode tentar melhorar a estratégia no Improver. Você pode tentar aplicar diferentes combinações de regras de saída ou
condições adicionais às regras de entrada em busca de melhor desempenho.
Após a melhoria, você deve executar novamente a nova variação de estratégia por meio de testes de robustez para garantir
que ela não perdeu sua robustez.
6. Otimize a estratégia
Você pode executar otimização simples para encontrar melhor combinação de parâmetros de entrada da sua estratégia. Você
também pode executar otimização Walk-Forward para descobrir se a estratégia se beneficiaria de reotimização periódica.
Como última etapa, você pode executar a análise da Matriz Walk-Forward para determinar o melhor período de
reotimização.
Há artigos em nosso site que descrevem o fluxo de trabalho de forma mais detalhada:
[Link]
[Link]
32
Machine Translated by Google
4 modos de programa
um lugar onde você pode gerenciar dados históricos e indicadores personalizados usados no programa.
O StrategyQuant já vem com mais de 4 anos de dados de histórico para os principais pares fornecidos
pelo [Link], mas se você tiver seus próprios dados de histórico no Metatrader, poderá importar
seus dados facilmente
33
Machine Translated by Google
Nesta tela você pode gerenciar e importar indicadores personalizados para serem usados no StrategyQuant.
A tela é dividida em duas tabelas. A tabela superior (1) contém a lista de todos os indicadores personalizados que são
definidos no sistema.
A tabela inferior (2) contém dados do indicador - dados para um indicador com parâmetros fornecidos, valores de saída e
símbolo/período.
É importante entender que o StrategyQuant não é capaz de executar código de indicador, então a única maneira de trabalhar
com indicadores personalizados no SQ é importando seus dados.
Os dados dependem dos valores dos parâmetros do indicador, bem como do símbolo e do período em que foram gerados.
Para saber mais sobre como trabalhar com indicadores personalizados, consulte a seção Como ... Importar novo indicador
personalizado
34
Machine Translated by Google
o coração do programa. Aqui você pode gerar novas estratégias de negociação usando diferentes opções de configuração e blocos
de construção.
As estratégias resultantes devem ser salvas no arquivo StrategyQuant (.str) para que você possa trabalhar com elas mais tarde.
Evolução genética
O StrategyQuant primeiro gera uma população inicial de candidatos aleatórios (usando o modo Geração Aleatória) e então usa o
para evoluir a população e produzir candidatos cada vez melhores a cada geração.
O processo termina quando o número predefinido de gerações é atingido ou quando não há mais melhorias.
Prós:
• isto significa que as estratégias já boas da primeira geração podem ser melhoradas ainda mais
• a busca por estratégias lucrativas em trilhões de combinações possíveis pode ser mais eficaz
• às vezes a evolução pode levar ao beco sem saída, então a geração deve ser observada
Geração aleatória
Neste modo, o StrategyQuant gera e testa continuamente novas estratégias aleatórias, uma após a outra, até ser
interrompido.
Os principais candidatos (com base em critérios predefinidos) são armazenados no Databank para que você possa revisá-los mais
tarde.
Prós:
• ele será executado até ser parado, então se você deixá-lo rodar por alguns dias ele pode gerar e avaliar
milhões de estratégias
Contras:
35
Machine Translated by Google
esta seção é usada para testar novamente estratégias já existentes. Você pode testar novamente a estratégia em outros dados
históricos ou período de tempo; executar testes de Robustez na estratégia,
tente opções diferentes (por exemplo, negocie apenas durante determinados horários do dia).
esta seção pode ser usada para melhorar a estratégia existente criada na etapa Build. "Melhorar" a estratégia significa substituir
parte de sua parte (regra de entrada, tipo de ordem, regra de saída)
ou adicionar novas condições para tornar a estratégia "melhor".
O Improver funciona de forma a gerar aleatoriamente a parte selecionada da estratégia, mantendo as outras partes da estratégia
intactas.
Dessa forma, você pode procurar uma melhor regra de saída ou uma condição de regra de entrada adicional que melhorará
o desempenho da estratégia.
4.5 Otimizador
O otimizador pode ser usado para otimizar parâmetros de estratégia para valores ótimos, bem como para otimização
Walk-Forward e análise de Matriz Walk-Forward.
36
Machine Translated by Google
5 Layout do programa
1. Casa
tela inicial do programa, contém configurações de amostra, notícias e links úteis
2. Gerenciador de dados
aqui você pode gerenciar seus dados de histórico e indicadores personalizados
4. Seção de estratégias de
reteste para retestar estratégias existentes com configurações diferentes ou em símbolos/prazos diferentes
5. Melhore a seção de
estratégias para melhorar a estratégia existente gerando condições de regras adicionais
6. Otimizador com
recursos de otimização simples e Walk-Forward e Walk-Forward Matrix
7. Área de configurações:
cada seção tem sua própria área de configurações independente, onde você pode configurar o processo de construção/teste.
8. Área de resultados
aqui você pode ver o desempenho da estratégia selecionada e obter seu código EA
37
Machine Translated by Google
5.1 Progress
A tela de progresso é o lugar onde você pode iniciar, pausar ou parar o processo de construção/teste. Ela também mostra
o log e o consumo de memória.
Antes de começar a construção ou teste, você deve ter os dados e as configurações configurados. Os resultados (estratégias
38
Machine Translated by Google
5.2 Configurações
5.2.1 Dados
Em Dados, você deve selecionar o símbolo, o período e o intervalo de tempo nos quais as estratégias serão testadas.
Mecanismo de backtesting
permite que você escolha qual dos mecanismos de backtesting disponíveis (MetaTrader4 / NinjaTrader) deve ser usado para testar
a estratégia.
Mais sobre as diferenças nos mecanismos de backtesting é descrito em Mecanismos de backtesting - NinjaTrader &
MetaTrader4
se você marcar isso, você poderá escolher apenas entre os símbolos que pertencem a um determinado mecanismo. Por
exemplo, você não poderá executar testes com o mecanismo NinjaTrader em dados MT4.
O StrategyQuant testa todas as estratégias geradas em um determinado histórico de dados e esta tela permite que você escolha o
Há uma opção para escolher também o período de teste (Data de, Data até).
• Em Amostra - é usado durante a evolução genética para calcular a classificação das estratégias, de modo que
39
Machine Translated by Google
• Fora da amostra - esta parte dos dados é usada para verificar se a estratégia realmente funciona como esperado também
em dados que não foram evoluídos
Parâmetros de teste
Testando a precisão
testar a precisão significa como os dados de preço são simulados durante o backtest.
Normalmente, é suficiente usar o modo Período de tempo selecionado para ordens de mercado ou o modo de simulação de tick
para ordens Stop/Limit.
Você também pode usar o modo mais rápido para geração e, depois, o modo mais lento para novo teste de estratégias.
Se você usar esse modo, terá que gerar uma versão especial do EA que também negociará somente na abertura da barra para
obter os mesmos resultados.
junto com o Trade On Bar Open é o modo de teste mais rápido. Ele usa apenas o timeframe principal para simular os preços.
Isso resulta em um backtesting muito rápido com precisão muito boa. No entanto, para ordens Stop ou Limit, a precisão do teste pode
não ser suficiente e você deve tentar um modo mais preciso.
Dados de 1 minuto
modo de teste mais lento, ele usa dados de minuto (se disponíveis) para simular mudanças de preço durante o teste.
Simulação de carrapato
modo de teste lento, ele usa simulação de tick dentro de dados de minuto para obter resultados mais precisos. Este é o teste mais
preciso que pode ser alcançado sem dados de tick reais.
Este modo de teste é preciso o suficiente para qualquer tipo de pedido.
Carrapato Real
este modo usa dados de ticks reais (se disponíveis) para simulação exata de preço. É muito mais lento que os outros modos e deve ser
usado para verificação final de novas estratégias.
Nota! O backtester NinjaTrader pode funcionar apenas com precisão de período de tempo selecionado
40
Machine Translated by Google
você pode testar suas estratégias automaticamente em múltiplos símbolos/períodos de tempo especificando dados adicionais.
Para selecionar dados adicionais, escolha o símbolo na caixa de combinação e defina seu período, intervalo de
tempo, spread, etc.
A estratégia é testada em dados adicionais somente se a linha for verificada.
Dessa forma, você pode testar sua estratégia simultaneamente em vários símbolos, ou no mesmo símbolo e em
diferentes períodos de tempo, ou até mesmo no mesmo símbolo e período de tempo, e apenas com spread,
deslizamento ou precisão diferentes.
Se você usar dados adicionais para testes, também terá a oportunidade de filtrar as estratégias resultantes
pelo desempenho de todo o portfólio nas Condições Personalizadas das Opções de Classificação.
41
Machine Translated by Google
Os blocos de construção são os componentes principais que são combinados para criar regras para cada negociação
estratégia.
• operadores que são usados para comparação e para combinar as regras - <, >, and, or, etc.
Você pode escolher cada componente que deseja usar na estratégia, para poder selecionar seus indicadores favoritos ou escolher,
por exemplo,
apenas dados de preço + operadores se quiser gerar estratégias baseadas apenas no preço.
Boa prática
De acordo com nossa experiência, às vezes você pode obter melhores resultados se não verificar todos os componentes disponíveis,
42
Machine Translated by Google
Essas configurações permitem que você especifique as propriedades das estratégias geradas, bem como as condições de teste.
Lados do mercado
Você pode escolher gerar estratégias que negociem apenas em uma direção (Longa ou Curta) ou em ambas as direções (o que é
padrão).
Você também pode selecionar que quer que as regras de entrada ou saída sejam simétricas. Se forem simétricas, então as regras
Como alternativa, você pode escolher usar regras não simétricas; nesse caso, as regras para os lados Longo e Curto serão geradas
independentemente.
Essas configurações podem ser usadas para regras de entrada e saída. Por exemplo, você pode ter regras de entrada simétricas,
a estratégia usará efetivamente (por exemplo) diferentes stop loss e metas de lucro para ordens longas e curtas.
Lógica de negociação
A lógica de negociação define o comportamento da estratégia e as restrições do backtester. Como há dois mecanismos de backtesting
diferentes (MetaTrader/NinjaTrader), também há alguns parâmetros que são exclusivos para apenas um deles.
Padrão ou Liberal. Define o tipo de preenchimento usado em backtesting. Para a diferença entre esses tipos de preenchimento,
consulte a ajuda do NinjaTrader.
Se você definir como falso, ele verificará se o preço da ordem de parada está correto e se, por exemplo, você quiser entrar em uma
parada longa abaixo do preço real, ele entrará em Mercado.
Portanto, definir StrictStopPrices como falso permitirá que suas ordens entrem no mercado se o preço já tiver ultrapassado o nível
permitido.
43
Machine Translated by Google
se definido como true, suas ordens pendentes serão válidas para apenas uma barra. Elas teriam que ser reenviadas em cada barra
Se você definir como falso, os pedidos pendentes serão válidos até expirarem ou serem cancelados.
esta é uma configuração importante que tem grande influência em ordens Stop e Limit. Se definido como true, as ordens stop são
substituídas por uma versão atualizada sempre que houver um novo sinal e a ordem ainda estiver pendente.
Nas versões mais antigas do StrategyQuant, essa configuração era implicitamente definida como falsa e ficava oculta.
Parece que defini-lo como verdadeiro leva a estratégias de fuga melhores e mais bem-sucedidas, e geralmente é
recomendado.
você pode limitar o máximo de negociações que a estratégia realiza por dia
Limitar sinais para intervalo de tempo, intervalo de tempo de, intervalo de tempo para
isso limita as horas em que a estratégia verifica o sinal de entrada para um determinado intervalo de tempo.
Se usado em combinação com Exit At End Of Range , todas as posições abertas serão fechadas no final do intervalo.
faixa.
Se você não marcar a opção Sair no Fim do Intervalo , a estratégia não abrirá novas negociações fora do intervalo de negociação,
mas as posições já abertas não serão fechadas.
três configurações que gerenciam se as negociações devem ser fechadas no final do intervalo, dia ou semana.
Definir SL/PT na estratégia é a abordagem mais simples e muitas vezes mais eficaz.
Se você desmarcar o SL/PT obrigatório, a estratégia gerada aleatoriamente pode (mas não precisa)
44
Machine Translated by Google
tem SL/PT fixo. É aconselhável usar uma regra de saída diferente se você desmarcar esta configuração,
por exemplo, sair após X barras, caso contrário a estratégia não terá como sair da negociação.
Períodos de retrospectiva
Aqui você pode configurar os períodos e coeficientes usados pelo GB ao gerar as regras de negociação.
define o período máximo que será usado para indicadores. Normalmente não usamos períodos maiores que 100-300 no
sistema de negociação (dependendo do tipo de estratégia de negociação), então é aconselhável definir o valor do período
máximo desejado.
este é o período máximo de lookback para padrões de preços (preços de abertura, alta, baixa e fechamento). Realmente
não faz sentido defini-lo para mais de 10-20, porque o preço mais antigo geralmente não tem relação com
o movimento atual do mercado.
45
Machine Translated by Google
Uma coisa importante é que não há uma configuração ideal. Você pode experimentar com configurações de evolução
Opções genéticas
O tamanho da
população é o número de estratégias diferentes em uma população. Deve ser pelo menos 50, o valor ideal será entre 100 - 1000 ou
Máx. # de gerações
Probabilidade de mutação
Probabilidade de Crossover
é a probabilidade de que a estratégia seja selecionada para operação de crossover. A cada geração há um crossover de
estratégias realizado durante o qual as duas estratégias parentais "acasalam" e produzem dois filhos. Valor recomendado é 95%.
A população inicial será gerada aleatoriamente usando as configurações e blocos de construção predefinidos.
Coeficiente de dizimação
dizimação significa que o sistema gera mais estratégias do que o necessário para a população inicial e, então, escolhe apenas as
Para coeficiente de dizimação = 2, o sistema gera 2 estratégias de tamanho populacional e então escolhe a melhor metade para
a população inicial.
Para coeficiente de dizimação = 3, o sistema gera 3 estratégias x tamanho da população e então escolhe o melhor terço para a
população inicial.
permite que você especifique a profundidade máxima da árvore de condições de estratégia. Se você não marcar 'Force...', ela
será imposta somente para a geração inicial, gerações subsequentes podem obter árvores com profundidades maiores que
Se você marcar Forçar para todas as gerações, a profundidade máxima da árvore será aplicada para todas as
estratégias geradas.
46
Machine Translated by Google
Gestão da Evolução
isso foi atualizado na versão 3.5, agora permite que você divida o período de amostra em duas partes para uma abordagem
de 3 partes e controle a evolução de mais maneiras.
Leia a abordagem de 3 partes de dados para obter mais informações sobre a nova funcionalidade e exemplos.
47
Machine Translated by Google
A gestão de dinheiro (ou dimensionamento de posição) especifica quantos lotes ou ações são negociados em cada operação.
O StrategyQuant contém três opções diferentes de gerenciamento de dinheiro que podem ser usadas no programa e também
posteriormente em negociações reais no MetaTrader.
Tamanho fixo
a estratégia negociará com um número fixo de lotes. Esta é uma configuração recomendada quando você gera uma nova
estratégia, porque ela lhe dá uma visão geral clara do desempenho real da estratégia.
Valor fixo
a estratégia arriscará uma quantia fixa de dinheiro para cada negociação.
Este é um gerenciamento básico de dinheiro sem composição. Pode ser usado para testar o desempenho real de estratégias
onde o Stop Loss é baseado na volatilidade (ATR),
ou se você quiser comparar o desempenho de estratégias com diferentes Stop Loss.
48
Machine Translated by Google
Testes de robustez são testes adicionais que podem ser aplicados à sua estratégia. A ideia por trás do teste de robustez
é verificar o quão bem a estratégia se comportará quando houver pequenas mudanças em entradas, dados históricos ou outros
componentes da estratégia.
Uma estratégia robusta deve ter bom desempenho mesmo quando os parâmetros de entrada são ligeiramente alterados ou
quando algumas ordens são ignoradas.
O StrategyQuant permite que você use testes de robustez em uma forma de análise de Monte Carlo.
Isso significa que o programa executará um número especificado de testes de estratégia com alterações aleatórias dadas.
Como resultado, você receberá um número de resultados de saída e ações de saída, um para cada teste.
Você pode então verificar esses resultados para ver como a estratégia se comporta quando as entradas são alteradas, o que
ajuda a decidir se você pode negociar tal estratégia.
Testar a estratégia com dados de entrada aleatórios ou históricos fornece apenas uma alternativa que pode ser comparada ao resultado
original.
Para obter uma imagem mais completa, o teste de robustez pode ser repetido até recebermos um conjunto maior de resultados
diferentes.
Você pode especificar o número de testes na variável Number of simulations . Quanto mais simulações forem executadas, melhor será
a significância estatística dos resultados, mas isso tem um preço.
Cada teste leva seu tempo, então quanto mais testes você executar, mais tempo levará para fazer o backtest completo da estratégia.
O nível de confiança para relatórios é simplesmente um nível de confiança marcado com um fundo escuro na tabela de análise de
robustez (veja abaixo).
O nível de confiança usual a ser usado é de 95%.
Abaixo está uma explicação de diferentes tipos de testes que você pode usar. Se mais de uma opção for marcada, os testes serão
combinados.
Na variação mais avançada de Reamostragem deste teste, as negociações não são apenas embaralhadas. Em vez disso, o
programa escolhe aleatoriamente o número total de negociações do conjunto de todas as negociações no histórico. A diferença é que
neste método a lista de negociações pode não ser a mesma. Ele pode escolher uma negociação várias vezes e algumas outras
negociações podem não ser escolhidas.
Isso dará ainda outra visão do sistema. Esse método geralmente mudará tanto o Lucro Líquido quanto o Drawdown e é um teste
bastante extremo.
49
Machine Translated by Google
ele pulará aleatoriamente negociações com probabilidade dada. Em negociações reais, você pode frequentemente perder uma negociação
por causa de falha de plataforma ou Internet, ou simplesmente porque você pausou a negociação por algum tempo.
Este teste lhe dará uma ideia de como a curva de patrimônio pode ficar se algumas negociações forem ignoradas aleatoriamente.
toda estratégia usa parâmetros, como o período de um indicador ou constante que é usada na comparação.
Este teste verifica a sensibilidade da estratégia a uma pequena alteração no valor do parâmetro.
Probabilidade de mudança é uma probabilidade de que qualquer parâmetro mude seu valor. Mudança máxima de parâmetro é a
porcentagem máxima para a qual o parâmetro muda seu valor.
Por exemplo, se você definir a alteração máxima do parâmetro como 10%, um parâmetro com valor 60 poderá ser alterado
aleatoriamente para um intervalo de 54 a 66 (+- 10% do seu valor original de 60).
isso testará o comportamento da estratégia quando o teste começar em uma barra inicial diferente. É óbvio que uma boa estratégia
não pode ser sensível a qual barra você inicia o teste.
um caso muito comum de ajuste de curva é quando a estratégia é muito dependente de dados históricos. Esta opção verifica o
comportamento da estratégia a uma mudança nos dados históricos.
A Probabilidade de mudança define para cada barra o quão provável é que o preço de abertura, alta, baixa ou fechamento seja alterado. A
mudança máxima de preço é um valor percentual da mudança em relação ao ATR (Average True Range).
Então, se por exemplo o preço de fechamento for escolhido aleatoriamente para ser alterado, o valor do ATR for 10 pips e a alteração
máxima do preço for 20%, então o preço pode mudar em +- 2 pips
Essas simulações executarão o teste com spread, slippage ou distância mínima da ordem de parada do preço escolhido aleatoriamente
no intervalo fornecido.
Para obter informações sobre como usar testes de robustez e como interpretar os resultados, consulte a seção Testes de
robustez e análise .
50
Machine Translated by Google
Quando as estratégias são geradas, cada nova estratégia é testada em um histórico de dados e os resultados do teste são então
• quais estratégias são armazenadas no banco de dados e quais são descartadas (condições personalizadas)
Não é possível armazenar todas as estratégias (lembre-se de que o StrategyQuant pode criar milhares de novas estratégias a cada hora),
armazenadas no banco de dados, como elas devem ser classificadas para descobrir as melhores e quais estratégias devem ser
descartadas.
se marcado, estratégias que têm exatamente as mesmas ordens que alguma estratégia no banco de dados serão descartadas.
Condições personalizadas
Você pode definir regras para descartar estratégias com propriedades ruins. Por exemplo, geralmente faz sentido descartar
estratégias que resultam em perdas ou aquelas que têm um número muito pequeno de negociações.
As condições personalizadas permitem que você especifique suas próprias regras personalizadas que serão avaliadas para cada
estratégia.
Se a estratégia corresponder a qualquer uma das regras, ela será descartada.
Isso é útil para descartar rapidamente estratégias que resultam em perdas ou com número muito pequeno de negociações.
Há valores separados para desempenho dentro e fora da amostra e para testes de robustez (se usados) ou portfólio (se você usou dados
adicionais).
51
Machine Translated by Google
Você pode selecionar se deseja calcular a aptidão (pontuação de aptidão da estratégia) a partir dos dados principais ou do
Geralmente é recomendado usar o Portfólio, então a adequação da estratégia será calculada a partir da soma de todas as
Se você usar esta configuração e não tiver dados adicionais, o condicionamento físico será calculado automaticamente a partir dos
dados principais.
Você pode escolher entre os critérios predefinidos mais usados ou pode criar sua própria função de condicionamento físico complexa
Note que se você escolher combinar muitos critérios, eles podem "lutar" uns contra os outros sem atingir o que você esperava. Fator
de lucro
52
Machine Translated by Google
A estratégia consiste em três partes - Regras de entrada, Tipo de ordem e Regras de saída. Cada uma dessas partes pode ser
melhorada independentemente.
Dessa forma, você pode, por exemplo, procurar melhores regras de saída ou gerar uma nova regra para entrada longa, mantendo a regra
de entrada curta da estratégia original.
Você tem que verificar a parte que quer melhorar. Também há a possibilidade de melhorar partes longas/curtas independentemente.
Tipos de adição:
adicionar - adiciona nova condição à regra
substituir - substituir toda a regra por uma nova condição
adicionar ou substituir - determina aleatoriamente se deve adicionar ou substituir
Processo de melhoria
Melhoria significa que o StrategyQuant fará uma cópia da estratégia original e gerará aleatoriamente novas condições que
substituirão ou adicionarão à parte da estratégia selecionada.
Em seguida, ele testará a nova variação da estratégia para verificar se a "melhoria" resultou em melhor desempenho.
As estratégias que apresentam melhor desempenho que a estratégia original são então armazenadas no banco de dados.
53
Machine Translated by Google
5.2.9 Parâmetros
esta tela de configurações está disponível somente para o Optimizer. Quando você carrega uma estratégia para o
optimizer, então você tem que especificar quais parâmetros devem ser otimizados na tela Parameters.
Cada parâmetro que você deseja otimizar deve ser verificado e você deve definir seus valores de Início, Parada e Passo.
Número de testes
O valor em Número de testes mostra quantos testes no total precisam ser realizados.
Se você escolher otimizar mais de um parâmetro, o mecanismo de otimização testará todas as combinações de
todos os parâmetros.
Se você escolher muitos parâmetros para otimizar, isso pode resultar em milhares ou até milhões de testes.
Método de otimização
Existem dois métodos de otimização disponíveis:
Força bruta - métodos de força bruta passam por todas as combinações possíveis de parâmetros. Pode ser muito lento
quando você otimiza muitos parâmetros.
Otimização genética - para cada otimização com número de testes maior que 500 ou 1000 você deve usar o
método de Otimização Genética.
54
Machine Translated by Google
A primeira parte da página de resultados do Walk-Forward mostra a pontuação total da estratégia (calculada a partir dos
critérios de sucesso, veja abaixo) e outras características das execuções do Walk-Forward, como valores de lucro,
eficiência ou consistência.
A segunda parte contém critérios de Score configuráveis dinamicamente . Você pode verificar qualquer critério que queira
avaliar na avaliação de execução do WF, bem como definir seu valor limite.
Pontuação total
é um critério especial, aqui você define quantos dos seguintes critérios precisam passar para considerar a execução aprovada.
No nosso caso, precisamos de pelo menos 4 critérios disponíveis
(Lucro, Eficiência, Consistência, Distribuição, Drawdown, Negociações) para ser bem-sucedido.
No nosso caso, 5 testes foram bem-sucedidos, o que é mais do que os 4 necessários, então a execução passou no teste de critérios de pontuação.
55
Machine Translated by Google
este critério mede a robustez das execuções walk-forward. Por exemplo, se as partes de otimização ganharam $ 10.000 e as partes
de execução ganharam $ 5.000, então a Eficiência Walk-
Forward é exatamente 50% (partes de execução ganharam 50% do que as partes de otimização).
No nosso caso, o teste de eficiência falhou, porque a parte de execução obteve apenas 46% da parte de otimização e o valor necessário
para passar no teste é 60%.
No nosso caso, a consistência foi de 60%, que é exatamente o valor mínimo necessário.
Negociações mínimas
ele verifica se há pelo menos um número mínimo de negociações produzidas em cada execução. Se uma execução produz poucas
negociações, é menos estatisticamente significativa.
No nosso caso, cada execução teve mais de 100 negociações.
Em geral
A guia geral permite que você configure coisas gerais, como o título do programa, como salvar mensagens de log ou formato de
data e hora.
56
Machine Translated by Google
Desempenho
A aba performance permite que você configure quantos núcleos da sua CPU serão usados para computação. Quanto mais núcleos você escolher,
maior será a carga do seu computador.
Parâmetros de estratégia
esta aba permite que você defina o comportamento dos parâmetros globais. A estratégia contém dois conjuntos de regras, um para o lado longo e
um para o lado curto. Normalmente, elas são simétricas.
Relatórios HTML
possibilidade de personalizar relatórios HTML produzidos pelo programa. Você pode personalizar quais gráficos você quer ver no relatório de
desempenho da estratégia.
57
Machine Translated by Google
5.3 Resultados
Banco de dados é um local de armazenamento onde as estratégias geradas/testadas são armazenadas com seus resultados.
Cada modo (Construir/Testar/Melhorar/Otimizar) tem sua própria tabela de banco de dados independente.
Por razões de memória, o Banco de Dados não pode manter um número ilimitado de estratégias; em vez disso, ele armazena o
número selecionado de estratégias principais, por exemplo, as 100 principais ou as 1000 principais estratégias.
A configuração de quantas estratégias armazenar no Banco de Dados e como classificá-las pode ser definida em Configurações ->
Opções de Classificação
Cada resultado de estratégia no Banco de Dados pode ser visualizado na tela Resultados usando um clique duplo.
Carregar
este botão está disponível apenas no banco de dados Retest , ele carrega projetos de estratégia (arquivos .str) para que possam ser
testado novamente.
aqui você pode editar manualmente a estratégia selecionada - os valores de seus parâmetros ou a negociação
regras.
Excluir/Limpar tudo
isso excluirá todas as estratégias selecionadas ou da lista
Criar portfólio
ele combinará estratégias selecionadas em um portfólio - um relatório especial que combina resultados de negociação de múltiplas
estratégias. Você pode então verificar/analisar os resultados de todo o portfólio de estratégias.
Visualizações
Cada linha na tabela representa uma estratégia mais os resultados do backtest da estratégia — número de negociações, lucro/perda
58
Machine Translated by Google
Todas as colunas no banco de dados são personalizáveis, você pode escolher quais colunas deseja ver usando visualizações.
A tela de visão geral exibe várias estatísticas calculadas a partir dos dados do backtest.
Se você testou sua estratégia em vários símbolos/períodos de tempo, você pode alternar entre os resultados ou verificar a lista de
negociações de todo o portfólio.
O marcador de estagnação mostra o período máximo de estagnação - este é o período mais longo que a estratégia levou para atingir
uma nova máxima no patrimônio líquido.
No caso de portfólio, ele exibe gráficos para cada símbolo/período de tempo testado, além do patrimônio do portfólio completo.
Esta tela exibe o desempenho anual da estratégia, além de pequenos gráficos configuráveis com negociações por hora, dia da semana, dia
do mês, etc.
Esta tela estará vazia se você não configurou nenhum Teste de Robustez.
Caso contrário, ele contém um gráfico de equidade para cada simulação de teste de robustez e uma tabela de níveis de confiança
importantes calculados usando a análise de Monte Carlo de simulações.
Para obter informações sobre como usar testes de robustez e como interpretar os resultados, consulte a seção Testes de
robustez e análise .
59
Machine Translated by Google
Esta tela exibe as configurações atuais do programa em comparação com as configurações que foram usadas quando a estratégia
foi testada/gerada pela última vez.
As diferenças são destacadas em vermelho.
Para carregar rapidamente as configurações da estratégia, você pode usar o botão Aplicar configurações da estratégia.
Isso carregará as configurações da estratégia e as aplicará à seção do programa selecionada.
60
Machine Translated by Google
A aba Source code é onde você obterá o resultado do programa. Para cada estratégia selecionada, ele gera o código-fonte
selecionado.
Pseudocódigo
pseudo código legível por humanos da estratégia. Você pode ver a lógica da estratégia e pode usá-la para negociação
manual.
O EA gerado dessa forma será 100% compatível com a estratégia testada no SQ usando a precisão do teste Trade on Bar
Open .
Código NinjaTrader
Código de estratégia para NinjaTrader. Você pode copiar e colar o código na nova estratégia NinjaTrader.
Verifique mais sobre isso na seção Exportando a estratégia do StrategyQuant para o NinjaTrader
marcando esta caixa de seleção você pode gerar um código onde todas as constantes numéricas, como períodos
indicadores, constantes de comparação
etc., serão parametrizadas - um parâmetro será adicionado para cada constante.
Isso permitirá que você otimize seu EA no MetaTrader ou teste-o com diferentes valores de parâmetros.
61
Machine Translated by Google
6 Funcionalidade avançada
A estratégia de ajuste de curva aos dados históricos nos quais ela foi construída é o maior perigo das estratégias geradas
usando qualquer processo de aprendizado de máquina.
Depois de desenvolver uma nova estratégia, você deve garantir que ela seja robusta, o que deve aumentar a probabilidade de
que ela funcione também no futuro.
O que é robustez?
É simplesmente a propriedade da estratégia de ser capaz de lidar com condições mutáveis.
- Primeiramente, a estratégia deve trabalhar com dados desconhecidos (se as características do mercado não mudaram),
com ou sem reotimização periódica dos parâmetros.
- Não deve se desfazer se algumas negociações forem perdidas.
- Uma estratégia robusta não deve ser muito sensível aos parâmetros de entrada - ela deve funcionar mesmo se você alterar
ligeiramente os valores dos parâmetros de entrada, como o período do indicador ou alguma constante.
o teste mais básico para robustez é testar a estratégia em dados Out of Sample. Se você executar evolução genética, a
estratégia é evoluída apenas na parte In Sample dos dados. A parte Out of Sample é "desconhecida" para a estratégia,
então ela pode ser usada para determinar se a estratégia também funciona em parte desconhecida dos dados.
A parte azul de cada gráfico são os dados fora da amostra (desconhecidos). Podemos ver que a estratégia à esquerda
também tem um bom desempenho nessa parte, enquanto a estratégia à direita falha nos dados desconhecidos - é quase certo
que seja ajustada à curva.
o segundo teste de robustez é muito difícil - significa testar a mesma estratégia em diferentes símbolos e/ou outro(s) período(s).
Uma estratégia robusta deve idealmente funcionar em múltiplos símbolos/períodos.
Na realidade, como cada mercado tem suas próprias características, volatilidade diária, etc., não será fácil encontrar uma
estratégia que tenha o mesmo desempenho perfeito em vários símbolos usando apenas um conjunto de configurações.
Podemos ficar satisfeitos se a estratégia tiver desempenho em outros mercados com pelo menos algum grau de
lucratividade, ou apenas com pequenas perdas.
62
Machine Translated by Google
StrategyQuant permite que você especifique símbolos adicionais para construir/testar as estratégias
na seção Dados adicionais. Você pode até testar a estratégia no mesmo símbolo com diferentes prazos.
63
Machine Translated by Google
Nos dois gráficos acima você pode ver o teste de estratégia no EURUSD (linha verde), GBPUSD (linha ciano) e o portfólio de
ambos (linha azul).
Enquanto no gráfico da esquerda a estratégia tem um bom desempenho em ambas as moedas, no gráfico da direita você pode
ver que o desempenho em GBPUSD é ruim. Essa estratégia provavelmente não é robusta o suficiente.
StrategyQuant permite que você ative os Testes de Robustez. A ferramenta Testes de Robustez simplesmente testa
repetidamente a estratégia com diferentes mudanças aleatórias nos parâmetros de entrada e dados realizando simulação
de Monte Carlo.
A ideia por trás desse teste de robustez é verificar o desempenho da estratégia quando há pequenas alterações em entradas,
dados históricos ou outros componentes da estratégia.
64
Machine Translated by Google
- Randomize Trades Order - este é o teste mais simples, ele embaralha aleatoriamente a ordem dos trades. Isso não altera o Net
Profit resultante, mas é muito útil para examinar diferentes variações de Drawdown que podem ser resultado de diferentes ordens
de trades.
- Pular negociações aleatoriamente - ele pulará negociações aleatoriamente com probabilidade dada. Em negociações reais, você
pode frequentemente perder uma negociação por causa de falha de plataforma ou Internet, ou simplesmente porque você pausou a
negociação por algum tempo. Este teste lhe dará uma ideia de como a curva de patrimônio pode parecer se algumas negociações
forem puladas aleatoriamente.
- Randomize Starting Bar - isso testará o comportamento da estratégia quando o teste começar em uma barra inicial diferente. É óbvio
que uma boa estratégia não pode ser sensível a qual barra você inicia o teste.
- Parâmetros de estratégia aleatórios - cada estratégia usa parâmetros, como o período de um indicador ou constante que é usado em
comparação. Este teste verifica a sensibilidade da estratégia a uma pequena alteração do valor do parâmetro. Probabilidade de alteração
é uma probabilidade de que qualquer parâmetro altere seu valor. A alteração máxima do parâmetro é a porcentagem máxima para a qual
o parâmetro altera seu valor. Por exemplo, se você definir a alteração máxima do parâmetro para 10%, então um parâmetro
com valor 60 pode ser alterado aleatoriamente para um intervalo de 54 a 66 (+- 10% de seu valor original de 60).
- Randomize History Data - um caso muito comum de ajuste de curva é quando a estratégia é muito dependente de dados históricos.
Esta opção verifica o comportamento da estratégia a uma mudança nos dados históricos.
A Probabilidade de mudança define para cada barra o quão provável é que o preço de abertura, alta, baixa ou fechamento seja alterado.
A mudança máxima de preço é um valor percentual da mudança em relação ao ATR (Average True Range).
Então, se por exemplo o preço de fechamento for escolhido aleatoriamente para ser alterado, o valor do ATR for 10 pips e a alteração
máxima do preço for 20%, então o preço pode mudar em +- 2 pips
Interpretando os resultados
Os testes de robustez produzem os resultados como um conjunto de gráficos de patrimônio para cada execução de teste E uma tabela
mostrando os resultados da simulação de Monte Carlo.
Neste exemplo, executamos 10 simulações, com alterações aleatórias nos parâmetros da estratégia, dados históricos e negociações
ignoradas aleatoriamente.
Podemos ver qual seria o patrimônio para cada uma dessas simulações e a tabela à esquerda nos fornece informações valiosas sobre as
propriedades da estratégia durante essas simulações.
65
Machine Translated by Google
Por exemplo, valores com nível de confiança de 80% significam que há 20% de chance de que o Lucro Líquido, o
Drawdown etc. sejam piores do que os valores do nível de confiança.
Valores com nível de confiança de 90% significam que há 10% de chance de que o Lucro Líquido, Drawdown etc. sejam piores
do que os valores do nível de confiança.
Valores com nível de confiança de 95% significam que há apenas 5% de chance de que o Lucro Líquido, o
Drawdown, etc. sejam piores do que esses valores.
Então, a simulação de Monte Carlo da nossa estratégia nos mostra que, ao pular 10% das negociações aleatórias e pequenas
mudanças aleatórias nos parâmetros de entrada e dados, nosso Lucro Líquido pode diminuir de $ 6.990 para $ 3.943,
e o Drawdown Máximo pode aumentar de 6,97% para 11,36%.
Isso significa que há apenas 5% de chance de que o Lucro Líquido seja menor que US$ 3.943. Ao analisar os níveis de
confiança mais altos, podemos ver que nenhum dos nossos testes teve resultados piores que US$ 3.943, então a
estratégia parece ser relativamente robusta às mudanças às quais a expusemos.
Como os testes de robustez são gerados aleatoriamente, os gráficos de ações e valores na tabela serão ligeiramente
diferentes toda vez que você testar novamente a estratégia. Além disso, quanto mais simulações você executar, maior será
a significância estatística deste teste.
66
Machine Translated by Google
O quarto tipo de verificação de robustez é o teste usando Walk-Forward Matrix. Se a estratégia passar neste teste, significa
que, com a ajuda da reotimização de parâmetros, ela é adaptável a uma grande variedade de condições de mercado.
67
Machine Translated by Google
6.2 Otimização
A ideia por trás de uma otimização é simples. Primeiro você tem que ter um sistema de negociação, isso pode ser um
simples crossover de média móvel, por exemplo.
Em quase todos os sistemas, há alguns parâmetros (períodos indicadores, constantes comparativas, etc.) que decidem como
um dado sistema se comporta. A otimização significa testar o sistema com diferentes valores de parâmetros
para encontrar os valores ótimos desses parâmetros (dando maior lucro ou melhor relação Retorno/DD).
Exemplo de otimização
Primeiro, você precisa alternar para a janela do Otimizador e carregar a estratégia que deseja otimizar.
Neste exemplo, usaremos a estratégia EMA_Cross simples, que opera comprado quando a EMA mais rápida cruza acima da
EMA mais lenta, e vendido quando a EMA mais rápida cruza abaixo da EMA mais lenta.
Depois de carregar a estratégia, ela também é adicionada como Estratégia original ao banco de dados de resultados
de otimização.
Você pode clicar duas vezes na estratégia Original e depois ir em Resultados -> Código-fonte para ver suas regras.
68
Machine Translated by Google
Certifique-se de marcar a caixa de seleção Colocar valores nos parâmetros para ver que as variáveis pLongEMA_1,
pLongEMA_2, pShortEMA_1, pShortEMA_1 são usadas para armazenar parâmetros do indicador.
Em nossa otimização, tentaremos encontrar valores ótimos desses parâmetros.
Ainda há um pequeno problema. Podemos ver que a estratégia usa parâmetros diferentes para direção longa e curta.
Podemos usá-lo assim se quisermos encontrar valores ótimos independentemente para o lado longo e curto, mas, para nosso
exemplo, gostaríamos de usar o mesmo parâmetro para o lado longo e curto.
Podemos fazer isso no programa Ferramentas -> Opções -> Parâmetros de estratégia.
Se você marcar a primeira caixa de seleção, serão usados os mesmos parâmetros para direções longas e curtas (desde que as
regras sejam as mesmas).
Clique em OK para armazenar as configurações e atualizar o código-fonte.
69
Machine Translated by Google
Agora você pode ver que a estratégia contém apenas os parâmetros pEMA_1, pEMA_2 que são usados para ambas as direções.
Para configurar os valores que serão otimizados, temos que ir em Configurações -> Parâmetros
Aqui você pode ver a lista de todos os parâmetros de estratégia que estão disponíveis para otimização.
Otimização significa simplesmente tentar valores diferentes de parâmetros de entrada.
Para cada parâmetro que você deseja otimizar, você tem que verificar a linha do parâmetro e escolher os valores Start, Stop
e Step . O otimizador irá iterar o valor do Start para o Stop, tomando Steps.
70
Machine Translated by Google
O valor original também é configurável, ele será usado para testar novamente a estratégia original. Você pode usar esse valor para
comparar o desempenho de novos resultados com as configurações "originais".
O valor Número de testes nos mostra quantos testes precisam ser realizados para testar todas as combinações
de valores.
Observação!
É possível que sua tabela de parâmetros contenha muito mais parâmetros, ela poderia ficar assim:
Este é outro recurso poderoso do StrategyQuant. Ele permite que você otimize não apenas parâmetros de estratégia,
mas também outras opções de negociação, como quantas negociações fazer por dia ou qual deve ser o intervalo de tempo para
negociação.
Essas configurações normalmente fazem parte das Opções de Estratégia, mas você também pode otimizar seus valores.
Se você não quiser usá-los e vê-los na tabela Parâmetros, vá novamente para Ferramentas -> Opções -> Parâmetros de
estratégia e desmarque a caixa de seleção Adicionar parâmetros para opções de estratégia.
71
Machine Translated by Google
A última coisa que temos que configurar são os dados que serão usados para teste. Podemos escolher EURUSD no período
H4 para este exemplo.
Agora estamos prontos para executar a otimização. Voltaremos para a tela Progress e clicaremos no botão Start .
O mecanismo de otimização testará todas as combinações possíveis de parâmetros de entrada selecionados e
armazenará os resultados de cada combinação no banco de dados na parte inferior.
72
Machine Translated by Google
Podemos classificar o banco de dados por Lucro Líquido e podemos ver que os melhores valores de entrada em
termos de lucro máximo são pEMA_1= 5 e pEMA_2 = 10.
Também podemos ver os resultados da estratégia original (fundo cinza) que usou pEMA_1 = 10 e pEMA_2 = 20
Interpretando os resultados
Agora temos parâmetros de entrada que foram otimizados para nosso símbolo e período de tempo fornecidos.
O que realmente fizemos foi descobrir o que funcionou melhor no passado. Temos que ser muito cuidadosos porque
os parâmetros podem ser ideais para os dados históricos, mas não há
garantia de que o que funcionou melhor nos dados históricos funcionará também no futuro.
Isso é chamado de ajuste de curva - geralmente, quanto mais parâmetros a estratégia tiver, maior será o perigo do
ajuste de curva.
O StrategyQuant pode lhe dar respostas a essas perguntas usando outra de suas funcionalidades avançadas -
Otimização Walk-Forward e Matriz Walk-Forward.
73
Machine Translated by Google
A otimização Walk-Forward é geralmente um conjunto de otimizações simples seguidas de negociação usando os melhores
parâmetros.
É uma técnica na qual você otimiza os valores dos parâmetros em um segmento anterior de dados de mercado e, em seguida, verifica o
desempenho do sistema testando-o no futuro em dados após o segmento de otimização.
na otimização walk-forward, os dados são divididos em um número configurável de períodos (6 neste exemplo).
O programa começa com o período de otimização 1. Ele executará a otimização simples no período de otimização 1 para
encontrar os melhores valores de parâmetros.
Esses valores de parâmetros são então aplicados ao período de execução 1 - a estratégia é testada negociando com os
parâmetros otimizados no período de execução.
No final do período de execução 1, o sistema executa novamente uma otimização simples em uma parte dos dados marcada
como período de otimização 2.
Ele encontra o melhor conjunto de valores de parâmetros e eles são usados novamente para negociação no período de execução 2.
Isso continua até o período 6, que também é o fim dos dados históricos usados no teste.
A otimização Walk-Forward simula como você trabalharia com a estratégia durante negociações reais : você a otimizaria
com base em alguns dados históricos e, então, negociaria com os valores ideais.
Depois de algum tempo, você vai querer otimizá-lo novamente e deixá-lo negociar novamente.
A análise dos resultados do walk-forward pode dizer se a estratégia é uma boa candidata para reotimização periódica.
seguiremos com nosso exemplo de otimização simples, temos que carregar nossa estratégia e escolher os valores dos
parâmetros a serem otimizados,
só que agora escolheremos a opção Walk-Forward Optimization na tela Progress.
74
Machine Translated by Google
Tipo Walk-Forward
Existem dois tipos para escolher: Exato e Simulado.
A otimização exata executará a otimização completa para cada execução. Quando você tem 6 execuções, significa
que a otimização (em uma determinada seção de dados) é realizada 6x.
A otimização WF simulada pode ser muito mais rápida (10-100x) do que a Exata. Neste tipo, a otimização é
feita apenas uma vez no início para todo o período, e os resultados para cada execução
são computados a partir desta otimização.
A otimização simulada é um pouco menos precisa do que a Exata, mas as diferenças são aceitáveis e a velocidade é
muito maior. O que poderia levar dias usando o tipo Exato pode ser feito em horas ou
minutos usando o tipo Simulado.
Fora da amostra %
isso significa quanto do período inteiro resta para execução. Se definirmos como 30%, significa que em cada período 70%
dos dados são usados para otimização, e 30% serão usados para negociação usando os valores otimizados.
Corridas em frente
isso significa quantas execuções de otimização haverá, o que significa quantas vezes iremos reotimizar a estratégia.
Também é possível especificar os períodos de otimização (Na amostra) e execução (Fora da amostra) por dias exatos.
Você pode fazer isso marcando Definir número específico de dias.
75
Machine Translated by Google
Esta funcionalidade foi atualizada na versão 3.5. Não há mais configurações de critérios de sucesso, em vez disso, há
critérios de sucesso totalmente dinâmicos disponíveis na tabela de resultados, não é necessário configurar isso antecipadamente.
Para encontrar mais informações sobre o que cada critério significa, consulte a página Critérios de Sucesso .
A otimização Walk-Forward leva mais tempo do que uma simples, porque há 6 (ou mais) etapas de otimização
em vez de apenas uma.
Quando terminar, veremos que temos apenas dois resultados no banco de dados: Estratégia original e Resultado Walk-Forward.
Podemos ver que a estratégia falhou no teste de avanço, com base em nossos critérios de sucesso.
Na parte superior, você tem o resultado geral e, na tabela de critérios de teste, abaixo, você pode ver os resultados divididos
por cada critério de sucesso usado.
Não especificamos os dias exatamente (poderíamos fazer isso marcando a caixa de seleção Definir número específico de dias
no painel Progresso).
Esses valores (204 dias de execução e 475 dias de otimização) foram calculados a partir dos dados históricos disponíveis
porque especificamos que queríamos ter 6 execuções e 30% de dados fora da amostra (execução).
76
Machine Translated by Google
Abaixo dessas informações podemos verificar os resultados para cada otimização e período de execução:
Interpretando os resultados
Em primeiro lugar, está claro que essa estratégia em particular não se beneficiará da reotimização, pelo menos não da
reotimização usando os períodos que especificamos - 6 reotimizações em 5 anos, o que é aproximadamente
uma reotimização a cada 200 dias.
É possível que essa estratégia não seja robusta o suficiente e fracasse no futuro.
Mas também existe a possibilidade de que a estratégia seja lucrativa se forem escolhidos períodos diferentes
e mais frequentes de reotimizações.
Como podemos saber qual é o melhor período de reotimização para a estratégia?
77
Machine Translated by Google
78
Machine Translated by Google
O Walk-Forward Matrix é um recurso poderoso que pode ajudar você com duas coisas:
A otimização Walk-Forward padrão testa os resultados da estratégia se ela for reotimizada periodicamente, digamos, a
cada 300 dias.
Mas como sabemos com que frequência é melhor reotimizar a estratégia?
Só podemos supor, a menos que usemos a Matriz Walk-Forward, que testará várias combinações de períodos de
reotimização.
Na matriz, temos que especificar quais combinações queremos testar para a Otimização Walk-Forward.
Todas as outras configurações (combinação de valores de parâmetros para teste e critérios de sucesso) já estão definidas
pelos exemplos anteriores,
então podemos clicar no botão Iniciar para começar o teste.
O cálculo da Matriz Walk-Forward consome muito tempo, porque é preciso executar a otimização Walk-Forward
completa para cada combinação na matriz.
É melhor não definir muitos passos, pelo menos se você quiser ter resultados relativamente rápidos.
79
Machine Translated by Google
Quando a otimização termina, obtemos novamente um novo resultado da Matriz Walk-Forward em nosso banco
de dados.
Podemos ver que todas as combinações de otimização WF falharam (de acordo com os critérios de sucesso que definimos
anteriormente).
Você pode clicar em qualquer célula na tabela Multi Walk-Forward Matrix para atualizar os resultados da combinação
selecionada. Vamos escolher a combinação 30/40 no canto inferior direito.
Se você observar a tabela de critérios de teste, verá que ele falhou apenas em 2 dos 6 critérios: em Robustez de avanço
e número de negociações.
80
Machine Translated by Google
Isso não é nada ruim, o melhor resultado foi alcançado pela combinação de 30% fora da amostra e 40 execuções de
otimização, o que corresponde à reotimização a cada 40 dias com histórico de 91 dias.
A estratégia então gerou um lucro de US$ 6.731, enquanto a estratégia original sem reotimizações gerou apenas US$ 2.760.
não é ruim, o gráfico não é ideal, mas é uma grande melhoria em relação ao nosso gráfico de estratégia original, que parecia
assim:
Podemos ver que a estratégia reotimizada permaneceu lucrativa na maior parte do tempo, mesmo durante os períodos
em que a estratégia original estava perdendo.
Conclusão final
Vimos que essa estratégia em particular se beneficiou de reotimização frequente. Ela ainda falhou em nossos critérios de
sucesso, mas talvez com algum filtro adicional sua eficiência possa ser melhorada ainda mais.
81
Machine Translated by Google
Possíveis melhorias
Há várias melhorias possíveis em nossa análise Walk-Forward, por exemplo, podemos escolher etapas diferentes para os
valores dos parâmetros.
Escolhemos pEMA_1 para ir de 5 a 20 em etapas de 5, e pEMA_2 para ir de 10 a 60 em etapas de 10.
Talvez o resultado do Walk-Forward seja melhor se ambos os valores forem otimizados para variar de 5 a 50 com etapas 5.
Outra configuração que influencia o resultado do Walk-Forward é a nossa escolha de Critérios de Seleção.
Você pode repetir a otimização com outro Critério de Seleção para verificar.
82
Machine Translated by Google
6.3 Portfólios
1. Use dados adicionais para construir/testar estratégias em vários símbolos ou prazos - isso criará uma
portfólio que conterá resultados da mesma
estratégia testada em dados diferentes
Os resultados do portfólio são um resumo dos resultados de todas as estratégias que ele contém. Para portfólios
criados manualmente (2), há um resultado especial "Portfólio #" criado no banco de dados que pode ser salvo em um arquivo
para uso posterior.
Gráfico de portfólio
O gráfico de patrimônio para portfólio combina o patrimônio do portfólio, bem como o patrimônio de cada estratégia no portfólio.
Ao visualizar um portfólio, você pode alternar entre o gráfico do portfólio e os gráficos de subtratégias
usando uma caixa de combinação no canto superior esquerdo do gráfico.
83
Machine Translated by Google
Observação!
As estratégias StrategyQuant têm um formato fixo, e o editor corresponde a esse formato com 4 abas, para Entrada Longa, Entrada Curta,
negociação usando alguma regra diferente de Stop Loss ou Meta de Lucro) e Saída Curta.
Cada aba tem uma parte SE e ENTÃO – na parte SE você define as condições, e na parte ENTÃO você define o que deve acontecer
Para CRIAR uma nova estratégia, vá ao menu Arquivo -> Criar estratégia ou clique no ícone na barra de ferramentas.
Para EDITAR uma estratégia existente, basta selecioná-la no banco de dados e clicar em Editar.
84
Machine Translated by Google
85
Machine Translated by Google
7 Como…
Lá, abra a moeda que você deseja exportar (por exemplo GBPUSD) e clique duas vezes em 1 Minuto (M1) para que ela
seja atualizada no lado direito da tela.
Observação
O StrategyQuant suporta importação de apenas dados de 1 minuto e calculará os períodos maiores automaticamente.
Podemos importar dados para um símbolo já existente, mas isso substituirá seus dados, então é melhor definir um novo
símbolo.
Inicie o StrategyQuant, vá para a tela do Gerenciador de dados , Dados históricos e clique em Adicionar símbolo...
86
Machine Translated by Google
Pip/Tick point é
o valor de pip. Isso significa que o número é 1 pip. Geralmente é 0,0001. Para pares baseados em JPY, 1 pip é 0,01.
Valor do Pip/Tick em $
é um valor de quanto vale um pip em dinheiro, geralmente é 10 para todas as moedas.
Passo Pip/Tick
é um valor pelo quanto um pip pode se mover. Praticamente todos os corretores agora usam dados de 5 dígitos, então o valor
será 0,00001 (ou 0,001 para pares baseados em JPY).
Clique em OK e o novo símbolo será criado. O símbolo ainda não tem dados, mas vamos importá-los na próxima etapa.
Agora selecione sua nova linha com o símbolo e clique no botão Import data ... no topo. Isso abrirá o diálogo de importação.
O diálogo Importar é configurável; ele permite importar dados de vários formatos de arquivo. Como usamos dados do
MetaTrader, escolha MetaTrader4 como um Formato de Arquivo Predefinido.
87
Machine Translated by Google
Selecione o arquivo de dados e clique no botão Start Import. Isso iniciará o processo de importação. Pode levar alguns minutos,
Quando a importação estiver concluída, será exibida uma janela de informações e será solicitado que você feche a caixa de diálogo.
Agora importamos os novos dados com sucesso para o StrategyQuant e podemos usá-los para testes ou geração de novas estratégias.
88
Machine Translated by Google
Abra seu NinjaTrader e vá em Arquivo -> Novo -> Gráfico e abra qualquer gráfico que você queira usar para negociação automática.
Você precisa selecionar o período (intervalo de tempo) adequado, o intervalo de dados e o modelo de sessão adequados, pois
Agora você tem que adicionar um indicador especial ao gráfico que cuidará da exportação dos dados. Clique no ícone Indicadores no
Se você não vir esse indicador na lista, certifique-se de ter instalado os indicadores SQ no seu NinjaTrader conforme especificado
Ele tem apenas um parâmetro importante - Caminho - define o caminho onde você deseja que os dados sejam gravados.
89
Machine Translated by Google
Primeiro, ele exibirá uma mensagem informando onde os dados serão gravados. Clique em OK neste diálogo novamente e
a exportação de dados será iniciada.
Pode levar alguns segundos ou minutos, dependendo do tamanho dos seus dados e da velocidade do seu
computador.
Podemos importar dados para um símbolo já existente, mas isso substituirá seus dados, então é melhor definir um novo
símbolo.
Inicie o StrategyQuant, vá para a tela do Gerenciador de dados , Dados históricos e clique em Adicionar símbolo...
90
Machine Translated by Google
Observação
Se você não tiver certeza de como preencher esses valores, verifique Como encontrar o valor do ponto, etapa do pip/ tick no NinjaTrader?
Valor do ponto em $
é um valor quanto vale um ponto em dinheiro, depende do símbolo. Para TF (Russel 2000) é 100.
Passo Pip/Tick
é um valor por quanto um pip pode se mover. Esta é a menor casa decimal que o tick pode ter. Para TF (Russel 2000) é 0,1. Para ações,
Tamanho do Pip/Tick
isso faz sentido apenas para dados forex/MetaTrader. Para futuros e ações, deve ser o mesmo valor que Pip/Tick Step.
Tipo de dados
Clique em OK e o novo símbolo será criado. O símbolo ainda não tem dados, mas vamos importá-los na próxima etapa.
Agora selecione sua nova linha com o símbolo e clique no botão Import data ... no topo. Isso abrirá o diálogo de importação.
91
Machine Translated by Google
O diálogo Importar é configurável; ele permite importar dados de vários formatos de arquivo. Como usamos dados do MetaTrader,
Selecione o arquivo de dados e clique no botão Start Import . Isso iniciará o processo de importação. Pode levar alguns minutos,
Quando a importação estiver concluída, será exibida uma janela de informações e será solicitado que você feche a caixa de diálogo.
Agora importamos os novos dados com sucesso para o StrategyQuant e podemos usá-los para testes ou geração de novas estratégias.
92
Machine Translated by Google
Abra o NinjaTrader, vá para Tools -> Instrument Manager. Lá, procure seu símbolo.
Quando você encontrá-lo, clique duas vezes nele na tabela e ele abrirá os detalhes do instrumento.
O tamanho do Tick aqui deve ser usado como Pip/Tick Step e Pip/Tick Size no StrategyQuant.
93
Machine Translated by Google
Importar dados de Range/Renko para o NinjaTrader é o mesmo que importar quaisquer dados históricos, por isso não é
descrito aqui.
Para MetaTrader4, temos que usar os plugins e scripts CSV2FXT personalizados do [Link]
Não descreveremos todo o processo de obtenção de dados do histórico de tiques ou minutos; isso é descrito na documentação
dos plugins.
Para exportar dados do gráfico em um formato utilizável pelo StrategyQuant, você só precisa definir:
StrategyQuantExport = verdadeiro
Spread=2,5,3 ou 4 – qualquer coisa, mas deve ser um valor fixo
Isso gerará um arquivo de dados que você pode importar para o StrategyQuant de maneira padrão (consulte o tópico Como
importar dados do MetaTrader acima).
Os dados serão reconhecidos como Intraday – o mesmo vale para dados Range e Renko.
Então você pode usar esses dados da mesma forma que qualquer outro dado padrão.
94
Machine Translated by Google
Indicadores personalizados são indicadores executados na plataforma MetaTrader4 e que não são implementados no StrategyQuant.
O StrategyQuant não consegue executar código de indicador, então a única maneira de trabalhar com indicadores personalizados no SQ é
importando seus dados.
Observação
Indicadores personalizados são computados no MetaTrader, não no SQ. Para obter os resultados corretos, você tem que usar os
Não funcionará calcular seu indicador personalizado no MetaTrader com os dados do seu corretor e depois usá-los no StrategyQuant
Antes de usar indicadores personalizados, sincronize seus dados de histórico para que SQ e MT4 usem o mesmo histórico
Vá para Gerenciador de dados -> Indicadores personalizados e clique em Adicionar novo na tabela Definições de indicadores personalizados.
Você pode definir seu indicador manualmente, mas se tiver um código-fonte do seu indicador (arquivo .mq4), poderá usar o reconhecimento
automático.
95
Machine Translated by Google
Clique em Selecionar e encontre seu arquivo indicador - ele deve terminar com a extensão .mq4. Tentaremos importar o
O arquivo indicador será carregado e analisado e todos os campos no formulário Adicionar indicador serão
preenchidos automaticamente.
Podemos ver que o StrategyQuant reconheceu o tipo de retorno do indicador como Preço, ele tem dois parâmetros e três valores
de saída.
Tipo de retorno
96
Machine Translated by Google
é um tipo de indicador de valor de retorno gerado, ele é usado pelo StrategyQuant para combinar adequadamente esse
indicador personalizado com outros blocos de construção no programa, para que ele compare preço com preço, e não, por
exemplo, preço com valor CCI.
Pode ser:
• Preço - se o valor do indicador for preço, como média móvel ou Bandas de Bollinger.
• Faixa de preço – se o valor do indicador for faixa de preço (diferença entre dois preços), como
Faixa de ATR ou Bandas de Bollinger.
• Boolean – se o indicador retornar valores verdadeiro/falso (zero/diferente de zero no nosso caso). Você pode ter
indicador booleano, por exemplo, para reconhecer padrões de velas ou para implementar suas próprias
regras simples de negociação.
É oscilador
Alguns indicadores como CCI ou RSI são osciladores, o que significa que seu valor oscila em torno de algum número,
como o CCI oscila em torno de 0, ou o RSI oscila em torno de 50). Se o indicador for um oscilador, marque esta opção.
Parâmetros
parâmetros são uma lista completa de parâmetros junto com seus tipos e valores padrões para o indicador. Se você definir
o indicador personalizado manualmente, você pode verificar seus parâmetros no MetaTrader.
Valores de saída
estas são as saídas do indicador de valores. Se verificarmos a captura de tela do indicador Keltner Channel abaixo, você
pode ver que ele emite três valores na janela Data, e eles correspondem às linhas superior, média e inferior no gráfico.
97
Machine Translated by Google
Agora que definimos a nova definição do indicador personalizado, precisamos carregar os dados do indicador personalizado.
A definição que fizemos no primeiro passo é apenas uma "descrição" do indicador. Para poder usar o indicador em suas estratégias,
você tem que configurar quais parâmetros e valores de saída ele deve
usar e carregar dados para este indicador computados do MetaTrader.
98
Machine Translated by Google
Aqui temos que escolher nosso indicador (Keltner Channel) e escolher qual dos seus valores de saída queremos usar. Decidimos
pela linha superior.
Se você quiser usar também a linha do meio ou inferior, você tem que seguir este passo para cada saída que você deseja
usar.
Depois você também precisa escolher o Símbolo e o Período para os quais esses dados indicadores serão válidos.
Os dados serão computados no MetaTrader para um dado símbolo e período de tempo, então
eles não serão válidos para nenhum outro símbolo/período de tempo. Para usar este indicador personalizado em outro símbolo,
simplesmente repita esta Etapa 2 com outro símbolo.
Se quisermos usar as configurações de importação automática (recomendado), você também precisa preencher o caminho para
o seu MetaTrader - este é o MetaTrader que será chamado para calcular os dados para este indicador.
Também temos que especificar o nome exato do símbolo naquele MetaTrader. É porque no StrategyQuant você pode usar qualquer
nome, como EURUSD_fhdb, mas para executar uma exportação no MT4 precisamos do nome exato do símbolo que é usado no
MT4.
Novamente, os dados do indicador computado serão válidos apenas para uma combinação de
símbolo/período/saída/parâmetros. Se você quiser usar o indicador personalizado com outro conjunto de parâmetros, você tem que
defini-lo várias vezes.
Quando tudo isso estiver concluído, clique em OK para salvar os novos dados do indicador personalizado.
Podemos repetir o mesmo passo para o mesmo indicador e símbolo, mas desta vez escolheremos um valor de saída menor.
Dessa forma, teremos novos blocos de construção de indicadores personalizados para valores superiores e inferiores do
indicador do Canal de Keltner.
Agora temos dois novos indicadores personalizados definidos, mas eles ainda não contêm nenhum dado. Podemos usar importação
99
Machine Translated by Google
Selecione seus dois novos registros (mantenha CTRL pressionado enquanto clica nas linhas para selecionar várias linhas
ao mesmo tempo) e escolha Importação de dados -> Automático
Observação
Antes de executar a importação automática, feche o MetaTrader, caso contrário a importação falhará.
O programa agora iniciará automaticamente o MetaTrader e iniciará o cálculo do indicador personalizado, a exportação de
dados e sua importação para o StrategyQuant.
Quando o processo terminar, você verá que os indicadores agora contêm valores importados:
100
Machine Translated by Google
Você pode usar a importação manual caso a importação automática falhe ou queira ter maior controle sobre os dados
exportados.
Se você não planeja usar a importação manual, pode pular diretamente para a Etapa 4.
Indicadores personalizados funcionam de uma forma que o StrategyQuant usa seus valores computados em outro programa,
por exemplo no MetaTrader. Isso significa que temos que computar o indicador no MetaTrader e então importar seu(s)
valor(es) para o SQ.
Isso é um pouco complicado, mas por outro lado nos permite usar praticamente qualquer indicador disponível para o
MetaTrader, mesmo que não saibamos exatamente como ele é calculado.
Se você usar o MetaTrader Build 600+ , a estrutura da pasta mudou. Você precisa localizar a pasta Experts correta em
MetaTrader File ->Open Data Folder. Isso abrirá a pasta de dados do MT4, e você precisa copiar este EA para MQL4/
Experts.
Precisaremos abrir o EA e modificar um pouco seu código. Abra o MetaQuotes Language Editor no Tools Menu.
101
Machine Translated by Google
Agora encontre o IndicatorExportEA em Experts e clique duas vezes nele, isso abrirá o EA no editor
tela.
A única coisa que temos que mudar no código é um comando que obtém o valor do indicador e que escreve o valor no
arquivo. O código se parece com isso:
O código é simples, tudo o que ele faz é obter o valor do indicador desejado e então salvar o valor no arquivo. Então, para
exportar seu próprio indicador, basta alterar o código que obtém o valor do indicador.
102
Machine Translated by Google
onde
• símbolo e período de tempo podem ser deixados em NULL, 0 para obter o símbolo e período de tempo reais
• nome é o nome exato do indicador personalizado
onde 20 e 1,5 são os parâmetros do indicador do Canal de Keltner e 2 é o índice da linha – queremos o terceiro valor do
indicador (o índice é baseado em zero) que corresponde à parte inferior do Canal de Keltner.
Exemplo 3 – exportando vários valores de indicadores de uma só vez - Ichimoku Tenkan Sen e Kijun Sen
é possível importar vários valores de indicadores de uma vez, para fazer isso, basta usar as variáveis
value1…value6. E não se esqueça de adicionar todos esses valores também à função FileWrite.
As duas primeiras linhas calculam valores diferentes do indicador Ichimoku e a terceira linha os salva no arquivo de
dados.
Após terminarmos de alterar o código, podemos clicar no botão Compilar na parte superior e o indicador deverá ser
compilado com sucesso.
103
Machine Translated by Google
Agora temos o indicador de exportação pronto e podemos usá-lo. No MetaTrader, abra o Strategy Tester (View -> Strategy
Tester) e na lista de Expert Advisors encontre nosso GenBuilder_IndicatorDataExportEA.
Agora você precisa definir também o símbolo no qual deseja que este indicador seja calculado e o período de tempo.
Marque também Usar data e definir data De e Para.
Depois disso, clique no botão Start e a exportação começará. A exportação pode levar vários minutos, então espere até que
O EA percorrerá todo o histórico de dados, calculará o valor do indicador para cada barra e gravará os ticks gerados
em um arquivo. Este arquivo pode ser localizado em {diretório
de instalação do MetaTrader}/tester/files
Observação
O indicador terá valores diferentes para cada símbolo e cada período de tempo , então você deve exportá-lo
para cada combinação de símbolo e período de tempo que deseja usar no Genetic Builder.
Para fazer isso, basta repetir o Passo 2 e escolher um símbolo ou período de tempo diferente.
Não se esqueça de renomear o arquivo de valores exportados antes de cada exportação, porque caso contrário o
novos valores serão adicionados ao final do arquivo, o que o tornará inutilizável.
Basta ir ao diretório /tester/files e renomear o arquivo de exportação CustInd_XXX.csv para outro nome (por
Selecione novo registro e então escolha Importação de dados -> Manual. Isso abrirá uma nova caixa de diálogo Importar:
104
Machine Translated by Google
Selecione o arquivo de dados no topo – para isso, você tem que ir para {MetaTrader installation directory}/
tester/files ou para MT4 Build 600+ para {MetaTrader Data Folder}/MQL4/tester/files e encontrar o arquivo que foi exportado na
etapa anterior. O importador então carrega as primeiras linhas do arquivo e você poderá especificar os tipos de coluna.
O arquivo indicador pode conter várias colunas com valores indicadores; no nosso exemplo, temos apenas uma coluna.
Para cada coluna de indicador usada, você tem que especificar o código do indicador – é o código que foi usado para gerar os
valores do indicador. Este código é usado pelo Genetic Builder quando ele gera o código-fonte da estratégia em código MQL.
Vamos supor que nosso indicador personalizado foi o Bears Power calculado como em nosso Exemplo 1 e, então, o
o código indicador seria:
computado.
A constante _BARSBACK_ será substituída por shift (ou bars ago) no código MQL gerado.
Agora clique em Iniciar importação e o mecanismo de importação verifica e importa o novo indicador personalizado.
105
Machine Translated by Google
As etapas 1 a 3 devem ser executadas apenas uma vez para cada novo indicador personalizado
Quando os dados do indicador forem importados com sucesso, você poderá usá-los em seus blocos de construção.
Para usar seus novos indicadores personalizados em suas estratégias, você precisa verificá-los em Blocos de construção -> Tabela
de indicadores personalizados.
Observação
Os indicadores personalizados são válidos apenas para o símbolo/ período em que foram calculados, no nosso exemplo apenas
Se você quiser usá-los para outro símbolo ou período de tempo, você terá que repetir os passos 1 a 3.
106
Machine Translated by Google
Indicadores personalizados são indicadores executados na plataforma NinjaTrader e que não são implementados no StrategyQuant.
O StrategyQuant não consegue executar código de indicador, então a única maneira de trabalhar com indicadores personalizados
no SQ é importando seus dados.
Observação
Indicadores personalizados são computados no NinjaTrader, não no SQ. Para obter os resultados corretos, você tem que usar os
Não funcionará calcular seu indicador personalizado no NinjaTrader com os dados do seu corretor e depois usá-los no StrategyQuant
Você precisa calcular seu indicador personalizado exatamente nos mesmos dados, no mesmo intervalo de dados e na mesma
Primeiro, adicione o indicador MACD ao gráfico no NinjaTrader e abra suas propriedades para que você possa ver quais
Abra o StrategyQuant, vá para Gerenciador de dados -> Indicadores personalizados e clique em Adicionar novo na tabela
Definições de indicadores personalizados.
Isso abrirá um novo diálogo de definição de indicador. Para NinjaTrader, você definiu seu indicador manualmente, então
crie um nome para seu novo indicador personalizado (MACD_NT) e defina seus parâmetros e saídas (Plots).
Você pode fazer isso facilmente copiando as propriedades do indicador no NinjaTrader (veja abaixo).
Para MACD, definimos o tipo de retorno para Number, porque ti retorna um número geral. Também verificamos se é um oscilador e
se oscila em torno de 0.
Tipo de retorno
é um tipo de indicador de valor de retorno gerado, ele é usado pelo StrategyQuant para combinar adequadamente esse
indicador personalizado com outros blocos de construção no programa, para que ele compare preço com preço, e não, por
exemplo, preço com valor CCI.
Pode ser:
• Preço - se o valor do indicador for preço, como média móvel ou Bandas de Bollinger.
• Faixa de preço – se o valor do indicador for faixa de preço (diferença entre dois preços), como
107
Machine Translated by Google
• Boolean – se o indicador retornar valores true/falsos (zero/diferente de zero no nosso caso). Você pode ter um indicador
booleano, por exemplo, para reconhecer padrões de candles ou para implementar suas próprias regras simples de
trading.
geralmente, se o indicador desenha suas linhas no mesmo gráfico que o preço, então seu tipo de retorno é preço.
Se ele desenhar suas linhas em uma janela separada abaixo do gráfico principal, então é um Número, com exceção de
indicadores especiais como o ATR, que calcula algum tipo de diferença ou intervalo de preço.
É oscilador
Alguns indicadores como CCI ou RSI são osciladores, o que significa que seu valor oscila em torno de algum número, como o
CCI oscila em torno de 0, ou o RSI oscila em torno de 50). Se o indicador for um oscilador, marque esta opção.
Parâmetros
parâmetros são uma lista completa de parâmetros junto com seus tipos e valores padrões para o indicador. Se você definir o
indicador personalizado manualmente, você pode verificar seus parâmetros no MetaTrader.
Valores de saída
estas são as saídas do indicador de valores. Se verificarmos a captura de tela do indicador Keltner Channel abaixo, você
pode ver que ele emite três valores na janela Data, e eles correspondem às linhas superior, média e inferior no gráfico.
Agora que definimos a nova definição do indicador personalizado, precisamos carregar os dados do indicador personalizado.
A definição que fizemos no primeiro passo é apenas uma "descrição" do indicador. Para poder usar o indicador em suas estratégias,
você tem que configurar quais parâmetros e valores de saída ele deve
usar e carregar dados para este indicador computados do NinjaTrader.
108
Machine Translated by Google
Aqui temos que escolher nosso indicador definido anteriormente (MACD_NT) e escolher qual dos seus valores de
saída queremos usar. Decidimos por Avg line.
Se você quiser usar também as linhas Diff e Macd, você tem que seguir este passo para cada saída que você deseja
usar.
Depois você também precisa escolher o Símbolo e o Período para os quais esses dados indicadores serão válidos.
Os dados serão computados no NinjaTrader para um dado símbolo e período de tempo,
então eles não serão válidos para nenhum outro símbolo/período de tempo. Para usar este indicador personalizado em
outro símbolo, simplesmente repita esta Etapa 2 com outro símbolo.
Para NinjaTrader, as configurações de importação automática não estão disponíveis e, em vez disso, temos que
especificar o código do indicador. Este é o código que usaremos no NinjaTrader para calcular o valor do indicador (veja
a próxima etapa).
109
Machine Translated by Google
Novamente, os dados do indicador computado serão válidos apenas para uma combinação de
símbolo/período/saída/parâmetros. Se você quiser usar o indicador personalizado com outro conjunto de parâmetros, você tem que
defini-lo várias vezes.
Quando tudo isso estiver concluído, clique em OK para salvar os novos dados do indicador personalizado.
Podemos repetir o mesmo passo para o mesmo indicador e símbolo, mas desta vez escolheremos o valor de saída Macd.
Dessa forma, teremos novos blocos de construção de indicadores personalizados para valores médios e Macd do indicador
MACD.
Agora temos dois novos indicadores personalizados definidos, mas eles ainda não contêm nenhum dado. Temos que calcular valores
Primeiro, temos que exportar o indicador do NinjaTarder. Para isso, precisaremos editar um código do indicador SQIndyExport.
Vá em Ferramentas -> Editar Script Ninja -> Indicadores e encontre o indicador SQIndyExport.
Agora teremos que editar o arquivo para que ele calcule e exporte os indicadores que queremos. Há duas funções que temos que editar:
Ao iniciar
isso é simples, vamos apenas criar novos arquivos vazios com nomes exclusivos para cada valor de indicador que queremos
exportar
Atualização OnBar
essa função é chamada em cada barra e a usaremos para calcular dados do indicador e gravá-los nos arquivos preparados.
Como exatamente você chamará o indicador para calcular seus dados depende do próprio indicador, para MACD funciona assim:
110
Machine Translated by Google
Quando o indicador for compilado com sucesso, podemos anexá-lo ao gráfico (o gráfico deve ser o mesmo que usamos
para exportar os dados para uso no StrategyQuant).
Ele tem um parâmetro - Caminho - devemos colocar lá o caminho onde queremos que os arquivos de dados exportados
ser armazenado.
Agora clique no botão OK, o SQIndyExport será adicionado ao gráfico e começará a calcular e exportar nossos
dados indicadores.
Pode levar alguns segundos ou minutos, dependendo do tamanho dos seus dados e da velocidade do seu
computador.
Quando exportamos com sucesso os dados do indicador do NinjaTrader, podemos importá-los para o
StrategyQuant. Mude para o StrategyQuant, vá para Dados -> Indicadores Personalizados
111
Machine Translated by Google
Selecione o primeiro novo registro MACD(12,26, 9) -> Avg e clique em Importação de dados -> Manual
Agora temos que definir o formato de data apropriado (dd/MM/aaaa neste caso) e valores de coluna corretos. O arquivo
exportado do NinjaTrader tem 4 colunas: Data, Hora, Preço de fechamento e Valor do indicador.
Podemos clicar em Iniciar importação para importar os dados do indicador para o StrategyQuant.
Agora temos que repetir isso para MACD(12,26, 9) -> Macd e importamos com sucesso os novos valores do indicador para
As etapas 1 a 3 devem ser executadas apenas uma vez para cada novo indicador personalizado
112
Machine Translated by Google
Para usar seus novos indicadores personalizados em suas estratégias, você precisa verificá-los em Blocos de construção ->
Tabela de indicadores personalizados.
Observação
Pode ser necessário reiniciar o programa após importar novos indicadores personalizados para que eles apareçam nos Blocos
de Construção.
Os indicadores personalizados são válidos apenas para o símbolo/ período em que foram calculados, no nosso exemplo apenas
Se você quiser usá-los para outro símbolo ou período de tempo, você terá que repetir os passos 1 a 3.
113
Machine Translated by Google
Quando você gerar algumas estratégias e encontrar aquelas que você potencialmente gostaria de usar em
negociações reais, é hora de testá-las no MetaTrader.
O StrategyQuant normalmente salva estratégias em seu próprio formato de arquivo .str, que não é legível pelo
MetaTrader.
Para testar estratégias no MT4 você tem que exportar seu código fonte no formato MQL
Isso é simples, vá até o banco de dados e encontre a estratégia que você quer usar. Clique duas vezes nela, o
que a abre na janela Result details acima do Databank.
Lá, vá para a aba Source code e troque o código fonte para MetaTrader4 Expert Advisor. Isso carregará o código
MT4 da estratégia.
114
Machine Translated by Google
Clique no botão Salvar em arquivo e, na caixa de diálogo de arquivo, encontre a pasta onde seu MetaTrader está instalado
(por exemplo, C:\Arquivos de Programas\Alpari MT).
Nesta pasta você deve entrar no diretório experts e salvar o código fonte da estratégia lá.
Agora a estratégia é copiada para o Metatrader. Você pode abrir o MetaTrader agora.
No Metatrader, vá para o menu Tools -> MetaQuotes Language Editor, ou pressione F4. Isso abrirá o editor de idioma.
No lado direito do editor, você terá uma lista de estratégias que estão na pasta experts . Clique duas vezes em nossa
estratégia para abri-la na janela do editor e então clique em Compile na barra de ferramentas superior.
A estratégia será compilada e agora está pronta para backtest ou execução ao vivo.
115
Machine Translated by Google
Agora que a estratégia está compilada, ela está pronta para ser testada. Você pode fechar o MetaEditor, ir para a
tela principal do MetaTrader e abrir o Strategy Tester.
Isso abrirá a caixa de diálogo do Strategy Tester na parte inferior e você poderá executar o backtest.
Certifique-se de selecionar o Expert Advisor, Símbolo, Período e Data De e Para corretos e, em seguida, clique no
botão Iniciar . O teste começará e, depois de um tempo, você obterá os resultados:
116
Machine Translated by Google
O algoritmo de backtesting usado no StrategyQuant é muito preciso, mas não é exatamente o mesmo algoritmo usado
no MetaTrader, então ele produz resultados ligeiramente diferentes.
O importante aqui é entender que ambos os algoritmos de teste são apenas aproximações, um não é superior ao outro.
117
Machine Translated by Google
Quando você gerar algumas estratégias e encontrar aquelas que você potencialmente gostaria de usar em
negociações reais, é hora de testá-las no NinjaTrader.
O StrategyQuant salva estratégias em seu próprio formato de arquivo .str, que não pode ser lido pelo
NinjaTrader.
Para testar estratégias no NinjaTrader você tem que exportar seu código fonte no formato NinjaScript
Isso é simples, vá até o banco de dados e encontre a estratégia que você quer usar. Clique duas vezes nela, o
que a abre na janela Result details acima do Databank.
Lá, vá para a aba Source code e troque o source code para NinjaTrader code. Isso carregará o código
NinjaScript da estratégia.
118
Machine Translated by Google
Agora clique com o botão direito do mouse na área de texto e selecione Copiar para a área de transferência.
Depois disso, abra seu NinjaTrader e vá em Ferramentas -> Novo NinjaScript -> Estratégia
Clique em Unlock code e confirme o diálogo clicando em Yes. Isso abrirá um novo editor de estratégia com código de
estratégia básico.
Clique dentro do editor com o botão direito do mouse e escolha Selecionar tudo no menu pop-up:
119
Machine Translated by Google
Isso selecionará todo o texto na estratégia. Estamos fazendo isso porque queremos substituir todo o código de estratégia gerado
Agora que o código está selecionado, pressione Ctrl + V para colar o código da área de transferência (lembre-se, você copiou o código
Isso substituirá todo o código pelo código SQ. Agora pressione o botão Compile para compilar a estratégia
código.
120
Machine Translated by Google
No caso ideal, a estratégia deve ser compilada e não deve haver avisos ou erros exibidos.
A partir de agora você pode testar sua nova estratégia no NinjaTrader StrategyAnalyzer ou negociá-la na aba Estratégias.
Observação
Se você vir alguns erros de compilação, certifique-se de importar os códigos auxiliares do StrategyQuant para
NinjaTrader conforme descrito em Etapas pós-instalação
Se você fizer alguma alteração na estratégia no StrategyQuant e quiser atualizar sua estratégia no NinjaTrader, vá para
Ferramentas -> Editar NinjaScript -> Estratégia,
encontre sua estratégia pelo nome e abra-a no editor. Então copie e cole o código do StrategyQuant no editor NinjaTrader e
compile-o novamente.
O teste das estratégias é descrito no manual do NinjaTrader, então vamos abordá-lo apenas brevemente.
O NinjaTrader pode fazer backtest da estratégia usando o Strategy Analyzer. Vá para File -> New -> StrategyAnalyzer
lá abra o painel Backtest à direita e encontre sua estratégia.
121
Machine Translated by Google
Você também terá que escolher os dados adequados, definir os parâmetros corretos, o período da série de dados, o tempo de -
Para, modelo de sessão, etc.
Se os resultados diferirem muito, geralmente o problema está em configurações diferentes. StrategyQuant e estratégias
geradas pelo SQ oferecem uma ampla gama de configurações, certifique-se de usar as mesmas configurações no NinjaTrader e
no StrategyQuant.
Certifique-se de testá-lo nos mesmos dados, incluindo o modelo de sessão.
O algoritmo de backtesting usado no StrategyQuant foi criado para corresponder com precisão ao algoritmo de backtesting do
NinjaTrader, mas pode haver pequenas diferenças no arredondamento e na comparação de números de ponto flutuante, no cálculo
de indicadores, etc.
Dependendo do tipo de estratégia, essas pequenas diferenças podem não causar nenhuma diferença no resultado do backtest, ou
podem se somar e as diferenças podem ser maiores.
O importante aqui é entender que o backtesting é sempre apenas uma aproximação, um algoritmo não é superior ao outro.
122
Machine Translated by Google
O programa é por padrão em inglês, mas suporta tradução para outro idioma. Tudo o que você precisa fazer é criar um novo
arquivo de idioma para o seu idioma na pasta {StrategyQuant}/lang .
O formato do arquivo é simples: ele mostra a sequência de caracteres do idioma em inglês, depois o sinal de igual (=) e
depois disso deve ser a sequência em outro idioma.
Por exemplo:
version=Sua string traduzida
Homepage=Sua string traduzida
Obter suporte=Sua sequência traduzida
etc.
Quando você criar um novo arquivo de idioma, reinicie o programa e você deverá ver seu novo idioma no menu Exibir ->
Idioma
• Se você usar algum caractere especial, o arquivo deverá ser salvo no formato UTF-8
• Para strings que contêm marcas especiais como %d, %s, essas marcas serão substituídas pelo valor apropriado pelo
programa.
Você deve usá-los nos lugares corretos também no seu texto traduzido
• O comprimento da string de idioma não deve ser muito maior do que o comprimento da string original. Use
abreviação se necessário.
O motivo é que há apenas um espaço limitado na interface do usuário para os textos. Se você usar texto muito longo, ele
pode não caber no rótulo.
• Quando você criar um arquivo de idioma para um novo idioma, compartilhe-o com os outros! Envie-o para nós e nós o
inclua-o na próxima atualização do programa.
123
Machine Translated by Google
8 Apêndice
Lucro líquido
Rebaixamento, DD % Máx.
Drawdown é a medida do declínio de um pico histórico no lucro acumulado da estratégia. Max DD % é o drawdown
percentual máximo da estratégia.
Estagnação, % Estagnação
estagnação é um número máximo de dias durante os quais a estratégia estagna - o que significa que ela não faz uma nova
alta no patrimônio. Obviamente, você quer uma estratégia com o mínimo de estagnação possível.
% de vitórias
Retorno anual %
retorno percentual anual médio da estratégia. Se for 30%, significa que a estratégia faz 30% a cada ano em média.
Relação Retorno/DD
uma medida muito boa da qualidade da estratégia, quanto maior o número, maiores são os lucros em relação ao drawdown
máximo.
Expectativa
*
métricas de desempenho desenvolvidas por Van Tharp, são calculadas como (porcentagem de vitórias vitória média) -
(porcentagem de perdas * perda média)
124
Machine Translated by Google
R-Expectativa
métricas de desempenho desenvolvidas por Van Tharp, que fornecem o valor médio do lucro relacionado ao risco médio (R) que
Pontuação de expectativa R
A expectativa R padrão não considera a duração do período de teste e o número de negociações produzidas.
Há uma diferença entre, por exemplo, ganhar US$ 2.000 por ano fazendo 10 negociações ou 100 negociações.
R-Expectancy Score adiciona uma pontuação para frequência de negociações. É computado como: R-Expectancy *
averageTradesPerYear
métricas de desempenho desenvolvidas por Van Tharp, é a medida da qualidade de um sistema de negociação.
assim como no caso do R-Expectancy, o SQN não considera a duração do período de teste e o número de negociações produzidas. Na
verdade, é mais favorável para sistemas que produzem mais negociações, sem considerar a duração do período de teste.
*
É calculado como: SQN
(média de negócios por ano / 100)
Número de negócios
simplesmente um número de negociações dessa estratégia no backtest. Você pode usar esse critério para aproximar algum valor predefinido
que você gostaria de atingir (por exemplo, total de 100 negociações). O valor desse critério será maior para estratégias mais
Estabilidade
um valor especial no intervalo de 0 (pior) a 1 (melhor) que mede o quão estável é o crescimento do patrimônio
gráfico.
125
Machine Translated by Google
Você pode ver três estratégias de exemplo na imagem acima. Todas elas terminaram com o mesmo lucro, mas a Estratégia 1
estava crescendo quase linearmente (muito estável), a Estratégia 2 estava crescendo com grandes drawdowns ocasionais (menos
Estabilidade é um valor muito bom para representar uma "qualidade" da estratégia de negociação e pode ser usado como o único
Simetria
critério para maximizar a simetria da estratégia. O valor da simetria está em %, e está medindo o quanto o Lucro/Perda para a
Por exemplo, se a estratégia rende US$ 600 em negociações longas e US$ 400 em negociações curtas, a simetria neste caso é de
Se a estratégia fizer o mesmo lucro em ambas as direções, a simetria será 100%. Se uma das direções produzir prejuízo ou
Proporção de vitórias/derrotas
critério para maximizar a vitória média ou minimizar a perda média por negociação
critério para minimizar o número médio de barras em que a negociação está aberta
Graus de Liberdade
em um sistema de negociação refere-se ao número de critérios que são usados para filtrar a ação do preço e/ou volume e determinar
pontos de entrada.
Quanto mais critérios e variáveis forem usados para determinar os pontos de entrada, menos graus de liberdade o sistema terá e
vice-versa.
126
Machine Translated by Google
Complexidade
mede a complexidade da estratégia. É simplesmente uma contagem de todos os indicadores, preços, operadores e outros
blocos de construção que são usados na estratégia. Quanto maior for esse número, mais “complicada” será a
estratégia.
Para esta propriedade, quanto menor o valor, melhor.
Ambas as propriedades podem ser usadas também na classificação para influenciar a função Fitness.
127
Machine Translated by Google
esta é uma condição de saída muito simples. Se usada, a estratégia fechará a negociação após um número dado de barras (períodos
Muitas vezes, essa é uma maneira simples, mas eficaz, de fechar uma negociação quando o mercado se move lateralmente ou quando
outra condição simples, mas bastante poderosa. Ela diz à estratégia para mover o Stop Loss de proteção para o preço de entrada (break-
even) quando o lucro dado for atingido. Isso não fechará a negociação, então a estratégia ainda estará em posição, mas não
há risco algum após esse movimento. Como o SL está no preço de entrada, não perderemos nada, mesmo que a negociação reverta e
vá contra nós.
Lucro à vista
um trailing stop simples que segue a distância especificada do Stop Loss do lucro mais alto alcançado. Esta condição é avaliada na
Pare de arrastar
trailing stop mais avançado que pode usar um valor de indicador ou preço (Open, High, Low, Close) para rastrear o Stop Loss. Por
é um tipo especial de saída onde a estratégia não tem apenas regras para entrar na negociação (regras de entrada), mas também
regras para sair dela (regras de saída). As regras de saída parecem as mesmas que as regras de entrada - é uma combinação de todos
Regra de saída - se o RSI cruzar acima de 100 e estivermos em posição longa, feche a negociação
Nota sobre Stop Loss / Meta de Lucro / Mover Stop Loss para BE
Tanto o Stop Loss quanto o Profit Target podem ter valor fixo em pips (como 30, 50 ou 100 pips) ou podem ser baseados no ATR
Isso significa que o valor real do SL/ PT será 2 vezes o valor da faixa verdadeira média no momento em que a negociação foi aberta.
128
Machine Translated by Google
SL/ PT baseados em ATR têm a vantagem de que eles "se adaptam" a condições de mercado alteradas e mudanças de
volatilidade. Algumas estratégias (mas não todas) podem ser mais lucrativas quando usam SL/ PT baseados em ATR
em vez de um fixo.
Para habilitar/ desabilitar o ATR para SL/ PT, você pode habilitar/ desabilitar o indicador Average True Range nos blocos
de construção de entrada.
129
Machine Translated by Google
9 Palavras Finais
Parabéns por concluir o guia do StrategyQuant. Espero que você goste do programa e o use como uma parte
importante de sua negociação.
StrategyQuant é um programa muito novo e está em desenvolvimento subativo. Isso significa que você pode
esperar por novos recursos interessantes que levarão a funcionalidade do programa ainda mais longe.
Estou aberto a novas ideias e sugestões, então se você estiver sentindo falta de algo no StrategyQuant ou
se achar que algo pode funcionar de uma maneira diferente, não hesite em me avisar.
Marca Fric
PS: Eu adoraria ouvir suas histórias de sucesso, então, por favor, me avise
em [Link]
130