Software de rede neural forex


SnowCron.
FREE E. Mail Classes.
O que é "Cortex"?
O software de redes neurais do Cortex é um pacote integrado, construído em torno do mecanismo de script. Isso significa que você pode escrever scripts para automatizar tarefas.
Cortex é um programa de rede neural de propósito geral, ele pode ser usado para diferentes tarefas. No entanto, como a maioria dos visitantes está interessada na negociação forex da rede neural, quase todos os exemplos de rede neural que vem com o Cortex têm algo a ver com o uso de redes neurais para negociação.
Até certo ponto, o comércio de rede Neural é o que o Cortex foi criado. Inclui:
Redes neurais.
FeedFair Backpropagation Neural Networks, com uma interface fácil de usar e um grande número de recursos adicionais, como gráficos, por exemplo.
Neste site, você encontrará um exemplo, o Tutorial de negociação Forex da Rede Neural, que fornece instruções detalhadas passo a passo.
Kohonen Self Organizing Maps.
O SOM (Self Organizing Maps, rede neural de classificação) agora está incluído como parte do software de rede neural Cortex. Com o SOM, você pode realizar o ensino de rede e usar uma rede resultante para a classificação de dados.
Neste site, você encontrará um exemplo, que ensina, passo a passo, como usar a rede Kohonen Neural para negociação FOREX.
Módulo de Algoritmo Genético da Rede Neural.
Os cálculos genéticos, quando aplicados às redes neurais, resultam em uma poderosa ferramenta de análise de dados. Adicione aqui a linguagem de script, que lhe dá a capacidade de escrever seus próprios algoritmos genéticos, e você obterá resultados surpreendentes.
Uma linguagem de script incorporada, que permite executar tarefas de rotina automaticamente. Carregando e converte dados, otimizações, criação de gráficos, bem como páginas da web que contém esses gráficos, e muito mais pode ser criado por scripts, sem interferência do usuário.
Vale a pena mencionar que você pode adicionar sua própria funcionalidade (plug-ins) ao Cortex e chamá-lo como você chamaria uma função regular de sua linguagem de script. De acordo com o currículo, Pie Charts são implementados dessa forma.
Recursos adicionais, que incluem bancos de dados, processamento de imagem, formulários baseados em HTML / XML e importação-exportação de dados, gráficos e muito mais.
Este tutorial ilustra o uso de recursos UI (não scripts) do Cortex. Para obter informações completas sobre linguagem de script, consulte o tutorial de script e o guia de referência de scripts.
Sem scripts, você só terá acesso a cerca de 10% da funcionalidade Cortex.
Usando redes neurais (recursos)
Vamos descrever as etapas que precisamos tomar para usar a Rede Neural como ferramenta de análise de dados (eu suponho que você já está familiarizado com uma introdução à teoria das redes neurais). O Cortex irá ajudá-lo a fazer estes passos mais rapidamente e com menos frustração, algo que você pode querer ter em mente durante a leitura.
Em primeiro lugar, precisamos de dados, qualquer coisa, desde as cotações de ações até os padrões de som para um software de reconhecimento de fala. O único critério é - os dados devem ser seqüenciais (uma tabela com números em suas células é um bom exemplo). Esses dados precisam ser alimentados para o aplicativo de redes neurais artificiais uma linha de cada vez. Digamos que queremos negociar ações. Uma linha de dados simplesmente não é suficiente! Você precisa de um HISTÓRICO, não apenas uma informação atual da OHLC. Você pode prever o preço das ações de amanhã com base no preço atual? Não, a menos que você tenha a informação do "preço histórico" durante pelo menos alguns dias anteriores.
Portanto, para usar uma abordagem "uma linha de cada vez", precisamos ter certeza de que esta linha contém todos os dados históricos que precisamos, por exemplo, pode conter os dados de hoje na coluna um, os dados de ontem em uma coluna dois, e assim por diante. Este tipo de arquivo é chamado (pelo menos neste tutorial) de um arquivo de atraso, ele pode ser gerado automaticamente pelo programa de rede neural Cortex. De fato, ele pode ser gerado pelo Cortex, OR por sua linguagem de script embutida, se você precisar ter mais flexibilidade (por exemplo, tendo Close, você também deseja calcular a média móvel de Close, também como um par de indicadores que são usados ​​na negociação de estoque, e somente então criam atrasos desta entrada avançada. Precisamos escolher uma configuração da Rede Neural - número de neurônios, tipo de ativação e assim por diante. O software de rede neural Cortex apresenta uma interface visual simples , isso permite fazer exatamente isso. (Mais uma vez, você pode usar a linguagem de script para fazê-lo de forma automática. Quando você só precisa de uma rede neural, não faz muito sentido, mas, às vezes, você precisa tentar muitas combinações diferentes de dados de entrada, com diferentes redes - automatizar esta tarefa é uma economia de tempo real). O que fazemos a seguir é a formação de rede neural. Para fazê-lo, executá-lo contra parte dos dados no modo "backpropagation", usando outra parte de os dados para testar o desempenho da rede. T A primeira parte dos dados será (neste tutorial) chamado conjunto de dados de aprendizagem, a segunda parte é chamada de conjunto de dados de "teste". Ao fazê-lo, ocorre uma otimização de redes neurais.
Como o "Cortex" está ajustando a Rede Neural, ele está exibindo valores e gráficos para aprender e testar erros. Depois que a otimização das redes neurais (treinamento) for concluída, podemos usá-lo nos dados "reais". Por exemplo, podemos ensiná-lo no estoque de qoutes para o ano passado, e esperamos que ele preveja o preço do amanhã, com base no preço de hoje e alguns dias de história.
Para fazê-lo, precisamos gerar um arquivo de atraso e executar as linhas de dados que queremos analisar através da Rede Neural. O arquivo resultante terá as seguintes colunas:
Colunas para a entrada. O que apresentamos à Rede Neural.
Colunas para o resultado - o que estávamos tentando prever.
E a previsão: a (s) coluna (s), gerada pela Neural Net.
Aqui está um exemplo:
Como já foi mencionado, o aplicativo Cortex Neural Network faz exatamente isso - e muito mais (consulte Cortex Built-in Scripting Language). Finalmente, depois que a Rede Neural for criada, precisamos de alguma forma chamá-lo do software comercial de nossa escolha: TradeStation, MetaStocks, MetaTrader. No artigo sobre a Neural Network FOREX Trading você encontrará um sistema de negociação de rede neural de trabalho que é criado, passo a passo, e depois mudou-se de Cortex para a plataforma de negociação, capaz de colocar negócios reais com o brocker real.
Ajustando as coisas.
Instalação do Cortex Neural Network Application.
Basta baixar o arquivo Cortex e descompactá-lo em alguma pasta.
Alguns programas que você pode baixar deste site podem funcionar juntos. Se você quiser (fortemente recomendado) este tipo de funcionalidades estar disponível, você deve criar uma pasta comum, chamar (SABER) S_PROJECTS (recomendado) e descompactar todo o software nesta pasta. As subpastas serão criadas para você automaticamente durante o procedimento de descompactar.
Ao especificar opções no seu software Winzip, verifique se todos os subdiretórios (subpastas) são restaurados. Geralmente, é a configuração padrão para o WinZip. A instalação está completa.
Desinstalação do Cortex Neural Network Application.
Simplesmente exclua a pasta que contém os arquivos Cortex.
Registro da Aplicação da Rede Neural de Cortex.
O Cortex é distribuído como shareware com recursos limitados.
Se você optar por registrar o software Cortex, você precisará inserir a senha (fornecida no e. mail que você receberá após o registro) no prompt de registro.
Uma introdução muito breve.
Os capítulos seguintes irão orientá-lo através de um exemplo simples de usar o software Cortex Neural Networks - vamos construir a rede de previsão de preço das ações.
Execute o Cortex. exe: no menu principal, selecione Arquivo - Novo arquivo NN.
O programa vem com três grupos de arquivos de dados de amostra - genz. *, Msft. * E eurusd. *. Os dois primeiros contêm dados para os estoques da Genzyme e da Microsoft, o terceiro contém cotações FOREX (câmbio) para conversão entre dólar e EURO.
Do ponto de vista da previsão da rede neural, não há diferença entre o mercado de ações e o FOREX (exceto os estoques às vezes divididos), seja lá o que você aprenda para uma área, geralmente se aplica ao outro.
Clique no botão "." Para abrir o arquivo data / stocks / genz. txt.
Observe que você pode especificar quais são os padrões de linha de início e fim, e quantas linhas devemos saltar antes e depois do padrão de linha de início. Use-o se os dados estiverem no meio do arquivo de texto (por exemplo, o arquivo possui um cabeçalho e um rodapé).
Para este exemplo, deixe o primeiro campo em branco.
Se você olhar dentro do arquivo GENZ. TXT, que você recebeu com o arquivo Cortex, você notará que a última linha não tem nada a ver com os estoques - é algum tipo de comercial. Esta é exatamente a maneira que pareceu quando recebi este arquivo do servidor de citação do Yahoo. Para lidar com o problema (não queremos alimentar THESE dados para o programa!), Copie esta última linha, ou pelo menos seu início, e cole-a no campo "End line" da caixa de diálogo Input. Agora, o programa irá parar de extrair os dados, quando encontrar a string que você forneceu.
Nota importante: o arquivo de cotação de estoque que eu baixei da Internet contém os mais recentes dados PRIMEIROS. O código de rede neural (como muitos outros pacotes de análise de dados) espera que os últimos dados sejam ÚLTIMOS. Portanto, precisamos clicar na caixa de seleção "Reverter" para garantir que as matrizes de dados sejam revertidas antes de efetuar o processamento.
Observe também que, não importa se o "Reverse" estiver marcado ou não, o arquivo resultante que o programa produzirá, terá registros na mesma ordem que o arquivo original. Desta forma, se você tiver algum outro programa que possa trabalhar com o arquivo de preço de ações com novos dados no início, ele também poderá trabalhar com qualquer saída que produziremos com o Cortex. Também é muito menos confuso, especialmente quando você trabalha com a seqüência de arquivos.
O que isso significa? Digamos que você tenha um arquivo GENZ. TXT. Você verificou a caixa "Reverter" e, em seguida, (veja abaixo para detalhes), você clicou em "Gerar arquivo LAG". O arquivo de atraso resultante ainda será revertido. Mas se você selecionar Data e fechar e clicar em Gráfico, o programa irá carregar os dados e, em seguida, inverter.
Para colocá-lo de forma diferente, a caixa de seleção "inverter" só funciona para a guia atual em uma caixa de diálogo. Para tê-lo na próxima guia, verifique-o lá.
Ainda assim, se você quiser, você pode usar a linguagem de script, isso lhe dará o controle total sobre os dados.
Clique em "Selecionar campos".
A primeira (após encontrar a linha de padrão inicial e as linhas extra ignoradas) será dividida nos nomes das colunas e apresentada na caixa de listagem para entradas e saídas.
Selecione "Adj. Close *" tanto para entrada quanto para saída.
Vamos usar os valores passados ​​do preço de fechamento das ações, para prever os valores futuros.
A propósito, "adj" significa "ajustado, o arquivo que eu tenho é ajustado para as divisões de estoque. Algumas fontes de dados não possuem esse recurso agradável - o que devemos fazer então?
Uma das soluções possíveis é usar a linguagem de script incorporada para pré-processar o arquivo.
Como estamos tentando criar uma rede para PREDICT os valores futuros para a linha (representados por dados em genz. txt), precisamos fornecer a entrada na forma de PATRIMENSIO HISTÓRICO - não apenas os dados atuais, mas os ontem, e assim por diante .
A razão pela qual precisamos é simples. Podemos prever o valor futuro do preço das ações pelo valor atual SOMENTE? Não. Precisamos saber o que o preço foi ontem e antes de ontem - precisamos saber o que está acontecendo com esse preço.
O "Adj. Close *" agora está selecionado nas caixas de listagem.
Estamos prestes a gerar o que é chamado de arquivo de atraso. A idéia do arquivo de atraso é representar os dados de hoje na mesma tabela, lado a lado com os dados de ontem e assim por diante. Pressione o botão "arquivo de atraso". Você terá o arquivo com extensão. lgg contendo algo como:
Como você pode ver, o primeiro valor na coluna Close-1 foi removido e a coluna inteira subiu. Para o Close-2, dois primeiros valores foram removidos e assim por diante. Portanto, cada linha deste novo arquivo contém dados para o dia atual e dados para nove dias anteriores.
Vamos selecionar as novas entradas.
Clique novamente no botão "Selecionar campos".
Selecione "Adj. Close * -1", "Adj. Close * -2". "Adj. Close * -9" como entradas e "Adj. Close *" como saída. Desta forma, estaremos usando nove dias ANTERIORES para prever o próximo preço.
Clique na guia "Rede".
Como você pode ver, você pode especificar o número de camadas, o número de neurônios em camadas ocultas (veja Introdução às Redes Neurais para obter detalhes sobre os elementos de uma Rede Neural), uma das duas funções de ativação (padrão para quase qualquer pacote NN ) e os critérios de parada, se desejar que o processo de aprendizagem pare automaticamente.
Selecione 7 neurônios na camada oculta.
Esta é apenas uma seleção aleatória que usamos para o nosso exemplo.
Clique na guia "Processamento".
Aqui você pode especificar uma das duas maneiras de quebrar os dados nas partes "aprendendo" e "testar" (veja a Introdução às Redes Neurais para obter detalhes). Você pode usar os primeiros N registros (padrões) como um material de "aprendizagem" e o resto - como um "teste" de dados. Ou você pode selecionar aleatoriamente N% dos dados.
A seleção aleatória não funciona com a previsão - é chamado de trapaça), mas funciona bem quando você está tentando fazer um ajuste de linha.
Escolha a opção "Primeiro N registros".
Como sabemos quantos registros temos em nosso arquivo. lgg? Podemos abrir o arquivo em um editor de texto e descobrir. Ou podemos clicar no botão à direita do campo de entrada de dados. Eu tenho 1228 registros, e eu decidi usar 1000 deles para "aprender", e o resto - para o "teste".
A caixa de combinação "ajustar intervalo" é importante se houver uma chance para os nossos dados de "teste" sair do intervalo em que os dados de "aprendizagem" são. Para compensar, podemos ampliar o alcance.
Deixe-o em 1.0.
É seguro no nosso caso, pois sabemos que os últimos 228 registros não estão fora do alcance dos primeiros 1000. Quando você lida com os cálculos da vida real, é sempre uma boa idéia estimar se, por exemplo, o preço da ação pode atingir o máximo ou o mínimo histórico, e para ampliar o alcance para lidar com o caso quando o faz.
Clique na guia "Aprender".
Marque todas as caixas de seleção e pressione Executar. A Rede Neural iniciará o processo de aprendizagem. O número de épocas (quantas vezes o conjunto de dados completo foi apresentado à rede), e os melhores (menores) erros de aprendizagem e teste serão exibidos.
À medida que a aprendizagem continua, o erro (que representa a diferença entre a saída real da rede e a saída desejada) está diminuindo. Quando decidimos que é pequeno o suficiente (e sempre podemos voltar e continuar o treinamento) paramos.
Clique em "Parar" e vá para a aba "Aplicar".
A aba "Aplicar" é uma cópia exata de uma guia "Entrada", exceto para os botões "Gráfico" e "Aplicar". A funcionalidade é diferente, no entanto.
Clique no "." E abra o arquivo. LGG.
Selecione os mesmos campos que você usou como entradas e saídas.
Quando você pressiona o botão "Aplicar", o arquivo com a extensão. apl é gerado. Ele contém todos os dados que a entrada continha, além de campos extras para a saída, gerados pela Rede Neural.
Finalmente, mude para a guia "Saída".
Clique no "." E abra o arquivo. APL.
Selecione as colunas para usar no gráfico.
Selecione No (número de registro) como a entrada e Fechar e NN: Feche como saídas - vamos traçar os Close e Predicted Close juntos no mesmo gráfico, para poder compará-los visualmente.
Clique no botão "Gráfico".
Ele produzirá um gráfico, apresentando a "saída desejada" (fechar) versus a saída, produzida pela Neural Net.
A seguinte imagem é criada pela rede Neural subterrânea. A aproximação não é muito fraca (para uma previsão de um dia). Se você continuar treinando, você obterá melhores resultados.
O Cortex usa o mecanismo de banco de dados SQLite, o que significa que você pode criar, navegar e editar tabelas, tanto usando linguagem de script e apenas com a interface de usuário do programa. É possível executar declarações SQL (novamente, do menu ou da linguagem de script), o que facilita o armazenamento de seus dados.
Para obter detalhes, consulte o tutorial de Bases de Dados em nosso site.
Cortex vem com uma poderosa linguagem de script chamada SLANG. Usando o SLANG, você pode conseguir muito mais, apenas com os menus, você pode fazer um pré-processamento de dados elaborado, você pode considerar escrever seus próprios plugins SLANG.
Para obter detalhes, verifique o tutorial de Scripting em nosso site, para uma lista de funções SLANG em cmplete, leia o Guia de Referência SLANG.
API do programador.
Se você é um programador, você pode querer acessar o Cortex diretamente, do seu software (tenha em mente que você ainda pode criar um plugin que exporta dados e é muito mais fácil).
O programa Cortex vem com o SP_NN. DLL que é o núcleo do processador de dados de redes neuronais artificiais Cortex. No entanto, esta DLL exporta classes em vez de funções, então, para trabalhar com isso, você precisa ser um programador C ++, e mesmo assim é bastante inconveniente.
A Cortex API DLL resolve esse problema, fornecendo um invólucro que você pode usar da maneira que a maioria dos programadores o fazem, através de chamadas para funções exportadas por esta DLL.
Para obter detalhes, verifique o tutorial da API do Programador.
Outras características: imagens e assim por diante. Scripts de exemplo.
Existem muitos outros recursos no aplicativo Cortex. Pode carregar páginas da Internet, pode analisar essas páginas usando sintaxe de expressão regular, extraindo dados de acordo com seus requisitos.
Possui um processador de imagem embutido, para que você possa processar todas as imagens em uma pasta selecionada, tornando-as mais nítidas, por exemplo.
Pode acessar funções adicionais em DLLs de terceiros, para que você possa escrever extensões na linguagem de script incorporada.
E mais. À medida que novos recursos são introduzidos, novas amostras são adicionadas ao arquivo ZIP, para que você possa vê-lo em ação.

