Automated Forex Trading Algoritmos Exemplos




Nocoes basicas de negociacao algoritmica: conceitos e exemplos Um algoritmo e um conjunto especifico de instrucoes claramente definidas destinadas a realizar uma tarefa ou processo. A negociacao algoritmica (negociacao automatizada, negociacao em caixa preta ou simplesmente negociacao de algo) e o processo de utilizacao de computadores programados para seguir um conjunto definido de instrucoes para colocar um negocio a fim de gerar lucros a uma velocidade e frequencia que e impossivel para um Comerciante humano. Os conjuntos de regras definidos baseiam-se em tempo, preco, quantidade ou qualquer modelo matematico. Alem de oportunidades de lucro para o comerciante, algo-trading torna os mercados mais liquidos e torna a negociacao mais sistematica, excluindo impactos humanos emocionais sobre as atividades de negociacao. Suponha que um comerciante segue estes criterios comerciais simples: Compre 50 acoes de uma acao quando sua media movel de 50 dias ultrapassa a media movel de 200 dias Vender acoes da acao quando sua media movel de 50 dias fica abaixo da media movel de 200 dias Usando este conjunto de duas instrucoes simples, e facil escrever um programa de computador que ira monitorar automaticamente o preco das acoes (e os indicadores de media movel) e colocar as ordens de compra e venda quando as condicoes definidas forem atendidas. O comerciante ja nao precisa de manter um relogio para precos e graficos vivos, ou por nas ordens manualmente. O sistema de negociacao algoritmica automaticamente faz isso para ele, identificando corretamente a oportunidade de negociacao. Algo-trading oferece os seguintes beneficios: Trades executados nos melhores precos possiveis Instant e exata colocacao da ordem de comercio (assim altas chances de execucao nos niveis desejados) Trades Temporizado corretamente e instantaneamente, para evitar mudancas significativas de precos Custos de transacao reduzidos (veja o exemplo de insuficiencia de implementacao abaixo) Verificacoes automaticas simultaneas em varias condicoes de mercado Reducao do risco de erros manuais na colocacao das operacoes Backtest o algoritmo, com base em dados historicos e em tempo real reduzidos Reduzido A possibilidade de erros por comerciantes humanos com base em fatores emocionais e psicologicos A maior parte do atual dia algo-negociacao e de alta frequencia de negociacao (HFT), que tenta capitalizar sobre a colocacao de um grande numero de ordens em velocidades muito rapidas em varios mercados e multiplas decisoes Parametros, com base em instrucoes pre-programadas. Algo-trading e usado em muitas formas de negociacao e atividades de investimento, incluindo: Investidores de medio a longo prazo ou empresas de compra de lado (fundos de pensao , Fundos mutuos, companhias de seguros) que compram em acoes em grandes quantidades, mas nao querem influenciar os precos das acoes com investimentos discretos de grande volume. Os comerciantes de curto prazo e os participantes do lado da venda (fabricantes de mercado, especuladores e arbitradores) beneficiam-se da execucao automatizada do comercio alem, de algo-negociar ajudas em criar liquidez suficiente para vendedores no mercado. Os comerciantes sistematicos (seguidores de tendencias, comerciantes de pares, fundos de hedge, etc.) acham muito mais eficiente programar suas regras de negociacao e deixar o programa trocar automaticamente. A negociacao algoritmica proporciona uma abordagem mais sistematica ao comercio ativo do que metodos baseados em intuicao ou instinto de comerciantes humanos. Estrategias Algoritmicas de Negociacao Qualquer estrategia para negociacao algoritmica requer uma oportunidade identificada que seja rentavel em termos de ganhos melhorados ou reducao de custos. As estrategias de negociacao comuns usadas em algo-trading sao as seguintes: As estrategias de negociacao algoritmicas mais comuns seguem as tendencias em medias moveis. Canal breakouts. Movimentos de nivel de precos e indicadores tecnicos relacionados. Estas sao as estrategias mais faceis e mais simples de implementar atraves de negociacao algoritmica, porque essas estrategias nao envolvem fazer previsoes ou previsoes de precos. Os negocios sao iniciados com base na ocorrencia de tendencias desejaveis. Que sao faceis e simples de implementar atraves de algoritmos sem entrar na complexidade da analise preditiva. O exemplo acima mencionado de media movel de 50 e 200 dias e uma tendencia popular seguindo a estrategia. Comprar uma acao cotada dual a um preco mais baixo em um mercado e vende-lo simultaneamente a um preco mais elevado em um outro mercado oferece o diferencial do preco como o lucro sem risco Ou arbitragem. A mesma operacao pode ser replicada para acoes versus instrumentos de futuros, ja que existem diferenciais de precos de tempos em tempos. Implementar um algoritmo para identificar tais diferenciais de precos e colocar as ordens permite oportunidades rentaveis ??de forma eficiente. Os fundos de indice definiram periodos de reequilibrio para trazer as suas participacoes a par com os respectivos indices de referencia. Isso cria oportunidades lucrativas para os comerciantes algoritmicos, que capitalizar sobre os negocios esperados que oferecem 20-80 pontos-base de lucros, dependendo do numero de acoes no fundo de indice, pouco antes do rebalanceamento do fundo indice. Tais negociacoes sao iniciadas atraves de sistemas de negociacao algoritmica para execucao atempada e melhores precos. Um monte de modelos matematicos comprovados, como a estrategia de negociacao delta neutro, que permitem negociacao na combinacao de opcoes e sua seguranca subjacente. Onde os negocios sao colocados para compensar deltas positivos e negativos de modo que o delta da carteira seja mantido em zero. A estrategia de reversao media baseia-se na ideia de que os precos altos e baixos de um ativo sao um fenomeno temporario que revertem para seu valor medio periodicamente. Identificar e definir uma faixa de preco e algoritmo de implementacao com base em que permite que os comercios sejam colocados automaticamente quando o preco do ativo entrar e sair do seu intervalo definido. Volume ponderada estrategia de preco medio quebra uma grande ordem e libera dinamicamente determinados pedacos menores da ordem para o mercado usando os perfis de volume historico especifico do estoque. O objetivo e executar a ordem proxima ao Preco Medio Ponderado pelo Volume (VWAP), beneficiando assim o preco medio. A estrategia de preco medio ponderado pelo tempo rompe uma grande ordem e libera blocos menores determinados dinamicamente da ordem para o mercado usando intervalos de tempo uniformemente divididos entre uma hora de inicio e uma de fim. O objetivo e executar a ordem perto do preco medio entre o inicio eo fim, minimizando assim o impacto no mercado. Ate que a ordem de negociacao seja totalmente preenchida, este algoritmo continua enviando ordens parciais, de acordo com a proporcao de participacao definida e de acordo com o volume negociado nos mercados. A estrategia de passos relacionados envia ordens a uma percentagem definida pelo utilizador dos volumes de mercado e aumenta ou diminui esta taxa de participacao quando o preco da accao atinge niveis definidos pelo utilizador. A estrategia de deficit de implementacao visa minimizar o custo de execucao de uma ordem, trocando o mercado em tempo real, economizando assim o custo da ordem e beneficiando do custo de oportunidade da execucao atrasada. A estrategia vai aumentar a taxa de participacao alvo quando o preco das acoes se move favoravelmente e diminui-lo quando o preco das acoes se move adversamente. Existem algumas classes especiais de algoritmos que tentam identificar acontecimentos no outro lado. Esses algoritmos de sniffing, usados, por exemplo, por um fabricante de mercado de sell side tem a inteligencia interna para identificar a existencia de quaisquer algoritmos no lado de compra de uma grande ordem. Essa deteccao por meio de algoritmos ajudara o criador de mercado a identificar grandes oportunidades de pedidos e permitir que ele se beneficie ao preencher os pedidos a um preco mais alto. Isso as vezes e identificado como front-running de alta tecnologia. Requisitos tecnicos para negociacao algoritmica Implementar o algoritmo usando um programa de computador e a ultima parte, bateu com backtesting. (Para mais sobre negociacao de alta frequencia e praticas fraudulentas, consulte: Se voce comprar acoes on-line, voce esta envolvido em HFTs. O desafio e transformar a estrategia identificada em um processo informatizado integrado que tenha acesso a uma conta comercial para a colocacao de encomendas. Sao necessarios os seguintes: Conhecimento de programacao de computadores para programar a estrategia de negociacao necessaria, programadores contratados ou software de negociacao pre-fabricado Conectividade de rede e acesso a plataformas de negociacao para colocar as ordens Acesso a feeds de dados de mercado que serao monitorados pelo algoritmo para oportunidades de colocar Ordens A capacidade ea infra-estrutura para backtest o sistema uma vez construido, antes de ir viver em mercados reais Dados historicos disponiveis para backtesting, dependendo da complexidade das regras implementadas no algoritmo Aqui esta um exemplo abrangente: Royal Dutch Shell (RDS) esta listado em Amsterdam Bolsa de Valores (AEX) e Bolsa de Valores de Londres (LSE). Permite construir um algoritmo para identificar oportunidades de arbitragem. Aqui estao algumas observacoes interessantes: AEX negocia em Euros, enquanto LSE negocia em libras esterlinas Devido a diferenca de hora de uma hora, AEX abre uma hora mais cedo do que LSE, seguido por ambas as trocas que negociam simultaneamente por proximas horas e entao negociando somente em LSE durante A ultima hora a medida que a AEX fecha Podemos explorar a possibilidade de negociacao de arbitragem sobre as acoes da Royal Dutch Shell listadas nesses dois mercados em duas moedas diferentes Um programa de computador que pode ler os precos atuais do mercado Alimentacoes de precos tanto da LSE quanto da AEX A forex rate feed for Taxa de cambio GBP-EUR Ordem de capacidade de colocacao que pode encaminhar a ordem para a troca correta Capacidade de back-testing em feeds de precos historicos O programa de computador deve executar o seguinte: Leia o feed de precos de entrada de acoes RDS de ambas as camaras Usando as taxas de cambio disponiveis . Converter o preco de uma moeda para outra Se houver uma discrepancia de preco suficientemente grande (descontando os custos de corretagem) levando a uma oportunidade lucrativa, entao coloque a ordem de compra em cambio de menor preco e venda na ordem de cambio mais alta Se as ordens forem executadas como Desejado, o lucro de arbitragem seguira Simples e Facil No entanto, a pratica de negociacao algoritmica nao e tao simples de manter e executar. Lembre-se, se voce pode colocar um comercio algo-gerado, assim que os outros participantes do mercado. Consequentemente, os precos flutuam em milissegundos e ate em microssegundos. No exemplo acima, o que acontece se o seu comercio comprar e executado, mas vender o comercio doesnt como os precos de venda mudar no momento em que sua ordem atinge o mercado Voce vai acabar sentado com uma posicao aberta. Tornando sua estrategia de arbitragem inutil. Ha riscos e desafios adicionais: por exemplo, riscos de falha de sistema, erros de conectividade de rede, intervalos de tempo entre ordens de negociacao e execucao e, o mais importante de tudo, algoritmos imperfeitos. Quanto mais complexo for um algoritmo, o backtesting mais rigoroso e necessario antes de ser colocado em acao. A analise quantitativa do desempenho de um algoritmo desempenha um papel importante e deve ser examinada criticamente. Sua emocionante para ir para a automacao auxiliado por computadores com uma nocao de fazer dinheiro sem esforco. Mas um deve certificar-se que o sistema e testado completamente e os limites requeridos sao ajustados. Os comerciantes analiticos devem considerar a aprendizagem de programacao e sistemas de construcao por conta propria, para ter certeza de implementar as estrategias certas de forma infalivel. Uso cauteloso e testes minuciosos de algo-trading pode criar oportunidades rentaveis. Strategies for Forex Algorithmic Trading Como resultado da recente controversia, o mercado cambial tem sido sob escrutinio aumentado. Quatro grandes bancos foram considerados culpados de conspirar para manipular as taxas de cambio, o que prometeu aos comerciantes receitas substanciais com risco relativamente baixo. Em particular, os maiores bancos mundiais concordaram em manipular o preco do dolar dos EUA e do euro de 2007 a 2013. O mercado de cambio e notavelmente desregulado apesar de lidar com 5 trilhoes de dolares de transacoes por dia. Como resultado, os reguladores tem instado a adocao de negociacao algoritmica. Um sistema que utiliza modelos matematicos em uma plataforma eletronica para executar negocios no mercado financeiro. Devido ao alto volume de transacoes diarias, negociacao algoritmica forex cria maior transparencia, eficiencia e elimina vies humano. Uma serie de diferentes estrategias podem ser perseguidos por comerciantes ou empresas no mercado forex. Por exemplo, a cobertura automatica refere-se a utilizacao de algoritmos para cobrir o risco da carteira ou para compensar posicoes de forma eficiente. Alem da auto-cobertura, estrategias algoritmicas incluem negociacao estatistica, execucao algoritmica, acesso direto ao mercado e negociacao de alta frequencia, tudo isso pode ser aplicado a transacoes de forex. Auto Hedging Ao investir, hedging e uma maneira simples de proteger seus ativos de perdas significativas, reduzindo o montante que voce pode perder se ocorrer algo inesperado. Na negociacao algoritmica, hedging pode ser automatizado, a fim de reduzir a exposicao de um comerciante a risco. Estas ordens de cobertura geradas automaticamente seguem modelos especificos para gerir e monitorizar o nivel de risco de uma carteira. Dentro do mercado forex, os principais metodos de cobertura de negocios sao atraves de contratos a vista e opcoes de moeda. Os contratos a vista sao a compra ou venda de uma moeda estrangeira com entrega imediata. O mercado spot fprex cresceu significativamente desde o inicio dos anos 2000 devido ao influxo de plataformas algoritmicas. Em particular, a rapida proliferacao da informacao, tal como reflectida nos precos de mercado, permite que surjam oportunidades de arbitragem. As oportunidades de arbitragem ocorrem quando os precos da moeda ficam desalinhados. Arbitragem triangular. Como e conhecido no mercado forex, e o processo de conversao de uma moeda de volta para si mesmo atraves de varias moedas diferentes. Os comerciantes algoritmicos e de alta frequencia so podem identificar essas oportunidades por meio de programas automatizados. Como um derivado. As opcoes do forex operam-se em uma maneira similar como uma opcao em outros tipos de segurancas. As opcoes em moeda estrangeira dao ao comprador o direito de comprar ou vender o par de moedas a uma determinada taxa de cambio em algum momento no futuro. Programas de computador tem opcoes binarias automatizadas como uma forma alternativa de hedge de negocios em moeda estrangeira. As opcoes binarias sao um tipo de opcao onde os retornos tomam um de dois resultados: ou o comercio se instala em zero ou a um preco de exercicio pre-determinado. Analise estatistica No sector financeiro, a analise estatistica continua a ser uma ferramenta significativa na medicao dos movimentos de precos de uma garantia ao longo do tempo. No mercado forex, indicadores tecnicos sao usados ??para identificar padroes que podem ajudar a prever movimentos futuros de precos. O principio de que a historia se repete e fundamental para a analise tecnica. Uma vez que os mercados de FX operam 24 horas por dia, a quantidade robusta de informacoes aumenta, assim, a significancia estatistica das previsoes. Devido a crescente sofisticacao dos programas de computador, os algoritmos foram gerados de acordo com indicadores tecnicos, incluindo a convergencia media de convergencia (MACD) eo indice de forca relativa (RSI). Os programas algoritmicos sugerem momentos especificos em que as moedas devem ser compradas ou vendidas. Execucao Algoritmica A negociacao algoritmica requer uma estrategia executavel que os gestores de fundos possam usar para comprar ou vender grandes quantidades de ativos. Os sistemas de negociacao seguem um conjunto pre-especificado de regras e sao programados para executar uma ordem sob certos precos, riscos e horizontes de investimento. No mercado forex, o acesso direto ao mercado permite que os traders buy-side executem ordens de forex diretamente para o mercado. O acesso direto ao mercado ocorre atraves de plataformas eletronicas, o que muitas vezes reduz custos e erros de negociacao. Normalmente, a negociacao no mercado e restrita a corretores e criadores de mercado, no entanto, o acesso direto ao mercado fornece as empresas compradoras o acesso a infra-estrutura de venda, conferindo aos clientes maior controle sobre os negocios. Devido a natureza da negociacao algoritmica e os mercados de FX, a execucao da ordem e extremamente rapida, permitindo que os comerciantes aproveitem as oportunidades comerciais de curta duracao. Negociacao de alta frequencia Como o subconjunto mais comum de negociacao algoritmica, negociacao de alta frequencia tornou-se cada vez mais popular no mercado forex. Baseado em algoritmos complexos, a negociacao de alta frequencia e a execucao de um grande numero de transacoes em velocidades muito rapidas. Como o mercado financeiro continua a evoluir, velocidades de execucao mais rapidas permitem que os comerciantes para tirar proveito de oportunidades rentaveis ??no mercado cambial, um numero de estrategias de negociacao de alta frequencia sao projetados para reconhecer rentavel arbitragem e situacoes de liquidez. Fornecido ordens sao executadas rapidamente, os comerciantes podem alavancar arbitragem para bloquear em lucros sem risco. Devido a velocidade de negociacao de alta frequencia, arbitragem tambem pode ser feito atraves de precos spot e futuros dos mesmos pares de moedas. Os defensores da alta frequencia de negociacao no mercado de cambio destacar o seu papel na criacao de alto grau de liquidez e transparencia em comercios e precos. A liquidez tende a ser continua e concentrada, uma vez que existe um numero limitado de produtos em comparacao com as accoes. No mercado forex, as estrategias de liquidez visam detectar desequilibrios de ordem e diferencas de precos entre um determinado par de moedas. Um desequilibrio de ordem ocorre quando ha um numero excessivo de ordens de compra ou venda de um ativo ou moeda especifica. Neste caso, os comerciantes de alta frequencia agem como provedores de liquidez, ganhando o spread por arbitraging a diferenca entre o preco de compra e venda. A linha de fundo Muitos estao pedindo maior regulamentacao e transparencia no mercado cambial a luz dos recentes escandalos. A crescente adocao de sistemas de negociacao algoritmica forex pode efetivamente aumentar a transparencia no mercado forex. Alem da transparencia, e importante que o mercado cambial permaneca liquido com baixa volatilidade de precos. As estrategias de negociacao algoritmicas, tais como cobertura automatica, analise estatistica, execucao algoritmica, acesso direto ao mercado e negociacao de alta frequencia, podem expor inconsistencias de precos, que representam oportunidades lucrativas para os comerciantes. Neodyne Algoritmo Genetico em FOREX Trading Systems Usando Genetic Algorithm para criar rentavel FOREX Trading Estrategia. Algoritmo Genetico em Cortex Redes Neurais Software Feedforward Backpropagation Neural Network Aplicacao para computacoes geneticas baseado Forex trading. Este exemplo usa conceitos e ideias do artigo anterior, por isso leia Neural Network Genetic Algorithm em FOREX Trading Systems em primeiro lugar, embora nao seja obrigatorio. Sobre este texto Em primeiro lugar, leia o aviso de isencao de responsabilidade. Este e um exemplo de usar a funcionalidade de algoritmo genetico de Software de Redes Neurais de Cortex, nao um exemplo de como fazer negociacao rentavel. Eu nao sou seu guru, nem eu deveria ser responsavel por suas perdas. Cortex Neural Networks Software tem redes neurais nele, e FFBP discutimos antes e apenas uma maneira de escolher uma estrategia de negociacao forex. E uma boa tecnica, poderosa e quando aplicado corretamente, muito promicing. No entanto, ele tem um problema - para ensinar a Rede Neural. Precisamos saber a saida desejada. E bastante facil de fazer quando fazemos aproximacao de funcao, apenas tomamos o valor real de uma funcao, porque sabemos o que deve ser. Quando fazemos previsao de redes neurais. Nos usamos a tecnica (descrita em artigos anteriores) de ensinar a Rede Neural sobre a historia, novamente, se nos prevemos, digamos, uma taxa de cambio, sabemos (durante o treinamento) qual e a previsao correta. No entanto, quando estamos construindo um sistema de negociacao, nao temos ideia do que a decisao de negociacao correta e, mesmo se nos conhecemos a taxa de cambio Como a materia de fato, temos muitas estrategias de negociacao forex que podemos usar em qualquer ponto do tempo, e Precisamos encontrar um bom - como O que devemos alimentar como a saida desejada de nossa rede Neural Se voce seguiu o nosso artigo anterior, voce sabe, que temos traido para lidar com esse problema. Nos ensinamos a Rede Neural para fazer previsao de taxa de cambio (ou taxa de cambio baseado) e, em seguida, usou essa previsao para fazer negociacao. Entao, fora da parte de Rede Neural do programa, nos tomamos uma decisao sobre qual Rede Neural e a melhor. Algoritmos geneticos podem lidar com este problema diretamente, eles podem resolver o problema declarado como encontrar os melhores sinais comerciais. Neste artigo vamos usar o Cortex Neural Networks Software para criar tal programa. Usando Algoritmo Genetico Algoritmos Geneticos sao muito bem desenvolvidos, e muito diversificada. Se voce quiser aprender tudo sobre eles, sugiro que voce use a Wikipedia, como este artigo e apenas sobre o que Cortex Neural Networks Software pode fazer. Tendo Cortex Neural Networks Software. Nos podemos criar uma rede neural que toma alguma entrada, digamos, os valores de um indicador, e produz alguma saida, digamos, sinais de negociacao (comprar, vender, segurar.) E parar a perda ter niveis de lucro para posicoes a serem abertas. Claro, se nos semente desta Rede Neural s pesos ao acaso, os resultados comerciais serao terriveis. No entanto, vamos dizer que criamos uma duzia de tais NNs. Entao podemos testar o desempenho de cada um deles, e escolher o melhor, o vencedor. Esta foi a primeira geracao de NNs. Para continuar na segunda geracao, precisamos permitir que nosso vencedor procreate, mas para evitar a obtencao de copias identicas, vamos adicionar algum ruido aleatorio para seus pesos descententes. Na segunda geracao, temos nosso vencedor de primeira geracao e suas copias imperfeitas (mutadas). Vamos fazer o teste novamente. Teremos outro vencedor, que e melhor do que qualquer outra rede neural na geracao. E assim por diante. Simplesmente permitimos que os vencedores se reproduzam e eliminem os perdedores, assim como na evolucao da vida real, e obteremos nossa Rede Neural de melhor negociacao. Sem qualquer conhecimento previo sobre o que o sistema de negociacao (algoritmo genetico) deve ser semelhante. Rede Neural Algoritmo Genetico: Exemplo 0 Este e o primeiro exemplo de algoritmo genetico. E um muito simples. Vamos caminhar por ela passo a passo, para aprender todos os truques que os exemplos a seguir usarao. O codigo tem comentarios inline, por isso permite apenas concentrar-se em momentos-chave. Primeiro, criamos uma rede neural. Ele esta usando pesos aleatorios, e ainda nao foi ensinado. Entao, no ciclo, fazemos 14 copias dele, usando MUTATIONNN fumtion. Esta funcao faz uma copia de uma Rede Neural de origem. Adicionando valores aleatorios de 0 a (em nosso caso) 0,1 para todos os pesos. Nos mantemos alcas para resultar em 15 NNs em uma matriz, podemos faze-lo, como identificador e apenas um numero inteiro. A razao pela qual usamos 15 NNs nao tem nada a ver com negociacao: Cortex Neural Networks Software pode plotar ate 15 linhas em um grafico simultaneamente. Podemos usar diferentes abordagens para o teste. Primeiro, podemos usar o conjunto de aprendizado, tudo de uma so vez. Em segundo lugar, podemos testar, digamos, 12000 restricoes (de 100000), e percorrer o conjunto de aprendizado, do comeco ao fim. Isso tornara os aprendizes diferentes, pois iremos procurar redes neurais que sejam lucrativas em qualquer dado dado, nao apenas no conjunto. A segunda abordagem pode nos dar problemas, se os dados mudam, do comeco ao fim. Em seguida, a rede vai evoluir, obtendo a capacidade de comercio no final do conjunto de dados, e perder a capacidade de comercio no seu inicio. Para resolver esse problema, vamos pegar aleatorios 12000 registros fragmentos de dados, e alimenta-lo para a Rede Neural. E simplesmente um ciclo infinito, ja que 100000 ciclos nunca serao alcancados a nossa velocidade. Abaixo adicionamos uma crianca para cada rede, com pesos ligeiramente diferentes. Note que 0,1 para mutacao tange nao e a unica escolha, como a materia de fato, mesmo este parametro pode ser otimizado usando algoritmo genetico. Os NNs recem-criados sao adicionados apos 15 existentes. Desta forma, temos 30 NNs em uma matriz, 15 velhos e 15 novos. Entao vamos fazer o proximo ciclo de testes, e matar perdedores, de ambas as geracoes. Para fazer o teste, aplicamos a Rede Neural aos nossos dados, para produzir saidas e, em seguida, chamamos a funcao Teste, que usa essas saidas para simular a negociacao. Resultados de negociacao sao usados ??para deside, que NNs sao melhores. Usamos um intervalo de registros nLearn, de nStart para nStart nLearn, onde nStart e um ponto aleatorio dentro do conjunto de aprendizado. O codigo abaixo e um truque. A razao pela qual o usamos e para ilustrar o fato de que o algoritmo genetico pode criar algoritmos geneticos. Mas nao necessariamente sera o melhor, e tambem, sugerir, que podemos melhorar o resultado, se implicarmos algumas limitacoes para o processo de aprendizagem. E possivel, que o nosso sistema de comercio funciona muito bem em longos comercios, e muito pobre em curto, ou vice-versa. Se, digamos, longos comercios sao MUITO bons, este algoritmo genetico pode ganhar, mesmo com grandes perdas em negocios curtos. Para evita-lo, atribuimos mais peso aos negocios longos em negocios curtos e curtos em ciclos pares. Este e apenas um exemplo, nao ha garantia, que ele vai melhorar algo. Mais sobre isso abaixo, em discussao sobre correcoes. Tecnicamente, voce nao tem que faze-lo, ou pode torna-lo de forma diferente. Adicione lucro a uma matriz ordenada. Ele retorna uma posicao de insercao e, em seguida, usamos essa posicao para adicionar identificador de rede neural, aprendendo e testando lucros para matrizes nao ordenadas. Agora temos dados para a Rede Neural atual no mesmo indice de array que seu lucro. A ideia e chegar a matriz de NNs, classificados por rentabilidade. Como matriz e classifica por lucro, para remover 12 de redes, que sao menos rentaveis, so precisamos remover NNs 0 a 14 As decisoes de negociacao sao baseadas no valor de sinal de rede neural, a partir deste ponto de vista o programa e identico a exemplos de Artigo anterior. Estrategia de negociacao FOREX: Discutir o exemplo 0 Primeiro de tudo, vamos dar uma olhada em graficos. O primeiro grafico de lucro durante a primeira iteracao nao e bom em tudo, como seria de esperar, a Rede Neural perde dinheiro (imagem evolution00gen0.png copiada apos a primeira iteracao da pasta de imagens): A imagem para lucro no ciclo 15 e melhor, as vezes , Algoritmo genetico pode aprender muito rapido: No entanto, observe a saturacao em uma curva de lucro. E interessante tambem observar a forma como os lucros individuais mudam, tendo em mente que o numero da curva, digamos, 3 nem sempre e para a mesma Rede Neural. Como eles estao a nascer e terminou o tempo todo: Note tambem que o pequeno sistema de comercio automatizado forex e pobre em negocios curtos e muito melhor em longas, o que pode ou nao estar relacionado com o fato de que o dolar estava caindo em comparacao com Euros durante esse periodo. Tambem pode ter algo a ver com parametros do nosso indicador (talvez, precisamos periodo diferente para shorts) ou a escolha de indicadores. Aqui esta a historia apos 92 e 248 ciclos: Para nossa surpresa, o algoritmo genetico falhou completamente. Vamos tentar descobrir por que, e como ajudar a situacao. Primeiro de tudo, nao e cada geracao suposto ser melhor do que o previuos A resposta e nao, pelo menos nao dentro do modelo que usamos. Se tomarmos ENTIRE aprendizagem conjunto de uma vez, e usado repetidamente para ensinar NNs, entao sim, eles vao melhorar em cada geracao. Mas em vez disso, pegamos fragmentos aleatorios (12000 registros no tempo), e os usamos. Duas perguntas: por que o sistema falhou em fragmentos aleatorios do conjunto de aprendizagem, e por que havent usamos todo o conjunto de aprendizagem bem. Para responder a segunda pergunta, eu fiz. NNs realizado muito - no conjunto de aprendizagem. E falharam no teste ajustado, pela mesma razao falha quando nos usamos o aprendizado de FFPB. Dito de outra forma, nossos NNs ficaram sobre-especializados, aprenderam a sobreviver no ambiente que estao acostumados, mas nao fora dela. Isso acontece muito na natureza. A abordagem que nos tomamos em vez disso destinava-se a compensar isso, forcando NNs para executar bom em qualquer fragmento aleatorio do conjunto de dados, de modo que, esperamos, eles tambem poderiam executar em um conjunto de testes desconhecidos. Em vez disso, eles falharam nos testes e no conjunto de aprendizado. Imagine animais, vivendo em um deserto. Muito sol, sem neve. Este e um metafor para rizing mercado, como para NNs nossos dados desempenham o papel do ambiente. Os animais aprenderam a viver num deserto. Imagine animais, que vivem em um clima frio. Neve e sem sol. Bem, eles se ajustaram. No entanto, em nosso experimento, colocamos aleatoriamente nossas NNs em um deserto, na neve, na agua, nas arvores. Apresentando-os com diferentes fragmentos de dados (aleatoriamente aumentando, caindo, flat.). Animais morreram. Ou, para coloca-lo de forma diferente, nos selecionamos a melhor Rede Neural para o conjunto de dados aleatorios 1, que, digamos, foi para o mercado em alta. Em seguida, apresentamos, para os vencedores e seus filhos, uma queda nos dados dos mercados. NNs executado mal, que levou melhor de artistas pobres, talvez, uma das criancas mutantes, que perdeu a capacidade de comercio no mercado em ascensao, mas tem alguma capacidade de lidar com a queda de um. Entao nos giramos a tabela outra vez, e outra vez, nos comecamos o mais melhor performer - mas melhor entre executores pobres. Nos simplesmente nao damos NNs nossas chances de se tornar universal. Existem tecnicas que permitem que o algoritmo genetico aprenda novas informacoes sem perder o desempenho em informacoes antigas (afinal, os animais podem viver no verao e no inverno, assim a evolucao e capaz de lidar com as mudancas repetidas). Podemos discutir essas tecnicas mais tarde, embora este artigo e mais sobre o uso de Cortex Neural Networks Software. Do que sobre a construcao de um sistema de comercio automatizado forex bem sucedido. Algoritmo Genetico de Rede Neural: Exemplo 1 Agora e hora de falar sobre correcoes. Um algoritmo genetico simples que criamos durante a etapa anterior tem duas falhas importantes. Primeiro, ele nao negociou com lucro. E ok, podemos tentar usar o sistema parcialmente treinado (foi rentavel no inicio). A segunda falha e mais seria: nao temos controle sobre as coisas, que esse sistema faz. Por exemplo, ele pode aprender a ser rentavel, mas com grandes abaixamentos. E um fato bem conhecido, que na vida real, a evolucao pode otimizar mais de um parametro simultaneamente. Por exemplo, podemos obter um animal, que pode correr rapido E ser resistente ao frio. Por que nao tentar fazer o mesmo no nosso sistema de negociacao automatizado forex. Isso e quando usamos as correcoes, que nao sao nada, mas o conjunto de punicoes adicionais. Dizer, nosso sistema negocia com drawdown 0.5, enquanto nos queremos confirma-lo para 0 - 0.3 intervalo. Para dizer ao sistema que cometeu um erro, diminuimos seu lucro (um usado para determinar qual algoritmo genetico venceu) ao grau, que e proporcional ao tamanho de DD. Entao, o algoritmo de evolucao cuida do resto. Ha poucos fatores mais, que queremos levar em consideracao: podemos querer ter mais ou menos igual numero de operacoes de compra e venda, queremos ter mais de operacoes lucrativas, depois de falhas, podemos querer que o grafico de lucro Ser linear e assim por diante. Em evolution01.tsc implementamos um conjunto simples de correcoes. Em primeiro lugar, usamos um grande numero para um valor de correcao inicial. Multiplicamo-lo a um pequeno (geralmente, entre 0 e 1) valores, dependendo da punicao que queremos aplicar. Entao nos multiplicamos nosso lucro a esta correcao. Como resultado, o lucro e corrigido, para refletir o quanto o algoritmo genetico corresponde aos nossos outros criterios. Entao usamos o resultado para encontrar uma Rede Neural vencedora. Estrategia de negociacao FOREX: Discutir o exemplo 1 O exemplo 1 funciona muito melhor do que o exemplo 0. Durante os primeiros 100 ciclos, aprendeu muito e os graficos de lucro parecem tranquilizadores. No entanto, como no exemplo 0, os negocios longos sao muito mais rentaveis, o que provavelmente significa que ha um problema em nossa abordagem. No entanto, o sistema encontrou um equilibrio entre algumas condicoes iniciais contraditorias: Ha alguma dinamica positiva tanto no conjunto de aprendizagem e, mais importante, no conjunto de testes. Quanto ao aprendizado, no ciclo 278 podemos ver que o nosso sistema se sobreenturou. Isso significa que ainda temos progresso no conjunto de aprendizado: Mas o conjunto de testes mostra fraqueza: este e um problema comum com NNs: quando ensinamos no aprendizado, ele aprende a lidar com ele, e as vezes, ele aprende muito bem - para o Grau, quando ele perde desempenho no conjunto de testes. Para lidar com esse problema, uma solucao tradicional e usada: nos continuamos procurando a Rede Neural. Que executa melhor no conjunto de testes e salva-lo, sobrescrevendo o anterior melhor, cada vez que o novo pico e atingido. Esta e a mesma abordagem, nos usamos no treinamento FFBP, exceto, desta vez temos que faze-lo nos mesmos (adicionando codigo, que procura uma melhor rede neural em um conjunto de testes, e chamando SAVENN, ou exportando pesos de rede neural para um Arquivo). Desta forma, quando voce parar o seu treinamento, voce tera o melhor desempenho ON TESTING SET salvo e esperando por voce. Note tambem, que nao e o max. Lucro que voce esta procurando, mas o desempenho ideal, entao considere usar correcoes, ao procurar um melhor desempenho em um conjunto de testes. Algoritmo Genetico para FOREX Analise Tecnica: Onde agora Depois que voce tem o vencedor Rede Neural. Voce pode seguir os passos, descritos no artigo anterior, para exportar pesos dessa Rede Neural. E depois usa-los em sua plataforma de negociacao em tempo real, como Meta Trader, Trade Station e assim por diante. Alternativamente, voce pode se concentrar em outras formas de otimizar a Rede Neural. Ao contrario do algoritmo FFBP, aqui voce pode obter avay de usar conjuntos de aprendizagem e teste, e mover a aprendizagem sequencial. Download Cortex Order Cortex Ver lista de precos A visibilidade e muito importante para este site. Se voce gosta, por favor, ligue a este URL