Características do Zorro
Desde a década de 1990, os comerciantes privados podem usar a Internet para acessar os mercados financeiros. Várias plataformas comerciais oferecem funções de negociação automatizadas. Mas eles são principalmente projetados para negociação manual e não são adequados para desenvolver e testar estratégias algorítmicas (ver comparação da plataforma de negociação). Conseqüentemente, os comerciantes privados normalmente não são bem sucedidos com negociação automatizada. Aqueles que normalmente não usam plataformas de negociação, mas software auto-escrito.
O Zorro é uma ferramenta gratuita para a execução de algoritmos financeiros. Apoia pesquisa, exploração, desenvolvimento, teste e negociação de estratégias automatizadas para ações, câmbio, opções, futuros, títulos, ETFs, CFDs ou quaisquer outros instrumentos financeiros. Ele pode ser executado como um sistema autônomo com conexão direta de corretor / mercado ou como anexo a uma plataforma de negociação (como MT4 por Metaquotes & # 8482; ou TWS por Interactive Brokers & # 8482;) que é usado para conectar-se à corretor.
A conversão de uma idéia de comércio em um sistema de comércio automatizado, testes e negociação é muito mais fácil e rápida com o Zorro do que com as plataformas convencionais. Aqui está um pequeno curso de vídeo sobre o desenvolvimento de um simples sistema de comércio diário:
Linguagem de script compilar baseada em C. Funções de seqüência, arquivo e vetor / matriz. Evento conduzido: Reação imediata nos tiques de preços. Sem limites: acesso completo à API do Windows e DLLs externas. Ponte R: incluem funções R na negociação, treinamento e backtest. Editor de script de realce Sytax com janela de ajuda do comando. Modo de passo único para depurar estratégias comerciais. Curso de programação de estratégia C incluído.
Indicadores.
Tradicional: AC, ADO, ADX, ADXR, Alligator, AO, APO, Aroon, AroonOsc,
ATR, ATRS, AvgPrice, Bollinger Bands, BBOsc, BOP, CCI, Chikou, CMO,
Coral, Volatilidade de Chaikin, Batente de lustre, Center of Gravity MA, Donchian Channel,
DCOsc, DEMA, DPO, DX, EMA, Fractal High / Low, Haiken Ashi, HighestHigh,
Hull MA, Ichimoku, IBS, padrões de velas japonesas, Keltner Channel,
Regressão linear, LowLow, MAMA, MACD, MedPrice, MidPoint, MidPrice,
+/- DI, +/- DM, Mãe, MA Período Variável, NATR, PPO, ROC, RSI, SAR, SIROC,
SMA, SMOM, StdDev, Stochastic, StochRSI, T3, TEMA, Trima, Trix, TrueRange,
TSF, TSI, TypPrice, Ultimate Oscillator, Variance, Volatility, WCLPrice,
WilliamsR, WMA, Zero-Lag MA, ZigZag. Avançado: média móvel Arnaud Legoux, controle automático de ganho, filtro passa-faixa,
Força Monetária, Valor Beta, Filtro Butterworth, Declínio, Período Dominante, Fase Dominante,
Ehlers Universal Oscillator, Fisher Transform, Fisher Inverse, Fractal Dimension,
Filtro Gauss, Filtro Highpass, Hilbert Transform, Hurst Exponent, Kaufman Adaptive MA,
Filtro Laguerre, Filtro Lowpass, Filtro Mediano, MESA Adaptive Moving Average,
Índice de significância do mercado, Momento 1..4, Filtro normalizado, Detecção de padrões,
Pearlsons Correlation, Polyfit, Polynom, Índice de Vigor Relativo, Filtro de Telhados,
Sazonal, Shannon Gain, Correlação Spearman, Análise Espectral. Tipos de barra definidos pelo usuário: Range, Renko, Point-and-Figure, Haiken Ashi. Código fonte da maioria dos indicadores incluídos. Interface fácil para adicionar indicadores próprios.
Data Mining & amp; Aprendizado de máquinas.
Detecção de padrões de curva com o algoritmo Fr & eacute; chet. Análise do espectro da curva com banco de filtros e transformação de Hilbert. Análise de correlação e autocorrelação. Lógica difusa para detecção de pico / vale, crossover e padrão. Gerador de algoritmo com regressão logística multivarada (Perceptron). Gerador de algoritmo com árvore de decisão podada. Gerador de algoritmo para negociação de ações de preço com padrões de até 20 variáveis. Algoritmos de comércio gerado podem ser exportados em código C para outras plataformas. O quadro de treinamento / previsão suporta todos os pacotes de aprendizagem de máquinas R.
Download de dados históricos.
Faça o download de dados de preço histórico de marca ou minuto diretamente de corretores ou fontes de preços. Acesse dados históricos e ao vivo do Google & # 8482 ;, Quandl & # 8482 ;, AlphaVantage & # 8482 ;, Stooq & # 8482 ;. Converta dados historicamente baseados em ticks, M1 ou EOD para ações, opções e outros instrumentos de todos os provedores de dados em formatos CSV ou Nanotick.
Análise e otimização.
Multi-asset, multi-timeframe, análise de portfólio multi-algoritmos. Alta velocidade de retorno: até 100 x mais rápido que MetaTrader4 e # 8482 ;. Backtests de execução única e passo a passo *. Simulação de corretor precisa, considerando taxas, margem, spread, swap, slppage. Teste fora da amostra com vários métodos de divisão de dados. Anchored and Roll Walk Forward Analysis (WFA). Usa múltiplos núcleos de CPU para treinamento de parâmetros e aprendizado de máquina. Análise Bootstrap / Monte Carlo com curvas de preço e equidade aleatorizadas. Cálculo de Sharpe Ratio, AR, CAGR, R2. Objetivo de otimização definido pelo usuário. Otimização de parâmetros separados para componentes de portfólio. Análise de robustez / consistência através do excesso de amostragem. Compensações de tempo ajustáveis para dados de preços independentes de feed. Detrendendo o preço, o sinal ou o nível de comércio. Sine, onda quadrada e geradores de ruído para testes de algoritmos. Cálculo do fator de alocação de capital ideal com algoritmos MVO e OptimalF. Análise sazonal com perfis de dia, semana, mês ou ano. Modo de seleção para precisão, modo de barra para velocidade. Download e atualização do histórico de preços automáticos. Balança de saldo e importação / exportação de lista de comércio para análise de desempenho. Dados de preços baseados em minutos e ticks para as principais moedas e índices incluídos.
Folha de desempenho detalhada com análise de portfólio. Gráfico de barra, linha, ponto ou banda para indicadores ou funções definidas pelo usuário. Gráficos de estatísticas para perfis de preço, lucro, estação e parâmetros. Gráficos de distribuição de lucro e MAE. Funções de desenho de linha e símbolo. Exportação detalhada de estatísticas comerciais para programas de planilhas. Exportação de dados definida pelo usuário para arquivos de dados. csv.
Motor de troca.
Todos os tipos de ativos (ações, divisas, futuros, CFDs, ETFs, opções). Conecte milhares de corretores (IB & # 8482 ;, FXCM & # 8482 ;, Oanda & # 8482 ;.), diretamente ou através da ponte MT4 / MT5. O software idêntico para teste e comercialização garante resultados reproduzíveis. Painéis de controle de estratégia personalizados com botões e campos de entrada definidos pelo usuário. Suporte de portfólio nativo com múltiplos ativos, algoritmos e prazos. Mapeamento de símbolos e parâmetros dependentes do corretor. Download e avaliação de cadeias de futuros e opções. Prazos de 100 milissegundos a 1 mês. Gerenciamento de entrada / saída de comércio preciso e preciso com algoritmos de execução fornecidos pelo usuário. Limite de entrada, perda de parada, lucro alvo, bloqueio de lucro, arrastar, saída temporizada. Cobertura virtual: posições virtuais longas e curtas simultâneas. Conformidade completa com NFA e FIFO para contas baseadas nos EUA. Gerenciamento de dinheiro com dimensionamento de posição OptimalF. Simulação comercial em tempo real ("tradições fantasmas") para negociação de curva de patrimônio. Ajuste de parâmetros em tempo real com controles deslizantes personalizáveis. Otimização de parâmetros em tempo real sem interromper o processo comercial. Tempo de entrada comercial ajustável com resolução de milissegundos. Abra a interface da API para facilitar a implementação de qualquer API do corretor (código-fonte incluído). Abrir interface API para conexão a serviços de sinal externo. Controle remoto de programas externos através do envio de teclas e cliques de botão. Parâmetros da linha de comando para iniciar o Zorro a partir de programas externos. Não é necessário hardware high-end; é executado em qualquer PC antigo ou notebook barato. Re-login automático e reinício contínuo no caso de interrupções de internet ou PC. Requisitos mínimos: Win XP / 7/8/10, 1 GB de RAM, acesso à Internet. Funciona em servidores de nuvem (VPS) com o Windows Server 2003/2008/2012/2016.
Versões personalizadas.
Conceito aberto: todos os formatos de arquivos e estruturas de interface estão documentados. Novas funções podem ser facilmente adicionadas através de plugins de usuários. Painéis de controle comercial personalizados. Versões Zorro personalizadas / com relevo disponíveis mediante pedido. Licenças de código-fonte Zorro disponíveis sob solicitação.
Estratégias Z incluídas.
Estratégias de autotravação prontas para executar com requisitos de capital baixos *: Z1: sistema de tendência seguinte com análise espectral. Z2: sistema de reversão médio com a transformação de Fisher. Z3: sistema de negociação baseado em cluster de preços. Z7: sistema baseado em padrões de preços com algoritmo de aprendizado de máquina. Z8: sistema de negociação de longo prazo por otimização de portfólio. Z12: sistema de tendência / contra-tendência baseado em ana-correlação.
* Aviso de Requisição do Governo dos EUA - Futuros de Mercadorias, Trading Futures, Derivativos e Negociação de Opções de Negociação tem grandes recompensas em potencial, mas também grande risco potencial. Você deve estar ciente dos riscos e estar disposto a aceitá-los para investir nos mercados de futuros e opções. Não troque com dinheiro que não pode perder. Este site não é uma solicitação nem uma oferta para comprar / vender futuros, opções ou quaisquer outros ativos. O desempenho passado de qualquer sistema ou metodologia comercial não é necessariamente indicativo de resultados futuros.
* CFTC regra 4.41 - 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 a negociação real. Além disso, uma vez que os negócios não foram executados, os resultados podem ter compensado ou compensado o impacto, se houver, de certos fatores de mercado, como a falta de liquidez. Os programas de negociação simulados em geral também estão sujeitos ao fato de serem projetados com o benefício de retrospectiva. Nenhuma representação está sendo feita que qualquer conta será ou será capaz de atingir lucros ou perdas semelhantes às exibidas.
Zorro News.
O Zorro versão 1.66.5 foi lançado e está disponível na página de download. Esta versão oferece um algoritmo de auto-verificação para negociação ao vivo, algoritmos de aprendizado de máquina melhorados, uma nova estratégia Z e muitos outros novos recursos e melhorias. A lista completa de recursos pode ser encontrada na página What's New.
Uma tabela de comparação de Zorro vs. TradeStation & # 8482; vs. Metatrader & # 8482; pode ser encontrada na página de FAQ.
Sistemas de negociação automatizados.
Sistemas de negociação automatizados.
Lucrum Automated Trading Systems para a plataforma de negociação NinjaTrader 7. Sistemas projetados para negociação de longo prazo no S & amp; P E-Mini Futures Market.
Todos os Sistemas de Negociação da Lucrum são estratégias de negociação quantitativas totalmente automatizadas que comercializam o contrato de futuros S & amp; P 500 E-mini (ES). Eles podem ser usados na plataforma de negociação NinjaTrader 7, bem como com vários corretores selecionados que hospedam o sistema para você. Cada um desses sistemas não requer gerenciamento ou otimização periódica, basta aplicá-lo à sua conta de negociação ao vivo e habilitar. Clique nos sistemas abaixo para saber mais.
Um sistema de negociação E-mini S & amp; P 500 E totalmente automático, que usa dinâmica, volatilidade e intervalos de negociação para identificar negócios, mantendo-se extremamente adversos ao risco através de qualquer condição de mercado. Não é necessária nenhuma otimização ou intervenção humana.
Um sistema de negociação totalmente automático, S & amp; P 500 E-mini que usa impulso e tendências altamente definidas para oportunidades de negociação. Um otimizador incorporado ajusta vários parâmetros em relação aos períodos amostrados anteriores.
Um sistema de negociação totalmente automatizado foi projetado para uso em todos os mercados de futuros. A força deste sistema depende da diversificação dos mercados negociados. Isso não está à venda diretamente, entre em contato conosco apenas para consultas sérias.
© 2017 Lucrum Trading Systems - Todos os Direitos Reservados.
Aviso legal do governo dos EUA - Negociação de Futuros de Mercadorias A negociação de Futuros e Opções tem grandes recompensas em potencial, mas também grande risco potencial. Você deve estar ciente dos riscos e estar disposto a aceitá-los para investir nos mercados de futuros e opções. Não troque com dinheiro que não pode perder. Isso, e todas as outras informações em nosso site, não são uma solicitação nem uma oferta para comprar ou vender futuros ou opções. Nenhuma representação está sendo feita para que qualquer conta seja ou seja susceptível de atingir lucros ou perdas semelhantes às discutidas neste site. O desempenho passado de qualquer sistema ou metodologia comercial não é necessariamente indicativo de resultados futuros.
CLÁUSULA CFTC 4.41 - RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES. DESEJO UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, DESDE QUE OS NEGÓCIOS NÃO FORAM EXECUTADOS, OS RESULTADOS PODERÃO TER COMPRIMIDO COM COMPENSADO PARA O IMPACTO, SE QUALQUER, DE CERTOS FATORES DE MERCADO, COMO FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL SÃO TAMBÉM SUJEITOS AO FATO QUE ESTÃO DESIGNADOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE QUALQUER CONTA VOCE OU POSSIBILIDADE DE ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS.
Gerador de sistema de negociação automatizado
Construindo Sistemas de Negociação Usando a Geração Automática de Código.
Construindo Sistemas de Negociação Usando a Geração Automática de Código.
por Michael R. Bryant.
À medida que mais e mais comerciantes se mudaram para negociação automatizada, o interesse em estratégias de negociação sistemática aumentou. Enquanto alguns comerciantes desenvolvem suas próprias estratégias de negociação, a curva de aprendizado íngreme necessária para desenvolver e implementar um sistema comercial é um impedimento para muitos comerciantes. Uma solução recentemente desenvolvida para esse problema é o uso de algoritmos de computador para gerar automaticamente o código do sistema comercial. O objetivo desta abordagem é automatizar muitas das etapas do processo tradicional de desenvolvimento de sistemas de negociação.
O software de geração automática de código para sistemas de negociação de construção geralmente é baseado na programação genética (GP), que pertence a uma classe de técnicas chamadas algoritmos evolutivos. Algoritmos evolutivos e GP em particular foram desenvolvidos por pesquisadores em inteligência artificial baseados nos conceitos biológicos de reprodução e evolução. Um algoritmo de GP evolui uma população de estratégias de negociação a partir de uma população inicial de membros gerados aleatoriamente. Os membros da população competem uns contra os outros com base na sua aptidão física. Os membros do ajuste são selecionados como pais para produzir um novo membro da população, que substitui um membro mais fraco (menos adequado).
Dois pais são combinados usando uma técnica chamada crossover, que imita o cruzamento genético na reprodução biológica. Em crossover, parte do genoma de um dos pais é combinada com parte do genoma dos outros pais para produzir o genoma da criança. Para a geração do sistema de negociação, os genomas podem representar diferentes elementos da estratégia de negociação, incluindo vários indicadores técnicos, como médias móveis, estocásticos e assim por diante; diferentes tipos de pedidos de entrada e saída; e condições lógicas para entrar e sair do mercado.
Outros membros da população são produzidos por mutação, e qual membro da população é selecionado para ser modificado alterando aleatoriamente partes de seu genoma. Tipicamente, uma maioria (por exemplo, 90%) de novos membros da população são produzidos através de cruzamento, com os membros restantes produzidos por mutação.
Sobre sucessivas gerações de reprodução, a aptidão geral da população tende a aumentar. A aptidão é baseada em um conjunto de objetivos de construção que classificam ou pontuação de cada estratégia. Exemplos de objetivos de construção incluem várias medidas de desempenho, como o lucro líquido, redução, porcentagem de vencedores, fator de lucro e assim por diante. Estes podem ser declarados como requisitos mínimos, como um fator de lucro de pelo menos 2.0 ou como objetivos para maximizar, como maximizar o lucro líquido. Se houver múltiplos objetivos de compilação, uma média ponderada pode ser usada para formar a métrica de fitness. O processo é interrompido após algum número de gerações ou quando a aptidão pára de aumentar. A solução é geralmente tomada como o membro mais apto da população resultante, ou toda a população pode ser classificada por meio de aptidão e guardada para uma revisão posterior.
Como a programação genética é um tipo de otimização, o excesso de ajuste é uma preocupação. Isso geralmente é abordado usando testes fora da amostra, nos quais os dados não utilizados para avaliar as estratégias durante a fase de compilação são usados para testá-los posteriormente. Essencialmente, cada estratégia candidata construída durante o processo de construção é uma hipótese que é apoiada ou refutada pela avaliação e ainda é apoiada ou refutada pelos resultados fora da amostra.
Existem vários benefícios para construir sistemas de negociação através da geração automática de código. O processo de GP permite a síntese de estratégias com apenas um conjunto de metas de desempenho de alto nível. O algoritmo faz o resto. Isso reduz a necessidade de conhecimento detalhado de indicadores técnicos e princípios de projeto de estratégia. Além disso, o processo de GP é imparcial. Considerando que a maioria dos comerciantes desenvolveu vieses para ou contra indicadores específicos e / ou lógica de negociação, o GP é guiado apenas pelo que funciona. Além disso, ao incorporar uma semântica de regras de negociação adequada, o processo de GP pode ser projetado para produzir regras de negociação logicamente corretas e código livre de erros. Em muitos casos, o processo GP produz resultados que não são únicos, mas não óbvios. Essas gemas escondidas seriam quase impossíveis de encontrar de outra maneira. Por fim, ao automatizar o processo de compilação, o tempo necessário para desenvolver uma estratégia viável pode ser reduzido de semanas ou meses a uma questão de minutos, em alguns casos, dependendo do comprimento do arquivo de dados de preço de entrada e outras configurações de compilação.
Se você quiser ser informado de novos desenvolvimentos, novidades e ofertas especiais do Adaptrade Software, por favor, junte-se à nossa lista. Obrigado.
Copyright © 2004-2015 Adaptrade Software. Todos os direitos reservados.
Gerador de sistema de negociação automatizado
Se você ainda procura uma vantagem nos mercados, os sistemas de negociação automatizada são a melhor maneira de obtê-lo. Saber mais.
Copyright (c) 2010 Adaptrade Software. Todos os direitos reservados.
OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. DESEJO UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, DESDE QUE OS NEGÓCIOS NÃO SEJAM REALMENTE EXECUTOS, OS RESULTADOS PODEM TENER SOB OU COMENTÁRIOS COMPLEMENTARES PARA O IMPACTO, SE HAVER, DE CERTOS FATORES DE MERCADO, TAL COMO FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL SÃO TAMBÉM SUJEITOS AO FATO QUE ESTÃO DESIGNADOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE QUALQUER CONTA VÁ OU SEJA PROBABILITÁVEL PARA ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS.
EasyLanguage e TradeStation são marcas registradas da TradeStation Technologies, Inc.
Uma das maiores tendências no comércio varejista na última década foi o aumento da popularidade do comércio automatizado. Neste tipo de negociação, também conhecida como execução automatizada de ordens, os sinais de compra e venda gerados por um sistema de negociação são executados automaticamente por uma plataforma conectada à conta corretora do comerciante. Isso permite o comércio livre de mãos, o que permite uma execução mais rápida, menos erros e a capacidade de trocar prazos mais curtos com estratégias de maior freqüência.
O algoritmo básico para a construção de sistemas de negociação usando a geração automática de código é mostrado abaixo na Fig. 1. Começa com um método para combinar diferentes elementos da estratégia de negociação. Esses elementos podem incluir vários indicadores técnicos, como médias móveis, estocásticos e assim por diante; diferentes tipos de pedidos de entrada e saída; e condições lógicas para entrar e sair do mercado.
Figura 1. Algoritmo básico para construção de estratégia automatizada.
Depois que os diferentes elementos são combinados em uma estratégia coerente, ele pode ser avaliado no mercado ou mercados de interesse. Isso requer dados de mercado - preços, volume, interesse aberto, etc. - para cada mercado. De um modo geral, você também teria um conjunto de objetivos de construção para ajudar a classificar ou marcar cada estratégia. Exemplos de objetivos de construção incluem várias medidas de desempenho, como o lucro líquido, redução, porcentagem de vencedores, fator de lucro e assim por diante. Estes podem ser declarados como requisitos mínimos, como um fator de lucro de pelo menos 2.0 ou como objetivos para maximizar, como maximizar o lucro líquido.
Base teórica da geração automática de código.
Conforme descrito acima, construir um sistema comercial usando a geração automática de código é essencialmente um problema de otimização. A combinação de elementos estratégicos que maximizam os objetivos de construção é tomada como a estratégia final. Alguns comerciantes argumentariam que os sistemas comerciais deveriam ser construídos com base em uma hipótese de comportamento ou ação do mercado. Se você tem uma boa hipótese de como os mercados funcionam, uma estratégia pode ser construída em torno dessa hipótese e testada. Se isso funciona, ele apóia a hipótese e justifica a negociação da estratégia.
Gerador de código de sistema padrão para TradeStation.
Esta seção descreve uma abordagem ad hoc para a geração automática de código em que um sistema comercial para a TradeStation gera automaticamente outros sistemas de negociação baseados em padrões para a TradeStation. O sistema AutoSystemGen procura um conjunto de regras de negociação, juntamente com os valores de parâmetros associados, que atendem a um conjunto específico de requisitos de desempenho.
Embora quase qualquer tipo de indicador ou lógica de negociação possa ser incluído no gerador do sistema comercial descrito aqui, para manter as coisas bastante simples, as regras dos sistemas gerados serão restritas aos padrões de preços. Cada regra de entrada de um sistema de negociação gerado terá a seguinte forma:
A chave para este processo é encontrar sistemas de negociação de candidatos. Um sistema pode consistir de uma e dez regras do formulário mostrado acima. As negociações são introduzidas no mercado se todas as regras forem verdadeiras, e os negócios são encerrados um certo número de barras mais tarde. Se isso fosse codificado como um sistema TradeStation tradicional, com um máximo de 10 regras, haveria 52 entradas. Isso faria para uma estratégia pesada.
O código para o sistema AutoSystemGen e suas funções relacionadas está disponível no Breakout Futures (breakoutfutures /) na página Free Downloads.
Por exemplo, considere o mercado de futuros de obrigações de tesouraria de 30 anos (símbolo US. P na TradeStation 8). O AutoSystemGen foi otimizado nos últimos 20 anos de preços de T-bond com a entrada OptStep aumentada de 1 para 10000. Isso significa que o sistema avaliou 10.000 sistemas de negociação diferentes. A otimização foi executada duas vezes, uma vez por trades longos e uma vez para negociações curtas. Foram utilizados os seguintes requisitos de desempenho: lucro líquido de pelo menos US $ 30.000, o pior caso de desconto no máximo de US $ 7500, pelo menos 200 negócios, porcentagem rentável de pelo menos 50% e fator de lucro de pelo menos 1,2. Em um computador dual core com o Vista, levou aproximadamente 10 minutos para executar cada otimização (10.000 sistemas por otimização).
Sistema 2332, US. P, 17/9/2007 12:23:00, Long Trades.
Lucro líquido = 53562.50, DD máximo = -7381.25, Num Trades = 250, Percentual de vitórias = 56.80, Prof factor = 1.631.
Var: EntNext (falso);
EntNext = Open [2] & gt; = Low [16] e.
Fechar [14] & lt; = Low [6] and.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 2 então.
Venda o próximo bar no mercado;
Sistema 5771, US. P, 17/9/2007 12:27:00, Long Trades.
Lucro líquido = 42145,00, DD máximo = -5733.75, Num Trades = 207, Percentagem de vitórias = 57,00, factor Prof = 1,631.
Var: EntNext (falso);
EntNext = High [7] & gt; = Low [19] e.
Fechar [20] & gt; = Fechar [5] e.
High [18] & gt; = Low [2] and.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 2 então.
Venda o próximo bar no mercado;
Sistema 7622, EUA. P, 9/17/2007 12:29:00, Long Trades.
Lucro líquido = 59348.75, Max DD = -7222.50, Num Trades = 208, Percentual de vitórias = 60.58, Fator Prof. = 1.924.
Var: EntNext (falso);
EntNext = Low [2] & lt; = High [9] and.
Abra [11] & gt; = Abrir [18] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 3 então.
Venda o próximo bar no mercado;
Sistema 7718, US. P, 17/9/2007 12:29:00, Long Trades.
Lucro líquido = 35526.25, DD máximo = -6936.25, Num Trades = 292, Percentual de vitórias = 56.85, factor Prof = 1.418.
Var: EntNext (falso);
EntNext = Fechar [3] & gt; = High [19] and.
High [6] & lt; = Open [10] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 1 então.
Venda o próximo bar no mercado;
Sistema 6160, US. P, 17/9/2007 12:42:00, Short Trades.
Lucro líquido = 31277,50, DD máximo = -6846,25, Num Trades = 369, Percentual de vitórias = 51,76, Fator Prof. = 1,297.
Var: EntNext (falso);
EntNext = High [9] & gt; = Low [6] and.
Fechar [15] & gt; = Alto [8] e.
High [7] & lt; = Low [20] e.
Se EntNext então.
Venda curta barra seguinte no mercado;
Se BarsSinceEntry = 1 então.
Compre para cobrir a próxima barra no mercado;
A listagem para cada sistema inclui o número do sistema (correspondente à entrada OptStep), o símbolo do mercado, a data atual e se o sistema é apenas longo ou curto. A próxima linha contém algumas estatísticas de desempenho resumidas para ajudar na avaliação de cada sistema. Finalmente, o código do sistema é mostrado. Para avaliar os sistemas na TradeStation, o código entre as duas linhas de comentários () pode ser copiado e colado em uma estratégia no TradeStation e, em seguida, executado na janela do gráfico.
O último sistema no arquivo de saída é para um sistema de apenas curto-som (# 6160). Quando guardado na TradeStation como uma estratégia e aplicado ao mesmo gráfico de T-bond, a seguinte curva de equidade foi produzida:
Figura 3. Sistema de apenas curto prazo para títulos T, nos últimos 20 anos, com US $ 15 por negócio deduzido para custos de negociação, gerado pelo sistema AutoSystemGen.
Programação genética para geração automática de código.
A abordagem ad hoc descrita na seção anterior é simples, mas tem duas limitações: (1) as estratégias geradas aleatoriamente não convergem para os objetivos de construção e (2) o modelo do sistema de padrões é difícil de generalizar para estratégias mais complexas . Isso sugere que uma abordagem mais sofisticada seja necessária.
Um método para a geração automática de código que aborda essas duas preocupações é chamado de programação genética (GP), 1 que pertence a uma classe de técnicas chamadas algoritmos evolutivos. Algoritmos evolutivos e GP em particular foram desenvolvidos por pesquisadores em inteligência artificial baseados nos conceitos biológicos de reprodução e evolução. Um algoritmo GP "evolui" uma população de estratégias de negociação de uma população inicial de membros gerados aleatoriamente. Os membros da população competem uns contra os outros com base na sua "aptidão". Os membros do ajuste são selecionados como "pais" para produzir um novo membro da população, que substitui um membro mais fraco (menos adequado).
Reduz a necessidade de conhecimento de indicadores técnicos e design de estratégias. O algoritmo GP seleciona as regras de negociação individuais, indicadores e outros elementos da estratégia para você.
O processo de construção da regra permite uma complexidade considerável, incluindo regras comerciais não-lineares.
O processo GP elimina os elementos mais laboriosos e tediosos do processo de desenvolvimento da estratégia tradicional; ou seja, surgir uma nova idéia comercial, programá-la, verificar o código, testar a estratégia, modificar o código e repetir. Isso é feito automaticamente no GP.
O processo de GP é imparcial. Considerando que a maioria dos comerciantes desenvolveu vieses para ou contra indicadores específicos e / ou lógica de negociação, o GP é guiado apenas pelo que funciona.
Ao incorporar uma semântica de regras de negociação adequada, o processo de GP pode ser projetado para produzir regras de negociação logicamente corretas e código sem erros.
O processo GP geralmente produz resultados que não são únicos, mas não óbvios. Em muitos casos, essas gemas escondidas seriam quase impossíveis de encontrar de outra maneira.
Ao automatizar o processo de compilação, o tempo necessário para desenvolver uma estratégia viável pode ser reduzido de semanas ou meses a uma questão de minutos em alguns casos, dependendo do comprimento do arquivo de dados de preço de entrada e outras configurações de compilação.
A programação genética tem sido usada com sucesso em diversos campos, incluindo processamento de sinal e imagem, controle de processo, bioinformática, modelagem de dados, geração de código de programação, jogos de computador e modelagem econômica; veja, por exemplo, Poli et al. 2 Uma visão geral do uso de GP em finanças é fornecida por Chen. 3 Colin 4 foi um dos primeiros a explicar como usar o GP para otimizar combinações de regras para uma estratégia de negociação.
J. Koza. Programação genética. O MIT Press, Cambridge, MA. 1992.
R. Poli, W. B. Langdon e N. F. McPhee. Um guia de campo para programação genética. Publicado através de lulu e disponível gratuitamente em gp-field-guide. org. uk, 2008. (Com contribuições de J. R. Koza).
Shu-Heng Chen (Editor). Algoritmos genéticos e programação genética em finanças computacionais. Kluwer Academic Publishers, Norwell, MA. 2002.
A. Colin. Algoritmos genéticos para modelagem financeira, Trading on the Edge. 1994, páginas 165-168. John Wiley & amp; Sons, Inc. Nova York.
Risto Karjalainen. Evolução das regras de negociação técnica para futuros S & amp; P 500, Regras de Negociação Avançadas, 2002, Páginas 345-366. Elsevier Science, Oxford, Reino Unido.
Jean-Yves Potvin, Patrick Soriano, Maxime Vallee. Gerando regras de negociação nos mercados de ações com programação genética. Computadores e Pesquisa de operações, Volume 31, edição 7, junho de 2004, páginas 1033-1047.
Massimiliano Kaucic. Investimento utilizando métodos evolutivos de aprendizagem e regras técnicas. European Journal of Operational Research, volume 207, edição 3, 16 de dezembro de 2010, páginas 1717-1727.
Algoritmo de construção usando programação genética.
Expandindo o algoritmo de compilação apresentado anteriormente (ver Fig. 1), um algoritmo mais detalhado é ilustrado abaixo na Fig. 4 com base na programação genética. As caixas sombreadas de cinza representam os dados de entrada, que incluem os dados de preços para o (s) mercado (s) de interesse, indicadores e tipos de pedidos no chamado conjunto de compilação e as opções e critérios de desempenho (objetivos de construção) selecionados pelo do utilizador.
Figura 4. Algoritmo de compilação para geração automática de código com programação genética.
O processo GP pode ser usado para desenvolver simultaneamente dois elementos de estratégia essenciais: condições de entrada e pedidos de entrada e saída. As condições de entrada são tipicamente representadas como estruturas de árvores, como mostrado abaixo na Fig. 5.
A chave para a evolução das ordens de entrada e saída usando programação genética é representar os diferentes tipos de pedidos de forma generalizada. Por exemplo, parar e limitar os preços de entrada podem ser representados da seguinte forma:
Embora a programação genética seja capaz de gerar estratégias de negociação com uma variedade considerável, é necessário começar com uma estrutura generalizada para as estratégias a serem seguidas. A estrutura de estratégia mostrada abaixo em pseudo-código fornece uma estrutura para estratégias de construção com base em condições de entrada e tipos de pedidos como os discutidos acima:
Entradas: N1, N2, N3, ...
Se a posição for plana e LongEntryCondition for verdade, então.
Ordem de entrada longa ...
Inicialize as ordens de saída longas, conforme necessário ...
Se a posição for plana e ShortEntryCondition for verdade, então.
Ordem de entrada curta ...
Inicialize ordens de saída curtas, conforme necessário ...
Se a posição é longa então.
Ordem de saída longa 1 ...
Ordem de saída longa 2 ...
Se a posição for curta, então.
Ordem de saída curta 1 ...
Ordem de saída curta 2 ...
[Saída opcional de fim de dia]
As estratégias começam com a lista de insumos. É fornecida uma entrada para qualquer parâmetro do indicador, comprimento do look-back do padrão de preços e quaisquer parâmetros exigidos pelas ordens de entrada e saída, como o comprimento de look-back para o ATR.
Para ilustrar o uso de programação genética para a geração automática de código na construção de estratégias, o programa Adaptrade Builder foi administrado em barras diárias de um mercado de futuros de índices de ações para uma pequena população e um número limitado de gerações. As métricas de desempenho escolhidas para orientar o processo foram o lucro líquido, o número de trades, o coeficiente de correlação, a significância estatística e a relação retorno / redução. Alvos específicos foram definidos para o número de negociações e a relação retorno / retirada. As outras métricas selecionadas foram maximizadas. A função de fitness foi uma média ponderada de termos para cada métrica.
Figura 6. Percentagem de membros da população com lucro líquido fora da amostra superior a US $ 1.000.
Da mesma forma, o lucro líquido médio da OOS aumentou após cinco e dez gerações, como mostrado na Figura 7. Observe que esses resultados são para o lucro líquido da OOS. Por definição, os dados fora da amostra não são usados na compilação, então os resultados da OOS são imparciais; eles não se beneficiam de retrospectiva. Isso implica que o processo GP não só tende a melhorar os resultados na amostra em sucessivas gerações, o que é um efeito direto do algoritmo GP, mas os resultados da OOS também tendem a melhorar à medida que as estratégias são desenvolvidas. Isso indica uma compilação de alta qualidade.
Código de Estratégia EasyLanguage para a TradeStation.
Membro da população: 46.
Criado por: Adaptrade Builder versão 1.1.0.0.
Criado: 19/10/2010 2:19:52 PM.
Código do TradeStation para TS 6 ou posterior.
Arquivo de preço: C: \ TestData. txt.
Var: EntCondL (falso),
EntCondL = (Maior (Volume, NL1) & gt; = Menor (Volume, NL2)) ou (Volume & lt; Média (Volume, NL3));
Se MarketPosition = 0 e EntCondL, em seguida, comece.
Compre a próxima barra na XAverage (L, NBarEnL1) + EntFrL * ATREnL parar;
Se MarketPosition = 0 e EntCondS, em seguida, comece.
Vender curto barra seguinte no Mais alto (H, NBarEnS1) - EntFrS * AbsValue (Menor (L, NBarEnS2) - Menor (H, NBarEnS3)) parar;
SStop = Power (10, 10);
Se MarketPosition & gt; 0 então comece.
Se BarsSinceEntry & gt; = NBarExL então.
Venda o próximo bar no mercado;
Venda o próximo bar no EntryPrice + TargFrL * ATRTargL limite;
Se MarketPosition & lt; 0 então comece.
Se EntryPrice - C & gt; ATRFrTrailS * ATRTrailS então.
Se STrailOn então começar.
NewSStop = EntryPrice - TrailPctS * (EntryPrice - C) / 100 .;
SStop = MinList (SStop, NewSStop);
Se BarsSinceEntry & gt; = NBarExS então.
Compre para cobrir a próxima barra no mercado;
Se STrailOn então.
Compre para cobrir a próxima barra na parada SStop;
Construir sistemas de negociação através da geração automática de código é um tipo de otimização. A maioria dos comerciantes sistemáticos provavelmente está familiarizado com a otimização de parâmetros, em que as entradas para uma estratégia são otimizadas. Ao contrário da otimização de parâmetros, a geração automática de código otimiza a lógica de negociação da estratégia. No entanto, o risco de sobre-otimização, ou "excesso de ajuste", também é uma preocupação para a geração automática de código, assim como é para a otimização de parâmetros.
Para obter informações sobre software para estratégias de negociação de construção usando programação genética, clique aqui.
Se você quiser ser informado de novos desenvolvimentos, novidades e ofertas especiais do Adaptrade Software, por favor, junte-se à nossa lista. Obrigado.
Copyright © 2004-2015 Adaptrade Software. Todos os direitos reservados.
Se você ainda procura uma vantagem nos mercados, os sistemas de negociação automatizada são a melhor maneira de obtê-lo. Saber mais.
Copyright (c) 2010 Adaptrade Software. Todos os direitos reservados.
OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. DESEJO UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, DESDE QUE OS NEGÓCIOS NÃO SEJAM REALMENTE EXECUTOS, OS RESULTADOS PODEM TENER SOB OU COMENTÁRIOS COMPLEMENTARES PARA O IMPACTO, SE HAVER, DE CERTOS FATORES DE MERCADO, TAL COMO FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL SÃO TAMBÉM SUJEITOS AO FATO QUE ESTÃO DESIGNADOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE QUALQUER CONTA VÁ OU SEJA PROBABILITÁVEL PARA ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS.
EasyLanguage e TradeStation são marcas registradas da TradeStation Technologies, Inc.
Uma das maiores tendências no comércio varejista na última década foi o aumento da popularidade do comércio automatizado. Neste tipo de negociação, também conhecida como execução automatizada de ordens, os sinais de compra e venda gerados por um sistema de negociação são executados automaticamente por uma plataforma conectada à conta corretora do comerciante. Isso permite o comércio livre de mãos, o que permite uma execução mais rápida, menos erros e a capacidade de trocar prazos mais curtos com estratégias de maior freqüência.
O algoritmo básico para a construção de sistemas de negociação usando a geração automática de código é mostrado abaixo na Fig. 1. Começa com um método para combinar diferentes elementos da estratégia de negociação. Esses elementos podem incluir vários indicadores técnicos, como médias móveis, estocásticos e assim por diante; diferentes tipos de pedidos de entrada e saída; e condições lógicas para entrar e sair do mercado.
Figura 1. Algoritmo básico para construção de estratégia automatizada.
Depois que os diferentes elementos são combinados em uma estratégia coerente, ele pode ser avaliado no mercado ou mercados de interesse. Isso requer dados de mercado - preços, volume, interesse aberto, etc. - para cada mercado. De um modo geral, você também teria um conjunto de objetivos de construção para ajudar a classificar ou marcar cada estratégia. Exemplos de objetivos de construção incluem várias medidas de desempenho, como o lucro líquido, redução, porcentagem de vencedores, fator de lucro e assim por diante. Estes podem ser declarados como requisitos mínimos, como um fator de lucro de pelo menos 2.0 ou como objetivos para maximizar, como maximizar o lucro líquido.
Base teórica da geração automática de código.
Conforme descrito acima, construir um sistema comercial usando a geração automática de código é essencialmente um problema de otimização. A combinação de elementos estratégicos que maximizam os objetivos de construção é tomada como a estratégia final. Alguns comerciantes argumentariam que os sistemas comerciais deveriam ser construídos com base em uma hipótese de comportamento ou ação do mercado. Se você tem uma boa hipótese de como os mercados funcionam, uma estratégia pode ser construída em torno dessa hipótese e testada. Se isso funciona, ele apóia a hipótese e justifica a negociação da estratégia.
Gerador de código de sistema padrão para TradeStation.
Esta seção descreve uma abordagem ad hoc para a geração automática de código em que um sistema comercial para a TradeStation gera automaticamente outros sistemas de negociação baseados em padrões para a TradeStation. O sistema AutoSystemGen procura um conjunto de regras de negociação, juntamente com os valores de parâmetros associados, que atendem a um conjunto específico de requisitos de desempenho.
Embora quase qualquer tipo de indicador ou lógica de negociação possa ser incluído no gerador do sistema comercial descrito aqui, para manter as coisas bastante simples, as regras dos sistemas gerados serão restritas aos padrões de preços. Cada regra de entrada de um sistema de negociação gerado terá a seguinte forma:
A chave para este processo é encontrar sistemas de negociação de candidatos. Um sistema pode consistir de uma e dez regras do formulário mostrado acima. As negociações são introduzidas no mercado se todas as regras forem verdadeiras, e os negócios são encerrados um certo número de barras mais tarde. Se isso fosse codificado como um sistema TradeStation tradicional, com um máximo de 10 regras, haveria 52 entradas. Isso faria para uma estratégia pesada.
O código para o sistema AutoSystemGen e suas funções relacionadas está disponível no Breakout Futures (breakoutfutures /) na página Free Downloads.
Por exemplo, considere o mercado de futuros de obrigações de tesouraria de 30 anos (símbolo US. P na TradeStation 8). O AutoSystemGen foi otimizado nos últimos 20 anos de preços de T-bond com a entrada OptStep aumentada de 1 para 10000. Isso significa que o sistema avaliou 10.000 sistemas de negociação diferentes. A otimização foi executada duas vezes, uma vez por trades longos e uma vez para negociações curtas. Foram utilizados os seguintes requisitos de desempenho: lucro líquido de pelo menos US $ 30.000, o pior caso de desconto no máximo de US $ 7500, pelo menos 200 negócios, porcentagem rentável de pelo menos 50% e fator de lucro de pelo menos 1,2. Em um computador dual core com o Vista, levou aproximadamente 10 minutos para executar cada otimização (10.000 sistemas por otimização).
Sistema 2332, US. P, 17/9/2007 12:23:00, Long Trades.
Lucro líquido = 53562.50, DD máximo = -7381.25, Num Trades = 250, Percentual de vitórias = 56.80, Prof factor = 1.631.
Var: EntNext (falso);
EntNext = Open [2] & gt; = Low [16] e.
Fechar [14] & lt; = Low [6] and.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 2 então.
Venda o próximo bar no mercado;
Sistema 5771, US. P, 17/9/2007 12:27:00, Long Trades.
Lucro líquido = 42145,00, DD máximo = -5733.75, Num Trades = 207, Percentagem de vitórias = 57,00, factor Prof = 1,631.
Var: EntNext (falso);
EntNext = High [7] & gt; = Low [19] e.
Fechar [20] & gt; = Fechar [5] e.
High [18] & gt; = Low [2] and.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 2 então.
Venda o próximo bar no mercado;
Sistema 7622, EUA. P, 9/17/2007 12:29:00, Long Trades.
Lucro líquido = 59348.75, Max DD = -7222.50, Num Trades = 208, Percentual de vitórias = 60.58, Fator Prof. = 1.924.
Var: EntNext (falso);
EntNext = Low [2] & lt; = High [9] and.
Abra [11] & gt; = Abrir [18] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 3 então.
Venda o próximo bar no mercado;
Sistema 7718, US. P, 17/9/2007 12:29:00, Long Trades.
Lucro líquido = 35526.25, DD máximo = -6936.25, Num Trades = 292, Percentual de vitórias = 56.85, factor Prof = 1.418.
Var: EntNext (falso);
EntNext = Fechar [3] & gt; = High [19] and.
High [6] & lt; = Open [10] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 1 então.
Venda o próximo bar no mercado;
Sistema 6160, US. P, 17/9/2007 12:42:00, Short Trades.
Lucro líquido = 31277,50, DD máximo = -6846,25, Num Trades = 369, Percentual de vitórias = 51,76, Fator Prof. = 1,297.
Var: EntNext (falso);
EntNext = High [9] & gt; = Low [6] and.
Fechar [15] & gt; = Alto [8] e.
High [7] & lt; = Low [20] e.
Se EntNext então.
Venda curta barra seguinte no mercado;
Se BarsSinceEntry = 1 então.
Compre para cobrir a próxima barra no mercado;
A listagem para cada sistema inclui o número do sistema (correspondente à entrada OptStep), o símbolo do mercado, a data atual e se o sistema é apenas longo ou curto. A próxima linha contém algumas estatísticas de desempenho resumidas para ajudar na avaliação de cada sistema. Finalmente, o código do sistema é mostrado. Para avaliar os sistemas na TradeStation, o código entre as duas linhas de comentários () pode ser copiado e colado em uma estratégia no TradeStation e, em seguida, executado na janela do gráfico.
O último sistema no arquivo de saída é para um sistema de apenas curto-som (# 6160). Quando guardado na TradeStation como uma estratégia e aplicado ao mesmo gráfico de T-bond, a seguinte curva de equidade foi produzida:
Figura 3. Sistema de apenas curto prazo para títulos T, nos últimos 20 anos, com US $ 15 por negócio deduzido para custos de negociação, gerado pelo sistema AutoSystemGen.
Programação genética para geração automática de código.
A abordagem ad hoc descrita na seção anterior é simples, mas tem duas limitações: (1) as estratégias geradas aleatoriamente não convergem para os objetivos de construção e (2) o modelo do sistema de padrões é difícil de generalizar para estratégias mais complexas . Isso sugere que uma abordagem mais sofisticada seja necessária.
Um método para a geração automática de código que aborda essas duas preocupações é chamado de programação genética (GP), 1 que pertence a uma classe de técnicas chamadas algoritmos evolutivos. Algoritmos evolutivos e GP em particular foram desenvolvidos por pesquisadores em inteligência artificial baseados nos conceitos biológicos de reprodução e evolução. Um algoritmo GP "evolui" uma população de estratégias de negociação de uma população inicial de membros gerados aleatoriamente. Os membros da população competem uns contra os outros com base na sua "aptidão". Os membros do ajuste são selecionados como "pais" para produzir um novo membro da população, que substitui um membro mais fraco (menos adequado).
Reduz a necessidade de conhecimento de indicadores técnicos e design de estratégias. O algoritmo GP seleciona as regras de negociação individuais, indicadores e outros elementos da estratégia para você.
O processo de construção da regra permite uma complexidade considerável, incluindo regras comerciais não-lineares.
O processo GP elimina os elementos mais laboriosos e tediosos do processo de desenvolvimento da estratégia tradicional; ou seja, surgir uma nova idéia comercial, programá-la, verificar o código, testar a estratégia, modificar o código e repetir. Isso é feito automaticamente no GP.
O processo de GP é imparcial. Considerando que a maioria dos comerciantes desenvolveu vieses para ou contra indicadores específicos e / ou lógica de negociação, o GP é guiado apenas pelo que funciona.
Ao incorporar uma semântica de regras de negociação adequada, o processo de GP pode ser projetado para produzir regras de negociação logicamente corretas e código sem erros.
O processo GP geralmente produz resultados que não são únicos, mas não óbvios. Em muitos casos, essas gemas escondidas seriam quase impossíveis de encontrar de outra maneira.
Ao automatizar o processo de compilação, o tempo necessário para desenvolver uma estratégia viável pode ser reduzido de semanas ou meses a uma questão de minutos em alguns casos, dependendo do comprimento do arquivo de dados de preço de entrada e outras configurações de compilação.
A programação genética tem sido usada com sucesso em diversos campos, incluindo processamento de sinal e imagem, controle de processo, bioinformática, modelagem de dados, geração de código de programação, jogos de computador e modelagem econômica; veja, por exemplo, Poli et al. 2 Uma visão geral do uso de GP em finanças é fornecida por Chen. 3 Colin 4 foi um dos primeiros a explicar como usar o GP para otimizar combinações de regras para uma estratégia de negociação.
J. Koza. Programação genética. O MIT Press, Cambridge, MA. 1992.
R. Poli, W. B. Langdon e N. F. McPhee. Um guia de campo para programação genética. Publicado através de lulu e disponível gratuitamente em gp-field-guide. org. uk, 2008. (Com contribuições de J. R. Koza).
Shu-Heng Chen (Editor). Algoritmos genéticos e programação genética em finanças computacionais. Kluwer Academic Publishers, Norwell, MA. 2002.
A. Colin. Algoritmos genéticos para modelagem financeira, Trading on the Edge. 1994, páginas 165-168. John Wiley & amp; Sons, Inc. Nova York.
Risto Karjalainen. Evolução das regras de negociação técnica para futuros S & amp; P 500, Regras de Negociação Avançadas, 2002, Páginas 345-366. Elsevier Science, Oxford, Reino Unido.
Jean-Yves Potvin, Patrick Soriano, Maxime Vallee. Gerando regras de negociação nos mercados de ações com programação genética. Computadores e Pesquisa de operações, Volume 31, edição 7, junho de 2004, páginas 1033-1047.
Massimiliano Kaucic. Investimento utilizando métodos evolutivos de aprendizagem e regras técnicas. European Journal of Operational Research, volume 207, edição 3, 16 de dezembro de 2010, páginas 1717-1727.
Algoritmo de construção usando programação genética.
Expandindo o algoritmo de compilação apresentado anteriormente (ver Fig. 1), um algoritmo mais detalhado é ilustrado abaixo na Fig. 4 com base na programação genética. As caixas sombreadas de cinza representam os dados de entrada, que incluem os dados de preços para o (s) mercado (s) de interesse, indicadores e tipos de pedidos no chamado conjunto de compilação e as opções e critérios de desempenho (objetivos de construção) selecionados pelo do utilizador.
Figura 4. Algoritmo de compilação para geração automática de código com programação genética.
O processo GP pode ser usado para desenvolver simultaneamente dois elementos de estratégia essenciais: condições de entrada e pedidos de entrada e saída. As condições de entrada são tipicamente representadas como estruturas de árvores, como mostrado abaixo na Fig. 5.
A chave para a evolução das ordens de entrada e saída usando programação genética é representar os diferentes tipos de pedidos de forma generalizada. Por exemplo, parar e limitar os preços de entrada podem ser representados da seguinte forma:
Embora a programação genética seja capaz de gerar estratégias de negociação com uma variedade considerável, é necessário começar com uma estrutura generalizada para as estratégias a serem seguidas. A estrutura de estratégia mostrada abaixo em pseudo-código fornece uma estrutura para estratégias de construção com base em condições de entrada e tipos de pedidos como os discutidos acima:
Entradas: N1, N2, N3, ...
Se a posição for plana e LongEntryCondition for verdade, então.
Ordem de entrada longa ...
Inicialize as ordens de saída longas, conforme necessário ...
Se a posição for plana e ShortEntryCondition for verdade, então.
Ordem de entrada curta ...
Inicialize ordens de saída curtas, conforme necessário ...
Se a posição é longa então.
Ordem de saída longa 1 ...
Ordem de saída longa 2 ...
Se a posição for curta, então.
Ordem de saída curta 1 ...
Ordem de saída curta 2 ...
[Saída opcional de fim de dia]
As estratégias começam com a lista de insumos. É fornecida uma entrada para qualquer parâmetro do indicador, comprimento do look-back do padrão de preços e quaisquer parâmetros exigidos pelas ordens de entrada e saída, como o comprimento de look-back para o ATR.
Para ilustrar o uso de programação genética para a geração automática de código na construção de estratégias, o programa Adaptrade Builder foi administrado em barras diárias de um mercado de futuros de índices de ações para uma pequena população e um número limitado de gerações. As métricas de desempenho escolhidas para orientar o processo foram o lucro líquido, o número de trades, o coeficiente de correlação, a significância estatística e a relação retorno / redução. Alvos específicos foram definidos para o número de negociações e a relação retorno / retirada. As outras métricas selecionadas foram maximizadas. A função de fitness foi uma média ponderada de termos para cada métrica.
Figura 6. Percentagem de membros da população com lucro líquido fora da amostra superior a US $ 1.000.
Da mesma forma, o lucro líquido médio da OOS aumentou após cinco e dez gerações, como mostrado na Figura 7. Observe que esses resultados são para o lucro líquido da OOS. Por definição, os dados fora da amostra não são usados na compilação, então os resultados da OOS são imparciais; eles não se beneficiam de retrospectiva. Isso implica que o processo GP não só tende a melhorar os resultados na amostra em sucessivas gerações, o que é um efeito direto do algoritmo GP, mas os resultados da OOS também tendem a melhorar à medida que as estratégias são desenvolvidas. Isso indica uma compilação de alta qualidade.
Código de Estratégia EasyLanguage para a TradeStation.
Membro da população: 46.
Criado por: Adaptrade Builder versão 1.1.0.0.
Criado: 19/10/2010 2:19:52 PM.
Código do TradeStation para TS 6 ou posterior.
Arquivo de preço: C: \ TestData. txt.
Var: EntCondL (falso),
EntCondL = (Maior (Volume, NL1) & gt; = Menor (Volume, NL2)) ou (Volume & lt; Média (Volume, NL3));
Se MarketPosition = 0 e EntCondL, em seguida, comece.
Compre a próxima barra na XAverage (L, NBarEnL1) + EntFrL * ATREnL parar;
Se MarketPosition = 0 e EntCondS, em seguida, comece.
Vender curto barra seguinte no Mais alto (H, NBarEnS1) - EntFrS * AbsValue (Menor (L, NBarEnS2) - Menor (H, NBarEnS3)) parar;
SStop = Power (10, 10);
Se MarketPosition & gt; 0 então comece.
Se BarsSinceEntry & gt; = NBarExL então.
Venda o próximo bar no mercado;
Venda o próximo bar no EntryPrice + TargFrL * ATRTargL limite;
Se MarketPosition & lt; 0 então comece.
Se EntryPrice - C & gt; ATRFrTrailS * ATRTrailS então.
Se STrailOn então começar.
NewSStop = EntryPrice - TrailPctS * (EntryPrice - C) / 100 .;
SStop = MinList (SStop, NewSStop);
Se BarsSinceEntry & gt; = NBarExS então.
Compre para cobrir a próxima barra no mercado;
Se STrailOn então.
Compre para cobrir a próxima barra na parada SStop;
Construir sistemas de negociação através da geração automática de código é um tipo de otimização. A maioria dos comerciantes sistemáticos provavelmente está familiarizado com a otimização de parâmetros, em que as entradas para uma estratégia são otimizadas. Ao contrário da otimização de parâmetros, a geração automática de código otimiza a lógica de negociação da estratégia. No entanto, o risco de sobre-otimização, ou "excesso de ajuste", também é uma preocupação para a geração automática de código, assim como é para a otimização de parâmetros.
Para obter informações sobre software para estratégias de negociação de construção usando programação genética, clique aqui.
Se você quiser ser informado de novos desenvolvimentos, novidades e ofertas especiais do Adaptrade Software, por favor, junte-se à nossa lista. Obrigado.
Copyright © 2004-2015 Adaptrade Software. Todos os direitos reservados.
Comments
Post a Comment