Redes neurais, como dominá-las, por onde começar? - página 16

 
Neutron >> :

Você pode, é claro!

Mas aprenderá sua regra em 10 lições, e depois?

Este algoritmo é tomado como um exemplo simples para criar uma rede neural, porque você tem que aprender com uma simples....

Se o alcance de uma vela for maior que o alcance médio das últimas cinco velas por um certo coeficiente (se a vela estiver subindo - comprar, se a vela estiver descendo - vender).


Com base neste algoritmo , os parâmetros de entrada serão os crackficents da faixa média das últimas cinco barras?


 

Você dá definições dos termos que utiliza. O que é "alcance das velas"? Uma rede deve aprender com exemplos. O que conta como exemplos positivos e negativos para sua rede (de seu ponto de vista)? O que é uma "relação de excesso"?

 
Neutron >> :

Você dá definições dos termos que utiliza. O que é "alcance das velas"? Uma rede deve aprender com exemplos. O que conta como exemplos positivos e negativos para sua rede (de seu ponto de vista)? O que é o "fator de excesso"?

intervalo da última barra formada = Alto[1]-Baixo[1];

cdpb duplo // faixa média das últimas cinco barras

for(i=1;i<5;i++){

сдппб=сдппб+(High[1]-Low[1])/5;

}

condição de compra

if(intervalo da última barra completada > intervalo médio das últimas cinco barras* coeficiente && Close[1]>Open[1]){

comprar por mercado

}

Você pode me dizer como é fácil definir um exemplo positivo negativo para a rede, talvez o resultado de uma troca?

 

диапазон последнего сформировавшегося бара>средний диапазон пяти последних баров*коэффицент

Esta condição determinará o algoritmo de treinamento da rede e sua arquitetura. Consideraremos como resultado positivo para a rede a coincidência de um movimento kotir previsto que começa com a abertura de uma posição e termina com seu fechamento quando aparece o sinal de inversão de posição. Negativo - respectivamente - sem correspondência. O resultado do trígono da rede será encontrar o valor ótimo (do seu ponto de vista) do coeficiente. A rede terá 7 entradas. A primeira entrada será um offset constante (aumenta a potência computacional da rede e acelera a aprendizagem), a segunda entrada terá o intervalo de 1 barra, a terceira entrada terá o intervalo da segunda barra e assim por diante até a quinta barra, e a sétima (a última entrada de NS) terá o intervalo de zero barra (atual), que se compararia com ela.

A rede que escolhemos é a mais simples - a perseptron linear. Durante o processo de aprendizagem, ele atribuirá proporções ótimas para cada barra (não uma para todas as cinco barras, como no seu caso, mas um indivíduo (w0, w1...w6) para cada barra) e se for possível, em princípio, o Computador Nacional irá prever a compra ou venda quase sem erros!

 
Neutron >> :

Esta condição determinará o algoritmo de treinamento da rede e sua arquitetura. Consideraremos como resultado positivo para a NS uma coincidência do movimento kotir previsto que começa com a abertura de uma posição e termina com seu fechamento quando aparece o sinal de inversão de posição. Negativo - respectivamente - sem correspondência. O resultado do trígono da rede será encontrar o valor ótimo (do seu ponto de vista) do coeficiente. A rede terá 7 entradas. A primeira entrada será um offset constante (aumenta a potência computacional da rede e acelera a aprendizagem), a segunda entrada terá o intervalo de 1 barra, a terceira entrada terá o intervalo da segunda barra e assim por diante até a quinta barra, e a sétima (a última entrada de NS) terá o intervalo de zero barra (atual), que se compararia com ela.

A rede que escolhemos é a mais simples - a perseptron linear. No processo de aprendizagem, ele atribuirá as melhores proporções a cada barra (não uma para todas as cinco, como no seu caso, mas um indivíduo (w0, w1...w6) para cada barra) e se for possível, em princípio, os NS preverão a compra ou venda quase sem erros!

Muito obrigado, Neutron.


Se eu entendi corretamente, as entradas são marcadas como Wn, se assim for, minha próxima tarefa é descrever cada entrada por um código, por exemplo:

int w0= постоянное смещение ( вот с этим не совсем понятно);  
double w1=High[1]-Low[1];
double w2=High[1]-Low[2];
double w3=High[1]-Low[3];
double w4=High[1]-Low[4];
double w5=High[1]-Low[5];
double w6=High[1]-Low[0];


Isto é correto?

 

Isso mesmo!

E a entrada constante não é clara? Temos que normalizar os dados de entrada com antecedência, este procedimento não é obrigatório, mas desejável (ajuda a rede a aprender mais rapidamente e aumenta seu poder de previsão). Como resultado deste procedimento, toda a variedade de sinais de entrada (de -infinidade, até +infinidade), será mapeada em um intervalo finito +/-1. Como uma compensação constante, forneceremos +1 (para maior clareza) para a primeira entrada do NS. A saída sairá > 0 significa Bue e Out<0 significa Sell.

 
Neutron >> :

Isso mesmo!

E a entrada constante não é clara? Temos que normalizar os dados de entrada com antecedência, este procedimento não é obrigatório, mas desejável (ajuda a rede a aprender mais rapidamente e aumenta seu poder de previsão). Como resultado deste procedimento, toda a variedade de sinais de entrada (de -infinidade, até +infinidade), será mapeada em um intervalo finito +/-1. Como uma compensação constante, alimentamos +1 (por certeza) a primeira entrada do NS.

int    w0=1; // это для того, чтобы все ниже описаные входы были проработаны на истории?
double w1=High[1]-Low[1];
double w2=High[1]-Low[2];
double w3=High[1]-Low[3];
double w4=High[1]-Low[4];
double w5=High[1]-Low[5];
double w6=High[1]-Low[0];
 
Andrey4-min писал(а) >>

Isto está certo?

Ainda não está certo.

Nesta formulação, as entradas para o NS serão apenas positivas em sinais de amplitude e a rede não obterá todas as informações possíveis nas quais a análise será baseada. Melhor, multiplique o valor de sua entrada pela cor da vela: +1 se a vela estava subindo, e -1 - se estava caindo. E nem mesmo +/-1, mas ao valor do incremento: Close[i]-Open[i].

Será parecido com isto:

w1=(High[1]-Low[1])/Point*( Close[1]-Open[1])/Point;

w1=(High[2]-Low[2])/Point*( Close[2]-Open[2])/Point;

w1=(High[3]-Low[3])/Point*( Close[3]-Open[3])/Point;

Isto é sem normalização, por enquanto.

P.S. Eu não entendo isto: // É para fazer com que todas as entradas descritas abaixo funcionem através da história?

 
Neutron >> :

Isto ainda é errado.

Nesta formulação, as entradas para o NS serão apenas positivas em sinais de amplitude, e a rede não obterá todas as informações possíveis sobre as quais basear a análise. Melhor, multiplique o valor de sua entrada pela cor da vela: +1 se a vela estava subindo, e -1 - se estava caindo. E nem mesmo +/-1, mas ao valor do incremento: Close[i]-Open[i].

Será parecido com isto:

w1=(High[1]-Low[1])/Point*( Close[1]-Open[1])/Point;

w1=(High[2]-Low[2])/Point*( Close[2]-Open[2])/Point;

w1=(High[3]-Low[3])/Point*( Close[3]-Open[3])/Point;

Isto é sem normalização, por enquanto.

P.S. Eu não entendo isto: // É para fazer todas as entradas descritas abaixo funcionarem através da história?

Você tem w1 em todas as três linhas em seu exemplo, deveria ser assim?

P.S. O que eu não entendo é o seguinte: // é para que todas as entradas descritas abaixo possam ser trabalhadas na história?

Estou tentando entender que função w0 irá desempenhar, e assumi que é um passo na história, como em loops, se não, você pode me dizer mais...

 
Andrey4-min писал(а) >>

Em seu exemplo você tem w1 em todas as três linhas, deveria ser este o caso?

Estou tentando descobrir que função w0 desempenhará, então assumi que fosse um passo para a história, como em loops, se não, por favor explique mais...

Para entender que função w0 desempenha, é melhor começarmos com alguns livros didáticos em vez de saltarmos para o NS, IMHO.