К основному контенту

Sistemas de negociação de redes elétricas genéticas


SnowCron.
GRATUITO E. Mail Classes.
Usando o Algoritmo Genético para criar uma estratégia de negociação FOREX rentável. Algoritmo Genético no Software de Redes Neurais do Cortex Feedforward Backpropagation Rede Neural Aplicação para cálculos genéticos baseados em negociações Forex.
Este exemplo usa conceitos e idéias do artigo anterior, portanto, leia o Algoritmo Genético de Rede Neural em FOREX Trading Systems primeiro, embora não seja obrigatório.
Sobre este texto
Primeiro de tudo, por favor leia o aviso. Este é um exemplo do uso da funcionalidade do algoritmo genético da Cortex Neural Networks Software, não um exemplo de como fazer negócios lucrativos. Eu não sou seu guru, nem eu deveria ser responsável por suas perdas.
O Cortex Neural Networks Software possui redes neurais, e o FFBP que discutimos anteriormente é apenas uma maneira de escolher uma estratégia de negociação forex. É uma boa técnica, poderosa e quando aplicada corretamente, muito promissor. No entanto, tem um problema - para ensinar a Rede Neural, precisamos conhecer a "saída desejada".
É bastante fácil fazer quando fazemos a aproximação da função, apenas pegamos o valor "real" de uma função, porque sabemos o que deveria ser.
Quando fazemos previsões de redes neurais, usamos a technue (descrita em artigos anteriores) de ensino da Rede Neural sobre a história, novamente, se prevermos, digamos, uma taxa de câmbio, sabemos (durante o treinamento) qual é a predição correta .
No entanto, quando estamos construindo um sistema de negociação, não temos idéia de qual é a decisão de negociação correta, mesmo se soubermos a taxa de câmbio! De fato, temos muitas estratégias de negociação forex que podemos usar a qualquer momento, e precisamos encontrar uma boa - como? O que devemos alimentar como a saída desejada da nossa Rede Neural?
Se você seguiu nosso artigo anterior, você sabe que nos enganamos para lidar com esse problema. Ensinamos a Rede Neural a fazer a previsão da taxa de câmbio (ou indicador baseado na taxa de câmbio) e, em seguida, utilizamos essa previsão para negociar. Então, fora da parte de Rede Neural do programa, 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 de negociação".
Neste artigo, vamos usar o software Cortex Neural Networks para criar um programa desse tipo.
Usando Algoritmo Genético.
Algoritmos genéticos são muito bem desenvolvidos e muito diversificados. Se você quer aprender tudo sobre eles, eu sugiro que você use Wikipedia, já que este artigo é apenas sobre o que o Cortex Neural Networks Software pode fazer.
Com o Cortex Neural Networks Software, podemos criar uma Rede Neural que recebe alguma entrada, digamos, valores de um indicador e produz alguma saída, digamos, sinais de negociação (comprar, vender, manter) e parar níveis de perda / take profit para posições para ser aberto.
É claro que, se multiplicarmos os pesos dessa rede neural aleatoriamente, os resultados das negociações serão terríveis. No entanto, digamos que criamos uma dúzia desses 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 com a segunda geração, precisamos permitir que nosso vencedor "procrie", mas para evitar cópias idênticas, vamos adicionar um pouco de noice aleatório aos pesos de seus descendentes.
Na segunda geração, temos nosso vencedor da primeira geração e são cópias imperfeitas (mutantes). 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 criem e eliminem os perdedores, assim como na evolução da vida real, e obteremos nossa Rede Neural de melhor negociação, sem nenhum conhecimento prévio sobre como o sistema comercial (algoritmo genético) deveria ser.
Algoritmo Genético de Rede Neural: Exemplo 0.
Este é o primeiro exemplo de algoritmo genético e um exemplo muito simples. Vamos percorrê-lo passo a passo para aprender todos os truques que os exemplos a seguir usarão.
O código tem comentários inline, então vamos nos concentrar apenas nos principais momentos.
Primeiro, criamos uma rede neural. Está usando pesos aleatórios e ainda não foi ensinado.
Então, em ciclo, fazemos 14 cópias, usando a função MUTATION_NN. Esta função faz uma cópia de uma rede neural de origem, adicionando valores aleatórios de 0 a (no nosso caso) 0,1 a todos os pesos.
Mantemos alças para 15 NNs resultantes em uma matriz, podemos fazer isso, pois handle é apenas um número inteiro.
A razão pela 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 abordagens diferentes para o teste. Primeiro, podemos usar o conjunto de aprendizado, tudo de uma vez. Segundo, podemos testar, digamos, 12.000 resordos (de 100.000) e percorrer o conjunto de aprendizado, do começo ao fim. Isso tornará os aprendizados diferentes, já que procuraremos redes neurais que sejam lucrativas em qualquer parte dos dados, não apenas no conjunto inteiro. A segunda abordagem pode nos dar problemas, se os dados mudarem, do começo ao fim. Em seguida, a rede evoluirá, obtendo a capacidade de negociar no final do conjunto de dados e perdendo a capacidade de negociar no início.
Para resolver esse problema, vamos pegar aleatoriamente 12.000 registros de fragmentos de dados e alimentá-los com a Rede Neural.
Abaixo, adicionamos um filho para cada rede, com pesos ligeiramente diferentes. Note que 0,1 para mutação tange não é a única escolha, na verdade, até mesmo este parâmetro pode ser otimizado usando algoritmo genético.
NNs recém-criados são adicionados após 15 existentes. Dessa forma, temos 30 NNs em uma matriz, 15 antigos e 15 novos. Então, vamos fazer o próximo ciclo de testes e matar os perdedores das duas gerações.
Para fazer testes, 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. Os resultados da negociação são usados ​​para designar quais NNs são os melhores.
Usamos um intervalo de registros nLearn, de nStart para nStart + nLearn, em que nStart é um ponto aleatório dentro do conjunto de aprendizado.
O código abaixo é um truque. A razão pela qual a usamos é para ilustrar o fato de que o algoritmo genético pode criar um algoritmo genético, mas não necessariamente será o melhor, e também, para sugerir, que podemos melhorar o resultado, se implicarmos algumas limitações ao aprendizado. processo.
É possível que nosso sistema de negociação funcione muito bem em operações longas e muito fraco em curto ou vice-versa. Se, digamos, trocas longas forem MUITO boas, esse algoritmo genético poderá vencer, mesmo com grandes perdas em trocas curtas.
Para evitá-lo, atribuímos mais peso aos negócios longos em operações ímpares e curtas em ciclos pares. Este é apenas um exemplo, não há garantia de que isso irá melhorar alguma coisa. Mais sobre isso abaixo, em discussão sobre correções. Tecnicamente, você não precisa fazer isso, ou pode fazer diferente.
Adicione lucro a uma matriz classificada. Ele retorna uma posição de inserção e, em seguida, usamos essa posição para adicionar o identificador da Rede Neural, aprendendo e testando os lucros para matrizes não ordenadas. Agora, temos dados para a Rede Neural atual no mesmo índice de matriz que seu lucro.
A ideia é chegar ao conjunto de NNs, classificados por rentabilidade. Como array é ordenado por lucro, para remover 1/2 de redes, que são menos lucrativas, basta remover NNs 0 a 14.
As decisões de negociação são baseadas no valor do sinal da Rede Neural, a partir deste ponto de vista o programa é idêntico aos exemplos do artigo anterior.
Estratégia de Negociação de FOREX: Discutindo o exemplo 0.
Primeiro de tudo, vamos dar uma olhada nos gráficos. O primeiro gráfico para lucro durante a primeira iteração não é nada bom, como seria 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 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 o modo como os lucros individuais mudam, tendo em mente que o número da curva, digamos, 3 nem sempre é para a mesma Rede Neural, pois eles estão nascendo e terminando o tempo todo:
Observe também que, fora do sistema de negociação automatizado de forex pouco executa em operações curtas, e muito melhor em longos, o que pode ou não estar relacionado com o fato, que o dólar estava caindo em relação ao euro durante esse período. Também pode ter algo a ver com parâmetros do nosso indicador (talvez, precisamos de um período diferente para curtos) ou a escolha de indicadores.
Aqui está a história depois de 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, cada geração não é supostamente melhor que a anterior? A resposta é não, pelo menos não dentro do modelo que usamos. Se pegarmos todo o conjunto de aprendizagem de uma só vez, e usá-lo repetidamente para ensinar nossas NNs, então sim, elas melhorarão em cada geração. Mas, em vez disso, pegamos fragmentos aleatórios (12.000 registros no tempo) e os usamos.
Duas perguntas: por que o sistema falhou em fragmentos aleatórios do conjunto de aprendizado e por que não usamos todo o conjunto de aprendizado? Bem. Para responder a segunda pergunta, eu fiz. NNs realizaram muito - no set de aprendizagem. E eles falharam no teste, pelo mesmo motivo que falha quando usamos o aprendizado FFPB. Em outras palavras, nossos NNs foram superespecializados, aprenderam a sobreviver no ambiente a que estão acostumados, mas não fora dele. Isso acontece muito na natureza.
A abordagem que tomamos foi destinada a compensar isso, forçando os NNs a terem um bom desempenho em qualquer fragmento aleatório do conjunto de dados, de modo que, esperamos, eles também pudessem executar em um conjunto de testes desconhecido. Em vez disso, eles falharam nos testes e no conjunto de aprendizado.
Imagine animais vivendo em um deserto. Muito sol, nada de neve. Essa é uma metaforização para o mercado, já que nossos dados de NNs desempenham o papel de ambiente. Os animais aprenderam a viver no deserto.
Imagine animais que vivem num 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 (surgindo aleatoriamente, caindo, planos). Animais morreram.
Ou, para colocar de forma diferente, selecionamos a melhor Rede Neural para o conjunto de dados aleatórios 1, que, digamos, foi para o mercado em ascensão. Em seguida, apresentamos aos vencedores e seus filhos dados sobre um mercado em queda. As NNs tiveram um desempenho ruim, tiramos o melhor dos maus desempenhos, talvez, uma das crianças mutantes, que perderam a capacidade de negociar no mercado em ascensão, mas conseguiram alguma habilidade para lidar com uma queda.
Depois viramos a mesa novamente e, novamente, obtivemos o melhor desempenho - mas o melhor entre os artistas com baixo desempenho. Nós simplesmente não davamos às nossas NNs nenhuma chance 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, certo? Assim, a evolução é capaz de lidar com mudanças repetidas). Podemos discutir esses temas mais tarde, embora este artigo tenha mais a ver com o uso do Cortex Neural Networks Software do que com a criação de um sistema de negociação automatizado forex bem-sucedido.
Algoritmo Genético da 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 principais. Primeiro, falhou em negociar com lucro. Está tudo bem, podemos tentar usar um sistema parcialmente treinado (foi lucrativo no começo). A segunda falha é mais séria: não temos controle sobre as coisas, que esse sistema faz. Por exemplo, pode aprender a ser lucrativo, mas com enormes perdas.
É um fato bem conhecido que, na vida real, a evolução pode otimizar mais de um parâmetro simultaneamente. Por exemplo, podemos pegar um animal que pode correr rápido e ser resistente ao frio. Por que não tentar fazer o mesmo em nosso sistema de negociação automatizado forex?
É quando usamos correções, que não são nada além do conjunto de punições adicionais. Digamos que nosso sistema negocie com drawdown 0.5, enquanto queremos confirmá-lo para 0 - 0.3 interval. Para "dizer" ao sistema que ele cometeu um erro, diminuímos seu lucro (um usado para determinar qual algoritmo genético venceu) ao grau, que é proporcional ao tamanho do DD. Então, o algoritmo de evolução cuida do resto.
Há poucos fatores a mais que queremos levar em consideração: podemos querer ter um número mais ou menos igual de operações de compra e venda, queremos ter mais operações lucrativas, depois fracassos, podemos querer que o gráfico de lucro seja seja linear e assim por diante.
Em evolution_01.tsc, implementamos um conjunto simples de correções. Primeiro de tudo, usamos um número grande para um valor de correção inicial. Nós multiplicamos para um valor pequeno (geralmente, entre 0 e 1), dependendo da "punição" que queremos aplicar. Então multiplicamos nosso lucro para essa correção. Como resultado, o lucro é corrigido, para refletir 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 de FOREX: Discutindo 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 reconfortantes. No entanto, como no exemplo 0, as negociações longas são muito mais lucrativas, 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 aprendizado quanto, mais importante, no conjunto de testes.
Quanto ao aprendizado posterior, no ciclo 278, podemos ver que nosso sistema foi super treinado. Isso significa que ainda temos progresso no aprendizado:
Mas o conjunto de testes mostra fraqueza:
Este é um problema comum com NNs: quando ensinamos em um conjunto de aprendizado, ele aprende a lidar com ele e, às vezes, aprende muito bem - na medida em que perde o desempenho no conjunto de testes.
Para lidar com esse problema, uma solução "tradicional" é usada: continuamos procurando a Rede Neural, que tem melhor desempenho no conjunto de testes, e a salvamos, sobrescrevendo a melhor anterior, sempre que um novo pico é atingido. Essa é a mesma abordagem, que usamos no treinamento FFBP, exceto que, desta vez, temos que fazer isso sozinhos (adicionando código, que procura uma melhor Rede Neural em um conjunto de testes, chamando SAVE_NN ou exportando pesos de Rede Neural para um Arquivo). Dessa forma, quando você interromper seu treinamento, você terá o melhor desempenho de ON TESTING SET salvo e esperando por você.
Note também que não é o máximo. o lucro que você busca, mas o desempenho ideal, portanto, 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 de ganhar o seu vencedor Rede Neural, você pode seguir os passos, descritos no artigo anterior, para exportar pesos dessa Rede Neural, e então 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 maneiras de otimizar a Rede Neural, ao contrário do algoritmo FFBP, aqui você pode obter o avay de usar conjuntos de aprendizado e teste e mover o aprendizado seqüencial.

