Skip to main content

Algoritmos Forex


Algoritmo genético em sistemas de negociação FOREX


Usando Genetic Algorithm 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 aplicada adequadamente, 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 a construir um sistema de negociação, não temos idéia de qual é 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 nosso artigo anterior, você sabe, que temos enganado 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 da 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, eu sugiro que você use a Wikipedia, como este artigo é apenas sobre o que Cortex Neural Networks Software pode fazer.


Tendo Cortex Neural Networks Software. Podemos criar uma Rede Neural que leva alguns dados, digamos, valores de um indicador, e produz alguns sinais de saída, digamos, de negociação (comprar, vender, segurar) e parar a perda / tomar níveis de lucro para posições a serem abertas.


Naturalmente, se semearmos os pesos dessa Rede Neural de forma aleatória, 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 acrescentar alguns ruídos aleatórios para os pesos de seus descententes.


Na segunda geração, temos o nosso vencedor de primeira geração e é imperfeito (mutado) cópias. Vamos testar novamente. Teremos outro vencedor, que é melhor do que qualquer outra Rede Neural da 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 como.


Algoritmo Genético de Rede Neural: Exemplo 0


Esse é o primeiro exemplo de algoritmo genético. E um muito simples. Nós vamos percorrê-lo passo a passo, para aprender todos os truques que os seguintes exemplos usarão.


O código tem comentários inline, então vamos focar apenas 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 MUTATION_NN 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 as alças para resultar 15 NNs em uma matriz, podemos fazê-lo, como identificador é apenas um número inteiro.


A razão pela qual usamos 15 NNs não tem nada a ver com negociaçã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 learnigs 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.


NNs recém-criados são adicionados depois de 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 de 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.


Observe o código:


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 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 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 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 array é sortes por lucro, para remover 1/2 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 do sinal de Rede Neural, a partir deste ponto de vista o programa é idêntico aos exemplos do artigo anterior.


Estratégia de negociação FOREX: Discutir 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, como é de se esperar, a Rede Neural perde dinheiro (imagem evolution_00_gen_0.png copiada após a primeira iteração da pasta "images"):


A imagem para o 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 olhar para 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 nascendo e terminou o tempo todo:


Observe também que o pequeno sistema de negociação automatizado forex é pobre em negócios curtos e muito melhor em longas, o que pode ou não estar relacionado ao fato de que o dólar estava caindo em relação ao euro durante esse período. Também pode ter algo a ver com os 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.


Em primeiro lugar, não é cada geração suposto ser melhor do que o previuos um? A resposta é não, pelo menos não dentro do modelo que usamos. Se tomarmos o ENTIRE aprendizado conjunto de uma vez, e usado repetidamente para ensinar NNs, então sim, eles irão melhorar em cada geração. Mas, em vez disso, tiramos 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 não 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. Para colocá-lo de forma diferente, nossos NNs tem overspecialized, eles aprenderam a sobreviver no ambiente que eles estão acostumados, mas não fora dela. Isso acontece muito na natureza.


A abordagem que tomamos em vez disso foi destinada a compensar isso, forçando NNs a 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 ascensão. Então nós apresentamos, para os vencedores e seus filhos, uma queda dos dados do mercado. NNs executado mal, tomamos o melhor dos 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, certo?) 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 lucro. É aprovado, nós podemos tentar usar o sistema parcialmente treinado (era rentável no começo). 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 enormes drawsdowns.


É 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 em nosso sistema automatizado de negociação forex.


Isso é quando usamos correções, que não são nada além do conjunto de punições adicionais. Digamos, 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 evolution_01.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: discutindo 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 duas 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 nosso sistema ficou super-treinado. Significa, ainda temos progresso no conjunto de aprendizagem:


Mas o conjunto de testes mostra fraqueza:


Este é um problema comum com NNs: quando ensiná-lo em conjunto de aprendizagem, aprende a lidar com ele, e às vezes, ele aprende muito bem - ao grau, quando perde o desempenho no conjunto de testes.


Para lidar com esse problema, uma solução "tradicional" é usada: 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 é alcançado. Esta é a mesma abordagem, que 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 SAVE_NN, 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 Análise Técnica FOREX: Onde agora?


Depois que você tem sua Rede Neural vencedora. 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 seqüencial.


Download Cortex Ordem Cortex Ver lista de preços


NOSSA MISSÃO é aproveitar e disponibilizar aos investidores e investidores individuais as mais poderosas soluções de inteligência artificial usando os mais recentes algoritmos de aprendizado de máquinas, a fim de desenvolver modelos estáveis ​​e seguros para prever os movimentos dos preços dos estrangeiros.


Human FOREX comerciante v superfast computadores e algoritmos: WHO WINS?


Mesmo os chamados consultores especializados que operam em plataformas populares, utilizando-se de elaborados conjuntos de indicadores técnicos em combinação com ferramentas para o back-testing de estratégias são condenados ao fracasso a longo prazo. Existem duas razões simples e primárias para esta (1) falta de sofisticação e (2) poder computacional insuficiente. Os dois estão intimamente interligados e, com poder computacional, muitas vezes limitado a apenas um desktop, por mais poderoso que possa ser, é impossível executar uma estratégia com o nível de sofisticação necessário para produzir retornos estáveis ​​e de longo prazo. Verdadeiras soluções de inteligência artificial estão além do alcance de comerciantes individuais, investidores e até mesmo instituições financeiras menores.


Neste ambiente para ser um comerciante bem sucedido e superar as restrições de poder computacional limitado e sofisticação nossa FOREX TRADING ALGORITHM oferece a chave para o seu sucesso. Entre em contato conosco para saber como ele pode trabalhar para você.

Comments

Popular posts from this blog

100 Welcome Bonus Forex Broker 2014

100 Bónus de Depósito de Forex Como receber o seu Bónus de Depósito: Abrir uma conta de negociação Depositar fundos na sua conta de negociação Procurar um e-mail de confirmação de depósito Responder ao e-mail de confirmação do depósito Não é segredo que o Forex é um mercado enorme que é muito maior Do que um mercado de ações ou qualquer outro. Alguns comerciantes, que já estão familiarizados com o mercado Forex estão sonhando sobre grandes negócios e pode fazer grandes lucros lá. Mas o que fazer se o depósito não permite fazer comércios que você já pode fazer O que fazer se você não tem margem suficiente para a negociação normal A resposta é depósito Forex 100 Bônus PaxForex fornece o melhor bônus de depósito de Forex. Vamos adicionar até 100 de seu depósito forex para sua conta e você será capaz de negociar com a margem que você quer Bônus Forex Depósito irá ajudá-lo a aumentar seus volumes de negociação Vamos adicionar um novo bônus Forex Depósito em cada depósito Make Depósito e obt

Manage Binary Options And Split Problems

Money Management Então, você leu sobre o básico de negociação de opções binárias e agora você está pronto para se tornar um operador de opções binárias. Você pode começar com alguns dos nossos corretores favoritos com tão pouco quanto 100. Se você encontrou 100 você pode reservar para negociação, você certamente pode começar, mas é melhor aprender um pouco mais sobre gestão do dinheiro em primeiro lugar. A administração de dinheiro é um dos três ingredientes chaves a negociar de opções binárias bem sucedidas, os outros dois que são disciplina e estratégia. O que é gestão de dinheiro Simplificando, é exatamente o que parece. Gestão de dinheiro refere-se às técnicas que você usa para gerir de forma consistente e rentável o seu comércio de tamanhos. Ele também pode levar em conta as ações que você escolher para tomar enquanto você está em uma negociação, como fechar cedo, dobrando-se, ou rolando. Há outros aspectos envolvidos também, como quando você adiciona à sua conta e quando você ret

Euro Forex Eller Bankomat

Eller é a pessoa que mais procurou no banco de dados? Den dag folk inserir dirt dyrt det ao lado de Forex så får dom packa ihop butiken. De tog em kurs em bra pouco abaixo de oficialmente kursen på Euro och ingen avgift, alltså 5. 2012. - Det är inte alls säkert att det finns bankomat på plats när du Landar då kan av undersökningsföretaget YouGov på uppdrag av Forex Banco visar att Så här mycket euro får du para 1000 utomlands kr (mapa i Butik automático Eller). Tanque doca på att alla banqueiro har en uttags - och / eller växlingsavgift som SEB hänvisar até Bankomat när det gäller uttag av euro och eventuella Övriga valutor 22. 2012. - Ja, om man tar ut bankomat på Kanarieöarna. - Ok, homens jag vill Ekot lät em repórter ta ut euro på Forex på Skavsta flygplats. Direkt när hon Ska até Grekland em stund. Frågan är, tjänar jag på tänna förbi Forex och växla till mig lite euros. Eller está no banco de dados # 2. Tycker det var nyttig info! Alugar quartos em apartamento partilhado Euro? F