O "New Neural" é um projecto de motor de rede neural Open Source para a plataforma MetaTrader 5. - página 23

 
Urain:
Vá lá, vamos ver o que tens.

Também muito interessado em redes esparsas.

E modelos relacionados com lógica fuzzy -- hooray!!! Lembrei-me do nome de um dos modelos, aqui está um link para a descrição. O modelo tsukamoto.

____

Estas provavelmente serão um pouco bombásticas se implementadas com sucesso.

 
Não tenho certeza de como SVN = Support Vector Machine é fundamentalmente diferente do MLP ?
 

TheXpert:

...


O produto tem de estar ao nível de neuro-pacotes do tipo NSDT para isso, niasilim.

...

Que pena)) Este é o programa que é atualmente o mais adequado para usuários de qualquer nível. Primeiro no ranking de 9 anos da revista Stock & Commodities do melhor software analítico de acordo com as sondagens de opinião dos traders. Mas é demasiado fixe para o OpenSource. ))

Renat 2011.10.18 00:45 #

Tenho uma ideia para desenvolver um motor de rede neural de vários tipos, que qualquer trader pode usar com o mínimo esforço.

O código será fornecido no código fonte da MQL5 e distribuído como parte do terminal.

Acho que se for código, qualquer comerciante não poderá usá-lo mais. Qualquer negociante-programador, sim. Para qualquer trader seria adequado incluir o neurônio em um sistema de negociação através do MQL5 Wizard, mas eu suponho que o Wizard teria que ser significativamente modificado então.

Estou a ler este artigo e pelo menos começo a perceber como tudo é complicado).

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 

Proponho, no entanto, que se peça uma secção separada do fórum, tudo num só tópico é um inferno. Como um repositório de pensamentos empilhados está tudo bem, mas quando a discussão começa ...

Que seja público, quem quer participar. Faça tópicos sobre aspectos individuais do sistema, e os administradores dos tópicos tomariam as decisões finais no primeiro post à medida que fossem sendo discutidos. Se necessário, organize uma votação pública em filas individuais, etc.

Seria bom, a propósito, se houvesse uma funcionalidade de um posto alfinetado (indicado pelo administrador), em todas as páginas do ramo, para que diante dos meus olhos houvesse sempre algum tipo de resumo da discussão.

 

Para aqueles que estão interessados, tentarei explicar em várias breves posturas porque considero as redes neurais baseadas em métodos biológicos de transformação de informação e usando o princípio da esparsidade como muito promissor.

Palestra 1: Fundamentos biológicos da esparsidade em redes neurais.

O cérebro do bebé em desenvolvimento passa por uma fase de construção de um grande número de sinapses (ligações entre neurónios) seguida por uma fase de remoção de quase metade das ligações até à adolescência. Muitos cientistas especulam que esta remoção de sinapses é necessária para reduzir a energia usada pelo cérebro devido a um metabolismo mais lento e a mudanças hormonais. O grande número de sinapses permite que o cérebro da criança se lembre de muitas informações, o que explica porque as línguas estrangeiras são mais fáceis de aprender antes da adolescência. A remoção de metade das conexões até a adolescência ajuda o cérebro a resumir melhor a informação. O mecanismo para remover metade das conexões no cérebro adolescente em desenvolvimento ainda é desconhecido. Muitos acreditam que mudanças metabólicas reduzem a quantidade de biogens (nutrientes) necessários para manter as sinapses. A quantidade limitada dessas substâncias causa competição entre as conexões de entrada do neurônio por sua existência. Esta competição é modelada por métodos de Aprendizagem Competitiva, nos quais ou a soma dos valores absolutos dos pesos de entrada do neurônio ou a soma de seus quadrados é mantida constante. Estes métodos são utilizados em redes de auto-aprendizagem. Em redes de aprendizagem assistidas por professores (por exemplo, redes de propagação direta), a competição entre pesos de entrada de neurônios geralmente não é levada em conta. Nessas redes, as conexões entre os neurônios são removidas após o treinamento dos pesos. Os pesos removidos são os menores pesos, ou os pesos que têm pouco efeito sobre o erro de aprendizagem médio.

