Utilização de redes neurais no comércio.

 

Caros comerciantes! Recentemente, as paixões em torno do uso de redes neurais em

previsão nos mercados financeiros. Acho que o público está dividido entre aqueles que já tentaram, mas quando confrontados com

Dúvidas e ficou decepcionado (é mais fácil usar as mãos) ou aposentado temporariamente, e aqueles que têm alguns (e talvez muito bons) resultados.

resultados e estão trabalhando silenciosamente e melhorando seu sistema... No entanto, novos sofredores emergem com

ansioso para ter sucesso e questiona. Muito já foi discutido, mas talvez os neuro-comerciantes experientes tenham

novos pensamentos?

Estou interessado em não crescer nos últimos tempos e tenho acumulado algumas perguntas. Eu gostaria de ouvir as opiniões das pessoas que são boas nisso.

Entendo que ao usar redes neurais no comércio muitos detalhes são importantes. Em ordem.

1. Qual é a tarefa a ser definida para a NS? Penso que o problema da classificação (ou seja, a divisão dos momentos de mercado em classes

"Comprar", "Vender", "Ficar fora do mercado") é o mais promissor em termos de obter bons resultados nas negociações.

2. Como formular esta tarefa? Eu vejo duas maneiras.

а. A primeira é ensinar a rede a determinar de forma independente o mais favorável

Entre no mercado quando for mais provável que você tenha um comércio lucrativo.

Neste caso, a rede analisará constantemente o mercado (por exemplo, na abertura de cada novo bar) e determinará

Qual deve ser, então, a amostra de treinamento? Obviamente, deve conter

Valores de entrada (valores de preço ou indicadores) de cada barra da amostra

o valor de saída desejado. COMO? Esta é uma questão de perguntas! Portanto, no programa Redes Neurais 4 da STATISTICA, é desejável

que a cada barra deve ser atribuído um valor fixo indicando a que classe ela pertence.

a uma certa classe... como 1, 0 ou -1... ou mesmo com o texto "vender" "fora do mercado" "comprar"

Por outro lado, eu li que os valores de saída de uma amostra de treinamento não devem ser discretos.

e deve ser distribuído em uma faixa de (por exemplo) -1, o que significa 100% vender! a 1, o que significa 100% comprar, e 0 seria então

"não sei" ou "fora do mercado". Ou seja, cada barra deve ter um conjunto de entradas e um valor de saída de (por exemplo) 0,8745

o que significaria que há 87 de 100 chances de compra.

E, é claro, como encontrar tais valores de saída? Eu uso um Zig-Zag? E entre os picos do Zig-Zag

calcular suas "chances"?

б. A segunda maneira é filtrar os sinais de algum sistema... um bom sistema por si só que gera

e neurônicos só "permitem" ou não o comércio com eles.

... neste caso, a amostra de treinamento deve ser retirada somente nas barras onde o sistema dá o sinal para o comércio... ou em todas as barras de qualquer maneira?

E novamente, a saída (desaer) deve ser discreta ou com valores provisórios?

3. Valores de entrada. Eles sugerem não tomar os valores indicadores como tais. Acho que isto é um equívoco.

Os indicadores "olham" para a história, cada um em sua própria profundidade e ângulo, e com base nisso eles dão o

Se tomarmos um conjunto de valores indicadores, o vetor de entrada faz lembrar um certo "código de barras" do mercado

e os NS reconhecerão e resumirão situações de mercado usando esses códigos de barras. É proposto tomar como variante a diferença

de valores indicadores (para fornecer à rede informações sobre a direção do movimento de preços). Que outras variantes existem?

QUAL É O CAMINHO CERTO? Eu tentei tomar o ângulo Phi de um número complexo (o ângulo Phi é um ângulo geométrico

interpretação de um número complexo) por Cloth, mas em minhas experiências com NeuroSolution comparado a um conjunto de

dos valores indicadores saíram muito piores. O que a comunidade de especialistas tem a dizer? ;-)

4. Normalização dos valores de entrada. O significado do procedimento é claro. O que não é claro é como implementá-lo adequadamente. Deixe-me explicar. Normalização -

