Procedimentos da Conferência Internacional sobre Métodos Computacionais em Ciências e Engenharia 2004 Melhorando os sistemas de negociação técnica usando um novo procedimento de algoritmo genético baseado em MATLAB, Stephanos Papadamou a. George Stephanides b. Um Departamento de Economia, Universidade da Tessália, Argonauton e Filelinon, Volos, Grécia b Departamento de Informática Aplicada, Universidade de Ciências Económicas e Sociais da Macedônia, Egnatias 156, Thessaloniki 54006, Grécia Recebido em 18 de maio de 2006. Aceito em 15 de dezembro de 2006. Disponível on-line 24 Janeiro de 2007. Estudos recentes nos mercados financeiros sugerem que a análise técnica pode ser uma ferramenta muito útil para prever a tendência. Os sistemas de negociação são amplamente utilizados para a avaliação do mercado no entanto, a otimização de parâmetros desses sistemas atraiu pouco interesse. Neste trabalho, para explorar o poder potencial do comércio digital, apresentamos uma nova ferramenta MATLAB baseada em algoritmos genéticos, a ferramenta é especializada na otimização de parâmetros de regras técnicas. Ele usa o poder dos algoritmos genéticos para gerar soluções rápidas e eficientes em termos comerciais reais. Nossa ferramenta foi testada extensivamente em dados históricos de um fundo UBS que investir em mercados de ações emergentes através de nosso sistema técnico específico. Os resultados mostram que o nosso GATradeTool proposto supera as ferramentas de software comumente usadas e não adaptativas em relação à estabilidade do retorno e economia de tempo durante todo o período de amostragem. No entanto, fornecemos provas de um possível efeito de tamanho populacional na qualidade das soluções. Mercados financeiros Previsão Algoritmos genéticos Investimento Regras técnicas 1 Introdução Os comerciantes e analistas de investimentos de hoje exigem ferramentas rápidas e eficientes em um mercado financeiro implacável. As batalhas na negociação agora são principalmente travadas na velocidade do computador. O desenvolvimento de novas tecnologias de software e a aparência de novos ambientes de software (por exemplo, MATLAB) fornecem a base para resolver problemas financeiros difíceis em tempo real. A grande funcionalidade matemática e financeira incorporada do MATLABs, o fato de ser uma linguagem de programação interpretada e compilada e sua independência de plataforma tornam-se adequados para o desenvolvimento de aplicativos financeiros. Evidência sobre os retornos obtidos pelas regras técnicas, incluindo estratégias de impulso (por exemplo, 14. 15. 16. 16. 25 e 20), regras móveis em média e outros sistemas comerciais 6. 2. 9 e 24 podem suportar a importância da análise técnica. No entanto, a maioria desses estudos ignorou a questão da otimização de parâmetros, deixando-os abertos à crítica do snooping de dados e à possibilidade de viés de sobrevivência 7. 17 e 8. Tradicionalmente, os pesquisadores utilizaram a especificação ad hoc das regras de negociação. Eles usam uma configuração popular padrão ou tentam aleatoriamente alguns parâmetros diferentes e selecionam o melhor com critérios baseados principalmente no retorno. Papadamou e Stephanides 23. implementaram uma nova caixa de ferramentas baseada em MATLAB para negociação técnica auxiliada por computador que incluiu um procedimento para problemas de otimização de parâmetros. No entanto, o ponto fraco de seu procedimento de otimização é o tempo: a função objetivo (por exemplo, lucro) não é uma função de erro quadrada simples, mas uma complicada (cada iteração de otimização passa pelos dados, gera sinais de negociação, calcula lucros, etc.). Quando os conjuntos de dados são amplos e você deseja re-optimizar seu sistema com freqüência e você precisa de uma solução o mais rápido possível, então, tentar todas as soluções possíveis para obter o melhor seria uma tarefa muito tediosa. Os algoritmos genéticos (GAs) são mais adequados, pois realizam pesquisas aleatórias de forma estruturada e convergem muito rápido em populações de soluções quase ótimas. O GA lhe dará um conjunto (população) de boas soluções. Os analistas estão interessados em obter algumas boas soluções o mais rápido possível, em vez da melhor solução global. A melhor solução global existe, mas é altamente improvável que continue a ser a melhor. O objetivo deste estudo é mostrar como os algoritmos genéticos, uma classe de algoritmos em computação evolutiva, podem ser empregados para melhorar o desempenho e a eficiência dos sistemas comerciais negociados. Não é aqui o propósito de fornecer uma justificativa teórica ou empírica para a análise técnica. Demonstramos nossa abordagem em uma tarefa de previsão específica baseada em mercados de ações emergentes. Este artigo está organizado da seguinte forma. O trabalho anterior é apresentado na Seção 2. O conjunto de dados e nossa metodologia estão descritos na Seção 3. Os resultados empíricos são discutidos na Seção 4. As conclusões seguem a Seção 5. 2 Trabalho prévio Há um grande corpo de trabalho GA nos campos de informática e engenharia, mas pouco trabalho foi feito em áreas relacionadas a negócios. Ultimamente, tem havido um crescente interesse no uso de GA em economia financeira, mas até agora tem havido pouca pesquisa sobre negociação automatizada. Para o nosso conhecimento, o primeiro documento publicado que vincula os algoritmos genéticos aos investimentos foi de Bauer e Liepins 4. Bauer 5 em seu livro Algoritmos genéticos e estratégias de investimento ofereceu orientações práticas sobre como as AGs podem ser usadas para desenvolver estratégias comerciais atraentes com base em informações fundamentais. Essas técnicas podem ser facilmente estendidas para incluir outros tipos de informações, como dados técnicos e macroeconômicos, bem como preços passados. De acordo com Allen e Karjalainen 1. algoritmo genético é um método apropriado para descobrir as regras de negociação técnica. Fernndez-Rodrguez et al. 11, ao adotar a otimização de algoritmos genéticos em uma simples regra de negociação, fornecem evidências para o uso bem-sucedido de GAs na Bolsa de Valores de Madri. Alguns outros estudos interessados são aqueles de Mahfoud e Mani 18 que apresentaram um novo sistema baseado em algoritmos genéticos e aplicaram-no na tarefa de prever os desempenhos futuros de ações individuais por Neely et al. 21 e por Oussaidene et al. 22 que aplicou programação genética para previsão de câmbio e relatou algum sucesso. Uma das complicações na otimização GA é que o usuário deve definir um conjunto de parâmetros, como a taxa de cruzamento, o tamanho da população e a taxa de mutação. De acordo com De Jong 10, que estudou algoritmos genéticos na otimização de funções, o bom desempenho GA requer alta probabilidade de cruzamento (inversamente proporcional ao tamanho da população) e um tamanho de população moderado. Goldberg 12 e Markellos 19 sugerem que um conjunto de parâmetros que funcionam bem em vários problemas é um parâmetro de cruzamento 0.6, tamanho da população 30 e parâmetro de mutação 0.0333. O Bauer 4 realizou uma série de simulações sobre problemas de otimização financeira e confirmou a validade das sugestões Goldbergs. No presente estudo, realizaremos um estudo de simulação limitado testando várias configurações de parâmetros para o sistema de negociação escolhido. Nós também forneceremos provas para o GA proposto, comparando nossa ferramenta com outras ferramentas de software. 3 Metodologia Nossa metodologia é conduzida em várias etapas. Primeiro, temos que implementar o nosso sistema de negociação com base em análise técnica. Ao desenvolver um sistema de negociação, você precisa determinar quando entrar e quando sair do mercado. Se o comerciante estiver no mercado, a variável binária é igual a outra, caso contrário, é zero. Como negociadores de posição, baseamos a maioria de nossas decisões de entrada e saída em gráficos diários, construindo um indicador de tendência seguinte (Dimbeta). Este indicador calcula o desvio dos preços atuais de sua média móvel de comprimento. Os indicadores utilizados no nosso sistema de negociação podem ser formalizados conforme abaixo: onde é o preço de fechamento do fundo no tempo e na função, o MovAv calcula a média móvel simples da variável Fechar com o tempo de duração. Nosso sistema comercial consiste em dois indicadores, o indicador Dimbeta e a média móvel da Dimbeta dada pela seguinte equação: se cruzar para cima, entenda o mercado no longo prazo (ou seja, o sinal de compra). Se cruzar para baixo, feche a posição longa no mercado (ou seja, o sinal de venda). Em segundo lugar, temos que otimizar nossa estratégia de negociação. Sabe-se que a maximização de funções objetivas, como lucro ou riqueza, pode otimizar os sistemas de negociação. A função objetiva mais natural para um comerciante insensível ao risco é o lucro. Na nossa ferramenta de software, consideramos lucros multiplicativos. Os lucros multiplicativos são apropriados quando uma fração fixa da riqueza acumulada é investida em cada comércio longo. No nosso software, não são permitidas vendas curtas e o fator de alavancagem é fixado, a riqueza no tempo é dada pela seguinte fórmula: onde é o retorno realizado pelo período que termina no horário, os custos de transação e a variável binômica simbólica Indicando uma posição longa ou não (ou seja, 1 ou 0). O lucro é dado subtraindo da riqueza final a riqueza inicial,. A otimização de um sistema envolve a realização de testes múltiplos, variando um ou mais parâmetros (,) dentro das regras de negociação. A quantidade de testes pode crescer rapidamente (Metastock tem um máximo de 32 000 testes). No FinTradeTool 23. não há nenhum limite, no entanto, no processamento do tempo dependendo do sistema de computador usado. Neste trabalho, investigamos a possibilidade de resolver o problema de otimização usando algoritmos genéticos. Os algoritmos genéticos (GAs) desenvolvidos pela Holland 13 constituem uma classe de técnicas de busca, adaptação e otimização baseadas nos princípios da evolução natural. Os algoritmos genéticos se prestam bem aos problemas de otimização, uma vez que eles sabem exibir robustez e podem oferecer vantagens significativas na metodologia da solução e no desempenho de otimização. Os GAs diferem de outros procedimentos de otimização e pesquisa de algumas maneiras. Primeiro, eles trabalham com uma codificação do conjunto de parâmetros, e não os próprios parâmetros. Portanto, os GAs podem manipular facilmente as variáveis binárias. Em segundo lugar, as GAs procuram de uma população de pontos, não um único ponto. Portanto, os GAs podem fornecer um conjunto de soluções globalmente ótimas. Finalmente, os GAs usam apenas informações objetivas da função, não derivativos ou outros conhecimentos auxiliares. Portanto, as AGs podem lidar com as funções não contínuas e não diferenciáveis que realmente existem em um problema de otimização prática. 4 GATradeTool proposto no GATradeTool. Um algoritmo genético opera em uma população de soluções candidatas codificadas (,). Cada variável de decisão no conjunto de parâmetros é codificada como uma string binária e todas são concatenadas para formar um cromossomo. A representação cromossômica é um vetor de dois elementos contendo parâmetros na codificação genética de bunary. A precisão da representação binária é de oito bits por parâmetro (isto é, 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1). Começa com uma população construída aleatoriamente de suposições iniciais. Esses candidatos de solução são avaliados em termos de nossa função objetiva (Eq. (4)). Para obter a otimização, cada cromossomo troca informações usando operadores (ou seja, cronômetro aritmético 1) emprestado da genética natural para produzir uma solução melhor. A função objetivo (Eq. (4)) é usada para medir como os indivíduos se apresentaram no domínio do problema. No nosso caso, os indivíduos mais adequados terão o maior valor numérico da função objetiva associada. A função de fitness transforma os valores da função objetivo bruta em figuras de mérito não negativas para cada indivíduo. A ferramenta suporta o método de compensação e dimensionamento de Goldberg 12 e o algoritmo de classificação linear do Baker 3. Nossa técnica de seleção emprega um mecanismo de roleta para selecionar indivíduos probabilisticamente com base em seu desempenho. Um intervalo de intervalo de valor real é determinado como a soma dos valores de aptidão da linha em todos os indivíduos da população atual. Os indivíduos são então mapeados um a um em intervalos contíguos no intervalo 0, Soma. O tamanho de cada intervalo individual corresponde ao valor de aptidão do indivíduo associado. Para selecionar um indivíduo, um número aleatório é gerado no intervalo 0, Soma e o indivíduo cujo segmento abrange o número aleatório selecionado. Este processo é repetido até que o número desejado de indivíduos tenha sido selecionado 26. Esses candidatos foram autorizados a participar de um cruzamento aritmético, o procedimento que recombina candidatos promissores para criar a próxima geração. Essas etapas foram repetidas até que um critério bem definido seja satisfeito. Como o GA é um método de busca estocástica, é difícil especificar formalmente os critérios de convergência. Como a aptidão da população pode permanecer estática para um número de gerações antes que um indivíduo superior seja encontrado, a aplicação de critérios de terminação convencionais torna-se problemática. Como resultado, propomos a realização de um número específico de iterações como critério de rescisão. Nosso algoritmo genético pode ser apresentado no quadro a seguir: 5 Resultados empíricos Nesta seção, aplicamos nossa metodologia em um fundo mútuo UBS que investir em mercados de ações emergentes. 2 Os dados analisados consistem em 2800 observações sobre os preços de fechamento diários desse fundo para o período 159825604. O período de otimização é definido entre 1598 e 25603. O sistema otimizado foi avaliado através do período prolongado 2560325604. O problema de otimização é definido para determinar o Comprimentos ótimos do indicador Dimbeta e sua média móvel para o modelo Dimbeta simples que maximizará os lucros. Em primeiro lugar, o efeito de diferentes configurações de parâmetros GA será estudado. Mais especificamente, estamos interessados em medir o efeito do tamanho da população e do parâmetro crossover no desempenho do procedimento de otimização baseada em algoritmos genéticos. Com base nas recomendações de Goldbergs 12 e Bauers 4, o tamanho da população deve ser igual a 30 e a taxa de cruzamento deve ser de 0,6 (valores padrão). O número de iterações foi definido para 300 para todas as simulações. Em segundo lugar, comparamos as soluções de problema de otimização conduzidas por diferentes ferramentas de software para medir a validade do GATradeTool proposto. A Tabela 1 fornece os resultados de otimização GA para diferentes tamanhos de populações. A primeira linha da tabela mostra os melhores parâmetros para o indicador Dimbeta e a média móvel de Dimbeta. Para medir o efeito do tamanho da população na melhor solução, examinamos uma série de estatísticas diferentes. A solução com o retorno máximo e mínimo, o retorno médio, o desvio padrão dessas soluções, o tempo necessário para a convergência do algoritmo e um índice de eficiência calculado pela divisão da solução de retorno máximo pelo desvio padrão das soluções. Tabela 1. Efeito do tamanho da população Ao olhar para a Tabela 1, podemos dizer que, enquanto você aumentar o tamanho da população, a melhor e a média das soluções são maiores. No entanto, após um tamanho de população de 30, o desempenho diminuiu. Para levar em consideração os custos computacionais envolvidos desde o aumento do tamanho da população, calculamos o tempo necessário para resolver o problema. O baixo tamanho da população leva ao baixo desempenho e ao menor tempo de conclusão. De acordo com o índice de eficiência, a melhor solução é a que é dada pelo tamanho da população 20. Para estabelecer um desempenho básico do algoritmo, realizaram-se 30 ensaios da GA, com uma população inicial aleatória diferente para cada ensaio. FIG. 1a. Mostra como o desempenho melhorou ao longo do tempo ao traçar a média de aptidão máxima como porcentagem do valor ideal em relação ao número de geração. Primeiro capturamos o valor máximo de aptidão para cada um dos 30 ensaios, isto é feito para cada geração e cada teste. Em seguida, calculamos a média dos valores máximos de aptidão e dividimos esse número pelo valor ideal de aptidão, que foi obtido por busca enumerativa (ferramenta FinTrade, 23), o que nos deu a média de aptidão máxima como porcentagem do valor ótimo por geração. FIG. 1a. Configurações do parâmetro base: porcentagem do ótimo. Como pode ser visto na Fig. 1a. A aptidão máxima média da primeira geração é de cerca de 74 do valor ótimo. No entanto, na quinquagésima geração, o algoritmo geralmente encontrou pelo menos uma solução que estava dentro de 90 do valor ótimo. Após a quinquagésima geração, a solução poderia atingir 98 do valor ótimo. Com as medidas de desempenho de nossas configurações básicas como um ponto de referência, examinamos as possíveis variações no procedimento básico. Estudamos o efeito das mudanças no tamanho da população e na taxa de cruzamento. Para cada configuração de parâmetro diferente, realizamos 30 ensaios do algoritmo e comparamos os gráficos da média de aptidão máxima com os obtidos para a configuração da base. Primeiro, tentamos taxas de cruzamento de 0,4 e 0,8. Os resultados são mostrados na figura. 1b e Fig. 1c. Que são semelhantes à Fig. 1a. Como resultado, os parâmetros de cruzamento não afetam a solução ideal para um grau crítico. No entanto, os resultados são diferentes quando alteramos o tamanho da população. De acordo com a Fig. 1d e Fig. 1e. Com um pequeno tamanho da população, tivemos resultados mais pobres do que com uma grande população. Quando selecionamos 80 como tamanho da população, obtivemos altos retornos nas primeiras gerações. FIG. 1b. Crossover 0.40: percentagem do ótimo. FIG. 1c. Crossover 0.80: percentagem do ótimo. FIG. 1d. População 80: porcentagem do ótimo. FIG. 1e. População 20: porcentagem do ótimo. Ao analisar a Tabela 2, você pode comparar os resultados da otimização do nosso sistema comercial usando três ferramentas de software diferentes. A primeira linha dá o resultado para o GATradeTool contra o Metastock e o FinTradeTool 23. Nossa ferramenta de software proposto (GATradeToo l) pode resolver o problema de otimização muito rápido sem quaisquer restrições específicas sobre o número de testes totais. O número máximo de testes que podem ser realizados no software Metastock é de 32 000. O FinTradeTool precisa de muito mais tempo para encontrar a solução ideal. A solução fornecida pelo GATradeTool. Está perto da solução ideal do FinTradeTool. Tabela 2. Comparação de três ferramentas de software diferentes Parâmetros otimizados (Dimbeta. MovAv (DimBeta)) Os sistemas de negociação com os parâmetros ótimos que foram encontrados no período 159825603 foram testados no período de avaliação 2560325604. O desempenho do nosso sistema comercial foi aumentado Em todas as ferramentas de software. No entanto, o custo do tempo deve ser considerado muito serio (coluna 4). FIG. 2 retrata a evolução do retorno máximo, mínimo e médio nas 300 gerações para o sistema de comércio Dimbeta (tamanho da população 80, taxa de cruzamento 0,6). Pode-se observar que o retorno máximo tem uma tendência positiva. Parece ser relativamente estável após 150 gerações e se move no intervalo entre 1,2 e 1 (isto é, retorno 120100). Para a aptidão mínima, nenhum padrão parece existir. Para o retorno médio da população, uma clara tendência ascendente pode ser encontrada nas primeiras 180 gerações, isso é uma indicação de que a aptidão geral da população melhora ao longo do tempo. Quanto à volatilidade das soluções, o desvio padrão das soluções após um aumento nas primeiras gerações estabiliza em uma faixa entre 0,3 e 0,6, fornecendo evidências de um conjunto estável e eficiente de soluções. FIG. 2. Evolução de várias estatísticas ao longo de 300 gerações. FIG. 3 fornece uma trama tridimensional das soluções ótimas fornecidas pelo GATradeTool. Nos eixos e temos os parâmetros, para o indicador dimbeta e sua média móvel. O eixo 2 mostra o retorno do sistema de negociação Dimbeta para os parâmetros ótimos selecionados. Como pode ser facilmente entendido, nossa ferramenta fornece uma área de soluções ótimas em contraste com o FinTradeTool que fornece apenas a melhor solução. FIG. 3. Um gráfico 3-D da área ideal. 6 Conclusões Embora a análise técnica seja amplamente utilizada como uma abordagem de investimento entre profissionais ou acadêmicos, elas raramente são focadas na questão da otimização de parâmetros. Não é nosso papel defender a análise técnica aqui, embora nossos resultados mostrem que existe alguma previsibilidade no fundo mútuo do UBS que investir em mercados de ações emergentes com base somente em dados históricos. Nosso objetivo principal neste artigo é ilustrar que a nova tecnologia do MATLAB pode ser usada para implementar uma ferramenta de algoritmo genético que possa melhorar a otimização de sistemas de negociação técnica. Nossos resultados experimentais mostram que o GATradeTool pode melhorar o comércio digital, fornecendo rapidamente um conjunto de soluções próximas do melhor. Quanto ao efeito de diferentes configurações de parâmetros GA, descobrimos que um aumento no tamanho da população pode melhorar o desempenho do sistema. O parâmetro da taxa de cruzamento não afeta seriamente a qualidade da solução. Ao comparar as soluções do problema de otimização realizadas por diferentes ferramentas de software, descobrimos que o GATradeTool pode funcionar melhor, fornecendo um conjunto de soluções ótimas que apresentam consistência durante todo o período de avaliação. Finalmente, seria interessante pesquisar mais para testar uma série de sistemas diferentes para ver a correlação entre um algoritmo genético e os desempenhos do sistema. Em um momento de mudanças freqüentes nos mercados financeiros, pesquisadores e comerciantes podem facilmente testar seus sistemas específicos no GATradeTool, alterando apenas a função que produz os sinais comerciais. Agradecimentos Este trabalho de pesquisa foi parte da pesquisa pós-doutoral do Dr. S. Papadamou que foi financiada pela IKY Greek State Scholarships Foundation. Referências 1 F. Allen. R. Karjalainen Usando algoritmos genéticos para encontrar regras comerciais comerciais Journal of Financial Economic. Volume 51. 1999. pp. 245271 2 H. L. Allen. M. P. Taylor O uso da análise técnica no mercado cambial Journal of International Money and Finance. Volume 11. 1992. pp. 303314 3 J. E. Baker, Métodos de seleção adaptativa para algoritmos genéticos, em: Procedimentos da primeira Conferência Internacional sobre Algoritmos Genéticos, 1985, pp. 101111 4 R. J. Bauer. G. E. Liepins Algoritmos genéticos e estratégias de negociação informatizadas Expert Systems in Finance. D. E. OLeary. P. R. Watkins. 1992. Elsevier Science Publishers, Amsterdã, Holanda 5 R. J. Bauer Jr. Algoritmos genéticos e estratégias de investimento 1994. John Wiley amp Sons, Inc, Nova York 6 W. Brock. J. Lakonishok. B. LeBaron Regras de negociação técnica simples e as propriedades estocásticas dos retornos de ações Journal of Finance. Volume 47. 1992. pp. 17311764 7 S. Brown. W. Goetzmann. R. Ibbotson. S. Ross Sobrevida em sobrevivência em estudos de desempenho Revisão de Estudos Financeiros. Volume 5. 1992. pp. 553580 8 S. Brown. W. Goetzmann. S. Ross Survival Journal of Finance. Volume 50. 1995. pp. 853873 9 Y. W. Cheung. C. Y.P. Wong O desempenho das regras de negociação em quatro taxas de câmbio de moeda asiática Multinational Finance Journal. Volume 1. 1997. pp. 122 10 K. De Jong, Uma análise do comportamento de uma classe de sistemas adaptativos genéticos, Ph. D. Diss. University of Michigan, University Microfilms No. 76-9381, 1975 11 F. Fernndez-Rodrguez, C. Gonzlez-Martel, S. Sosvilla-Rivero, Otimização de Regras Técnicas por Algoritmos Genéticos: Evidências do Mercado de Valores de Madrid, Working Papers 2001 -14, FEDEA, 2001. ftp: ftp. fedea. espubPapers2001dt2001-14.pdf 12 DE Algoritmos genéticos de Goldberg em busca, otimização e aprendizado de máquina 1989. Addison-Wesley 13 J. H. Adaptação da Holanda ao Sistema Natural e Artificial 1975. University of Michigan Press 14 N. Jegadeesh. S. Titman Retorna para comprar vencedores e vender perdedores: Implicações para a eficiência do mercado de ações Journal of Finance. Volume 48. Issue 1. 1993. pp. 6591 15 P. J. Kaufman Os Novos Sistemas e Métodos de Negociação de Mercadorias 1987. John Wiley amp Sons 16 B. N. Lehmann Fad, martingales e eficiência do mercado Quarterly Journal of Economics. Volume 105. 1990. pp. 128 17 A. W. Lo. A. C. MacKinlay Quando são lucros contrários devido à revisão exagerada do mercado de ações Review of Financial Studies. Volume 3. 1990. pp. 175206 18 S. Mahfoud. G. Mani Previsão financeira usando algoritmos genéticos Journal of Applied Artificial Intelligence. Volume 10. Edição 6. 1996. pp. 543565 19 R. N. Markellos Backtesting trading systems Jornal de Inteligência Computacional em Finanças. Volume 5. Edição 6. 1997. pp. 510 20 L. Menkhoff. M. Schlumberger Persistência de rentabilidade da análise técnica sobre mercados de câmbio BNL Quarterly Review. Volume 193. 1995. pp. 189216 21 C. Neely, P. Weller, R. Ditmar, A análise técnica no mercado de câmbio é rentável Uma abordagem de programação genética, em: C. Dunis, B. Rustem, (Eds.), Proceedings, Forecasting Financial Markets: Adiantamentos para Taxas de Câmbio, Taxas de Juros e Gestão de Ativos, Londres, 1997 22 M. Oussaidene. B. Chopard. O. Pictet. M. Tomassini Aspectos e experiências práticas Programação genética paralela e sua aplicação à indução do modelo de negociação Journal of Parallel Computing. Volume 23. Edição 8. 1997. pp. 11831198 23 S. Papadamou. G. Stephanides Uma nova caixa de ferramentas baseada em matlab para o comércio técnico dinâmico auxiliado por computador Financial Engineering News. Emissão 31. 2003 24 S. Papadamou. S. Tsopoglou Investigar a rentabilidade dos sistemas de análise técnica no mercado de câmbio Finanças Gerenciais. Volume 27. Edição 8. 2001. pp. 6378 25 F. M. Werner. D. Bondt. R. Thaler Mais evidências sobre a reação exagerada dos investidores e a sazonalidade do mercado de ações Journal of Finance. D. Whitley, o algoritmo Genitor e a pressão de seleção: por que as atribuições baseadas em rankings de ensaios reprodutivos são melhores, em: Procedimentos da Terceira Conferência Internacional sobre Algoritmos Genéticos, 1989, págs. 42. Issue 42. Issue 3. 1987. pp. 557581 26 116121 Cronômetro aritmético de ponto único, envolve cortar aleatoriamente duas cordas na mesma posição de corda determinada aleatoriamente e depois trocar as porções da cauda. O Crossover amplia a busca de novas soluções em direções de longo alcance. A estrutura deste fundo e sua posição principal em 2562004 estão representadas na figura a seguir. Copyright 2007 Elsevier Ltd. Todos os direitos reservados. Milhões de engenheiros e cientistas de todo o mundo usam o MATLAB para analisar e projetar os sistemas e produtos que transformam nosso mundo. O MATLAB está em sistemas de segurança ativa de automóveis, naves espaciais interplanetárias, dispositivos de monitoramento de saúde, redes elétricas inteligentes e redes celulares LTE. Ele é usado para aprendizagem de máquina, processamento de sinal, processamento de imagem, visão por computador, comunicações, finanças computacionais, design de controle, robótica e muito mais. Matemática. Gráficos. Programação. A plataforma MATLAB é otimizada para a resolução de problemas científicos e de engenharia. A linguagem MATLAB baseada em matriz é a maneira mais natural do mundo de expressar matemática computacional. Os gráficos incorporados facilitam a visualização e obtenção de informações dos dados. Uma vasta biblioteca de caixas de ferramentas pré-construídas permite que você comece imediatamente com algoritmos essenciais para o seu domínio. O ambiente de trabalho convida a experimentação, exploração e descoberta. Essas ferramentas e capacidades MATLAB são rigorosamente testadas e projetadas para funcionarem juntas. Escala. Integrar. Implantar. O MATLAB ajuda você a tirar suas idéias além da área de trabalho. Você pode executar suas análises em conjuntos de dados maiores e ampliar até clusters e nuvens. O código MATLAB pode ser integrado com outros idiomas, permitindo que você implante algoritmos e aplicativos dentro de sistemas de web, empresa e produção. Descubra o que você pode fazer com MATLAB. Escolha a demonstração do seu sistema de negociação na sua época. Se você é novo aqui, você pode se inscrever no feed RSS ou no feed de e-mail para obter atualizações sobre tópicos de Matlab indocumentados. Em 23 de maio de 2013, dei uma apresentação na MATLAB Computational Finance Conference, em Nova York. O quarto estava cheio com cerca de 200 profissionais do setor financeiro. A energia e o feedback foram tremendos, foi uma ótima experiência. Se você veio à conferência, obrigado por ser uma ótima audiência. Em 19 de setembro de 2013, dei uma variação dessa apresentação na Conferência virtual MATLAB Computational Finance. A apresentação (formato PDF) é fornecida aqui. A gravação de vídeo está disponível aqui. Em ambos os casos, apresentei um aplicativo de demonstração que mostrava como a Matlab pode ser usada para criar um sistema comercial completo de ponta a ponta, destacando o potencial de Matlab8217s como uma plataforma de escolha. Utilizei Interactive Brokers para demonstrar o feed de dados do mercado ao vivo e a entrada da conta, bem como para enviar ordens de negociação ao mercado, através do conector IB-Matlab: o algoritmo de negociação usado na demonstração é trivialmente simplista (aleatório). Em um sistema da vida real você naturalmente o substituirá por seu próprio algoritmo proprietário. Mas sinta-se livre para usar essa demonstração como ponto de partida para sua aplicação. O código fonte de demonstração é fornecido aqui (tradingDemo. m e arquivos de suporte). Observe que isso é fornecido como é, sem custo, mas sem qualquer garantia ou suporte. Você naturalmente precisaria do IB-Matlab e de uma conta Interactive Brokers para executá-lo. Espero que possamos trabalhar juntos em seus projetos. Envie-me um e-mail se você quiser minha ajuda em qualquer trabalho de consultoria, treinamento ou desenvolvimento. 4 Respostas à demonstração do sistema de negociação em tempo real Tentei a rota Activex antes de comprar o produto. Existe uma grande falha fundamental quando se trata de usar ActiveX com Matlab. Digamos que você está executando um algoritmo e está processando uma função e, ao mesmo tempo, o TWS dispara um Evento. Se você usar o ActiveX, o MATLAB NÃO atualizará o preço até que o processamento de sua função seja concluído. Portanto, vários eventos serão perdidos e o preço que você estaria procurando seria diferente. Enquanto na JAVA. Não existe esse problema. Como qualquer evento disparado será imediatamente capturado pelo java que está sendo executado em segundo plano. Então, quando você chama getLastPrice, você receberá o preço correto. Outra falha é, obviamente, o fato de que você pode usar ActiveX SOMENTE com WINDOWS. Considerando que, com a JAVA, você pode usá-lo com Windows, Mac, Linux etc. Não é uma boa idéia transmitir nos dados do Live Trades, pois ele entra no MATLAB. Imagine, você tem 100 símbolos, que atualizam todos os 200 milhas de hora, então você tem um evento comercial tão rápido e sendo capturado e armazenado no Matlab. Devido ao problema de um único thread de MATLAB8217, alguns tiques de Trades serão perdidos e também comerão sua memória. Então, tudo o que você poderá fazer é apenas transmitir em dados e não fazer mais nada. Kenan 8211, de fato, a API Java (que é usada pelo IB-Matlab) tem muitas vantagens em relação à API ActiveX (que é usada pela MathWorks8217 Trading Toolbox). Um dos resultados afortunados do uso do Java é que o IB-Matlab pode ser executado em todas as plataformas que executam o Matlab (Windows, Mac, Linux), uma vez que todas essas plataformas possuem Java e um cliente do IB TWS. A API Java também é muito mais rápida e confiável (o conector ActiveX é relatado como sendo lançado eventos IB de vez em quando). Em relação à latência de citações de transmissão, isso depende da volatilidade de segurança, do número de títulos monitorados, da largura de banda da rede, do hardware do computador, de outros processos em execução no computador e de uma ampla gama de outros aspectos que podem afetar o desempenho. Em um laptop Lenovo Thinkpad E530 padrão que executa o Matlab R2013a no Win7, cheguei a uma latência de citação de streaming tão baixa quanto 1-2 mSec (ou seja, centenas de eventos do IB por segundo). Naturalmente, YMMV. Marco Ruijken diz:
No comments:
Post a Comment