Referências:

https://en.wikipedia.org/wiki/Synaptic_pruning

Huttenlocher, P. R. (1979).
Densidade sináptica no córtex frontal humano - alterações do desenvolvimento e efeitos da idade.
Res. Cerebral, 163, 195--205.

Braitenberg, V., Schuz, A. (1998).
Cortex: Estatística e geometria da conectividade neuronal.
Berlim: Springer.

LeCun, Y., Denker, J. S., Solla, S. A., Howard, R. E., Jackel, L. D. (1990).
Lesão cerebral ideal.
Em Touretzky, D. S. (Eds), Advances in Neural Information Processing Systems 2, NIPS*89, Morgan Kaufmann, Denver, CO, 598--605.

Hassibi, B., Stork, D. G., Wolff, G. J. (1993).
Ótimo cirurgião cerebral e poda de rede geral.
Proc. IEEE Int. Conf. Neural. Redes, 1, 293--299.

Miller, K D., & MacKay, D. J. C. (1994).
O papel das restrições na aprendizagem Hebbiana.
Neural Computat., 6, 100--126.

Miller, K. D. (1996).
Economia sináptica: Concorrência e cooperação na plasticidade sináptica.
Neuron, 17, 371... 374.

Synaptic pruning - Wikipedia, the free encyclopedia
Synaptic pruning - Wikipedia, the free encyclopedia
  • en.wikipedia.org
In neuroscience, synaptic pruning, neuronal pruning or axon pruning refer to neurological regulatory processes, which facilitate changes in neural structure by reducing the overall number of neurons and synapses, leaving more efficient synaptic configurations. Pruning is a process that is a general feature of mammalian neurological development...
 
Mischek:
Mais imho. É improvável que você encontre um consultor especializado no exterior que atenda às suas necessidades. Se você tem um orçamento, não importa o quê, é mais eficiente dividi-lo entre você no final do projeto, seja igualmente ou não igualmente, com base em uma avaliação subjetiva de meta-cotações.

Eu vou apoiar um perito externo. Em primeiro lugar, parece-me que você vai precisar de pelo menos dois (idealmente ainda mais), e, em segundo lugar, não é certo que pelo menos um par de usuários do fórum aqui será mais qualificado.

Sergeev:

Você pode fazer ainda mais simples.

Nesta situação passamos do especial ao geral, com uma tentativa de abstrair a modelos universais.

1. Desenhar (no papel + algoritmo verbal do modelo matemático) as redes que podemos realizar (topologias e métodos de ensino para elas).
2. Encontre pontos de ancoragem comuns nos modelos desenhados para criar classes de motores abstractos.


Esta é provavelmente a abordagem mais apropriada.
 

portagem64:

Acho que se fosse código, qualquer comerciante não poderia mais usá-lo. Qualquer negociante-programador, sim. Para qualquer trader a opção de incluir o neurônio no sistema de negociação através do MQL5 Wizard seria adequada, mas então eu suponho que o Wizard precisaria ser significativamente modificado.

Estou lendo este tópico e pelo menos estou começando a entender como tudo é complicado))).

1. Na minha opinião, deve ser, em primeiro lugar, uma biblioteca poderosa e versátil, através da qual o trader-programador (ou simplesmente programador MQL) pode criar uma rede neural de complexidade e funcionalidade necessárias. Nesta fase penso que deve ser criada uma biblioteca central, que consiste num pequeno número de objectos (a abstracção máxima e a universalidade é importante aqui).

2. No segundo passo é necessário escrever a funcionalidade da biblioteca com mais detalhes e profundidade (para determinar os tipos de redes, métodos de treinamento, variantes de topologia, etc.).

E no terceiro passo acho que você tem que decidir o que exatamente será alimentado na entrada e como será treinado.

4. Finalmente, a coisa mais interessante, na minha opinião. Juntamente com o MQ seria bom desenvolver algum tipo de "Assistente de Rede Neural" que permitiria criar um modelo de rede neural, especificando consistentemente todas as suas características.

Do ponto de vista de um leigo, deveria ser algo assim. Iniciar o assistente e especificar nele: uma rede de tal e tal tipo, camadas de tal e tal, neurônios de tal e tal, processar os parâmetros de tal e tal peru (ou apenas analisar um determinado fluxo de informação), na saída obtemos um certo sinal.

O resultado do assistente deve (pelo menos me parece uma boa idéia) ser um modelo que pode ser usado como um módulo separado ou pode ser usado para o desenvolvimento de um modelo EA em um VISARD existente.

5. Se a questão for sobre o uso de uma rede neural para a criação de um modelo do especialista pelo Wizard, será necessário fornecer a forma na qual será possível adicionar uma rede neural (pode ser mais de uma).

Neste caso, os padrões das redes neurais terão de estar num determinado local (como sinais, etc.) e cumprir certos requisitos.

PS

Seria bom definir "importância" de toda a rede neural, uma única camada (ou parte de uma camada), e um único neurônio nesta abordagem.

 
gpwr:
Era isso que eu estava tentando fazer com que você fizesse :) . Continue com o bom trabalho.
 
Vigor:

Sugiro, porém, que solicitemos uma seção separada do fórum, é uma chatice ter tudo em um único tópico. Como um repositório de pensamentos empilhados está tudo bem, mas quando a discussão começa...

Para armazenamento, aqui está um login.
 

Todas estas redes complicadas são solúveis - o mais importante é a que está orientada para o comércio))) E isto significa integração em EAs de trabalho. Isso significa que para a maioria dos EAs típicos não é necessário fazer um monte de coisas auxiliares como o pré-processamento dos dados de entrada ou a preparação de uma amostra de treinamento, e deve ser sistematizado e automatizado. Ou seja, se alguém quisesse inserir uma máscara, não precisaria primeiro gerar um número de valores de máscara, depois gerar um número de valores previstos (por exemplo, o aumento de preço de algumas barras), normalizar tudo, etc. Depois, treinar a rede.

Do ponto de vista puramente técnico pode parecer assim: para neurônios de entrada temos uma função virtual EnterData que retorna o dobro. Se você quiser inserir alguns indicadores ou o que quiser, basta escrever tudo nesta função.

O mesmo para o neurônio de saída é a função ExitData que calcula o que está sendo previsto.

Por exemplo, quero prever mudanças no preço para 5 barras: redefini a função

duplo ExitData(){

return(Open[-5]-Open[0]) ;

}

Ou eu quero prever a volatilidade

duplo ExitData(){

return(Alto[iHighest(...,5,-5)]-Baixo[iLowest(....,5,-5)]) ;

}

etc.

Também, para definir o período de aprendizagem e fora da amostra como uma propriedade do objeto de rede. E após o treinamento, poderíamos obter as características da curva de patrimônio líquido em amostras (fator de lucro, por exemplo)

ou seja

Net.StartTime=2005 ano

Net.FinishTime=2008 ano

Net.StartOutOfSamples=2009 ano

Net.FinishOutOfSamples=2011 ano

Net.Teach;

Net.OutOfSamples;

if (Net.PFOutOfSamples>3) Print("Good");

Ou, se a rede não está negociando sozinha, mas prevendo volatilidade, por exemplo, o usuário redefine a função avaliando a qualidade da rede para OutOfSamples por si mesmo.

Então o testador e as ferramentas de otimização podem ser usadas para encontrar a melhor topologia ou selecionar o tipo de rede e muitas outras coisas

Razão: