Algoritmo genético de SnowCron em sistemas de negociação FOREX usando o algoritmo genético para criar estratégia de negociação FOREX rentável. Algoritmo genético no sistema de Redes Neurais do Cortex FeedFair Backpropagation Neural Network Application para computação baseada em cálculos baseados em Forex. Este exemplo usa conceitos e idéias do artigo anterior, então leia Algoritmo Genético de Rede Neural em Sistemas de Negociação FOREX primeiro, 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 do algoritmo de algoritmo de algoritmo de redes neurônicas do Cortex, não um exemplo de como fazer negociações lucrativas. Eu não sou seu guru, nem eu deveria ser responsável por suas perdas. O software Cortex Neural Networks possui redes neurais, e a FFBP que discutimos antes é apenas uma maneira de escolher uma estratégia de negociação forex. É uma boa técnica, poderosa e quando aplicada corretamente, muito promissora. No entanto, ele tem um problema - para ensinar a Rede Neural. Precisamos saber o resultado desejado. É bastante fácil de fazer quando fazemos a aproximação da função, nós apenas tomamos o valor real de uma função, porque sabemos o que deveria ser. Quando fazemos previsão de redes neurais. Nós usamos a técnica (descrita em artigos anteriores) de ensinar a Rede Neural na história, novamente, se prevermos, digamos, uma taxa de câmbio, sabemos (durante a formação) 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. Ensinamos a Rede Neural a fazer uma previsão de taxa de câmbio (ou índice de taxa de câmbio), e então usamos essa previsão para fazer negociação. Então, fora da parte da rede Neural do programa, tomamos uma decisão sobre a qual a Rede Neural é a melhor. Algoritmos genéticos podem lidar diretamente com este problema, 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 Algoritmos Genéticos Algoritmos Genéticos estão muito bem desenvolvidos e muito diversos. Se você quiser aprender tudo sobre eles, sugiro que você use a Wikipedia, pois este artigo é apenas sobre o que o Cortex Neural Networks Software pode fazer. Com o software Cortex Neural Networks. Podemos criar uma Rede Neural que adquire algum valor, digamos, valores de um indicador e produz algum resultado, digamos, sinais de negociação (comprar, vender, manter) e parar a perda, obter níveis de lucro para posições a serem abertas. Claro, se semearmos os pesos desta Rede Neural 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 a segunda geração, precisamos permitir que o nosso vencedor procria, mas para evitar a obtenção de cópias idênticas, vamos adicionar alguns sons aleatórios aos pesos das suas descendentes. Na segunda geração, temos o nosso vencedor da primeira geração e as cópias imperfeitas (mutadas). Vamos fazer testes novamente. Teremos outro vencedor, que é melhor do que qualquer outra rede neural na geração. E assim por diante. Nós simplesmente permitimos que os vencedores criem, e eliminem os perdedores, assim como na evolução da vida real, e nós teremos 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 muito simples. Nós vamos passar por isso 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 a fumagem MUTATIONNN. Esta função faz uma cópia de uma Rede Neural de origem. Adicionando valores aleatórios de 0 para (no nosso caso) 0,1 para todos os pesos. Mantivemos alças para 15 NNs resultantes em uma matriz, podemos fazê-lo, pois o identificador é apenas um número inteiro. A razão pela qual usamos 15 NNs não tem nada a ver com a negociação: o software Cortex Neural Networks pode traçar 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 resores (de 100000), e caminhar através do conjunto de aprendizagem, do começo ao fim. Isso tornará os learnigs diferentes, pois buscaremos redes de redes neuronais que sejam rentáveis em qualquer parte de dados, e não apenas em todo o conjunto. A segunda abordagem pode nos dar problemas, se a mudança de dados, desde o início até o fim. Em seguida, a rede evoluirá, obtendo a capacidade de trocar no final do conjunto de dados e perdendo a capacidade de trocar no seu início. Para resolver esse problema, vamos levar aleatoriamente 12000 fragmentos de registros 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-se que 0,1 para o tange de mutação não é a única escolha, como questão 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 antigos e 15 novos. Então, vamos fazer o próximo ciclo de testes e matar perdedores, de ambas as gerações. Para fazer testes, aplicamos a Rede Neural aos nossos dados, para produzir saídas, e depois chamamos a função Test, que usa essas saídas para simular a negociação. Os resultados da negociação são usados para desidir, quais 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 usamos é ilustrar o fato de que o algoritmo genético pode criar algoritmos genéticos. Mas não será necessariamente o melhor, e também, sugerir, que podemos melhorar o resultado, se implicarmos algumas limitações ao processo de aprendizagem. É possível que nosso sistema de negociação funcione muito bem em negócios longos, e muito pobre em curto, ou vice-versa. Se, digamos, os negócios longos são muito bons, esse algoritmo genético pode ganhar, mesmo com grandes perdas em transações curtas. Para evitá-lo, atribuímos mais peso a negócios longos em trocas ímpares e curtas em ciclos pares. Este é apenas um exemplo, não há garantia, que irá melhorar alguma coisa. Mais sobre isso abaixo, em discussão sobre correções. Tecnicamente, você não precisa fazê-lo, ou pode fazê-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 matrizes que seu lucro. A idéia é chegar à matriz de NNs, ordenados por rentabilidade. Como a matriz é classificada por lucro, para remover 12 das redes, que são menos rentáveis, precisamos apenas remover NNs 0 a 14 As decisões de negociação são baseadas no valor do sinal da Rede Neural, deste ponto de vista o programa é idêntico aos exemplos de Artigo anterior. FOREX Estratégia de negociação: exemplo de discussão 0 Em primeiro lugar, vamos examinar os gráficos. O primeiro gráfico para o lucro durante a primeira iteração não é bom, como seria de esperar, a Rede Neural perde dinheiro (imagem evolution00gen0.png copiado após a primeira iteração da pasta de imagens): a imagem com lucro no ciclo 15 é melhor, às vezes , O algoritmo genético pode aprender muito rápido: no entanto, observe a saturação em uma curva de lucro. É interessante também olhar para a forma como os lucros individuais mudam, tendo em mente, esse número de curva, digamos, 3 nem sempre é para a mesma Rede Neural. Como eles estão nascendo e terminaram o tempo todo: note também que o pequeno sistema de negociação automatizado forex é pobre em transações curtas e muito melhor em longos, o que pode ou não estar relacionado ao 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 os parâmetros do nosso indicador (talvez, precisamos de um 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. Procuremos descobrir o porquê, 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 TODO o aprendizado definido ao mesmo tempo, e o usamos repetidamente para ensinar nossos NNs, então sim, eles melhorarão em cada geração. Mas, em vez disso, tomamos fragmentos aleatórios (12000 registros no tempo) e os usamos. Duas perguntas: por que o sistema falhou em fragmentos aleatórios de conjunto de aprendizado, e por que não usamos todo o conjunto de aprendizado bem. Para responder a segunda pergunta, eu fiz. NNs apresentaram um grande desempenho - no aprendizado definido. 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 tanto no teste quanto no conjunto de aprendizado. Imagine animais, vivendo em um deserto. Muito sol, sem neve. Este é um mercado de metafor para rizing, pois os nossos dados NNs desempenham o papel de meio ambiente. Os animais aprenderam a viver em um deserto. Imagine animais, que vivem em 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-lhes diferentes fragmentos de dados (aumentando aleatoriamente, caindo, plano). 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. Então apresentamos, aos vencedores e seus filhos, uma queda dos 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, voltamos a mesa novamente e, novamente, conseguimos o melhor desempenho -, mas o melhor entre os artistas pobres. Nós simplesmente não damos a nossos NNs chances de se tornarem universais. 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 negociação 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 o passo anterior tem duas falhas principais. Primeiro, não conseguiu negociar com lucro. Está tudo bem, podemos tentar usar sistema parcialmente treinado (foi lucrativo no início). A segunda falha é mais séria: não temos controle sobre as coisas, que esse sistema faz. Por exemplo, pode aprender a ser rentável, mas com grandes remessas. É 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 correções, que são apenas o conjunto de punições adicionais. Digamos, o nosso sistema comercial com drawdown 0.5, enquanto queremos confirmá-lo para 0 a 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. Existem alguns outros fatores que queremos levar em consideração: podemos querer ter um número maior ou menor de operações de compra e venda, queremos ter mais operações lucrativas, e depois de falhas, podemos querer que a tabela de lucros Ser linear e assim por diante. Na evolution01.tsc implementamos um conjunto simples de correções. Em primeiro lugar, usamos um número grande para um valor de correção inicial. Nós o multiplicamos a um pequeno (geralmente, entre 0 e 1) valores, dependendo da punição que queremos aplicar. Então, multiplicamos nosso lucro por 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 de vencedores. FOREX Estratégia de Negociação: Discutir o exemplo 1 O exemplo 1 funciona muito melhor do que o exemplo 0. Durante os primeiros 100 ciclos, ele 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 perde o 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 seu treinamento, você terá o melhor desempenho ON TESTING SET salvo e esperando por você. Observe também que não é o máximo. Lucro que você está procurando, mas ótimo desempenho, então considere usar correções, ao procurar o 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 usando conjuntos de aprendizagem e teste e mover a aprendizagem seqüencial. Download Cortex Order Cortex Ver lista de preços A visibilidade é muito importante para este site. Se você gosta, por favor, faça o link para este URL. Michael E. Lewitt. Estratega de crédito global. Money Morning bull Sexta-feira, 10 de fevereiro de 2017 Não há, obviamente, falta de dinheiro em torno de Wall Street, e você não precisa olhar muito longe lá para encontrar estupidez, ganância e transgressão absoluta. Por outro lado, a honestidade, a integridade, a sabedoria - a coragem de dizer a verdade e fazer chamadas impopulares quando necessário - muitas vezes são escassas. Meu amigo Peter Boockvar, Analista de Mercado Principal do Lindsey Group, é um dos melhores. De fato, ele é um dos mais respeitados economistas e estrategistas em Wall Street. Também é alguém cujo trabalho eu leio todos os dias. Peter e eu recentemente abrimos as linhas telefônicas para 500 dos meus membros do Círculo de Negociantes do Zenith enquanto nos sentamos para dar uma olhada dura e sem BS em algumas das maiores oportunidades e perigos do mercado agora - particularmente a bolha de estoque que está se formando antes da nossa Olhos. Ambos concordamos que há tanta promessa quanto há perigo à frente, então eu queria ter acesso a uma transcrição desta conversa fascinante. Você ainda terá a oportunidade de ler algumas das mesmas informações que recebo na minha mesa todos os dias. É o que nós conversamos. Os estoques de realidade virtual e as vendas da realidade virtual deverão crescer nos próximos anos. Espera-se que o mercado de realidade virtual (VR) cresça de 1,37 bilhões em 2017 para 33,9 bilhões até 2022, de acordo com MarketsandMarkets. Isso é um aumento de 2.374 em apenas sete anos. Então, a única questão é exatamente como investir no setor de realidade virtual - não é tão fácil, considerando todas as opções disponíveis. Os mercados estão no meio de uma bolha épica que os investidores não podem se dar ao luxo de ignorar. O SampP 500 subiu 9,5 no ano passado, sem lucros aumentando pelo segundo ano consecutivo. O índice não viu um declínio de 1 ou mais em 84 sessões de negociação consecutivas, uma façanha vista pela última vez em 2006 e antes disso em 1996. Se o investimento fosse realmente tão fácil, todos seriam ricos. Mas, infelizmente, tudo isso é uma ilusão e vai acabar mal - muito mal.
No comments:
Post a Comment