está trazendo valores em uma única faixa. Para fazer isso, devemos encontrar o valor máximo na amostra e o valor mínimo.

Tudo bem. Até que profundidade devemos procurar? Digamos que temos 100 valores indicadores na amostra. Precisamos normalizar

75° valor. Onde devemos procurar o mínimo e o máximo? Com 74 anos anteriores? ou com 50 anos anteriores? ou com 100 (ou seja

Há uma necessidade de certeza... porque na classificação cada barra tem que ser calculada independentemente e de acordo com

ou então é tudo um disparate... Acho que deve ser baseado apenas em valores do passado e tomar

Penso que é necessário dar apenas valores passados e tomar uma profundidade de unidade estritamente definida (por exemplo, sempre 100 barras atrás ou 500 ou o valor de uma amostra de treinamento).

5. Reamostragem aleatória da amostra recebida. Bee orr nott tu bee! As opiniões divergem... A teoria afirma que o caso de

de classificação é útil. Mas como é isso na realidade? Quem já tentou? Alguma opinião?

6. E finalmente uma última pergunta sobre o treinamento da rede. Alguém usa C.V. (validação cruzada) amostragem?

É necessário? Isso realmente ajuda a evitar o supertreinamento da rede? E em geral, como você lida com isso

sobretreinamento sorrateiro? Destrói tudo! Como nas amostras de treinamento, tudo é bonito! E fora de

Amostra - bobagem.

Pessoalmente, uso NeuroSolution 5 DE para estudar a utilidade da NS no comércio. É um bom programa flexível.

Ele permite que gere resultados como DLL.

Muito inteligente. (mas não está claro como, após o treinamento e a otimização, encontrar quais valores da seleção de entrada são úteis e quais valores são excluídos.

A única coisa que eu quero descobrir é quais valores são úteis e quais são excluídos pelo programa como prejudiciais ou desnecessários.

Por favor, não passe por aqui. Crítica! Sugestões! Compartilhe seus pensamentos!

 
É claro que é muita algaraviada, mas pelo menos veja os links abaixo de seu post, afinal não é um tópico novo.
 
читайте================================>хайкина=========================> :О)
 
PraVedNiK >> :
читайте================================>хайкина=========================> :О)

Já o encontrei! Com certeza vou lê-lo.

 
sayfuji >> :
Claro que são muitas palavras, mas pelo menos veja os links abaixo de seu post, afinal não é um tópico novo.

Eu não tenho problemas com muitas palavras. Está tudo aí... está tudo aí... você acha que acabou, não acha?

 

полагаете что тема исчерпана полность?

De jeito nenhum. Pelo contrário, cavar e cavar, uma pá maior e um saco de tempo.


 
alexish писал(а) >>

4. Normalizar os valores de entrada. O significado do procedimento é claro. O que não está claro é como implementá-lo corretamente. Deixe-me explicar. Normalização -

está trazendo valores em uma única faixa. Para fazer isso, precisamos encontrar o valor máximo na amostra e o valor mínimo.

Tudo bem. Até que profundidade devemos procurar? Digamos que temos 100 valores indicadores na amostra. Precisamos normalizar

