Rede Neural na previsão do preço de ações

95 views
Skip to first unread message

RafaelRivetti

unread,
Nov 3, 2015, 5:22:16 PM11/3/15
to Redes Neurais Artificiais Br
Olá pessoal, tudo bem? Fico feliz por ter encontrado um grupo legal sobre RNA em MatLab.

Estou estudando sobre RNA e o meu objetivo é usá-la para prever valores futuros de ações e do índice Bovespa. Eu já criei uma programação, ela rodou legal e o resultado foi bom, mas tem 2 coisas que ainda preciso fazer para melhorar, porque embora a curva que tive tenha ficar excelente, houve uma defasagem. Eu queria trabalhar 2 pontos:

Um é usar no treinamento os valores normalizados entre -1 e 1, pois certamente ela vai rodar melhor, mas não estou conseguindo fazer isso, pois tenho uma coluna Y e 3 colunas X, e preciso normalizar todas, mas depois não consigo reverter os valores para não ficar com valores entre -1 e 1. Estou meio enrolado com a função "mapminmax", principalmente para reverter;

Outro ponto que acho que pouca gente faz é utilizar os próprios valores da rede (no treinamento) para gerar os valores seguintes e estes serem incorporados. Por exemplo: se temos uma matriz com 100 linhas de valores, podemos usar 10 no treinamento, de forma a gerar o 11º, este é incorporado e a rede é rodada novamente e assim sucessivamente. Sei que se usa o comando "for", mas não estou sabendo como fazer.

Se algum amigo quiser trocar uma ideia, posso mandar o programa que escrevi, postar gráficos e discutirmos. Se alguém puder me dar uma força em algum desses pontos agradeceria muito.

Abs!

Rafael

RafaelRivetti

unread,
Nov 3, 2015, 7:19:32 PM11/3/15
to Redes Neurais Artificiais Br
O programa:

close all

clear all

 

load BRKM5D.mat % MATRIZ DE DADOS

 

X = BRKM5D(:,2:3);

Y = BRKM5D (:,1);

 

XT = X(1:595,:);

YT = Y(1:595,1);

 

inicia = [min(XT); max(XT)];

 

NET = newff(inicia',[5 1],{'purelin','purelin'},'trainbr');

 

NET.trainParam.epochs = 2000;

 

[NET,Tr,YTS,E,Tf,Af] = train(NET,XT',YT');  % Preciso que aqui entre os valores normalizados e depois preciso reverter o processo, mas não sei em qual parte e nem como.

 

E =(YT'-YTS);

 

figure

plot(YT,'b')

hold on

plot(YTS,'r')

legend('Saida Alvo','Saida Estimada')

 

 

% GENERALIZAÇAO

 

YGS1 = sim(NET,YT(595)');

YGS2 = sim(NET,YGS1');

YGS3 = sim(NET,YGS2');

YGS4 = sim(NET,YGS3');

YGS = [YGS1 YGS2 YGS3 YGS4];

 

figure

plot(YGS,'r')

legend('Saida Alvo','Saida Estimada')

 

 

J = [YTS YGS];

figure

plot(Y,'b')

hold on

plot(J,'r')

legend('Saida Alvo','Saida Estimada')

Gabriela Lima

unread,
Nov 17, 2015, 1:22:31 PM11/17/15
to Redes Neurais Artificiais Br


Olá Rafael, boa tarde!

Você já tentou usar a interface do tool box? sem usar linha de código. Achei mais fácil... 
Eu consegui fazer quase tudo isso que você falou. Você treina a rede, testa e valida.

O grande problema é achar os steps ahead, que seriam a previsao das ações. Ai tem que ir p linha de código e estou levando horas lendo tutoriais p aprender.

Também estou tentando criar uma rede que me ajude a tomar decisões no mercado.

Tenho algumas ideias legais, se quiser desenvolver junto.



 

Wallyson Jamesson

unread,
Oct 27, 2016, 10:11:15 PM10/27/16
to Redes Neurais Artificiais Br
Oi Gabriela,
Você ainda tem interesse em desenvolver ideias legais?

Adriano .F. Pereira

unread,
Jan 17, 2018, 1:43:51 PM1/17/18
to Redes Neurais Artificiais Br
Olá Rafael Tudo bem?

Estou escrevendo um artigo sobre redes neurais, onde estou realizando algumas previsões de preços de fechamento de ações utilizando uma rede TLFN. Já realizei o treinamento no Matlab e já tenho o MSE, os valores projetados pela rede e outros indicadores pertinentes a nntoolbox do Matlab, mas também gostaria de realizar previsões futuras, de curto e longo prazo, mas não tenho conhecimento para programar no Matlab, você poderia me ajudar com alguma dica para fazer isso?

Grande abraço,

Adriano

Diego Nascimento

unread,
Jan 17, 2018, 7:18:59 PM1/17/18
to redesn...@googlegroups.com
Eu estou esboçando um robo para traders curtos, um market maker, ele praticamente vê o volume direcional e se joga na frente.

Alguém dessa thread já conseguiu prever um preço de um ativo com inteligência artificial, me parece muito complexo, como se calcularia isso?

--
Você recebeu essa mensagem porque está inscrito no grupo "Redes Neurais Artificiais Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para redesneurais+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para redesn...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/redesneurais.
Para mais opções, acesse https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages