Monday 1 July 2019

Melhor forex trading algoritmos


Os princípios do Forex Algorithmic Trading Quase trinta anos atrás, o mercado de câmbio (Forex) foi caracterizado por negócios realizados por telefone, os investidores institucionais. Opaco, uma clara distinção entre negociação interdealer e negociante negociante-cliente e baixa concentração de mercado. Hoje, os avanços tecnológicos transformaram o mercado. Trades são feitos principalmente através de computadores, permitindo que os comerciantes de varejo para entrar no mercado, em tempo real streaming preços levaram a uma maior transparência ea distinção entre os revendedores e seus clientes mais sofisticados em grande parte desapareceu. Uma mudança particularmente significativa é a introdução da negociação algorítmica. Que, ao fazer melhorias significativas para o funcionamento da negociação Forex, também apresenta uma série de riscos. Ao olhar para o básico do mercado de Forex e negociação algorítmica, vamos identificar algumas vantagens negociação algorítmica trouxe para a negociação de moeda ao mesmo tempo, apontando alguns dos riscos. Forex Basics Forex é o lugar virtual em que os pares de moedas são negociados em volumes variados de acordo com os preços cotados em que uma moeda base é dado um preço em termos de uma moeda de cotação. Operando 24 horas por dia, cinco dias por semana, o Forex é considerado o maior e mais líquido mercado financeiro mundial. De acordo com o Banco de Pagamentos Internacionais (BIS), o volume médio diário global de negociação em abril de 2017 foi de 2,0 trilhões. A maior parte deste comércio é feito para dólares dos EUA, euros e ienes japoneses e envolve uma gama de jogadores, incluindo bancos privados, bancos centrais, fundos de pensão. Investidores institucionais, grandes corporações, empresas financeiras e comerciantes varejistas individuais. Embora a negociação especulativa pode ser a principal motivação para certos investidores, a principal razão para a existência de mercados de Forex é que as pessoas precisam para negociar moedas, a fim de comprar bens e serviços estrangeiros. A atividade no mercado Forex afeta as taxas de câmbio reais e pode, portanto, afetar profundamente a produção, o emprego, a inflação e os fluxos de capital de qualquer nação em particular. Por esta razão, os decisores políticos, o público e os meios de comunicação têm um interesse adquirido no que se passa no mercado Forex. Noções básicas de negociação algorítmica Um algoritmo é essencialmente um conjunto de regras específicas destinadas a completar uma tarefa claramente definida. Na negociação no mercado financeiro, os computadores realizam algoritmos definidos pelo usuário, caracterizados por um conjunto de regras que consistem em parâmetros como tempo, preço ou quantidade que estruturam os negócios que serão feitos. Existem quatro tipos básicos de negociação algorítmica dentro dos mercados financeiros: estatística, auto-hedging, estratégias de execução algorítmica e acesso directo ao mercado. Estatística refere-se a uma estratégia algorítmica que procura oportunidades comerciais lucrativas com base na análise estatística de dados históricos de séries temporais. A cobertura automática é uma estratégia que gera regras para reduzir a exposição de um profissional ao risco. O objetivo das estratégias de execução algorítmica é executar um objetivo predefinido, como reduzir o impacto no mercado ou executar um comércio rapidamente. Finalmente, o acesso direto ao mercado descreve as velocidades ótimas e os custos mais baixos aos quais os comerciantes algorítmicos podem acessar e se conectar a várias plataformas de negociação. Uma das subcategorias de negociação algorítmica é a negociação de alta freqüência, que é caracterizada pela freqüência extremamente alta de execuções de ordem de comércio. Alta velocidade de negociação pode dar vantagens significativas para os comerciantes, dando-lhes a capacidade de fazer negócios dentro de milissegundos de mudanças de preços incrementais. Mas também pode conter certos riscos. Negociação Algorítmica no Mercado de Forex Grande parte do crescimento na negociação algorítmica nos mercados de Forex nos últimos anos tem sido devido a algoritmos automatizando certos processos e reduzindo as horas necessárias para realizar transações de câmbio. A eficiência criada pela automação leva a custos menores na realização desses processos. Um desses processos é a execução de ordens comerciais. Automatizar o processo de negociação com um algoritmo que negoceia com base em critérios predeterminados, como executar ordens durante um período de tempo especificado ou a um preço específico, é significativamente mais eficiente do que a execução manual por seres humanos. Os bancos também se aproveitaram de algoritmos programados para atualizar os preços dos pares de moedas nas plataformas de negociação eletrônicas. Esses algoritmos aumentam a velocidade com que os bancos podem cotizar os preços de mercado ao mesmo tempo em que reduzem o número de horas de trabalho manuais necessárias para cotizar os preços. Alguns bancos programa algoritmos para reduzir sua exposição ao risco. Os algoritmos podem ser usados ​​para vender uma moeda específica para corresponder a um comércio de clientes em que o banco comprou o montante equivalente, a fim de manter uma quantidade constante dessa moeda específica. Isso permite que o banco mantenha um nível de exposição de risco pré-especificado para manter essa moeda. Esses processos foram feitos significativamente mais eficientes por algoritmos, levando a custos de transação mais baixos. No entanto, estes não são os únicos fatores que têm impulsionado o crescimento do Forex trading algorítmico. Algoritmos têm sido cada vez mais utilizados para o comércio especulativo como a combinação de alta freqüência e os algoritmos capacidade de interpretar dados e executar ordens permitiu comerciantes para explorar oportunidades de arbitragem decorrentes de pequenos desvios de preços entre pares de moedas. Todas estas vantagens têm levado ao uso crescente de algoritmos no mercado Forex, mas vamos olhar para alguns dos riscos que acompanham a negociação algorítmica. Riscos envolvidos em Algorithmic Forex Trading Apesar de negociação algorítmica tem feito muitas melhorias, existem algumas desvantagens que poderiam ameaçar a estabilidade ea liquidez do mercado Forex. Uma dessas desvantagens diz respeito a desequilíbrios no poder de negociação dos participantes do mercado. Alguns participantes têm os meios para adquirir tecnologia sofisticada que lhes permite obter informações e executar ordens a uma velocidade muito mais rápida do que outras. Este desequilíbrio entre os que têm e os que não têm em termos da tecnologia algorítmica mais sofisticada pode levar à fragmentação dentro do mercado que pode levar à escassez de liquidez ao longo do tempo. Além disso, embora haja diferenças fundamentais entre os mercados de ações eo mercado Forex, há alguns que temem que a alta freqüência de negociação que exacerbou o crash do mercado acionário flash em 6 de maio de 2018 poderia afetar igualmente o mercado Forex. Como algoritmos são programados para cenários de mercado específicos, eles podem não responder rapidamente o suficiente se o mercado fosse mudar drasticamente. Para evitar esse cenário, os mercados precisam ser monitorados e a negociação algorítmica suspensa durante a turbulência do mercado. No entanto, em tais cenários extremos, uma suspensão simultânea de negociação algorítmica por numerosos participantes no mercado poderia resultar em alta volatilidade e uma drástica redução na liquidez do mercado. A linha inferior Embora a negociação algorítmica tenha sido capaz de aumentar a eficiência, reduzindo assim os custos de moedas de negociação, também veio com alguns riscos adicionais. Para que as moedas funcionem corretamente, elas devem ser reservas de valor um tanto estáveis ​​e serem altamente líquidas. Assim, é importante que o mercado Forex permaneça líquido com baixa volatilidade de preços. Como com todas as áreas da vida, a tecnologia nova introduz muitos benefícios, mas igualmente vem com riscos novos. O desafio para o futuro da negociação algorítmica de Forex será como instituir mudanças que maximizem os benefícios, reduzindo os riscos. Básicos de negociação algorítmica: conceitos e exemplos Um algoritmo é um conjunto específico de instruções claramente definidas destinadas a realizar uma tarefa ou processo . A negociação algorítmica (negociação automatizada, negociação em caixa preta ou simplesmente negociação de algo) é o processo de utilização de computadores programados para seguir um conjunto definido de instruções para colocar um negócio a fim de gerar lucros a uma velocidade e frequência que é impossível para um Comerciante humano. Os conjuntos de regras definidos baseiam-se em tempo, preço, quantidade ou qualquer modelo matemático. Além de oportunidades de lucro para o comerciante, algo-trading torna os mercados mais líquidos e torna a negociação mais sistemática, excluindo impactos humanos emocionais sobre as atividades de negociação. Suponha que um comerciante segue estes critérios comerciais simples: Compre 50 ações de uma ação quando sua média móvel de 50 dias ultrapassar a média móvel de 200 dias Vender ações da ação quando sua média móvel de 50 dias estiver abaixo da média móvel de 200 dias Usando este conjunto de duas instruções simples, é fácil escrever um programa de computador que irá monitorar automaticamente o preço das ações (e os indicadores de média móvel) e colocar as ordens de compra e venda quando as condições definidas forem atendidas. O comerciante já não precisa de manter um relógio para preços e gráficos vivos, ou põr nas ordens manualmente. O sistema de negociação algorítmica automaticamente faz isso para ele, identificando corretamente a oportunidade de negociação. Algo-trading oferece os seguintes benefícios: Trades executados nos melhores preços possíveis Instant e exata colocação da ordem de comércio (assim altas chances de execução em níveis desejados) Negociações Temporizado corretamente e instantaneamente, para evitar mudanças significativas de preços Custos de transação reduzidos (veja o exemplo de insuficiência de implementação abaixo) Verificações automáticas simultâneas em várias condições de mercado Redução do risco de erros manuais na colocação das operações Backtest o algoritmo, com base em dados históricos e em tempo real reduzidos Reduzido A possibilidade de erros por comerciantes humanos com base em fatores emocionais e psicológicos A maior parte do atual dia algo-negociação é de alta freqüência de negociação (HFT), que tenta capitalizar sobre a colocação de um grande número de ordens a velocidades muito rápidas em vários mercados e múltiplas decisões Parâmetros, com base em instruções pré-programadas. Algo-trading é usado em muitas formas de negociação e atividades de investimento, incluindo: Investidores de médio a longo prazo ou empresas de compra de lado (fundos de pensão , Fundos mútuos, companhias de seguros) que compram em ações em grandes quantidades, mas não querem influenciar os preços das ações 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 execução automatizada do comércio além, de algo-negociar ajudas em criar liquidez suficiente para vendedores no mercado. Os comerciantes sistemáticos (seguidores de tendências, comerciantes de pares, fundos de hedge, etc.) acham muito mais eficiente programar suas regras de negociação e deixar o programa trocar automaticamente. A negociação algorítmica proporciona uma abordagem mais sistemática ao comércio ativo do que métodos baseados em intuição ou instinto de comerciantes humanos. Estratégias Algorítmicas de Negociação Qualquer estratégia para negociação algorítmica requer uma oportunidade identificada que seja rentável em termos de ganhos melhorados ou redução de custos. As estratégias de negociação comuns usadas em algo-trading são as seguintes: As estratégias de negociação algorítmicas mais comuns seguem as tendências em médias móveis. Canal breakouts. Movimentos de nível de preços e indicadores técnicos relacionados. Estas são as estratégias mais fáceis e mais simples de implementar através de negociação algorítmica, porque essas estratégias não envolvem fazer previsões ou previsões de preços. Os negócios são iniciados com base na ocorrência de tendências desejáveis. Que são fáceis e simples de implementar através de algoritmos sem entrar na complexidade da análise preditiva. O exemplo acima mencionado de média móvel de 50 e 200 dias é uma tendência popular seguindo a estratégia. Comprar uma ação cotada dual a um preço mais baixo em um mercado e vendê-lo simultaneamente a um preço mais elevado em um outro mercado oferece o diferencial de preço como o lucro sem risco Ou arbitragem. A mesma operação pode ser replicada para ações versus instrumentos de futuros, já que existem diferenciais de preços de tempos em tempos. Implementar um algoritmo para identificar tais diferenciais de preços e colocar as ordens permite oportunidades rentáveis ​​de forma eficiente. Os fundos de índice definiram períodos de reequilíbrio para trazer as suas participações a par com os respectivos índices de referência. Isso cria oportunidades lucrativas para os comerciantes algorítmicos, que capitalizar sobre os negócios esperados que oferecem 20-80 pontos-base de lucros, dependendo do número de ações no fundo de índice, pouco antes do rebalanceamento do fundo índice. Tais negociações são iniciadas através de sistemas de negociação algorítmica para execução atempada e melhores preços. Um monte de modelos matemáticos comprovados, como a estratégia de negociação delta neutro, que permitem negociação na combinação de opções e sua segurança subjacente. Onde os negócios são colocados para compensar deltas positivos e negativos de modo que o delta da carteira seja mantido em zero. A estratégia de reversão média baseia-se na idéia de que os preços altos e baixos de um ativo são um fenômeno temporário que revertem para seu valor médio periodicamente. Identificar e definir uma faixa de preço e algoritmo de implementação com base em que permite que os comércios sejam colocados automaticamente quando o preço do ativo entrar e sair do seu intervalo definido. Volume ponderada estratégia de preço médio quebra uma grande ordem e libera dinamicamente determinados pedaços menores da ordem para o mercado usando os perfis de volume histórico específico do estoque. O objetivo é executar a ordem próxima ao Preço Médio Ponderado pelo Volume (VWAP), beneficiando assim o preço médio. A estratégia de preço médio 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 início e uma de fim. O objetivo é executar a ordem perto do preço médio entre o início eo fim, minimizando assim o impacto no mercado. Até que a ordem de negociação seja totalmente preenchida, este algoritmo continua enviando ordens parciais, de acordo com a proporção de participação definida e de acordo com o volume negociado nos mercados. A estratégia de passos relacionados envia ordens a uma percentagem definida pelo utilizador dos volumes de mercado e aumenta ou diminui esta taxa de participação quando o preço da acção atinge níveis definidos pelo utilizador. A estratégia de déficit de implementação visa minimizar o custo de execução de uma ordem, trocando o mercado em tempo real, economizando assim o custo da ordem e beneficiando do custo de oportunidade da execução atrasada. A estratégia vai aumentar a taxa de participação alvo quando o preço das ações se move favoravelmente e diminuí-lo quando o preço das ações 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 têm a inteligência interna para identificar a existência de quaisquer algoritmos no lado de compra de uma grande ordem. Essa detecção por meio de algoritmos ajudará o criador de mercado a identificar grandes oportunidades de pedidos e permitir que ele se beneficie ao preencher os pedidos a um preço mais alto. Isso às vezes é identificado como front-running de alta tecnologia. Requisitos técnicos para negociação algorítmica Implementar o algoritmo usando um programa de computador é a última parte, bateu com backtesting. (Para mais sobre negociação de alta freqüência e práticas fraudulentas, consulte: Se você comprar ações on-line, você está envolvido em HFTs. O desafio é transformar a estratégia identificada em um processo informatizado integrado que tenha acesso a uma conta comercial para a colocação de encomendas. São necessários os seguintes: Conhecimento de programação de computadores para programar a estratégia de negociação necessária, programadores contratados ou software de negociação pré-fabricado Conectividade de rede e acesso a plataformas de negociação para colocar as ordens Acesso a feeds de dados de mercado que serão monitorados pelo algoritmo para oportunidades de colocar Ordens A capacidade ea infra-estrutura para backtest o sistema uma vez construído, antes de ir viver em mercados reais Dados históricos disponíveis para backtesting, dependendo da complexidade das regras implementadas no algoritmo Aqui está um exemplo abrangente: Royal Dutch Shell (RDS) está listado em Amsterdam Bolsa de Valores (AEX) e Bolsa de Valores de Londres (LSE). Permite construir um algoritmo para identificar oportunidades de arbitragem. Aqui estão algumas observações interessantes: AEX negocia em Euros, enquanto LSE negocia em libras esterlinas Devido à diferença de hora de uma hora, AEX abre uma hora mais cedo do que LSE, seguido por ambas as trocas que negociam simultaneamente por próximas horas e então negociando somente em LSE durante A última hora à medida que a AEX fecha Podemos explorar a possibilidade de negociação de arbitragem nas ações da Royal Dutch Shell listadas nesses dois mercados em duas moedas diferentes Um programa de computador que pode ler os preços atuais do mercado Alimentações de preços tanto da LSE quanto da AEX A forex rate feed for Taxa de câmbio GBP-EUR Ordem de capacidade de colocação que pode encaminhar a ordem para a troca correta Capacidade de back-testing em feeds de preços históricos O programa de computador deve executar o seguinte: Leia o feed de preços de entrada de ações RDS de ambas as câmaras Usando as taxas de câmbio disponíveis . Converter o preço de uma moeda para outra Se houver uma discrepância de preço suficientemente grande (descontando os custos de corretagem) levando a uma oportunidade lucrativa, então coloque a ordem de compra em câmbio de menor preço e venda na ordem de câmbio mais alta Se as ordens forem executadas como Desejado, o lucro de arbitragem seguirá Simples e Fácil No entanto, a prática de negociação algorítmica não é tão simples de manter e executar. Lembre-se, se você pode colocar um comércio algo-gerado, assim que os outros participantes do mercado. Conseqüentemente, os preços flutuam em milissegundos e até em microssegundos. No exemplo acima, o que acontece se o seu comércio comprar é executado, mas vender o comércio doesnt como os preços de venda mudar no momento em que sua ordem atinge o mercado Você vai acabar sentado com uma posição aberta. Tornando sua estratégia de arbitragem inútil. Há riscos e desafios adicionais: por exemplo, riscos de falha de sistema, erros de conectividade de rede, intervalos de tempo entre ordens de negociação e execução e, o mais importante de tudo, algoritmos imperfeitos. Quanto mais complexo for um algoritmo, o backtesting mais rigoroso é necessário antes de ser colocado em ação. A análise quantitativa do desempenho de um algoritmo desempenha um papel importante e deve ser examinada criticamente. Sua emocionante para ir para a automação auxiliado por computadores com uma noção de fazer dinheiro sem esforço. Mas um deve certificar-se que o sistema é testado completamente e os limites requeridos são ajustados. Os comerciantes analíticos devem considerar a aprendizagem de programação e sistemas de construção por conta própria, para ter certeza de implementar as estratégias certas de forma infalível. O uso cauteloso e o teste completo de algo-trading podem criar oportunidades lucrativas. Um tipo de estrutura de remuneração que os gestores de fundos de hedge normalmente empregam em que parte da remuneração é baseado no desempenho. Uma proteção contra a perda de renda que resultaria se o segurado faleceu. O beneficiário nomeado recebe o. Uma medida da relação entre uma mudança na quantidade demandada de um bem particular e uma mudança em seu preço. Preço. O valor de mercado total do dólar de todas as partes em circulação de uma companhia. A capitalização de mercado é calculada pela multiplicação. Frexit curto para quotFrancês exitquot é um spin-off francês do termo Brexit, que surgiu quando o Reino Unido votou. Uma ordem colocada com um corretor que combina as características de ordem de parada com as de uma ordem de limite. Uma ordem stop-limite will. SnowCron algoritmo genético em sistemas de negociação FOREX Usando Algoritmo Genético para criar rentável FOREX Trading Estratégia. Algoritmo Genético em Cortex Redes Neurais Software Feedforward Backpropagation Neural Network Aplicação para computações genéticas baseado Forex trading. Este exemplo usa conceitos e idéias do artigo anterior, por isso leia Neural Network Genetic Algorithm em FOREX Trading Systems em primeiro lugar, embora não seja obrigatório. Sobre este texto Em primeiro lugar, leia o aviso de isenção de responsabilidade. Este é um exemplo de usar a funcionalidade de algoritmo genético de Software de Redes Neurais de Cortex, não um exemplo de como fazer negociação rentável. Eu não sou seu guru, nem eu deveria ser responsável por suas perdas. Cortex Neural Networks Software tem redes neurais nele, e FFBP discutimos antes é apenas uma maneira de escolher uma estratégia de negociação forex. É uma boa técnica, poderosa e quando aplicado corretamente, muito promicing. No entanto, ele tem um problema - para ensinar a Rede Neural. Precisamos saber a saída desejada. É bastante fácil de fazer quando fazemos aproximação de função, apenas tomamos o valor real de uma função, porque sabemos o que deve ser. Quando fazemos previsão de redes neurais. Nós usamos a técnica (descrita em artigos anteriores) de ensinar a Rede Neural sobre a história, novamente, se nós prevemos, digamos, uma taxa de câmbio, sabemos (durante o treinamento) qual é a previsão correta. No entanto, quando estamos construindo um sistema de negociação, não temos idéia do que a decisão de negociação correta é, mesmo se nós conhecemos a taxa de câmbio Como a matéria de fato, temos muitas estratégias de negociação forex que podemos usar em qualquer ponto do tempo, e Precisamos encontrar um bom - como O que devemos alimentar como a saída desejada de nossa rede Neural Se você seguiu o nosso artigo anterior, você sabe, que temos traído para lidar com esse problema. Nós ensinamos a Rede Neural para fazer previsão de taxa de câmbio (ou taxa de câmbio baseado) e, em seguida, usou essa previsão para fazer negociação. Então, fora da parte de Rede Neural do programa, nós tomamos uma decisão sobre qual Rede Neural é a melhor. Algoritmos genéticos 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 Genético Algoritmos Genéticos são muito bem desenvolvidos, e muito diversificada. Se você quiser aprender tudo sobre eles, sugiro que você use a Wikipedia, como este artigo é apenas sobre o que Cortex Neural Networks Software pode fazer. Tendo Cortex Neural Networks Software. Nós podemos criar uma rede neural que toma alguma entrada, digamos, os valores de um indicador, e produz alguma saída, digamos, sinais de negociação (comprar, vender, segurar.) E parar a perda ter níveis de lucro para as posições a serem abertas. Claro, se nós semente desta Rede Neural s pesos ao acaso, os resultados comerciais serão terríveis. No entanto, vamos dizer que criamos uma dúzia de tais NNs. Então podemos testar o desempenho de cada um deles, e escolher o melhor, o vencedor. Esta foi a primeira geração de NNs. Para continuar na segunda geração, precisamos permitir que nosso vencedor procreate, mas para evitar a obtenção de cópias idênticas, vamos adicionar algum ruído aleatório para seus pesos descententes. Na segunda geração, temos nosso vencedor de primeira geração e suas cópias imperfeitas (mutadas). Vamos fazer o teste novamente. Teremos outro vencedor, que é melhor do que qualquer outra rede neural na geração. E assim por diante. Simplesmente permitimos que os vencedores se reproduzam e eliminem os perdedores, assim como na evolução da vida real, e obteremos nossa Rede Neural de melhor negociação. Sem qualquer conhecimento prévio sobre o que o sistema de negociação (algoritmo genético) deve ser semelhante. Rede Neural Algoritmo Genético: Exemplo 0 Este é o primeiro exemplo de algoritmo genético. E um muito simples. Vamos caminhar por ela passo a passo, para aprender todos os truques que os exemplos a seguir usarão. O código tem comentários inline, por isso permite apenas concentrar-se em momentos-chave. Primeiro, criamos uma rede neural. Ele está usando pesos aleatórios, e ainda não foi ensinado. Então, no ciclo, fazemos 14 cópias dele, usando MUTATIONNN fumtion. Esta função faz uma cópia de uma Rede Neural de origem. Adicionando valores aleatórios de 0 a (em nosso caso) 0,1 para todos os pesos. Nós mantemos alças para resultar em 15 NNs em uma matriz, podemos fazê-lo, como identificador é apenas um número inteiro. O motivo pelo qual usamos 15 NNs não tem nada a ver com negociação: o Cortex Neural Networks Software pode plotar até 15 linhas em um gráfico simultaneamente. Podemos usar diferentes abordagens para o teste. Primeiro, podemos usar o conjunto de aprendizado, tudo de uma só vez. Em segundo lugar, podemos testar, digamos, 12000 restrições (de 100000), e percorrer o conjunto de aprendizado, do começo ao fim. Isso tornará os aprendizes diferentes, pois iremos procurar redes neurais que sejam lucrativas em qualquer dado dado, não apenas no conjunto. A segunda abordagem pode nos dar problemas, se os dados mudam, do começo ao fim. Em seguida, a rede vai evoluir, obtendo a capacidade de comércio no final do conjunto de dados, e perder a capacidade de comércio no seu início. Para resolver esse problema, vamos pegar aleatórios 12000 registros fragmentos de dados, e alimentá-lo para a Rede Neural. É simplesmente um ciclo infinito, já que 100000 ciclos nunca serão alcançados à nossa velocidade. Abaixo adicionamos uma criança para cada rede, com pesos ligeiramente diferentes. Note que 0,1 para mutação tange não é a única escolha, como a matéria de fato, mesmo este parâmetro pode ser otimizado usando algoritmo genético. Os NNs recém-criados são adicionados após 15 existentes. Desta forma, temos 30 NNs em uma matriz, 15 velhos e 15 novos. Então vamos fazer o próximo ciclo de testes, e matar perdedores, de ambas as gerações. Para fazer o teste, aplicamos a Rede Neural aos nossos dados, para produzir saídas e, em seguida, chamamos a função Teste, que usa essas saídas para simular a negociação. Resultados de negociação são usados ​​para deside, que NNs são melhores. Usamos um intervalo de registros nLearn, de nStart para nStart nLearn, onde nStart é um ponto aleatório dentro do conjunto de aprendizado. O código abaixo é um truque. A razão pela qual o usamos é para ilustrar o fato de que o algoritmo genético pode criar algoritmos genéticos. Mas não necessariamente será o melhor, e também, sugerir, que podemos melhorar o resultado, se implicarmos algumas limitações para o processo de aprendizagem. É possível, que o nosso sistema de comércio funciona muito bem em longos comércios, e muito pobre em curto, ou vice-versa. Se, digamos, longos comércios são MUITO bons, este algoritmo genético pode ganhar, mesmo com grandes perdas em negócios curtos. Para evitá-lo, atribuímos mais peso aos negócios longos em negócios curtos e curtos em ciclos pares. Este é apenas um exemplo, não há garantia, que ele vai melhorar algo. Mais sobre isso abaixo, em discussão sobre correções. Tecnicamente, você não tem que fazê-lo, ou pode torná-lo de forma diferente. Adicione lucro a uma matriz ordenada. Retorna uma posição de inserção, então usamos essa posição para adicionar identificador de rede neural, aprendendo e testando lucros para matrizes não-classificadas. Agora temos dados para a Rede Neural atual no mesmo índice de array que seu lucro. A idéia é chegar a matriz de NNs, classificados por rentabilidade. Como matriz é classifica por lucro, para remover 12 de redes, que são menos rentáveis, só precisamos remover NNs 0 a 14 As decisões de negociação são baseadas no valor de sinal de rede neural, a partir deste ponto de vista o programa é idêntico a exemplos de Artigo anterior. Estratégia de negociação FOREX: Discutir o exemplo 0 Primeiro de tudo, vamos dar uma olhada em gráficos. O primeiro gráfico de lucro durante a primeira iteração não é bom em tudo, como seria de esperar, a Rede Neural perde dinheiro (imagem evolution00gen0.png copiada após a primeira iteração da pasta de imagens): A imagem para lucro no ciclo 15 é melhor, às vezes , Algoritmo genético pode aprender muito rápido: No entanto, observe a saturação em uma curva de lucro. É interessante também observar a forma como os lucros individuais mudam, tendo em mente que o número da curva, digamos, 3 nem sempre é para a mesma Rede Neural. Como eles estão a nascer e terminou o tempo todo: Note também que o pequeno sistema de comércio automatizado forex é pobre em negócios curtos e muito melhor em longas, o que pode ou não estar relacionado com o fato de que o dólar estava caindo em comparação com Euros durante esse período. Também pode ter algo a ver com parâmetros do nosso indicador (talvez, precisamos período diferente para shorts) ou a escolha de indicadores. Aqui está a história após 92 e 248 ciclos: Para nossa surpresa, o algoritmo genético falhou completamente. Vamos tentar descobrir por que, e como ajudar a situação. Primeiro de tudo, não é cada geração suposto ser melhor do que o previuos A resposta é não, pelo menos não dentro do modelo que usamos. Se tomarmos ENTIRE aprendizado conjunto de uma vez, e usado repetidamente para ensinar NNs, então sim, eles vão melhorar em cada geração. Mas em vez disso, pegamos fragmentos aleatórios (12000 registros no tempo), e os usamos. Duas perguntas: por que o sistema falhou em fragmentos aleatórios do conjunto de aprendizagem, e por que havent usamos todo o conjunto de aprendizagem bem. Para responder à segunda pergunta, eu fiz. NNs realizado muito - no conjunto de aprendizagem. E falharam no teste ajustado, pela mesma razão falha quando nós usamos o aprendizado de FFPB. Dito de outra forma, nossos NNs ficaram sobre-especializados, aprenderam a sobreviver no ambiente que estão acostumados, mas não fora dela. Isso acontece muito na natureza. A abordagem que nós tomamos em vez disso destinava-se a compensar isso, forçando NNs para executar bom em qualquer fragmento aleatório do conjunto de dados, de modo que, esperamos, eles também 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 é 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 água, nas árvores. Apresentando-os com diferentes fragmentos de dados (aleatoriamente aumentando, caindo, flat.). Animais morreram. Ou, para colocá-lo de forma diferente, nós selecionamos a melhor Rede Neural para o conjunto de dados aleatórios 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 crianças mutantes, que perdeu a capacidade de comércio no mercado em ascensão, mas tem alguma capacidade de lidar com a queda de um. Então nós giramos a tabela outra vez, e outra vez, nós começamos o mais melhor performer - mas melhor entre executores pobres. Nós simplesmente não damos NNs nossas chances de se tornar universal. Existem técnicas que permitem que o algoritmo genético aprenda novas informações sem perder o desempenho em informações antigas (afinal, os animais podem viver no verão e no inverno, assim a evolução é capaz de lidar com mudanças repetidas). Podemos discutir essas técnicas mais tarde, embora este artigo é mais sobre o uso de Cortex Neural Networks Software. Do que sobre a construção de um sistema de comércio automatizado forex bem sucedido. Algoritmo Genético de Rede Neural: Exemplo 1 Agora é hora de falar sobre correções. Um algoritmo genético simples que criamos durante a etapa anterior tem duas falhas importantes. Primeiro, ele não negociou com o lucro. É ok, podemos tentar usar o sistema parcialmente treinado (foi rentável no início). A segunda falha é mais séria: não temos controle sobre as coisas, que esse sistema faz. Por exemplo, ele pode aprender a ser rentável, mas com grandes abaixamentos. É um fato bem conhecido, que na vida real, a evolução pode otimizar mais de um parâmetro simultaneamente. Por exemplo, podemos obter um animal, que pode correr rápido E ser resistente ao frio. Por que não tentar fazer o mesmo no nosso sistema de negociação automatizado forex. Isso é quando usamos as correções, que não são nada, mas o conjunto de punições adicionais. Dizer, nosso sistema negocia com drawdown 0.5, enquanto nós queremos confirmá-lo para 0 - 0.3 intervalo. Para dizer ao sistema que cometeu um erro, diminuímos seu lucro (um usado para determinar qual algoritmo genético venceu) ao grau, que é proporcional ao tamanho de DD. Então, o algoritmo de evolução cuida do resto. Há poucos fatores mais, que queremos levar em consideração: podemos querer ter mais ou menos igual número de operações de compra e venda, queremos ter mais de operações lucrativas, depois de falhas, podemos querer que o gráfico de lucro Ser linear e assim por diante. Em evolution01.tsc implementamos um conjunto simples de correções. Em primeiro lugar, usamos um grande número para um valor de correção inicial. Multiplicamo-lo a um pequeno (geralmente, entre 0 e 1) valores, dependendo da punição que queremos aplicar. Então nós multiplicamos nosso lucro a esta correção. Como resultado, o lucro é corrigido, para refletir o quanto o algoritmo genético corresponde aos nossos outros critérios. Então usamos o resultado para encontrar uma Rede Neural vencedora. Estratégia de negociação 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 gráficos de lucro parecem tranquilizadores. No entanto, como no exemplo 0, os negócios longos são muito mais rentáveis, o que provavelmente significa que há um problema em nossa abordagem. No entanto, o sistema encontrou um equilíbrio entre algumas condições iniciais contraditórias: Há alguma dinâmica 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 é um problema comum com NNs: quando ensinamos no aprendizado, ele aprende a lidar com ele, e às vezes, ele aprende muito bem - para o Grau, quando ele perde desempenho no conjunto de testes. Para lidar com esse problema, uma solução tradicional é usada: nós continuamos procurando a Rede Neural. Que executa melhor no conjunto de testes e salvá-lo, sobrescrevendo o anterior melhor, cada vez que o novo pico é atingido. Esta é a mesma abordagem, nós usamos no treinamento FFBP, exceto, desta vez temos que fazê-lo nós mesmos (adicionando código, 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 você parar o seu treinamento, você terá o melhor desempenho ON TESTING SET salvo e esperando por você. Note também, que não é o max. Lucro que você está procurando, mas o desempenho ideal, então considere usar correções, ao procurar um melhor desempenho em um conjunto de testes. Algoritmo Genético para FOREX Análise Técnica: Onde agora Depois que você tem o vencedor Rede Neural. Você pode seguir os passos, descritos no artigo anterior, para exportar pesos dessa Rede Neural. E depois usá-los em sua plataforma de negociação em tempo real, como Meta Trader, Trade Station e assim por diante. Alternativamente, você pode se concentrar em outras formas de otimizar a Rede Neural. Ao contrário do algoritmo FFBP, aqui você pode obter avay de usar conjuntos de aprendizagem e teste, e mover a aprendizagem sequencial. Download Cortex Order Cortex Ver lista de preços A visibilidade é muito importante para este site. Se você gosta, por favor, ligue a este URL

No comments:

Post a Comment