Como formar os valores de entrada para os NS corretamente. - página 12

 
sergeev писал (а) >>
Se os moderadores permitirem, coloco os arquivos aqui (depois de lê-los você terá que apagá-los :))))

MUITOOBRIGADO !!!! Ótimo arquivo - Estou indo para aprender... Isso é o que eu não sabia como fazer, então estou indo para aprender - obrigado novamente.

>> e obrigado por manter este fio vivo.

 
sergeev писал (а) >>
Então, o que dizer dos insumos. Quem tem quais redes e insumos?

assumir a diferença no EMA

para cada TF


M1 M5 M15 M30 (H1)



3-5

5-8

8-13

13-21

21-34

34-55

55-89

89-144

144-233


Eu recebo algo como isto

#define MAX_INP 6 //; 3-5 5-8 8-13 13-21 21-34 34-55 55-89 89-144 144-233


com a entrada do treinamento eu dou algo como isto




INP_PATTERNS[3][0]=-2;
INP_PATTERNS[3][1]=-3 ;
INP_PATTERNS[3][2]=-4 ; ;
INP_PATTERNS[3][3]=-5 ;
INP_PATTERNS[3][4]=-6 ;
INP_PATTERNS[3][5]=-7 ;
INP_PATTERNS[3][6]=-8 ;
INP_PATTERNS[3][7]=-9 ;
INP_PATTERNS[3][8]=-10;
OUT_PATTERNS [ 3, 0]=0. ;
OUT_PATTERNS [ 3, 1]=0. ;
OUT_PATTERNS [ 3, 2]= 1,0 ; // tchau



saída ! este paternoster tem BAY




INP_PATTERNS[4][0]=1 ;
INP_PATTERNS[4][1]=1 ;
INP_PATTERNS[4][2]=2 ;
INP_PATTERNS[4][3]=2 ;
INP_PATTERNS[4][4]=3 ;
INP_PATTERNS[4][5]=3 ;
INP_PATTERNS[4][6]=4 ;
INP_PATTERNS[4][7]=5 ;
INP_PATTERNS[4][8]=6 ;

OUT_PATTERNS[4, 0]=1. // vender
OUT_PATTERNS [ 4, 1]=0. ;
OUT_PATTERNS [ 4, 2]= 0. ;

Venda


INP_PATTERNS[5][0]=0 ;
INP_PATTERNS[5][1]=0 ;
INP_PATTERNS[5][2]=1;
INP_PATTERNS[5][3]=0 ;
INP_PATTERNS[5][4]=-2;
INP_PATTERNS[5][5]=0 ;
INP_PATTERNS[5][6]=1;
INP_PATTERNS[5][7]=0 ;
INP_PATTERNS[5][8]=-5 ;

OUT_PATTERNS [ 5, 0]=0,00 ;
OUT_PATTERNS [ 5, 1]= 1,00 ; // flip
OUT_PATTERNS [ 5, 2]= 0,00


----

tem três saídas

na rede

a saída é considerada como direção

REDE NEURAL COMO UM ROTEIRO

 
YuraZ писал (а) >>

3-5

5-8

8-13

13-21

21-34

34-55

55-89

89-144

144-233

O que é isso? Pode ser mais específico, não está muito claro a partir do posto original.

 
TheXpert писал (а) >>

O que é isto? Pode ser mais específico, não está muito claro a partir do posto original.



estes são os números do muving.



esquematicamente

--

