NS + indicadores. Experiência.

 
Tentativa de prever a Alta Baixa da próxima barra diária, usando NS recorrentes, por valores de indicadores padrão.
Estrutura de rede: link completo, recorrente, 3 camadas. número de neurônios selecionados pela trajetória GA. 50 ciclos.

Entrada (valores normalizados):
            ,iClose(Symbol(),Period(),i+1) - iMA(NULL,0,20,0,MODE_SMA,PRICE_MEDIAN,i+1)
            ,iClose(Symbol(),Period(),i+1) - iMA(NULL,0,10,0,MODE_SMA,PRICE_MEDIAN,i+1)
            ,iClose(Symbol(),Period(),i+1) - iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i+1)            
            ,iRSI(NULL,0,14,PRICE_MEDIAN,i+1)
            ,iATR(NULL,0,12,i+1)
            ,iWPR(NULL,0,14,i+1)
            ,iMACD(NULL,0,12,26,9,PRICE_MEDIAN,MODE_MAIN,i+1)
            ,iMACD(NULL,0,12,26,9,PRICE_MEDIAN,MODE_SIGNAL,i+1)
            ,iMACD(NULL,0,12,26,9,PRICE_MEDIAN,MODE_SIGNAL,i+1) - iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i+1)
            ,iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,i+1)
            ,iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,i+1)
            ,iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,i+1) - iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,i+1)
            ,iADX(NULL,0,14,PRICE_MEDIAN,MODE_MAIN,i+1)
            ,iADX(NULL,0,14,PRICE_MEDIAN,MODE_PLUSDI,i+1)
            ,iADX(NULL,0,14,PRICE_MEDIAN,MODE_MINUSDI,i+1)
            ,iStdDev(NULL,0,10,0,MODE_EMA,PRICE_MEDIAN,i+1)
	    //www.atrlab.com
Na saída, a matriz. é formada da seguinte forma.
Se os máximos diários são >15 pips do fechamento anterior, então o primeiro elemento da matriz = 1, o restante 0.
Se os máximos diários são >30 pips do fechamento do dia anterior, então o segundo elemento é igual a 1, os outros são iguais a 0.
etc.

Exemplos de saídas.

s1 s2 s3 s4 s5 s6 s7 r1 r2 r3 r4 r5 r6 r7
0 1 0 0 0 0 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 0 0 0 1 1 0
0 0 0 0 1 0 0 1 0 0 0 0 0 0
0 1 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 0 0 0

resultado. amostra de teste.



os valores próximos às linhas são a atividade do neurônio responsável pelo nível de suporte/resistência.
 
Todos os indicadores são derivativos de preço. Não seria mais fácil alimentar apenas o preço? Uma das regras de preparação de dados para NS é reduzir a dimensionalidade. Portanto, reduza-o reduzindo todos os dados ao preço. Caso contrário, você estará alimentando dados redundantes interligados.
 
Eu acabei de lançar uma proposta de mudança de preço. os resultados não mudaram minha visão do mercado.
 
njel:
Eu acabei de lançar uma proposta de mudança de preço. os resultados não mudaram minha visão do mercado.


Para calcular a porcentagem, é necessário um valor de referência (a partir do qual se pode calcular a porcentagem). Você poderia desenvolver isso + sua visão do mercado, se não se importa?

 
Não vou escrever muito, basta ler o artigo: Redes Neurais: Trabalhando através dos bugs
 
sobre a entrada foi dada por
         double c1 = MathLog (  iHigh(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
         double c2 = MathLog (  iLow(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
e a rede foi temporizada com uma trajetória de 15 . mas a qualidade da previsão não foi feliz.

2Alex-Bugalter

Eu li o artigo. Eu tenho uma rede neural, por exemplo, mas é modular, você pode sugerir algo?
 
njel:
a entrada foi
         double c1 = MathLog (  iHigh(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
         double c2 = MathLog (  iLow(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
e a rede foi temporizada com uma trajetória de 15 . mas a qualidade da previsão não foi feliz.

Ologaritmo natural da relação entre os dois números ? É essa a porcentagem de mudança no preço?
 
Alex-Bugalter писал (а):
Não vou escrever muito, basta ler o artigo: Redes Neurais: Trabalhando em Erros
Eu li o artigo, ele faz mais mal do que bem. É escrito de forma didática horrível, com manipulação de palavras como probabilidade e lucro. Muitas palavras inteligentes para que pareça sólido.
 
Rosh:
Alex-Bugalter escreveu (a):
Não vou escrever muito, basta ler o artigo: Redes Neurais: Um Trabalho em Progresso
Leia o artigo, ele faz mais mal do que bem. É escrito didaticamente horrível, com manipulação de palavras como probabilidade e lucro. Muitas palavras inteligentes para que pareça sólido.

Destacado. Não é um artigo, é apenas algo para dar um passeio.
 
Prival:
njel:
dados para entrada
         double c1 = MathLog (  iHigh(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
         double c2 = MathLog (  iLow(Symbol(),Period(),i) / iClose(Symbol(),Period(),i+1)) * 100.0;
e a rede foi temporizada com uma trajetória de 15 . mas a qualidade da previsão não foi feliz.

O logaritmo natural da relação entre os dois números ? É este o percentual de mudança no preço?
Eu costumava tomar 100% do preço como porcentagem, mas recentemente vi tais medidas de movimento de preços. E no momento estou pensando em como alimentar o próximo modelo NS.
 
Caro Rosh & SK, se você sabe tão bem o que é bom e o que é ruim, e onde é melhor caminhar.
Talvez você possa apontar para os não iniciados o que você acha que é o mal e o que exatamente não está declarado corretamente neste artigo?
Tantas pessoas foram enganadas, então vá em frente e aponte o caminho certo.
Ou você está apenas passeando?
Qualquer um pode lançar aspersões indiscriminadamente.
E neste artigo: "Redes neurais e análise de séries temporais", está escrito também lixo?

P.s.: E Rosh, para mim pessoalmente, se não for muito incômodo, o que você quis dizer exatamente com: "Escrito didaticamente horrível"?