public static Treinamento TransformarDadoBE_Em_Treinamento_RNV5(DadosBE dadoBE, double versao) { Treinamento treinamento = new Treinamento(); treinamento.Input = new List<double>(); treinamento.Input.Add(dadoBE.ValorNormalizado); if (dicIndicesRN[versao].Contains("PercentualCrescimentoValorAtivo")) //Adiciona cada um dos percentuais dos n dias anteriores e do dia da cotação dadoBE.PercentualCrescimentoValorAtivo.ForEach(percent => treinamento.Input.Add(percent)); if (dicIndicesRN[versao].Contains("ValorBollinger")) treinamento.Input.Add(dadoBE.ValorBollinger); if (dicIndicesRN[versao].Contains("Pontuacao3MediasMoveis")) treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); if (dicIndicesRN[versao].Contains("PercentualTotalNegociacoesMediaNDias")) treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); if (dicIndicesRN[versao].Contains("PercentualTotalNegociacoes")) treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); if (dicIndicesRN[versao].Contains("PercentualCrescimentoDolar")) treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); if (dicIndicesRN[versao].Contains("PercentualCrescimentoValorAtivoMediaNDias")) treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); if (dicIndicesRN[versao].Contains("PercentualDesviosPadroesEmRelacaoNDias")) treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); if (dicIndicesRN[versao].Contains("DiaSemana")) treinamento.Input.Add(dadoBE.DiaSemana); if (dicIndicesRN[versao].Contains("PercentualValorAtivo_Max_Min_Med")) treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); if (dicIndicesRN[versao].Contains("PercentualCrescimentoAtivoEm2Indices")) dadoBE.PercentualCrescimentoAtivoEm2Indices.ForEach(val => treinamento.Input.Add(val)); if (dicIndicesRN[versao].Contains("ValoresAtivoSemanaPassada")) { treinamento.Input.Add(dadoBE.ValorAtivoDMenos7); treinamento.Input.Add(dadoBE.ValorAtivoDMenos8); } if (dicIndicesRN[versao].Contains("ValoresAtivoSemanaPassada_PERCENTUAL")) treinamento.Input.Add(dadoBE.PercentualAtivoSemanaPassadaD_7_D_8); if (dicIndicesRN[versao].Contains("ValoresAtivoMesPassado")) { treinamento.Input.Add(dadoBE.ValorAtivoDMenos30); treinamento.Input.Add(dadoBE.ValorAtivoDMenos31); } if (dicIndicesRN[versao].Contains("ValoresAtivoMesPassado_PERCENTUAL")) treinamento.Input.Add(dadoBE.PercentualAtivoMesPassadoD_30_D_31); treinamento.Output = new List<double>() { dadoBE.ValorNormalizadoDiaSeguinte }; return treinamento; }
/* public static List<DadosBE> RecuperarCotacoesAtivo(string papel) { List<DadosBE> listCotacoes = new List<DadosBE>(); DadosBE cotacao = null; DataTableReader dtr = null; try { dtr = RetornaDados(papel); while (dtr.Read()) { cotacao = new DadosBE(); cotacao.Id = (int)dtr["id"]; cotacao.NomeReduzido = dtr["nomeresumido"].ToString(); cotacao.DataGeracao = (DateTime)dtr["datageracao"]; cotacao.PrecoAbertura = (decimal)dtr["precoabertura"]; //Removido //cotacao.PrecoAberturaNormalizado = (decimal)dtr["precoaberturaNormalizado"]; cotacao.CotacaoDolar = (decimal)dtr["valorDolar"]; cotacao.CotacaoDolarNormalizado = (decimal)NormalizarDado(Convert.ToDouble(cotacao.CotacaoDolar), "Dolar"); cotacao.EstacaoDoAno = RecuperarEstacaoDoAno(cotacao.DataGeracao); listCotacoes.Add(cotacao); } TratarDesdobramento(listCotacoes); //Adiciona os valores normalizados listCotacoes.ForEach(cot => cot.ValorNormalizado = NormalizarDado(Convert.ToDouble(cot.PrecoAbertura), papel)); //Valor para uso interno listCotacoes.ForEach(cot => cot.ValorNormalizadoPrevisto = cot.ValorNormalizado); //Valor para uso interno listCotacoes.ForEach(cot => cot.CotacaoDolarNormalizadoPrevisto = cot.CotacaoDolarNormalizado); //Atribui um valor bollinger de 0 a 1 para a cotação PreencherValorBollinger(listCotacoes); } catch (Exception ex) { } finally { if (dtr != null) dtr.Dispose(); } return listCotacoes; } */ public static List<DadosBE> RecuperarCotacoesAtivo(string papel) { List<DadosBE> listCotacoes = new List<DadosBE>(); DataTableReader dtr = null; try { dtr = RetornaDados(papel); while (dtr.Read()) { DadosBE cotacao = new DadosBE(); cotacao.Id = (int)dtr["id"]; cotacao.NomeReduzido = dtr["nomeresumido"].ToString(); cotacao.PrecoAbertura = (decimal)dtr["precoabertura"]; cotacao.DataGeracao = (DateTime)dtr["datageracao"]; cotacao.CotacaoDolar = (decimal)dtr["valorDolar"]; cotacao.PrecoMaximo = (decimal)dtr["PRECOMAX"]; cotacao.PrecoMinimo = (decimal)dtr["PRECOMIN"]; cotacao.PrecoMedio = (decimal)dtr["PRECOMED"]; cotacao.TotalNegociacoes = (int)dtr["TOTALNEGO"]; cotacao.QuantidadeTotalNegociacoes = (int)dtr["QUANTIDADETOTALNEGO"]; cotacao.ValorTotalNegociacoes = (decimal)dtr["VALORTOTALNEGO"]; //Removido //cotacao.PrecoAberturaNormalizado = (decimal)dtr["precoaberturaNormalizado"]; //shuah9sdsifladsçoljilgaylachs//////////////cotacao.CotacaoDolarNormalizado = (decimal)NormalizarDado(Convert.ToDouble(cotacao.CotacaoDolar), "Dolar"); cotacao.EstacaoDoAno = RecuperarEstacaoDoAno(cotacao.DataGeracao); listCotacoes.Add(cotacao); } //Ordena pela data listCotacoes = listCotacoes.OrderBy(cot => cot.DataGeracao).ToList(); TratarDesdobramento(listCotacoes); decimal max = listCotacoes.Max(cot => cot.PrecoAbertura); decimal min = listCotacoes.Min(cot => cot.PrecoAbertura); //Adiciona os valores normalizados listCotacoes.ForEach(cot => cot.ValorNormalizado = NormalizarDado(Convert.ToDouble(cot.PrecoAbertura), papel)); //Valor para uso interno listCotacoes.ForEach(cot => cot.ValorNormalizadoPrevisto = cot.ValorNormalizado); //Valor para uso interno listCotacoes.ForEach(cot => cot.CotacaoDolarNormalizadoPrevisto = cot.CotacaoDolarNormalizado); //Preenche os valores dos dias seguintes for (int i = 0; i < listCotacoes.Count - 1; i++) { listCotacoes[i].PrecoFechamento = Convert.ToDouble(listCotacoes[i + 1].PrecoAbertura); listCotacoes[i].PrecoFechamentoNormalizado = Convert.ToDouble(listCotacoes[i + 1].ValorNormalizado); } //Preenche os valores dos dias seguintes for (int i = 0; i < listCotacoes.Count - 1; i++) { listCotacoes[i].ValorDiaSeguinte = Convert.ToDouble(listCotacoes[i + 1].PrecoAbertura); listCotacoes[i].ValorNormalizadoDiaSeguinte = Convert.ToDouble(listCotacoes[i + 1].ValorNormalizado); } //Atribui um valor bollinger de 0 a 1 para a cotação PreencherValorBollinger(listCotacoes); } catch (Exception ex) { } finally { if (dtr != null) dtr.Dispose(); } return listCotacoes; }
public static Treinamento TransformarDadoBE_Em_Treinamento_RNV3(DadosBE dadoBE, double versao) { Treinamento treinamento = new Treinamento(); treinamento.Input = new List<double>(); //Adiciona cada um dos percentuais dos n dias anteriores e do dia da cotação dadoBE.PercentualCrescimentoValorAtivo.ForEach(percent => treinamento.Input.Add(percent)); treinamento.Input.Add(dadoBE.ValorNormalizado); if (versao == 3) { treinamento.Input.Add(dadoBE.ValorBollinger); treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); treinamento.Input.Add(dadoBE.DiaSemana); treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 3.2) { treinamento.Input.Add(dadoBE.ValorBollinger); //treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); //treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); //treinamento.Input.Add(dadoBE.DiaSemana); treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 3.3) { treinamento.Input.Add(dadoBE.ValorBollinger); ////treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); ////treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); ////treinamento.Input.Add(dadoBE.DiaSemana); treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 3.4) { treinamento.Input.Add(dadoBE.ValorBollinger); ////treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); ////treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); ////treinamento.Input.Add(dadoBE.DiaSemana); treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 3.5) { treinamento.Input.Add(dadoBE.ValorBollinger); ////treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); //treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); ////treinamento.Input.Add(dadoBE.DiaSemana); //treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 3.6) {//Apenas tiramos o ValorBollinger para ver se houve alguma diferença //treinamento.Input.Add(dadoBE.ValorBollinger); ////treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); //treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); ////treinamento.Input.Add(dadoBE.DiaSemana); //treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 3.7) {//Com todos os índices possíveis para previsao em cima de previsao, mas agora com 2 percentuais em relação aos dias anteriores ao invés de 4 treinamento.Input.Add(dadoBE.ValorBollinger); ////treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); ////treinamento.Input.Add(dadoBE.DiaSemana); //treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 3.8) {//Com todos os índices possíveis para previsao em cima de previsao, mas agora com 10 percentuais em relação aos dias anteriores ao invés de 4 treinamento.Input.Add(dadoBE.ValorBollinger); ////treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); ////treinamento.Input.Add(dadoBE.DiaSemana); //treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 3.9) { treinamento.Input.Add(dadoBE.ValorBollinger); ////treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); //treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); ////treinamento.Input.Add(dadoBE.DiaSemana); //treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 4.01) { treinamento.Input.Add(dadoBE.ValorBollinger); ////treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); //treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); ////treinamento.Input.Add(dadoBE.DiaSemana); //treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 4.02) { treinamento.Input.Add(dadoBE.ValorBollinger); treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); //treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); treinamento.Input.Add(dadoBE.DiaSemana); //treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 4.03) { treinamento.Input.Add(dadoBE.ValorBollinger); ////treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); ////treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); ////treinamento.Input.Add(dadoBE.DiaSemana); treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); } if (versao == 4.04) { treinamento.Input.Add(dadoBE.ValorBollinger); ////treinamento.Input.Add(dadoBE.Pontuacao3MediasMoveis); ////treinamento.Input.Add(dadoBE.PercentualTotalNegociacoesMediaNDias); //treinamento.Input.Add(dadoBE.PercentualTotalNegociacoes); //treinamento.Input.Add(dadoBE.PercentualCrescimentoDolar); ////treinamento.Input.Add(dadoBE.PercentualCrescimentoValorAtivoMediaNDias); treinamento.Input.Add(dadoBE.PercentualDesviosPadroesEmRelacaoNDias); ////treinamento.Input.Add(dadoBE.DiaSemana); treinamento.Input.Add(dadoBE.PercentualValorAtivo_Max_Min_Med); treinamento.Input.Add(1);//Valor Bias } treinamento.Output = new List<double>() { dadoBE.ValorNormalizadoDiaSeguinte }; return treinamento; }