Sistemas de comércio de redes elétricas genéticas
Se você ainda está procurando uma vantagem nos mercados, os sistemas de negociação automatizados são a melhor maneira de obtê-lo. Saber mais.
Direitos autorais (c) 2010 Adaptrade Software. Todos os direitos reservados.
OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. A PARTIR DE UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, UMA VEZ QUE AS COMERCIALIZAÇÕES NAO SÃO REALMENTE EXECUTADAS, OS RESULTADOS PODEM TER COMPENSADO OU SUPERIOR AO IMPACTO, SE ALGUM, DE DETERMINADOS FATORES DE MERCADO, COMO A FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL TAMBÉM ESTÃO SUJEITOS AO FATO DE QUE ELES FORAM CONCEBIDOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ SENDO FEITA QUE QUALQUER CONTA PODERÁ OU POSSIBILITAR LUCROS OU PERDAS SIMILARES AOS APRESENTADOS.
EasyLanguage e TradeStation são marcas registradas da TradeStation Technologies, Inc.
Uma das maiores tendências no comércio varejista na última década foi o aumento da popularidade do comércio automatizado. Neste tipo de negociação, também conhecido como execução automatizada de ordens, os sinais de compra e venda gerados por um sistema de negociação são executados automaticamente por uma plataforma conectada à conta de corretagem do negociante. Isso permite a troca de mãos livres, o que permite uma execução mais rápida, menos erros e a capacidade de negociar prazos mais curtos com estratégias de frequência mais alta.
O algoritmo básico para a construção de sistemas de negociação usando geração automática de código é mostrado abaixo na Figura 1. Ele começa com um método para combinar diferentes elementos da estratégia de negociação. Esses elementos podem incluir vários indicadores técnicos, como médias móveis, estocásticos e assim por diante; diferentes tipos de ordens de entrada e saída; e condições lógicas para entrar e sair do mercado.
Figura 1. Algoritmo básico para construção de estratégia automatizada.
Depois que os diferentes elementos são combinados em uma estratégia coerente, ela pode ser avaliada no mercado ou nos mercados de interesse. Isso exige dados de mercado - preços, volume, juros em aberto, etc. - para cada mercado. De um modo geral, você também teria um conjunto de metas de compilação para ajudar a classificar ou classificar cada estratégia. Exemplos de metas de construção incluem várias medidas de desempenho, como lucro líquido, redução, porcentagem de vencedores, fator de lucro e assim por diante. Estes poderiam ser definidos como requisitos mínimos, como um fator de lucro de pelo menos 2.0, ou como objetivos a serem maximizados, como a maximização do lucro líquido.
Base Teórica da Geração Automática de Código.
Como descrito acima, construir um sistema de negociação usando geração automática de código é essencialmente um problema de otimização. A combinação de elementos de estratégia que maximiza as metas de construção é considerada a estratégia final. Alguns traders objetariam que os sistemas de negociação deveriam ser construídos com base em uma hipótese de comportamento ou ação de mercado. Se você tem uma boa hipótese sobre como os mercados funcionam, uma estratégia pode ser construída em torno dessa hipótese e testada. Se funcionar, suporta a hipótese e justifica a negociação da estratégia.
Gerador de código de sistema padrão para a TradeStation.
Esta seção descreve uma abordagem ad hoc para geração automática de código na qual um sistema de negociação para a TradeStation gera automaticamente outros sistemas de negociação baseados em padrões para a TradeStation. O sistema AutoSystemGen procura por um conjunto de regras de negociação, juntamente com os valores de parâmetros associados, que atendam a um conjunto especificado de requisitos de desempenho.
Embora quase qualquer tipo de indicador ou lógica de negociação possa ser incluído no gerador do sistema de negociação descrito aqui, para manter as coisas relativamente simples, as regras dos sistemas gerados serão restritas a padrões de preços. Cada regra de entrada de um sistema de negociação gerado terá o seguinte formato:
A chave para esse processo é encontrar sistemas de negociação candidatos. Um sistema pode consistir de uma a dez regras da forma mostrada acima. Negociações são entradas no mercado se todas as regras forem verdadeiras, e negociações são feitas depois de um certo número de barras. Se isso fosse codificado como um sistema tradicional da TradeStation, com um máximo de 10 regras, haveria 52 entradas. Isso criaria uma estratégia incômoda.
O código para o sistema AutoSystemGen e suas funções relacionadas está disponível em Breakout Futures (breakoutfutures /) na página Free Downloads.
Como exemplo, considere o mercado futuro de títulos de 30 anos do Tesouro (símbolo @ US. P na TradeStation 8). O AutoSystemGen foi otimizado nos últimos 20 anos de preços de T-bond com a entrada OptStep aumentada de 1 para 10000. Isso significa que o sistema avaliou 10.000 sistemas de negociação diferentes. A otimização foi executada duas vezes, uma para negociações longas e outra para operações a descoberto. Os seguintes requisitos de desempenho foram utilizados: lucro líquido de pelo menos US $ 30.000, perda do pior caso não superior a US $ 7500, pelo menos 200 negociações, percentual lucrativo de pelo menos 50% e fator de lucro de pelo menos 1,2. Em um computador dual core com o Vista, foram necessários aproximadamente 10 minutos para executar cada otimização (10.000 sistemas por otimização).
Sistema 2332, @ US. P, 9/17/2007 12:23:00, Long Trades.
Lucro Líquido = 53562,50, Máximo DD = -7381,25, Número de Negociações = 250, Percentual de Vitórias = 56,80, Prof fator = 1,631.
Var: EntNext (false);
EntNext = Open [2] & gt; = Baixo [16] e.
Fechar [14] & lt; = Baixo [6] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 2 então.
Vender próxima barra no mercado;
System 5771, @ US. P, 9/17/2007 12:27:00, Long Trades.
Lucro Líquido = 42145,00, Máx. DD = -5733,75, Número de Negociações = 207, Percentual de Vitórias = 57,00, Prof fator = 1,631.
Var: EntNext (false);
EntNext = Alto [7] & gt; = Baixo [19] e.
Fechar [20] & gt; = Fechar [5] e.
Alto [18] & gt; = Baixo [2] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 2 então.
Vender próxima barra no mercado;
Sistema 7622, ​​@ US. P, 9/17/2007 12:29:00, Long Trades.
Lucro Líquido = 59348,75, DD Máximo = -7222,50, Número de Negociações = 208, Percentual de Vitórias = 60,58, Prof fator = 1,924.
Var: EntNext (false);
EntNext = Baixo [2] & lt; = Alto [9] e.
Abra [11] & gt; = Abrir [18] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 3 então.
Vender próxima barra no mercado;
Sistema 7718, @ US. P, 9/17/2007 12:29:00, Long Trades.
Lucro Líquido = 35526,25, DD Máximo = -6936,25, Número de Negociações = 292, Percentual de Vitórias = 56,85, fator Prof = 1,418.
Var: EntNext (false);
EntNext = Fechar [3] & gt; = Alta [19] e.
Alta [6] & lt; = Abrir [10] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 1 então.
Vender próxima barra no mercado;
Sistema 6160, @ US. P, 9/17/2007 12:42:00, Curtas Negociações.
Lucro Líquido = 31277,50, DD Máximo = -6846,25, Número de Negociações = 369, Percent Wins = 51,76, Prof fator = 1,297.
Var: EntNext (false);
EntNext = Alto [9] & gt; = Baixo [6] e.
Fechar [15] & gt; = Alta [8] e.
Alta [7] & lt; = Baixa [20] e.
Se EntNext então.
Vender curto próximo bar no mercado;
Se BarsSinceEntry = 1 então.
Compre para cobrir a próxima barra no mercado;
A listagem de cada sistema inclui o número do sistema (correspondente à entrada OptStep), símbolo de mercado, data atual e se o sistema é apenas longo ou curto. A próxima linha contém algumas estatísticas de desempenho resumidas para ajudar na avaliação de cada sistema. Finalmente, o código do sistema é mostrado. Para avaliar os sistemas no TradeStation, o código entre as duas linhas de comentário () pode ser copiado e colado em uma estratégia no TradeStation, em seguida, executado na janela do gráfico.
O último sistema no arquivo de saída é para um sistema curto somente (# 6160). Quando guardada na TradeStation como estratégia e aplicada ao mesmo gráfico de T-bond, foi produzida a seguinte curva de capital:
Figura 3. Sistema Short-only para T-bonds, nos últimos 20 anos, com US $ 15 por transação deduzidos para custos de negociação, gerados pelo sistema AutoSystemGen.
Programação Genética para Geração Automática de Código.
A abordagem ad hoc descrita na seção anterior é simples, mas tem duas limitações: (1) as estratégias geradas aleatoriamente não convergem para as metas de compilação e (2) o modelo do sistema de padrões é difícil de generalizar para estratégias mais complexas. . Isso sugere que é necessária uma abordagem mais sofisticada.
Um método para geração automática de código que trata dessas duas preocupações é chamado de programação genética (GP), 1 que pertence a uma classe de técnicas chamada algoritmos evolutivos. Algoritmos evolutivos e GP em particular foram desenvolvidos por pesquisadores em inteligência artificial baseados nos conceitos biológicos de reprodução e evolução. Um algoritmo GP “evolui” uma população de estratégias de negociação a partir de uma população inicial de membros gerados aleatoriamente. Membros da população competem uns contra os outros com base em sua "aptidão". Os membros mais aptos são selecionados como "pais" para produzir um novo membro da população, que substitui um membro mais fraco (menos apto).
Reduz a necessidade de conhecimento de indicadores técnicos e desenho de estratégia. O algoritmo GP seleciona as regras de negociação individuais, indicadores e outros elementos da estratégia para você.
O processo de construção de regras permite uma complexidade considerável, incluindo regras de negociação não lineares.
O processo GP elimina os elementos mais trabalhosos e entediantes do processo tradicional de desenvolvimento de estratégias; ou seja, criar uma nova ideia de negociação, programá-la, verificar o código, testar a estratégia, modificar o código e repetir. Tudo isso é feito automaticamente no GP.
O processo GP é imparcial. Enquanto a maioria dos comerciantes desenvolveu vieses a favor ou contra indicadores específicos e / ou lógica de negociação, o GP é guiado apenas pelo que funciona.
Ao incorporar a semântica da regra de negociação adequada, o processo GP pode ser projetado para produzir regras de negociação lógicas e código livre de erros.
O processo GP geralmente produz resultados que não são apenas indevidos, mas não óbvios. Em muitos casos, essas gemas escondidas seriam quase impossíveis de encontrar de outra maneira.
Ao automatizar o processo de criação, o tempo necessário para desenvolver uma estratégia viável pode ser reduzido de semanas ou meses para uma questão de minutos em alguns casos, dependendo do tamanho do arquivo de dados do preço de entrada e de outras configurações de construção.
A programação genética tem sido usada com sucesso em uma variedade de campos, incluindo processamento de sinais e imagens, controle de processos, bioinformática, modelagem de dados, geração de código de programação, jogos de computador e modelagem econômica; ver, por exemplo, Poli et al. 2 Uma visão geral do uso do GP em finanças é fornecida por Chen. 3 Colin 4 foi um dos primeiros a explicar como usar GP para otimizar combinações de regras para uma estratégia de negociação.
J. Koza. Programação Genética. The MIT Press, Cambridge, MA. 1992.
R. Poli, W. B. Langdon e N. F. McPhee. Um guia de campo para programação genética. Publicado via lulu e disponível gratuitamente em gp-field-guide. uk, 2008. (Com contribuições de J. R. Koza).
Shu-Heng Chen (Editor). Algoritmos Genéticos e Programação Genética em Finanças Computacionais. Kluwer Academic Publishers, Norwell, MA. 2002.
A. Colin. Algoritmos genéticos para modelagem financeira, Trading on the Edge. 1994, páginas 165-168. John Wiley & amp; Sons, Inc. Nova Iorque.
Risto Karjalainen. Regras técnicas de negociação em evolução para futuros de S & P 500, Advanced Trading Rules, 2002, Pages 345-366. Elsevier Science, Oxford, Reino Unido.
Jean-Yves Potvin, Patrick Soriano e Maxime Vallee. Gerando regras de negociação nos mercados de ações com programação genética. Computadores e Pesquisa de Operações, Volume 31, Edição 7, junho de 2004, páginas 1033-1047.
Massimiliano Kaucic. Investimento utilizando métodos evolutivos de aprendizagem e regras técnicas. Revista Européia de Pesquisa Operacional, volume 207, número 3, 16 de dezembro de 2010, páginas 1717-1727.
Um Algoritmo de Construção Usando Programação Genética.
Expandindo o algoritmo de construção apresentado anteriormente (ver Fig. 1), um algoritmo mais detalhado é ilustrado abaixo na Fig. 4 com base na programação genética. As caixas cinza-sombreadas representam os dados de entrada, que incluem os dados de preço para o (s) mercado (s) de interesse, os indicadores e tipos de ordem no chamado conjunto de construção e as opções e critérios de desempenho (metas de construção) selecionadas pelo do utilizador.
Figura 4. Algoritmo de construção para geração automática de código com programação genética.
O processo GP pode ser usado para evoluir simultaneamente dois elementos essenciais da estratégia: condições de entrada e ordens de entrada e saída. As condições de entrada são tipicamente representadas como estruturas de árvore, como mostrado abaixo na Fig. 5.
A chave para a evolução das ordens de entrada e saída usando programação genética é representar os diferentes tipos de pedidos de forma generalizada. Por exemplo, parar e limitar os preços de entrada pode ser representado da seguinte forma:
Embora a programação genética seja capaz de gerar estratégias de negociação com considerável variedade, é necessário começar com uma estrutura generalizada para as estratégias a seguir. A estrutura da estratégia mostrada abaixo no pseudocódigo fornece uma estrutura para a construção de estratégias com base nas condições de entrada e nos tipos de pedidos, como os discutidos acima:
Entradas: N1, N2, N3,…
Se a posição for plana e LongEntryCondition for verdadeira, então.
Longa entrada ...
Inicialize ordens de saída longas conforme necessário ...
Se a posição for plana e ShortEntryCondition for true, então.
Ordem de entrada curta…
Inicialize ordens de saída curtas conforme necessário ...
Se a posição for longa, então.
Longa ordem de saída 1…
Longa ordem de saída 2…
Se a posição é curta então.
Ordem de saída curta 1…
Ordem de saída curta 2…
[Saída opcional de fim de dia]
As estratégias começam com a lista de entradas. Uma entrada é fornecida para qualquer parâmetro do indicador, comprimento de lookback do padrão de preço e quaisquer parâmetros requeridos pelos pedidos de entrada e saída, como o comprimento de lookback do ATR.
Para ilustrar o uso de programação genética para geração automática de código na construção de estratégias, o programa Adaptrade Builder foi executado em barras diárias de um mercado futuro de índices de ações para uma população pequena e um número limitado de gerações. As métricas de desempenho escolhidas para orientar o processo foram o lucro líquido, o número de negócios, o coeficiente de correlação, a significância estatística e a relação retorno / rebaixamento. Metas específicas foram estabelecidas para o número de negociações e a relação retorno / rebaixamento. As outras métricas selecionadas foram maximizadas. A função de adequação foi uma média ponderada de termos para cada métrica.
Figura 6. Porcentagem de membros da população com lucro líquido fora da amostra superior a US $ 1.000.
Da mesma forma, o lucro líquido médio da OOS da população aumentou após cinco e dez gerações, como mostra a Figura 7. Observe que esses resultados são para o lucro líquido do OOS. Por definição, os dados fora da amostra não são usados ​​na compilação, portanto, os resultados do OOS são imparciais; eles não se beneficiam da retrospectiva. Isto implica que o processo GP não só tende a melhorar os resultados dentro da amostra ao longo de gerações sucessivas, o que é um efeito direto do algoritmo GP, mas os resultados OOS também tendem a melhorar à medida que as estratégias são evoluídas. Isso indica uma construção de alta qualidade.

Usando a programação genética para evoluir estratégias de negociação.
Recentemente, um amigo e eu trabalhamos juntos em uma tarefa de pesquisa na qual utilizamos com sucesso a Programação Genética (GP) para desenvolver soluções para um problema de classificação financeira do mundo real. Esse problema, chamado de análise de segurança, envolve determinar quais títulos devem ser comprados para obter um bom retorno sobre o investimento no futuro. Para encontrar uma solução para esse problema, usamos a Programação Genética para desenvolver uma população de árvores de decisão que poderia realizar análises de segurança em 62 das ações de tecnologia listadas no S & P 500. Ou seja, desenvolvemos árvores de decisão capazes de classificar essas ações de acordo com se eles devem ser comprados ou vendidos a descoberto.
Árvores de Decisão de Análise de Segurança.
Durante o estudo, desenvolvemos dois tipos de árvores de decisão de análise de segurança. A primeira utilizou apenas indicadores da análise fundamental e a segunda utilizou apenas indicadores da análise técnica. A análise fundamental é um método de avaliar uma segurança para medir seu valor intrínseco examinando fatores econômicos, financeiros e outros fatores qualitativos e quantitativos relacionados. A análise técnica é um método de avaliação de títulos, analisando as estatísticas geradas pela atividade de mercado.
Uma estratégia para análise de segurança, independentemente de usar indicadores técnicos ou fundamentais, consistirá em várias regras para tomar decisões de investimento. Essa estratégia pode ser representada como uma árvore de decisão em que os nós terminais representam decisões de investimento e os nós funcionais representam regras baseadas em indicadores técnicos ou fundamentais. Devido a este fato, muitas estratégias de investimento existentes são representadas na forma de árvores de decisão.
No total, quarenta e dois indicadores diferentes foram selecionados e utilizados a partir de análise técnica e análise fundamentalista. As estratégias evoluídas foram para um período fixo de retenção de três meses, seis meses, nove meses ou doze meses de duração. As árvores de decisão foram testadas novamente usando dados de mercado de 2011 a 2013.
Programação Genética.
Programação Genética é uma especialização de um Algoritmo Genético. Algoritmos genéticos são baseados na população, o que significa que eles operam dentro de uma população composta por muitos indivíduos diferentes. Cada indivíduo é representado por um genótipo desconhecido (geralmente codificado como um vetor). Algoritmos Genéticos modelam o processo de evolução genética através de um número de operadores incluindo o operador de seleção que modela a sobrevivência do mais apto, o operador de crossover que modela a reprodução sexual e o operador de mutação que modela as mutações genéticas que ocorrem aleatoriamente para indivíduos em uma população. Esses operadores, quando combinados, produzem o que os cientistas da computação chamam de Algoritmo Genético.
Os três operadores de um Algoritmo Genético aplicado a uma população de vetores (blocos)
A diferença entre um Algoritmo Genético e o Algoritmo de Programação Genética é a maneira pela qual os genótipos individuais são representados. Nos genótipos de Algoritmos Genéticos são representados como Strings ou como Vetores, enquanto na Genetic Programming estes genótipos são representados usando estruturas de dados de árvores. A operação de cruzamento em estruturas de árvore pode acontecer de algumas maneiras, uma subárvore é trocada, um nó de folha é removido ou alterado ou os valores de algum nó são ajustados. Uma ilustração disso é mostrada abaixo,
Este diagrama descreve a estratégia de cruzamento de uma árvore de decisão usada pela programação genética para análise de segurança.
Após este estudo, concluímos que a Programação Genética tem um grande potencial para desenvolver novas estratégias de análise de segurança e gestão de investimentos, desde que sejam obtidas melhores funções para calcular a adequação. Ao longo de nossa pesquisa, vimos que as árvores de decisão evoluídas usando a Programação Genética foram capazes de produzir classificações de ações que superaram consistentemente o retorno médio do mercado ao longo dos quatro trimestres. Isso é verdade para as árvores de decisão que usaram indicadores técnicos, bem como árvores de decisão que usaram indicadores fundamentais. Uma série de outras conclusões foram derivadas de nossa pesquisa, incluindo os tamanhos e o nível ideais de heterogeneidade para as árvores de decisão e o valor agregado pelos diferentes indicadores e o desempenho das estratégias em relação um ao outro. Alguns resultados estão incluídos abaixo.
Relação entre o tamanho da árvore de decisão e a adequação Indicadores mais populares usados ​​na árvore de decisão final.
Tamanhos médios de árvore por iteração Exemplo Exemplo de Árvore de Decisão de Análise de Segurança Árvore de Decisão de Análise de Segurança.
Conclusão.
Dois relatórios de pesquisa independentes foram produzidos por mim e por meu amigo. Ambos os relatórios apresentam muito mais detalhes sobre o nosso estudo de pesquisa, a abordagem adotada, nosso projeto e implementação, as estratégias de teste que usamos, nossas conclusões e recomendações para futuras pesquisas. Você também pode baixar uma cópia do código-fonte criado durante a implementação. Para meus colegas mais técnicos do projeto, por favor clique aqui.
História anterior
Clustering usando o Ant Colony Optimization.
Próxima história.
Sistemas Inteligentes de Negociação Algorítmica.
[Comentário copiado do LinkedIn Computational Finance Group]
Muito bom trabalho. O escrever é lindo também.
Eu só tive a chance de olhar para o relatório. Algumas estatísticas que seria bom analisar: como a sua carteira de GA se compara a portfólios dos mesmos ativos. Eu olharia para dois portfólios de comparação: um portfólio ponderado igual e um portfólio de estilo S & amp; P que é ponderado pela capitalização de mercado.
Como se vê, pode ser surpreendentemente difícil superar um portfólio igualmente ponderado. Reequilibre as carteiras trimestralmente, uma vez que algumas ações irão subir e algumas cairão (por exemplo, você deseja manter os pesos da carteira iguais, à medida que os preços mudam). Se o seu algoritmo genético bate esses portfólios, então você tem "alfa" (excesso de retorno sobre o benchmark).
Claro que alfa não é tudo. Você deve observar a Perda Esperada de Cauda (ETL) (também conhecida como CVaR, Expected Shortfall) para a carteira GA e o "benchmark". Se você tem menos risco para o mesmo retorno, então você pode considerar que você bateu o benchmark. A medida de ETL é uma medida melhor do que o índice de Sharpe quando se trata de risco, uma vez que o índice de Sharpe mede a variação, que é de dois lados. O ETL mede apenas a perda.
Uma observação: um problema com GA e redes neurais (NN) é que são caixas pretas. É difícil determinar por que eles fazem as "escolhas" que fazem. Então imagine que você é um gerente de portfólio. Seu GA ou NN começa a ter um desempenho ruim. Que passos você pode dar para resolver isso? O problema é que tudo o que você realmente pode fazer é reciclar e não sabe se o treinamento será melhor. É claro que com uma árvore de decisão não é tão ruim, já que pelo menos você sabe quais decisões ela tomou. O problema é que, se você está constantemente mexendo para tomar as decisões certas, então você também tem um problema.
Esses problemas são motivos pelos quais você não vê muito esses algoritmos (embora eles sejam usados).
[Resposta copiada do LinkedIn Computational Finance Group]
Obrigado pelas palavras complementares Ian, agradecemos que você tenha interesse em nossa pesquisa e nos forneça alguns comentários interessantes.
Em nossa abordagem, apenas comparamos o desempenho das seleções de ações feitas por nossas árvores de decisão com um portfólio igualmente ponderado. Estender nossa pesquisa para incorporar diferentes portfólios é uma ideia interessante que será acompanhada durante a próxima fase de desenvolvimento. Também estamos considerando implementar algumas das abordagens bem conhecidas para análise de segurança a serem usadas como benchmarks de desempenho adicionais. Se você ou alguém tiver sugestões sobre quais abordagens podem ser boas referências, informe-nos.
Seus comentários sobre o uso de outras medidas de desempenho estão corretos. Gostaríamos, definitivamente, de olhar para a estrutura de teste de retorno e investigar formas de torná-la mais rigorosa e menos propensa a um ajuste excessivo. Também gostaríamos de implementar funções de adequação adicionais que levem em consideração medidas de risco de portfólio, bem como medidas de excesso de retorno (alfa). Examinarei as medidas que você mencionou e veremos como podemos incorporá-las melhor em nossa estrutura existente. Também estaremos considerando como seria possível usar um framework de back-testing open source como o ZipLine, a estrutura de back-testing usada pelo quantopian.
Suas observações sobre a natureza e o uso de redes neurais e geográficas em finanças são muito interessantes. O desafio de tornar esses algoritmos mais transparentes e, francamente, um pouco menos assustador, não deve ser tomado de ânimo leve. Meu colega está atualmente trabalhando em uma tarefa de pesquisa em que ele está tentando levantar o véu em alguns dos trabalhos internos das Redes Neurais. Se ele for bem-sucedido, em vez de precisar treinar redes neurais constantemente quando algo der errado, ele poderá isolar a causa do problema na rede neural e adaptar sua arquitetura de acordo. Ele está pensando em usar uma aplicação financeira do mundo real das Redes Neurais em sua pesquisa. Então, se você tem alguma idéia sobre isso, por favor me avise?
Pessoalmente falando, estou atualmente trabalhando em uma tarefa de pesquisa em que estou tentando construir uma estrutura algorítmica para a seleção e otimização de portfólios de carry trade. Ele faz uso de alguns algoritmos de Inteligência Computacional e daqui para frente vou ter em mente os problemas que você mencionou. Tentarei identificar formas de mitigar ou eliminar essas preocupações no quadro. Obrigado novamente por todos os seus comentários, agradecemos o feedback. Se você tiver mais alguma boa ideia, entre em contato conosco.
[Comentário copiado do LinkedIn Computational Finance Group]
Acho que a abordagem mais razoável para o backtesting é comparar seus resultados com o que acontece com negociações aleatórias que ainda obedecem a quaisquer restrições que você esteja impondo ao portfólio. Isso é discutido em:
[Resposta copiada do LinkedIn Computational Finance Group]
Obrigado Patrick, essa é uma boa sugestão. Eu entendo a abordagem porque o conceito de backtesting um algoritmo contra uma estratégia de negociação aleatória é conceitualmente semelhante ao teste de um algoritmo de pesquisa contra a pesquisa aleatória. Que é algo que eu fiz antes. Quão popular você diria que a estratégia de backtesting é?
[Resposta copiada do LinkedIn Computational Finance Group]
Stuart: Depressivamente impopular. Mas tem que começar em algum lugar.
[Comentário copiado do LinkedIn Computational Finance Group]
Parece bom, qual é a razão de usar as 62 ações de tecnologia, não 500 ações?
[Cópias de respostas do Grupo de Finanças Computacionais do LinkedIn]
Oi JZ, essa é uma boa pergunta e estou feliz que você tenha perguntado. Debatemos nossa abordagem e uma opinião externa seria muito apreciada. Limitamos nossa amostra de teste a apenas um setor por dois motivos:
1) Acreditamos que as árvores de decisão que usam indicadores fundamentais podem variar drasticamente entre os diferentes setores. Isso ocorre porque o índice financeiro pode variar entre os diferentes setores e achamos que um investidor que usa essa abordagem gostaria de desenvolver árvores de decisão para cada setor de forma independente. ** e.
2) Nós só recebemos três semanas para concluir a tarefa e estávamos preocupados que a adição de mais estoques fosse muito demorada. Isso se tornou uma preocupação infundada, já que nossa implementação poderia lidar facilmente com todas as 500 ações da S & P500, sem problemas significativos de desempenho.
** Nota: isto não se aplica a árvores de decisão usando indicadores de Análise Técnica.
Extremamente interessante. Bem feito Stuart.
É um exercício interessante, mas não vejo qual vantagem o GP tem contra simplesmente treinar o Decision Tree usando alguma medida de impureza. Parece que faz o mesmo de forma muito ineficiente e provavelmente com menos precisão também.
Oi Ignas, para ser perfeitamente honesto, o GP sofre de muitos inconvenientes e a técnica ainda está sendo aperfeiçoada. Dito isto, os métodos tradicionais de indução de árvores de decisão (dos quais eu sou mais recentemente fã) também têm suas desvantagens que podem (ou não) ser superadas pela Programação Genética.
Eu estou tentando re implementar o GA em python. Quais são algumas bibliotecas python que você recomendaria.

Tutorial de Negociação Eletrônica.
O comércio de ações e commodities é anterior à invenção do computador - para não mencionar o telégrafo e o telefone. Pré-tecnologia, as primeiras trocas eram pouco mais do que reuniões informais de empresários locais que tinham interesses em comum, como um comprador de trigo e um vendedor de trigo. Com o tempo, as reuniões tornaram-se mais formais e organizadas à medida que os participantes elaboravam regras e regulamentos comuns. Eventualmente, o protesto aberto evoluiu - um sistema em que lances verbais e sinais manuais são usados ​​para transmitir informações nos pregões das bolsas.
Em 1969, a Instinet (originalmente denominada Redes Institucionais) lançou o primeiro sistema automatizado para instituições dos EUA para contornar o pregão e negociar diretamente entre si em uma base confidencial. A Nasdaq apareceu em cena dois anos depois, em 1971. Inicialmente, era um sistema de cotação automatizada que permitia aos corretores ver os preços que outras empresas ofereciam - mas as negociações ainda eram feitas por telefone.
DOT e SOES.
Vários anos depois, a Bolsa de Valores de Nova York criou o sistema Turnaround de Pedido Designado (DOT - Designated Order Turnaround), que permitia aos corretores encaminhar pedidos diretamente a especialistas no pregão. Em 1984, o SuperDOT de última geração surgiu, permitindo que até 100.000 compartilhamentos fossem enviados ao plenário de uma só vez.
Eventualmente, a Nasdaq ofereceu seu próprio sistema de negociação automatizado - o Small Order Execution System (SOES) - e outras bolsas logo seguiram o exemplo.
Enquanto o criptografado aberto ainda é usado hoje em um grau limitado, ele foi quase totalmente substituído por sistemas eletrônicos que oferecem menos erros, execução mais rápida e melhor eficiência. O comércio eletrônico domina o mundo financeiro e pode ser útil para investidores e traders entenderem como ele funciona. Para ajudar você a começar, veja uma breve análise do comércio eletrônico, incluindo as trocas e a tecnologia principal.

SnowCron.
GRATUITO E. Mail Classes.
Este software de redes neurais permite:
Use os Mapas de Auto-organização da Rede Neural de Kohonen, também conhecidos como algoritmos de classificação de rede neural ou classificador de rede neural.
Todas as ferramentas que você precisa para importar dados e fazer transformações de dados (para a forma que as Redes Neurais Artificiais podem entender).
Ferramentas de gráficos para exibir o progresso durante o treinamento da rede ou para criar o gráfico usando dados de saída previstos de entrada e saída.
Processamento de imagens, mecanismo de banco de dados, acesso à Internet e muito mais coisas pequenas, que não estão diretamente relacionadas às Redes Neurais, mas facilitarão sua vida.
Linguagem de script incorporada, que permite simplificar e fazer o ajuste automático do processo de aprendizado da rede neural, além de oferecer ainda mais controle sobre transformações de dados, gráficos e entrada / saída de arquivos.
A linguagem de Scripts incorporada agora suporta plugins de terceiros! Isso significa que, se você precisar de uma função de alto desempenho e sem script, que não esteja disponível em nosso aplicativo de rede neural, você poderá escrevê-la em sua linguagem de programação favorita, por exemplo. em C ++ - e chamá-lo de scripts Cortex.
Exemplo de Rede Neural 1:
Inclui o "ciclo completo", desde questões de projeto até a portabilidade do código de rede neural resultante para a plataforma de negociação de sua escolha.
Exemplo de Rede Neural 2:
Criando Trading System, sem conhecimento prévio sobre seus parâmetros. A otimização de redes neurais é feita automaticamente, com base em dados de mercado.
Como sempre, após a formação da rede neural, ela é portada para a plataforma de negociação da sua escolha, então a troca de rede neural é realizada no ambiente com o qual você está confortável.
Exemplo de Rede Neural 3:
Aplicando redes para ações e negociação de Forex.
Mapas de auto-organização usados ​​para ajudar no reconhecimento de padrões de redes neurais.
Introdução às Redes Neurais.
Esta é uma introdução do iniciante às redes neurais - um tipo particular delas, chamadas Redes Neurais de Propagação Retroptiva da Feedforward.
O Tutorial de Redes Neurais abrange a terminologia básica, princípios de trabalho e algumas aplicações de redes neurais práticas que podem ser executadas usando redes neurais. Este algoritmo de rede neural é um dos mais populares, pois é fácil de implementar e entender. Além disso, geralmente produz excelentes resultados.
Linguagem de script interna.
A linguagem de script interna tem duas "partes". A primeira parte lida com tarefas comuns, fornece a capacidade de trabalhar com dados de forma automatizada, executar entrada / saída de arquivos, desenhar gráficos e salvá-los como imagens, para criar automaticamente páginas da Web com esses gráficos, para trabalhar com Bancos de dados SQLite e muito, muito mais.
A segunda "parte" é específica do software de redes neurais do Cortex. Você pode escrever scripts (miniprogramas) para processar dados automaticamente, criar e ensinar novas redes e assim por diante.
Plugins (funções chamadas de DLLs de terceiros) agora são suportados.
Quando aplicado à negociação FOREX, e ao comércio em geral, o Cortex pode se tornar uma ferramenta valiosa. Ele permite que você crie um modelo de rede neural, baseado em redes neurais feedforward backpropagation, ou algoritmos genéticos de redes neurais, ou rede neural de classificação de Kohonen, ou uma combinação deles, além de ferramentas de análise técnica tradicionais.
Depois que o sistema de rede neural for concluído, você pode (ele é abordado nos exemplos disponíveis neste site, em forma detalhada passo-a-passo) portá-lo da linguagem de script interna Cortex para uma linguagem de script de uma plataforma de negociação de sua escolha . Daquele ponto em diante, você não precisa do Cortex para negociar! Você simplesmente usa seu ambiente de negociação favorito.
API de programação de redes neurais.
Usando redes neurais treinadas pelo programa Cortex a partir de suas próprias aplicações de redes neurais artificiais. Adicione o poder das redes neurais artificiais às suas próprias ferramentas de análise de dados. Crie softwares interativos, que podem processar dados conforme eles chegam, gravar por registro.
Aqui você pode fazer uma pergunta relacionada ou relatar um erro.

Комментарии

Популярные сообщения из этого блога

Tempo de fechamento de forex cingapura

Horário do Mercado Forex. Use o Conversor de Tempo do Mercado Forex, abaixo, para visualizar os principais horários de abertura e fechamento do mercado em seu próprio fuso horário local. Sobre o Conversor de Fuso Horário Forex. O mercado cambial de moeda estrangeira ("forex" ou "FX") não é negociado em bolsas regulamentadas como ações e commodities. Em vez disso, o mercado consiste em uma rede de instituições financeiras e corretoras de varejo que têm suas próprias horas individuais de operação. Como a maioria dos participantes negocia entre as 8:00 e as 16:00 horas. em seu fuso horário local, esses horários são usados ​​como os horários de abertura e fechamento do mercado, respectivamente. Clique em um fuso horário para as datas e horários de transição do horário de verão (DST). O Forex Market Hours Converter assume o horário de negociação local de "relógio de parede" das 8:00 às 16:00 em cada mercado Forex. Férias não incluídas. Não destinado para uso co...

Spread de forex 0 5

ZERO Spread Account. A Revolução FX Aplicam-se termos e condições. Spreads super apertados. Reduza o custo de sua negociação com a conta HotForex ZERO Spread. Com um depósito mínimo de abertura de apenas US $ 100, a HotForex ZERO Spread Account é uma solução de negociação acessível e de baixo custo que é adequada para todos os traders, mas é particularmente útil. para cambistas, traders de alto volume e aqueles que negociam com Expert Advisors (EAs). Como um titular de conta HotForex ZERO Spread, você receberá Spreads Super-Apertados dos principais fornecedores de liquidez SEM majorações! A conta oferece uma estrutura baseada em comissões altamente transparente e as comissões começam em um valor baixo de US $ 0,04 por lote de 1K. Na recente Pesquisa da HotForex, pedimos que você nos dissesse o que você queria que fizéssemos a seguir. Você pediu e nós entregamos! A HotForex oferece agora os melhores spreads do mercado com EURUSD a partir de 0.0 PIPS! Comissão. * Spreads brutos disponíve...

Regra forex 2

Regras de Negociação Forex: Nunca arrisque mais de 2% por negociação. Nunca arrisque mais de 2% por negociação. Esta é a regra mais comum - e também a mais violada - na negociação e explica muito por que a maioria dos comerciantes perde dinheiro. Os livros de negociação estão cheios de histórias de comerciantes perdendo um, dois, até cinco anos de lucros em um único negócio que deu terrivelmente errado. Essa é a principal razão pela qual a regra de stop loss de 2% nunca pode ser violada. Não importa quão certo o comerciante possa estar em relação a um determinado resultado, o mercado, como disse o conhecido economista John Maynard Keynes, "pode ​​ficar irracional por muito mais tempo do que você pode permanecer solvente". (Para mais informações sobre "stop-loss", leia o artigo The Stop Loss Order - Certifique-se de usá-lo.) A maioria dos comerciantes começa suas carreiras comerciais, seja consciente ou inconscientemente, visualizando "The Big One" - o únic...