void Get0MAEUR(int iBAR )
  {
  
  
   MA[1][3 ] [iBAR]=iMA(Symbol(),PERIOD_M1,  3,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[1][5 ] [iBAR]=iMA(Symbol(),PERIOD_M1,  5,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[1][8 ] [iBAR]=iMA(Symbol(),PERIOD_M1,  8,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[1][13] [iBAR]=iMA(Symbol(),PERIOD_M1, 13,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[1][21] [iBAR]=iMA(Symbol(),PERIOD_M1, 21,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[1][34] [iBAR]=iMA(Symbol(),PERIOD_M1, 34,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[1][55] [iBAR]=iMA(Symbol(),PERIOD_M1, 55,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[1][89] [iBAR]=iMA(Symbol(),PERIOD_M1, 89,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[1][144][iBAR]=iMA(Symbol(),PERIOD_M1,144,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[1][233][iBAR]=iMA(Symbol(),PERIOD_M1,233,0,MODE_EMA,PRICE_CLOSE,iBAR);
 
 
   MA[2][3 ] [iBAR]=iMA(Symbol(),PERIOD_M5,  3,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[2][5 ] [iBAR]=iMA(Symbol(),PERIOD_M5,  5,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[2][8 ] [iBAR]=iMA(Symbol(),PERIOD_M5,  8,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[2][13] [iBAR]=iMA(Symbol(),PERIOD_M5, 13,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[2][21] [iBAR]=iMA(Symbol(),PERIOD_M5, 21,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[2][34] [iBAR]=iMA(Symbol(),PERIOD_M5, 34,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[2][55] [iBAR]=iMA(Symbol(),PERIOD_M5, 55,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[2][89] [iBAR]=iMA(Symbol(),PERIOD_M5, 89,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[2][144][iBAR]=iMA(Symbol(),PERIOD_M5,144,0,MODE_EMA,PRICE_CLOSE,iBAR);
   MA[2][233][iBAR]=iMA(Symbol(),PERIOD_M5,233,0,MODE_EMA,PRICE_CLOSE,iBAR);
 
 
...


            INP_PATTERNS[iB][0]=  (MA[iTF][3  ][iP]-MA[iTF][5  ][iP])/Point    ;
            INP_PATTERNS[iB][1]=  (MA[iTF][5  ][iP]-MA[iTF][8  ][iP])/Point    ;
            INP_PATTERNS[iB][2]=  (MA[iTF][8  ][iP]-MA[iTF][13 ][iP])/Point    ;
            INP_PATTERNS[iB][3]=  (MA[iTF][13 ][iP]-MA[iTF][21 ][iP])/Point    ;
            INP_PATTERNS[iB][4]=  (MA[iTF][21 ][iP]-MA[iTF][34 ][iP])/Point    ;
            INP_PATTERNS[iB][5]=  (MA[iTF][34 ][iP]-MA[iTF][55 ][iP])/Point    ;
            INP_PATTERNS[iB][6]=  (MA[iTF][55 ][iP]-MA[iTF][89 ][iP])/Point    ;
            INP_PATTERNS[iB][7]=  (MA[iTF][89 ][iP]-MA[iTF][144][iP])/Point    ;
            INP_PATTERNS[iB][8]=  (MA[iTF][144][iP]-MA[iTF][233][iP])/Point    ;

ou seja, é necessária a diferença entre os EMAs adjacentes em várias TFs

e é alimentada na entrada principal



no código lá eu li mais de 6 entradas

mas eu processo 6 -- o código é experimental.


--


 

2 YuraZ. As pessoas estão pegando. Isso é bom de se ver.

Seu especialista na linha acima foi minha primeira introdução. Muito obrigado pelo código. Vou colar aqui sua versão ligeiramente corrigida e decorada. É bom para iniciantes.

Arquivos anexados:
 
sergeev писал (а) >>

2 YuraZ. As pessoas estão pegando. Isso é bom de se ver.

Seu especialista na linha acima foi minha primeira introdução. Muito obrigado pelo código. Vou colar aqui sua versão ligeiramente corrigida e decorada. É perfeito para um iniciante.


Eu não acho que seja digno do exemplo, eu também recebi o código inicial do mesmo fio.

https://forum.mql4.com/ru/12474 a partir da primeira página

---


mas eu acrescentei uma camada.

então o algoritmo de aumento aleatório da rede

Aumentei a precisão no treinamento.

então o algoritmo para aprender com dados reais (embora com um professor colocando setas, ou seja, um humano)


Acrescentei lá aprendendo com dados reais se você colocar setas no gráfico! o sistema começa a aprender com dados reais, não com padrões idiotas

uma condição!

você precisa ver uma abertura de ventilador M1 M5 M15 M30 ( H1 )

há também um código para um apartamento!

 
YuraZ писал (а) >>

...

Parece bom, como uma opção é bastante bom.

 
TheXpert писал (а) >>

Parece bom, como uma opção é bastante bom.

as entradas às vezes são pegas lindamente! mas algo mais é necessário!

 
YuraZ писал (а) >>

Se você colocar setas no gráfico, o sistema não aprenderá com padrões idiotas, mas com dados reais!

uma condição!

você tem que ver a abertura do ventilador M1 M5 M15 M30 ( H1 )

Há também um código de plano!


Eu o vi. Eu removi a detecção por setas. No entanto, preciso da versão da máquina. Sem "mãos".

É basicamente disso que se trata todo este fio condutor :)

 
sergeev писал (а) >>

Vi-o. Eu removi a definição da seta. Ainda precisa de uma versão de máquina. Sem "mãos".

Para isso, em princípio, todo o ramo é dedicado :)

como uma variante de um ponto, é possível tentar encontrar

1 convergência de um ziguezague de várias TFs em um só ponto

+ abertura do ventilador


e alimentar estes pontos com a entrada

Isto é, para manter na memória os pontos mais próximos e esquecer os antigos

Eu não sei qual o número de amostras - provavelmente experimentalmente

tamanho da rede (número de neurônios nas camadas) provavelmente também experimentalmente