75° valor. Onde devemos procurar o mínimo e o máximo? Com 74 anos anteriores? ou com 50 anos anteriores? ou com 100 (ou seja

Há uma necessidade de certeza... porque na classificação cada barra tem que ser calculada independentemente e de acordo com

ou então é tudo um disparate... Acho que deve ser baseado apenas em valores do passado e tomar

Acho que devemos usar somente valores passados e tomar a mesma profundidade (por exemplo, sempre 100 barras atrás ou 500 ou o mesmo valor que uma amostra de treinamento). - Procure um método universal e leia artigos em sites especiais sobre redes neurais.

5. Reordenação aleatória da amostra recebida. - não um ponto essencial

6. E, finalmente, a última pergunta sobre o treinamento da rede. Alguém usa C.V. (validação cruzada) amostragem?

É realmente necessário? Isso realmente ajuda a evitar o supertreinamento da rede? E em geral, como você lida com isso

sobretreinamento sorrateiro? Destrói tudo! Como nas amostras de treinamento, tudo é bonito! E fora de

Amostra - bobagem... - Em qualquer caso, a amostra de teste decide tudo.

Disparate no OOS: 1. não é uma amostra representativa 2. Dados não estacionários 3. Pré-processamento incorreto, possivelmente algumas outras coisas...

Pessoalmente, uso NeuroSolution 5 DE para estudar a utilidade da NS no comércio. É um programa bom e flexível.

É possível gerar resultados como uma DLL em .

Muito inteligente. (mas não está claro como, após treinamento e otimização, encontrar quais valores da seleção de entrada são úteis e quais valores são excluídos.

A única coisa que eu quero descobrir é quais valores são úteis e quais são excluídos pelo programa como prejudiciais ou desnecessários).

Por favor, não passe por aqui. Crítica! Sugestões! Compartilhe suas idéias!

De uma boa maneira, terei que escrever tudo sozinho, pelo menos para entender melhor o que acontece e por que...

 
alexish писал(а) >>

1. Qual é a tarefa da NS? Acho que a tarefa de classificação (ou seja, dividir os momentos do mercado em classes

"comprar", "vender", "ficar fora do mercado") é o mais promissor em termos de obter bons resultados comerciais.

Sim, é. E, o estado "fora do mercado", como regra, está ligado ao alargamento, tudo mais NS traça e deve explorar em seu benefício. É por isso que a classificação somente com base em "comprar" ou "vender" é crucial para a NS, e no próprio TS estabelecemos a "proibição de franquia" para o comércio, dependendo do valor atual da comissão das corretoras.

2. Como formular esta tarefa? Eu vejo duas maneiras.

а. A primeira é ensinar a rede a determinar os momentos mais rentáveis do mercado.

б. A segunda maneira - em teoria, a amostra de treinamento deve ser desenhada apenas nas barras onde há um sinal do sistema para negociar... ou em todas as barras de qualquer maneira?

E novamente... a amostra de saída (disaer) deve ser discreta ou com valores intermediários?

Certo - para facilitar ao máximo a tarefa a ser resolvida pelo NS, para este fim devemos determinar o TS ótimo (para condições específicas) independentemente e alimentá-lo com séries temporais já dissecadas como dados de entrada, ou seja, não cada barra, mas prováveis pontos-chave, e somente depois disso podemos esperar que o NS tome uma decisão adequada de entrada/saída. E ele decidirá se o ponto crítico que você sugeriu é esse ou não.

Quanto à resposta à pergunta sobre a discrição dos valores de saída de NS, ela não é óbvia e depende antes de tudo da lei de distribuição de amplitudes de incrementos de quociente "fatiados" pelo sinal de entrada do NS. Se a distribuição for quase simétrica, então podemos nos limitar a uma saída discreta +/-1 (compra/venda), mas se a distribuição não for simétrica, então devemos considerar sua amplitude (probabilidade), além do sinal.

3. Valores de entrada.

Respondido acima.

4. Normalização dos valores de entrada.

A normalização é necessária para que o NS funcione corretamente.

A maneira correta de realizar este procedimento é obter o mapeamento de toda a gama de valores recebidos na entrada/introdução dos NS na região de +/-1 com distribuição uniforme (oca). Isto pode ser feito agindo sobre o vetor de entrada com uma tangente hiperbólica e depois suavizando a distribuição por alguns meios (opcional).

5. Recurso aleatório da amostra recebida. Bi ou ort tu bi! As opiniões divergem.

O procedimento é inútil!

A questão é que usando o método de Propagação de Erro Reverso, resumimos os erros sobre toda a amostra de treinamento e não faz diferença para nós em que ordem resumimos os outliers individuais - a partir da reorganização dos lugares de sílaba, a soma não muda.

6. E como você lida com esse supertreinamento sorrateiro de qualquer maneira?

Há uma relação inequívoca entre o comprimento mínimo da amostra de treinamento P, o número de pesos W no NS e a dimensão da entrada d: P>4*(W^2)/d

Se esta condição for atendida, obviamente nunca ocorrerá o excesso de treinamento. O processo de aprendizagem deve ser interrompido quando o parâmetro que caracteriza o erro de aprendizagem atinge a assimptótica.

Pessoalmente, uso NeuroSolution 5 DE para estudar a utilidade da NS no comércio. É um programa bom e flexível.

Muito complicado.

Que pena!

Você deve escrever o código do NS diretamente em MQL. Esta é a única maneira de evitar o mar de armadilhas e poupar tempo e esforço.

 
Neutron >> :


1.

A coisa certa é facilitar ao máximo a solução do problema para os NS, para isso você precisa determinar o TS ideal (para condições específicas) por si mesmo e enviar como dados de entrada séries temporais já dissecadas, ou seja, não todas as barras, mas provavelmente pontos-chave, e somente depois disso você pode esperar que os NS tomem uma decisão adequada de entrada/saída do mercado. Ela decidirá se o ponto crítico que você sugere é esse ou não.


2.

Mal!

Você deve escrever o código NS diretamente em MQL. Esta é a única maneira de evitar o mar de armadilhas e poupar tempo e esforço.


1. Ao facilitar, não perca dados. O mais importante é não alimentar a rede com essencialmente os mesmos dados. Pense melhor fora da caixa o que pode influenciar o preço e como apresentá-lo como dados para a rede neural.


2. NÃO escreva o código NS para MQL. Você gastará muito tempo e nervosismo e tudo vai funcionar muito lentamente. Melhor aprender como conectar sua dll com o MT4 e escrever sua própria rede neural em C, por exemplo, com o pacote FANN. Isto ajudará a evitar muitos problemas, incluindo a portabilidade do código para o novo terminal MQL5.

 
Neutron писал(а) >>

A maneira correta de fazer isso é conseguir que toda a gama de valores de entrada/entrada do NS apareça na área +/-1 com uma distribuição uniforme (oca). Isto pode ser feito agindo sobre o vetor de entrada com uma tangente hiperbólica e depois suavizando a distribuição (opcional) de uma forma ou de outra.

Há uma relação inequívoca entre o comprimento mínimo da amostra de treinamento P, o número de pesos W ajustáveis no NS e a dimensão da entrada d: P>4*(W^2)/d

Se esta condição for atendida, obviamente nunca ocorrerá o excesso de treinamento. O processo de aprendizagem deve ser interrompido quando o parâmetro que caracteriza o erro de aprendizagem atinge a assimptótica.

Mal!

É necessário escrever imediatamente o código NS para MQL. Esta é a única maneira de evitar o mar de armadilhas e economizar tempo e esforço.

Uma função sigmoidal por si só não iguala a distribuição... Na minha opinião, é mais importante resolver o problema da estacionaridade dos dados no pré-processamento.

A propósito, a fórmula que você citou, eu recebo W=420, d=14, então P>50400 - não lhe parece que a amostra é um pouco grande demais?

Em minha experiência, o número de amostras em amostra não depende do que você sugere...

 
alexish писал(а) >> Eu pessoalmente uso NeuroSolution 5 DE para estudar a utilidade da NS no comércio.

De modo geral, antes de aplicar programas tão específicos e bastante complexos, é aconselhável consultar os desenvolvedores deste software sobre a conveniência de seu uso nesta área, ou seja, nos mercados financeiros. Portanto, se você os consultar, eles lhe dirão que o NeuroSolution não se destina ao uso nos mercados financeiros, e recomendarão outro programa. O NeuroSolution é projetado para resolver problemas gerais, enquanto o uso de redes neurais nos mercados financeiros tem algumas características específicas que não são levadas em conta neste software. Talvez o NeuroSolution possa estar de alguma forma ligado aos mercados financeiros, mas é bastante complicado e está sob o poder de grandes especialistas na área de redes neurais + comerciantes em uma só pessoa, que entendem claramente o resultado e, mais importante, como obtê-lo das redes neurais. Portanto, você tem todos os problemas listados acima - definição de problemas, normalização de dados, sobretreinamento e assim por diante.....