A Melhor Solução de Rede Neural Artificial de 2017.
Aumente a precisão da previsão com poderoso software de rede neural.
O conceito de rede neural está sendo amplamente utilizado para análise de dados hoje em dia. A simulação de rede neural geralmente fornece previsões mais rápidas e precisas em comparação com outros métodos de análise de dados. A aproximação de funções, a previsão de séries temporais e a análise de regressão podem ser realizadas com software de rede neural. O alcance das possíveis aplicações das redes neurais é praticamente ilimitado: previsão do jogo, tomada de decisão, reconhecimento de padrões, sistemas de controle automático e muitos outros. É claro que as redes neurais desempenham um papel importante nos processos de mineração de dados.
O software é o melhor que já usei. O que é mais impressionante, além dos outros algoritmos, é especialmente a rede neural e as capacidades de previsão de séries temporais ea facilidade com que as fórmulas podem ser geradas e exportadas para uma planilha para personalização.
GMDH Shell, software de rede neural profissional, resolve as previsões de séries temporais e as tarefas de mineração de dados construindo redes neurais artificiais e aplicando-as aos dados de entrada. Projetado para ajudar até usuários não experientes a realizar seu trabalho diário de previsão e reconhecimento de padrões, a GMDH Shell desencadeia o poder da análise da rede neural ao mesmo tempo que esconde sua complexidade subjacente.
A previsão da rede neural é mais flexível que as aproximações típicas de linfonodos ou polinomios e, portanto, é mais precisa. Com redes neurais, um especialista pode descobrir e levar em consideração conexões não-lineares e relacionamentos entre dados e criar um modelo candidato com alta força de predição. Além disso, o GMDH Shell não requer uma normalização preliminar dos dados e não adere ao melhor ajuste absoluto, reduzindo significativamente o tempo de computação.
A GMDH Shell treina automaticamente redes neurais e aplica-as para análise, assim, obter previsões precisas de esportes, negócios ou mercado de ações não requer muito esforço ou tempo de você. Graças a um único sistema de balanceamento de carga da CPU, a GMDH Shell se beneficia de todos os recursos gratuitos do seu PC, direcionando a aplicação da análise da rede neural. Isso significa resultados mais rápidos e precisos do que nunca.
Faça o download do GMDH Shell para a ciência dos dados instantaneamente!
Mais de 100.000 pessoas já baixaram o GMDH Shell!
Benefícios da GMDH Shell para Data Science.
Determina a estrutura do modelo automaticamente Dreventes superando e funciona bem com conjuntos de dados muito pequenos É rápido mesmo com 1.000 variáveis ​​de entrada Fornece ferramentas de previsão, classificação, regressão e agrupamento em um único pacote.
Páginas relacionadas:
Nossos clientes.
Informação de contato.
55 Broadway, 28º andar.
New York, NY 10006.
Testemunhos de clientes.
O software é o melhor que já usei. O que é mais impressionante, além dos outros algoritmos, é especialmente a rede neural e as capacidades de previsão de séries temporais ea facilidade com que as fórmulas podem ser geradas e exportadas para uma planilha para personalização.
Você conseguiu melhorar a precisão e a velocidade do algoritmo do tipo neural. O mecanismo de otimização para tarefas de regressão / classificação e tempo-série também foi muito limpo. Mantenha o bom trabalho!
Eu tenho me ensinado redes neurais há alguns meses sozinho. Comprei um livro sobre o assunto e usei um par de software de código aberto para aprender. Por boa sorte, pesquisando na Internet, encontrei seu software. Era extremamente fácil de usar em comparação com os outros. Eu sinto com seu software que eu teria uma vantagem.
A GMDH Shell fornece sobre a interface mais amigável e um dos mais poderosos softwares de análise de séries temporais orientados para o usuário no mercado.
Previsão de negócios.
Análise preditiva.
GMDH LLC é uma empresa privada fundada com o objetivo de construir o melhor software de previsão. Além disso, oferecemos uma série de serviços, como integração com bancos de dados e sistemas ERP, treinamento remoto e consultoria.

SnowCron.
FREE E. Mail Classes.
Neste artigo: um exemplo de uso do nosso software Neural Networks para criar um sistema completo de negociação de rede neural.
Este exemplo usa a linguagem de script incorporada do Cortex, então leia o guia de linguagem de script primeiro.
Usando Redes Neurais para criar Estratégia de Negociação FOREX.
Neste tutorial on-line gratuito, você encontrará o "ciclo completo" do uso de redes neurais (Cortex Neural Networks Software) para negociação Forex (ou negociação no mercado de ações, a idéia é a mesma).
Você aprenderá como escolher entradas para as redes neurais artificiais e como decidir o que usar como saída.
Você encontrará um exemplo de um script pronto para usar que permite a realização de otimização de redes neurais tanto da estrutura da Rede Neural (número de neurônios) quanto do sistema de negociação forex (stop loss etc.)
Finalmente (a parte que não está presente na maioria dos tutoriais), você aprenderá o que fazer a seguir. Afinal, o Cortex Neural Networks Software não pode fazer negócios em tempo real, você precisa usar algo como Trade Station, MetaQuotes ou MetaTrader. Como transportar o sistema de negociação FOREX do Cortex para sua plataforma de negociação favorita? Você precisa lidar com DLLs, controles ActiveX e programação de baixo nível? A resposta é não.
O software Cortex Neural Networks vem com o recurso fácil de usar que permite que você porta facilmente a rede Neural resultante (treinada) para a linguagem de script da sua plataforma de negociação. Sem DLLs, DDE, ActiveX ou quaisquer outras soluções de baixo nível - tudo é simples e simples.
Nota importante: este NÃO é um tutorial "como negociar". Em vez disso, ele diz como usar o software Cortex Neural Networks, mas você ainda precisa inventar seu próprio sistema comercial. Aquele que usamos aqui é apenas um ponto de partida, e não deve ser usado como uma estratégia de negociação forex "tal como está". A idéia deste texto é ensinar você a criar sistemas de negociação baseados em NN e a portá-los para a plataforma de negociação de sua escolha. O exemplo é, no entanto, ovesimplificado, e só pode ser usado como ilustração dos princípios de negociação. Da mesma forma, o sistema de negociação MACD, que pode ser encontrado em muitos tutoriais, já não está funcionando bem (à medida que os mercados mudaram), mas ainda é um bom exemplo de usar indicadores para negociação mecânica.
Em duas palavras: faça sua própria análise.
Outra nota importante: o tutorial usa exemplos, muitos deles. Para tornar sua vida mais fácil, incluí todos eles, não apenas fragmentos. No entanto, torna o texto muito mais longo. Além disso, eu estou indo do primeiro, desajeitado, sistema de negociação forex, para mais avançado, explicando sempre o que foi melhorado e por quê. Seja paciente ou salte diretamente para a seção que você precisa.
Nota importante final: o código não é algo esculpido em pedra, ele pode mudar enquanto este texto foi escrito. As versões finais dos arquivos de script estão incluídas no arquivo Cortex.
Armadilhas de sinais FOREX BUY / SELL: O que há de errado com exemplos "simples"?
No guia do usuário do Cortex Neural Networks Software, usamos um exemplo simples de uma Rede Neural Física, prevendo o preço do estoque GENZ. Para descobrir o que é errado com esta abordagem, vamos fazer o mesmo exemplo "simples", usando MSFT. TXT, em vez do GENZ. TXT (use 800 registros no conjunto de aprendizado, como MSFT. TXT é um pouco mais curto, então GENZ. TXT).
Simplesmente não funcionaria! Por quê?
O motivo se tornará evidente, se você se perguntar: "Qual é a razão pela qual a previsão da rede neural de valores futuros pode ser feita primeiro?"
A resposta é: é aprender a fazer o que é chamado de reconhecimento de padrões de redes neurais, reconhecer padrões e, se houver uma lógica oculta nesses padrões, então mesmo um novo padrão (com a mesma lógica) será reconhecido.
Isso é um truque - "com a mesma lógica". Não há nem um, mas três problemas aqui.
Em primeiro lugar, se você olhar para o preço das ações da Microsoft, você notará que estava indo na parte "de aprendizado" de nossos dados e de lado - na parte de "teste". Portanto, é possível que a lógica tenha mudado.
Em segundo lugar, e ainda mais importante - QUAL É O TESTE PADRÃO? Você vê, se ensinamos a rede neural no intervalo de 10 a 100, e depois apresentamos algo na faixa de 1 a 3 - eles são padrões diferentes! 10, 20, 30 e 1, 2, 3 parecem semelhantes ao humano porque - PORQUE - temos essa capacidade de dividir por dez, quando apresentado com números que terminam com zero. É o que é chamado de pré-processamento dos dados e, por padrão, o NN não pode fazê-lo.
Podemos ensiná-lo? Claro. O que é EXACTAMENTE nós precisamos ensiná-lo?
Este é o terceiro e o mais importante. Não precisamos da previsão de preços! Nós não ligamos! O que precisamos é FOREX comprar sinais de venda.
Agora, espere um minuto! Nós precisamos de um) para ter nossa contribuição (aprendendo e testando) no mesmo intervalo e precisamos b) poder tomar decisões comerciais com base nela? Não é o que chamamos de indicador? Bingo?
Então, é o que vamos fazer - vamos construir um indicador, alimentá-lo ao NN como uma entrada, e tentaremos obter uma previsão do valor do indicador, e não o preço do estoque sem valor!
Em nosso primeiro exemplo, vamos carregar cotações de estoque do disco, abrir o arquivo de Rede Neural e iniciar a aprendizagem - tudo em um modo automatizado.
Crie um novo arquivo de script (ou abra o que veio com o arquivo Cortex Neural Networks Software) e ligue para stock_nn. tsc.
Antes de mais, precisamos baixar os valores de preço do arquivo MSFT. TXT. Nós vamos usar o indicador CLV (veja abaixo), mas para calcular, precisamos de valores ajustados por divisão para Alto e Baixo, não apenas para fechar. Aqui é como obtê-los.
stocks_nn. tsc, parte 1.
A primeira linha atribui o caminho para a variável strStockPath, é claro, você terá que editá-la, se seu arquivo de dados estiver localizado no diretório diferente.
Na segunda linha, especificamos que esse caminho não é relativo (o "relativo" à localização do arquivo Cortex. exe).
O TABLE_LOADER recebe o caminho, a seqüência vazia para a "linha de início", 1 - para ignorar a primeira linha (nomes das colunas), parte da linha do rodapé do arquivo (a última linha no MSFT. TXT não contém dados), é também instruído a carregar a coluna número 0 (e chamar arrDate), 2 (arrHigh), 3 (arrOow), 4 (arrC) e 6 (arrClose).
Para obter uma descrição completa do TABLE_LOADER, consulte o guia de referência SLANG.
Então, calculamos dividir, dividindo o Fechar ajustado por fechar, e use esse valor para ajustar baixo e alto.
O arquivo MSFT. TXT contém os dados mais recentes PRIMEIRAMENTE, enquanto nós os quermos ÚLTIMOS.
Em seguida, precisamos criar um indicador. Digamos que será um indicador de Close Location Value, embora na "vida real" eu provavelmente use mais de um indicador como entrada NN.
O indicador de Valor de localização está calculado como.
CLV = ((Close - Low) - (High - Close)) / (High - Low), onde Close, Low e High são para o intervalo, não necessariamente para uma única barra. Note-se que queremos no intervalo de 0 a 1, para facilitar a normalização no alcance do NN's (o que é, mais uma vez, 0-1).
stocks_nn. tsc, parte 3.
Em seguida, precisamos criar um arquivo de atraso. Vamos usar atrasos iguais a 1, 2. 9 (Para obter detalhes sobre as funções do arquivo, consulte o guia de referência SLANG). Observe que a caixa de diálogo NN do Cortex pode produzir atrasos simples automaticamente (você pode usar um botão "Gerar atraso"). Mas, mais tarde, neste texto, vamos trabalhar com atrasos complexos (o que significa que não são 1, 2, 3. mas 1, 3, 64), então precisamos criar o código que pode lidar com essa tarefa em de forma mais flexível.
stocks_nn. tsc, parte 4.
Tendo o arquivo de atraso, estamos prontos para criar nossa primeira rede neural. Esta função requer muitos parâmetros, então fique atento. No entanto, o código é realmente simples.
A propósito, a maior parte deste código pode ser removido, se você acha que pode lidar com números, em vez de nomes significativos em seu código, no entanto, essa seria uma prática de codificação muito ruim.
stocks_nn. tsc, parte 5.
Agora, depois de ter uma rede neural e o arquivo atrasado com dados, precisamos ensinar a rede. O arquivo de atraso (msft_ind. lgg) possui 1074 registros, por isso é razoável usar 800 como um conjunto de aprendizado, e os restantes 274 como um conjunto de testes.
Você pode, claro, abrir um arquivo de rede e clicar no botão "Executar" na guia "Aprender". Mas, como esta é uma introdução à programação avançada do software Cortex Neural Networks, vamos usar SLANG built_in linguagem de script.
O código a seguir exibe a caixa de diálogo modal com as configurações do ann NN. Observe que, se você quiser ter um privilégio de clicar no botão "Executar", você precisa alterar o.
stocks_nn. tsc, parte 6.
O bStartLearning pode ser 0, caso em que a caixa de diálogo aguardará sua entrada, ou 1, então a aprendizagem começará de forma automática.
O bResumeScript, se for igual a 1, retomará o script, se você fechar a caixa de diálogo clicando no botão OK.
O bReset é usado para redefinir a rede antes que a aprendizagem comece.
Execute o script e aguarde até que o contador de épocas ultrapasse 1000, então clique em "Parar". Vá para a guia "Aplicar" e clique em "Aplicar". Isso executará todo o conjunto de dados (aprendendo e testando) através do NN e crie o arquivo. APL, contendo tanto a entrada-saída original quanto a previsão gerada pelo NN, desta forma você pode facilmente traçá-los e compilar uns contra os outros .
Vá para a guia "Saída", selecione o arquivo msft_ind. apl, clique em "Procurar arquivo", "Selecionar campos", depois selecione "Não" na caixa de listagem esquerda e (pressionando a tecla CTRL enquanto seleciona com o mouse ) Clv e NN: Clv na caixa de listagem direita. Clique em "Gráfico" para ver como é boa a nossa previsão. Bem. É mais ou menos bom, do que podemos dizer olhando para ele. Ainda assim, nada extraordinário.
Este foi apenas um exemplo do que você pode fazer com o script SLANG e como automatizar as tarefas de rotina do Cortex. No entanto, até agora, não fizemos nada que você não pudesse fazer "à mão". Bem. quase nada, porque se você quiser criar um arquivo de atraso personalizado, com, digamos, Clv-100, Clv-50, Clv-25. colunas, então você terá que usar SLANG (ou Excel.), porque você não pode fazer no Cortex sem scripts.
FOREX Trading Strategy: o que otimizar?
Aqui está o nosso próximo problema. Precisamos de uma boa previsão, ou precisamos do que podemos usar para negociar com lucro? A questão parece estranha, mas apenas pense nisso por um momento. Digamos que temos uma ótima previsão de 1 hora. 95% de precisão. Ainda assim, até que ponto o preço pode ir em uma hora? Não muito longe, tenho medo. Compará-lo com a situação, quando você tiver uma predição bastante imprecisa de 10 horas. Será melhor?
Para responder a esta pergunta, precisamos realmente negociar, uma comparação simples dos erros médios produzidos pelos dois NNs não ajudará.
A segunda parte (do mesmo problema) está na forma como definimos uma "boa previsão". Digamos que temos uma rede, que produz a previsão, que é 75% precisa. Compará-lo com o NN, que está produzindo uma previsão 100% precisa. O último é melhor. Agora, DIVIDE a saída (predição) do NN 100% preciso em 10. Teremos uma rede MUITO imprecisa, pois seu sinal está longe do sinal que usamos como "saída desejada". E, no entanto, pode ser usado da mesma forma que usamos NN 100% preciso, tudo o que temos a fazer é multiplicá-lo por 10!
Veja, o NN é criado, ajustando o erro quadrático médio e não a correlação, portanto, ao menos em teoria, um NN melhor pode mostrar resultados ruins, quando usado para o estoque real / negociação Forex.
Para resolver esse problema, precisamos testar nossos NNs usando a negociação e usar resultados dessa negociação (lucro e redução) para decidir, se este NN for melhor que o outro.
Vamos fazer isso. Vamos criar um programa, que pode ser usado para ajustar o NN, e desta vez, por ajuste fino, vamos significar resultados comerciais.
Neural Network Trading: poucas notas curtas.
Em primeiro lugar, no nosso exemplo acima, a aprendizagem "automática" nunca vai parar, porque não especificamos nenhum critério de parada. Na caixa de diálogo, ou na função CREATE_NN, você pode fornecer o min. erro (quando o NN o atinge, ele pára e, se bResumeScript estiver definido como 1, a caixa de diálogo será fechada e o script será retomado). Também pode fornecer o número máximo de épocas, ou ambos. Não estou usando isso no exemplo abaixo, pelo menos nem sempre, porque estou planejando assistir a aprendizagem e clicar em STOP quando penso que o NN está pronto. Se quiser fazê-lo no modo totalmente automático, preste atenção a esses parâmetros.
Segundo. Uma das maneiras de tornar a rede menor, mais rápida e precisa é começar a pequena rede e aumentar seu tamanho, o neurônio pelo neurônio. Obviamente, o número de neurônios de entrada é determinado pelo número de colunas de dados de entrada (mas podemos também variá-las) e o número de neurônios de saída deve ser igual ao número de colunas de dados de saída (geralmente um, mas não necessariamente ). Isso significa que precisamos otimizar o número de neurônios na (s) camada (s) oculta (s).
Além disso, como mencionei, não sabemos quais dados usar. Will Clv-15 (15 dias atrasados) aumenta a precisão de nossa previsão? Precisamos do Clv-256? Será melhor usar ambos no mesmo NN, ou vai adicionar Clv-256 arruinar nosso desempenho?
Usando ciclos aninhados para tentar diferentes parâmetros de entrada, você pode:
Crie o NN, da mesma forma que o fizemos para os dados do stock (deixe-me repetir, para o NN, não há diferença entre os estoques e FOREX, aconteceu que eu tenho alguns arquivos de dados de alta qualidade para o FOREX que eu quero processar , enquanto escreve este texto). Experimente diferentes combinações de atrasos. Experimente diferentes números de neurônios na camada oculta. . e diferentes combinações de diferentes indicadores. . e assim por diante.
No entanto, se você tentar todas as combinações possíveis de todos os parâmetros possíveis, você NUNCA obterá seus resultados, independentemente da rapidez com que seu computador esteja. Abaixo, usaremos alguns truques para reduzir os cálculos ao mínimo.
A propósito, pode parecer que, se você começar a partir de um neurônio escondido, aumente-o para 2, 3 e assim por diante, e em algum momento o erro (qualidade da previsão) ou o lucro (se você testar o NN por negociação usando) começará a diminuir, então você terá seu vencedor. Infelizmente, não posso provar que, após o primeiro "pico de desempenho", não pode haver um segundo. Isso significa que o erro pode ser igual a 100, 30, 20, 40, 50 (foi apenas no mínimo, certo?) E depois 30, 20, 10, 15,. (o segundo mínimo). Nós apenas temos que testar todos os números razoáveis.
Terceiro. A otimização é uma espada de dois gumes. Se você otimizar demais o seu código, pode não funcionar fora dos dados que você usou para ajustá-lo. Eu farei o meu melhor para evitar essa armadilha. Se você quiser fazer otimizações adicionais para o seu código ou NN, aconselho você a fazer uma pesquisa na Internet, para saber mais sobre os problemas ocultos dessa abordagem. ALso, I am going to pay some attention to the smoothness of the profit curve. The profit that looks like 0, -500, 1000, -100, 10000 may be great, but the profit 0, 100, 200, 300, 400. is better, as it is less risky. We may talk about it later.
Finally, for this example we are going to use FOREX, rather than stock prices. From the point of view of the NN there is no difference, and from my point - Forex is much more fun to trade. If you prefer stocks, the code can easily be modified.
A FOREX Trading Strategy to play with.
First of all, let's create a prototype of our code, one that can easily be optimized in future. It is going to be a trading system, that uses a Neural Network to trade and produces a chart (profit against trade number). It will also calculate drawdown, as a measure of robustness of our trading system.
forex_nn_01.tsc, part 1.
The main difference here is that we use functions, instead of placing all the code in the main block of the program. This way it is much easier to manage.
Second, we have a TestNet function. I am using a very simple algorithm of trading . The CLV indicator is confined to 0 - 1 interval (our version of CLV is), so when the indicator crosses up the dBuyLevel (see code above), I am buying, when it is crossing down the dSellLevel, I am selling.
Obviously, it is not the best trading strategy, but it will do for our purpose (just for now). If you want to improve it, here are some pointers. First, you may want to have a system, that is not ALWAYS in the market. Second, you may want to use more than one indicator as inputs, and maybe, more than one NN, so that the trading decision is made based on few predicted indicators. We will add some improvements to the trading algorithm later.
We use some standard assumptions of the FOREX trading: spread is 5 points, leverade is 100, min. lot is $100 (mini-FOREX).
Let's take a look at our "trading" system. Once again, it is an oversimplified one. An important note: the TestNn() is called last, and it has access to all variables that were created to that point. So if you see a variable that I am using, without initializing it, it probably means that it was initialized in NewNn(), TeachNn() or some other function that was called prior to TestNn().
To make things easier, comments are placed in the code.
forex_nn_01.tsc, part 2.
Few words about the drawdown. There are few ways of calculating it, and we are using what I consider the most "honest". The drawdown is a measure of instability of our system. What is a chance, that it will loose money? Lets say the initial amount is $1000. If the profit goes 100, 200, 300, 400. the drawdown is 0. If it goes 100, 200, 100. then the drawdown is 0.1 (10%), as we have just lost an amount, equal to 1/10 of the initial deposit (from 1200 to 1100).
I would strongly advice against using trading systems with large drawdowns.
Also, here I use a drawdown, that is to be used with variable lot size. However, in the actual samples, that come with the eBook, you will see another version:
As you can see, here we always use 1000 (the initial amount) to calculate the drawdown. The reason is simple: we always use the same lot size (no money management yet), so there is no difference, how much money we have already accumulated on our account, an average profit should be constant. The worse possible scenario in this case looks like this: from the very beginning ($1000 on account) we are loosing money. If we use 1000$ to calculate the drawdown, we will get the worse drawdown. This will help us not to trick ourselves. For example, say, we traded for some time, and we have $10,000$ on our account. Then we loose some money, and we now have $8,000. Then we have recovered, and got $12,000. Good trading system? Provavelmente não.
Let's repeat the logic again, as it is very important (and it will become even more important, when we start doing money management). We trade using fixed size lots. So, statistically, there is no guarantee, that the maximum loss will not happen at the very beginning, when we only have $1000. And if it happens, we will have -1000$ (10,000 - 8,000), so the trading system is probably too risky.
When we talk about the money management (probably, not in this text), we will have to use different approach to drawdown calculation.
Note, that in this trading system, I am using the worse possible scenario: I am buying using High and selling, using Low. Many testers do not follow these rules, and create trading systems, that work fine on historical data. But in the real life, these trading systems have very poor performance. Por quê?
Take a look at the price bar. It has Open, High, Low and Close. Do you know, how the price was moving inside the bar? No. So, let's say, your trading system generated a "buy" signal, at the bottom of the price bar (if dLow.
Note that I am using dLotSize equal 0.1 lot ($100). Obviously, in the "real" trading, you will benefit greatly, if the lot size is calculated depending on the money you have, something like:
forex_nn_01.tsc, part 3.
However, we are doing testing here, not trading. And for testing, we need, among other things, to see how smooth the profit curve is. This is much easier to do if the lot size is the same (in ideal situation, for dLotSize = 100 we will get a straight line, with some positive slope, while in case of the adjustable lot size we will get an exponent, that is much harder to analyze).
Later in this text, we will apply money management rules to our trading system, but not yet.
After we are done with the last part of our testing function, let's walk through the rest of the code.
The following function creates a CLV indicator. It takes the interval as a parameter, which means that we can call it many times, during the optimization, passing different numbers.
Note, that I am using the NN that works in the 0 - 1 interval. The data can be normalized, of course, but I chose to divide the indicator by 2 and to add 0.5, so that it is in 0 - 1 range.
forex_nn_01.tsc, part 4.
To make lag file, we can use the CREATE_LAG_FILE function. Alternatively, we can do it by explicitly providing all the necessary code. In this case, we have more control, and we are going to need it, if we begin varying number of lagged columns and so on.
forex_nn_01.tsc, part 5.
The nRemoveFirst parameter is important. Many functions, like indicators, moving averages, lag generators, for that matter, do not work well within the first few records of the dataset. Let's say we have MA(14) - what will it place in the records 1 - 13? So we choose to simply remove the first few (unreliable) records.
For the NewNn, as well as for all functions of this program, we need to pass as parameters only what can be changed during optimization process. For example, there is no need to pass a "skip before" parameter, as it is always the same.
forex_nn_01.tsc, part 6.
The TeachNn function simply brings up the NN dialog.
forex_nn_01.tsc, part 7.
Finally, we need a charting function. It is not mandatory, but it is always a good idea to see what our profit line looks like. The following code uses the XML to produce a chart, so it is a good idea to read the tutorial. Alternatively, you can draw the chart, rather than saving it in a file. To do it, use one of the samples, that are in the samples/scripts directory. Finally, you can modify the code, to produce HTML, rather than XML. HTML is easier to learn, but the code itself will be a bit less readable.
forex_nn_01.tsc, part 8.
Compile and Run the script.
Bem. As expected, using 7 hours as an interval for the CLV produced very poor results:
FOREX Trading Strategies and Optimization.
The reason for the poor results is quite obvious: we used the Interval, Stop Loss, buy and sell levels and other parameters, that were purely random - we just picked first that came in mind! What if we try few combinations?
FOREX Trading Signals: What to optimize?
First of all, by overoptimizing the buy and sell levels, we can ruin our future performance. However we still can tune them, especially, if the performance is close for close values of buy and sell limits. For example, if we have -10% profit at buy limit equal 0.3, and +1000% profit when it equals 0.35, then there is probably a lucky coincidence, and we should not use 0.35 for our trading system, as in future it will probably not happen again. If, instead, we have -10% and +10% (instead of +1000%), it may be safer to use.
Generally, our trading system should be built for WORSE possible scenario, as if during the "real" trading the performance will be better, then during the test, we will survive, but not the other way around.
We can vary the value for the indicator interval, provided we have enough trades, so that we can be confident, in terms of statistics, in the performance of a system.
We certainly can vary the number of neurons, I don't think it can be overoptimized easily.
We can vary number of inputs and lags for inputs. It is possible to overoptimize this, but it is not very likely to happen.
And, of course, we can try different indicators.
Accurate FOREX Signals: How to optimize?
As have already been mentioned, if we start trying all possible combinations, it will take forever. So we are going to cheat. We will create pre-defined sets of parameters, that we think are reasonable, and pass them to the program.
To make as few calculations as possible, note, that Clv-1 and Clv-2 are, probably, important, but what about Clv-128? And - if we already have Clv-128, do we need Clv-129? Probably, not. So we are going to have something like Clv-1, Clv-2, Clv-4, Clv-8, . Clv-128 with just few variations, which will make our calculation time thousands times shorter.
FOREX Professional System Trading: Can it work at all?
What is it exactly we want to predict? Until this point we have used 1 hour chart for EURUSD, and we were predicting the next bar's CLV. Will the CLV+2 be better? What about CLV+3?
Also, especially considering the poor performance of our first trading system, it would be nice to know, that - at least in the "ideal" world, the goal (profitable trading) can be achieved.
To answer these questions, let's create a simple testing program. We assume, that our prediction is 100 % accurate, and, based on this assumption, we will use CLV+N, not the NN predicted one. That's right - we are going to take data from the future, and to use them instead of the NN prediction. This approach wouldn't work in the real life, of course, but at leats, it will give us some ideas of what to expect.
When looking at the results, please keep in mind, that we are not using any advanced money management, our lot size is set to a minimum $100. If you use variable lot sizes, results will be dramatically different. But even at a lot size set to 0.1 we can see (below) that getting the information from the future is an ultimate trader's "holly graal".
forex_nn_02.tsc, part 1.
You are already familiar with this code, it was used in FOREX_NN_01.TSC. It handles data loading. The only difference is in the part that obtains the list of files in the "images" directory and deletes all files with the. PNG extention. The reason for this code is simple: during our tests we are going to create many - may be, thousands - image files. We don't want them to hung around after we are done. So at the beginning of the script we are deleting images, created by other scripts.
forex_nn_02.tsc, part 2.
Just a few comments. We do not want to try all possible values for, for example, CLV interval. Instead, we can create an array, that contains only values we want to test. Then (see below) we will walk through this array.
Stop losses are important part of any trading strategy, so I have decided to vary them as well. It is a dangerous idea, however, as it is easy to overoptimize the system.
I am planning to test different values for buy and sell levels, but it will be done in cycle, without using arrays.
Unlike in our previous example, we want to have a large XML file, containing many images. To do it, I have moved the code, that is forming the XML header and footer outside of the Chart function. Read one of the online XML tutorials for details.
Note, that I am using 0 as the first lag, which means, that first I am testing the indicator (CLV) that was not "shifted" from the future. Just to get an idea, how good out "trading system" would be without NN (horrible, is the right word. It is loosing all the money).
Cortex uses the Internet Explorer control to display XML pages. When pages grow large, it takes a lot of memory. If your computer cannot handle it, consider creating multiple XML or HTML pages, instead. In the case of forex_nn_02, it should not be a problem, as the page is relatively short. Alternatively (that is what I am doing in scripts later in this text), create XML file, but do not open it from Cortex. Open them using Internet Explorer instead - unlike IE control, the Internet Explorer does not have the memory problem.
Now the code that is trying different combinations of parameters.
forex_nn_02.tsc, part 3.
Here, we are using nested cycles. In every cycle, we are assidning some variable (for example, nInterval for the outer cycle). This way the cycle will assign values of all elements of a corresponding array, one in a time. Then WITHIN it, the inner cycle is used, and so on, so that all combinations of all array elements are tested.
In the innermost cycle, I am calling the Test() function, to "test trade", and Chart() to add a new picture to a list of images saved on disk. Note, that this Chart() does not show any images, until all cycles are completed.
The Test() and CreateClv() functions are almost the same as in the previous example. The only real difference is due to the fact that it is called more then once. To do it, I am calling ARRAY_REMOVE to cleanup arrays.
Also, notice, that we are only creating charts for the combinations of parameters, that produce trading system with positive profit. Otherwise, we call "continue", to skip the Chart() function.
Finally, we have Take Profit now, so our trading system can be a bit more flexible.
forex_nn_02.tsc, part 4.
The Chart() function was broken into two pieces. The header and the footer should be written to the XML file only once, so they were moved to the main part of the program.
Also, I am using the counter, to save files under the different names. The information about parameters is written to the header of an image, so we can easily see which one it is. Finally, images are only saved for winning configurations, meaning the balance at the end should be more, then at the beginning.
forex_nn_02.tsc, part 5.
Run the program (it will take some time to complete). You will end up with a large XML page with images, one for each winning configuration.
Some of the results are great, however, as we used data "from the future", this system will not work in the real life. Actually, if you look at the Test() function, you will notice, that the cycle stops before we reach the last element of arrClose:
for(nBar = nRemoveFirst + 1; nBar.
THIS IS C++, just an example.
As you can see, the code is really simple. Now lets do the same using the SLANG script. As in examples before, we will keep the overall structure of the code, so that this example looks familiar. The only difference is that instead of using the built-in APPLY_NN function, we call the function of our own. The code that we do not use (such as cycles) is commented, but not removed.
Note, that the logic behind it was discussed in Neural Networks and Stock / Forex Trading article already. Briefly, the output of this script is formated to be compatible with the MQL, MetaTrader's scripting engine. MetaTrader is a trading platform we use, if you want something different, like TradeStation, for example, you will have to alter the code to comply to its syntax.
Then, in the following chapters, we are going to insert this code in the MetaTrader's indicator, and to use it to trade.
Porting script to trading platform.
The next step is not really required, but it is something, that may be useful. We are going to create a version of a tsc file (one above), but this time, we will use SLANG (Cortex scripting language) to emulate APPLY_NN function. The reason is, in the next chapter we are going to port it to the scripting language of a MetaTrader trading platform, so it is a good idea to make sure everything works.
After we run this function, we discover, that the result it produces is the same, as the forex_nn_05a produced, which means the code works fine. :
Note, that there is a difference at the beginning of the charts, as "our" NN does not try to process the data at the beginning (where lag is incomplete), while the built-in NN does not "know" about this problem. Of course, it doesn't affect the result, as the beginning of the chart is ignored by using the nRemoveFirst parameter in our script (set to 200, which is guaranteed to be larger, then our lag).
Using third-party trading platform.
We have the NN that (more or less) can be used. We have the script, implementing this NN without calls to the Cortex-specific NN functions. Now we are going to port it to the trading platform that can be used for the real trading, which means it can contact brocker, place orders and earn (or loose) money.
As a trading platform, I am going to use MetaTrader.
Disclaimer: I am not related to MetaQuotes in any way. I do not work for them, I am not their affiliate and so on. I use MetaTrader, ONLY because I like it.
I find this program user-friendly, flexible and powerful, and "not a monster". Also, it is free (compare to other packages of this class).
The only (minor) problem is that it is not always easy to find the dealer using MT in your area. Then, when you do a research, you may find couple of brockers, with screenshots on their web sites, that look suspiciously familiar. Yes, they use MetaTrader, but they don't call it MetaTrader!
I have asked for clarification at the company's forum, and they have told me, that they don't reveal brockers using their services. Very strange.
One of the brockers that is not hiding the fact they use MT, is Alpari. They will allow you to open a Demo account, so that you can trade in a real time, but without risking your money.
I am not going to recommeng services of Alpari. Once again, I am not being paid for that. Try their Demo account, and use your own judgement. Or you can start your own research at Internet forums.
Finally, if you do not like the MT, you can probably follow the example below using TS, MS or some other trading platform. Este é apenas um exemplo.
Our MT-based trading system will include two files, the indicator and an expert. This is the way they call it in MQL (scripting language of MT), and I am going to follow this naming convention.
The indicator implements the neural network and draws a chart. An expert takes these data and does trading. As MetaTrader has a "strategy tester", we will be able to test our strategy, to see how good it is.
I will assume, that you are familiar with MQL programming, it is quite close to SLANG and tutorials can be found both at MetaQuotes and Alpari.
Finally, I am using the code structure, that is borrowed from MetaQuotes forum, permission to use it the author of the corresponding posts had granted me permission to use fragments of his code.
Also, as some of our MetaTrader code is the same for all experts and indicators, we moved it to a separate library file. MetaTrader's libraries are nothing but includable files. This library takes care of synhronization, when two or more expert are trying to run in the same time, as well as of few other things. If you use MetaTrader, it will help you to create robust experts, in any case, the MQL language is easy to understand.
mylib. mql, a helper library.
The code should look familiar, all I did was re-writing it, using slightly different language syntax of MQL.
This indicator has two buffers, and draws two lines, one for the original NOC, and one for the NN-predicted NOC. For trading, you don't have to draw both indicator lines, of course (see MQL tutorials to learn how to do it), but I have decided to show them together, so you can compare.
Another difference, that you should know about, is the way MT performs testing. It may, in some cases, be more accurate, then one we did (we did the worse case scenario). Of course, you can always to change the SLANG script from the examples above, to implement any logic you want.
The result of our testing in MT is a bit better, then in Cortex, due to all these reasons.
Keep in mind, that MT calculates the DD in a different way. I still think, that my way is better.
In should be especially noted, that no additional optimization had been performed using MetaTrader's optimizer. We have just plugged our MTS (mechanical trading system) in, and it worked as expected.
É isso. You can now create Cortex Neural Network, optimize it to do trading, and to port it to the trading platform of your choice.

Neural network software forex


Have you ever heard of Bitcoin? Or any other Crypto Currency available on the market? I bet you have… And, so far, it’s the most volatile and unpredictable market, with little to no regulations, high risks, AND, with MUCH HIGHER Profit Opportunities. How about getting over 500% Return On Investment within just 10 months, trading the crypto currency on a daily […]
Options Scanner 4.1 in action (VIDEO DEMO)
Have you had the chance to see our newest Unusual Volume Options Scanner 4.1 Platinum version in action yet? If not-here’s short video demonstrating outstanding capabilities to find right trading opportunities for you: The software allows you to… Find new trading opportunities by finding options with unusual options volume via end of day scanner. Pick stocks with institutional […]
Options Scanner 4.0 Platinum version released!
One of our most amazing and powerful tools to find the trading opportunities by scanning in hidden insiders’ information, is coming soon! The new version of Unusual Volume Options Scanner 4.0 Platinum is releasing tomorrow! Now, you can scan through the Options Universe-INSTANTLY! And meet new scanning criteria-you can select the level of Implied Volatility […]
New Forex Neuromaster 3.5 released!
Intraday Standard and PRO versions available! It’s much more stable, and is using the new data feed/server. The new data feed provides much more stability and coverage, and, in the next release, Platinum version will cover 49 FX Pairs, in addition to 5 basic pairs in Standard version, and 23 pairs in PRO version. [& hellip;]
Unusual Volume Options Scanner 3.5 PRO released!
If you didn’t check our GREAT tool that makes consistent profit day by day, named “Unusual Volume Options Scanner”, it’s the LAST chance to do this! And, i’m proud to announce that this great tool has just become even GREATER! The new version 3.5 PRO has been released today, with HUGE speed improvement, newest up-to-date […]
New Forex Neuromaster 3.1 Intraday released!
Attention Forex Traders… NOVA versão do Forex Neuromaster 3.1 lançado! Now it supports multiple INTRADAY TIMEFRAMES, and has the flexibility to select your own trading time zone! BREAKTHROUGH NEW Forex Forecasting Software Tells You EXACTLY When to BUY and When to SELL… Just Before Key Market Reversals! And Gives You an Almost Unfair Advantage in the […]
Unusual Volume Options Scanner 3.0 software released!
Do you trade options or stocks? If so-you must check our newest version of Options Scanner software that has been released today! New Options Scanner 3.0 now is connected to updated FREE data source, and has up to date FULL list of all optionable symbols traded on AMEX, NYSE and NASDAQ, combined into one list if you […]
Stock Neuromaster 3.0 PRO Available now!
Let me introduce you NEW VERSION of STOCK NEUROMASTER 3.0 PRO! This new version, with bunch of new outstanding features, has been released today, and as the registered user of previous version, you’re eligible to upgrade to version 3.0 PRO with no extra charge (if you’re within 1 year of free upgrade period). WHAT’S NEW: - INTRADAY […]
Announcing… Forex Neuromaster 2.4 PRO!
Attention Forex Traders… JUST ANNOUNCED – BREAKTHROUGH NEW Forex Forecasting Software Tells You EXACTLY When to BUY and When to SELL… Just Before Key Market Reversals! And Gives You an Almost Unfair Advantage in the Forex Markets, With Potentially Unlimited Returns in Your Trading CLICK HERE TO SEE MORE…

The Best Artificial Neural Network Solution of 2017.
Aumente a precisão da previsão com poderoso software de rede neural.
O conceito de rede neural está sendo amplamente utilizado para análise de dados hoje em dia. A simulação de rede neural geralmente fornece previsões mais rápidas e precisas em comparação com outros métodos de análise de dados. Function approximation, time series forecasting and regression analysis can all be carried out with neural network software. O alcance das possíveis aplicações das redes neurais é praticamente ilimitado: previsão do jogo, tomada de decisão, reconhecimento de padrões, sistemas de controle automático e muitos outros. Of course, neural networks play a significant role in data mining processes.
The software is the best I have ever used. What is most impressive, besides the other algorithms, is especially the neural net and time-series forecasting capabilities and the ease with which the formulas can be generated and exported to a spreadsheet for customization.
GMDH Shell, software de rede neural profissional, resolve as previsões de séries temporais e as tarefas de mineração de dados construindo redes neurais artificiais e aplicando-as aos dados de entrada. Designed to help even non-experienced users accomplish their everyday forecasting and pattern recognition job, GMDH Shell unleashes the power of neural network analysis while hiding away its underlying complexity.
Neural network forecasting is more flexible than typical linear or polynomial approximations and is thus more precise. With neural networks an expert can discover and take into account non-linear connections and relationships between data and build a candidate model with high prediction strength. Additionally, GMDH Shell doesn’t require preliminary normalization of data and does not stick to the absolute finest fitting significantly reducing computation time.
GMDH Shell automatically trains neural networks and applies them for analysis, thus getting accurate sports, business or stock market predictions doesn’t require much effort or time from you. Graças a um único sistema de balanceamento de carga da CPU, a GMDH Shell se beneficia de todos os recursos gratuitos do seu PC, direcionando a aplicação da análise da rede neural. Isso significa resultados mais rápidos e precisos do que nunca.
Download GMDH Shell for Data Science Instantly!
Over 100,000 people have already downloaded GMDH Shell!
Benefits of GMDH Shell for Data Science.
Determines model structure automatically Drevents overfitting and works well with very small data sets Is fast even with 1,000 input variables Provides forecasting, classification, regression and clustering tools in one package.
Related pages:
Nossos clientes.
Informação de contato.
55 Broadway, 28th Floor.
New York, NY 10006.
Testemunhos de clientes.
The software is the best I have ever used. What is most impressive, besides the other algorithms, is especially the neural net and time-series forecasting capabilities and the ease with which the formulas can be generated and exported to a spreadsheet for customization.
You have managed to improved both accuracy and speed of neural-type algorithm. The optimization engine for regression/classification and time-series tasks was also very neat. Mantenha o bom trabalho!
I have been teaching myself neural networks for a few months now on my own. I purchased a book on the subject and used a couple of open source software to learn. By good luck searching on the Internet I came across your software. It was extremely easy to use compared to the others. I feel with your software I would have an advantage.
GMDH Shell provides about the most user-friendly interface and one of the most powerful end-user oriented time series analysis software on the market .
Business Forecasting.
Predictive Analytics.
GMDH LLC is a privately held company founded with the aim of building the best forecasting software. In addition, we offer a number of services, such as integration with databases and ERP systems, remote training, and consulting.

Comments