public override Tendencia read(int id) { Tendencia dto = null; if (id > 0) { MySQL_DBManager db = new MySQL_DBManager(DBCredentials_Factory.getCredentials(typeof(Tendencia))); string query = "SELECT `Categoria_id`, `Patron_id`, `medida` FROM `tendencia` WHERE `id` = @identifier"; Value values = new Value(); values.add("@identifier", id.ToString()); MySqlDataReader reader = db.ExceuteSQL(query, values); if (reader != null) { if (reader.Read()) { dto = new Tendencia(); dto.setid(id); if (!reader.IsDBNull(0)) { dto.setCategoria_id(reader.GetInt32(0)); } if (!reader.IsDBNull(1)) { dto.setPatron_id(reader.GetInt32(1)); } dto.setmedida(reader.GetInt32(2)); } reader.Close(); } db.close(); } return(dto); }
public void BayesNormalizer() { if (logits != null && logits.Any()) { List <Tendencia> log = new List <Tendencia>(); int i = 0; double sum = 0; while (i < logits.Count) { sum += logits[i].Logit; i++; } i = 0; while (i < logits.Count) { Tendencia current = logits[i]; current.Logit /= sum; current.Logit *= 100; log.Add(current); i++; } if (log.Any()) { logits = log; } } }
public override List <Tendencia> readALL(Limiter limiter) { List <Tendencia> list = null; MySQL_DBManager db = new MySQL_DBManager(DBCredentials_Factory.getCredentials(typeof(Tendencia))); string query = "SELECT id FROM tendencia"; if (limiter != null) { query += " LIMIT " + limiter.ResultsOffeset + "," + limiter.ResultsCount + ";"; } else { query += ";"; } MySqlDataReader reader = db.ExceuteSQL(query); if (reader != null) { list = new List <Tendencia>(); while (reader.Read()) { Tendencia dto = read(reader.GetInt32(0)); if (dto != null) { list.Add(dto); } } reader.Close(); } db.close(); return(list); }
public override List <Tendencia> readALL(Patron patron) { List <Tendencia> list = null; if (patron.getid() > 0) { MySQL_DBManager db = new MySQL_DBManager(DBCredentials_Factory.getCredentials(typeof(Tendencia))); string query = "SELECT E2.id FROM tendencia E2 JOIN patron E1 ON E1.id = E2.Patron_id WHERE E1.id = @Identifier"; Value values = new Value(); values.add("@identifier", patron.getid().ToString()); MySqlDataReader reader = db.ExceuteSQL(query, values); if (reader != null) { list = new List <Tendencia>(); while (reader.Read()) { Tendencia dto = read(reader.GetInt32(0)); if (dto != null) { list.Add(dto); } } reader.Close(); } db.close(); } return(list); }
public override Patron read(Tendencia tendencia) { if (tendencia.getPatron_id() > 0) { return(read(tendencia.getPatron_id())); } return(null); }
public override Categoria read(Tendencia tendencia) { if (tendencia.getCategoria_id() > 0) { return(read(tendencia.getCategoria_id())); } return(null); }
/// <summary> /// Agrega una nueva tendencia a la lista de posibles conclusiones /// </summary> /// <param name="conclusion"></param> /// <returns></returns> private Tendencia registerTendencia(Categoria conclusion) { Tendencia t = new Tendencia(); t.setCategoria_id(conclusion.getid()); t.categoria = conclusion; tendencias.Add(t); return(t); }
/// <summary> /// Busca una Tendencia en las posibles conclusiones dada una categoria c /// </summary> /// <param name="c"></param> /// <returns></returns> private Tendencia getTendenciaPorCategoria(Categoria c) { Tendencia tendencia = null; foreach (var item in tendencias) { if (item.getCategoria_id() == c.getid()) { tendencia = item; break; } } return(tendencia); }
public override bool update(Tendencia dto) { if (dto != null && dto.isValid() && dto.getid() > 0) { MySQL_DBManager db = new MySQL_DBManager(DBCredentials_Factory.getCredentials(typeof(Tendencia))); string query = "UPDATE `tendencia` SET `Categoria_id` = @Categoria_id, `Patron_id` = @Patron_id, `medida` = @medida WHERE `tendencia`.`id` = @identifier;"; Value values = new Value(); values.add("@Categoria_id", dto.getCategoria_id().ToString()); values.add("@Patron_id", dto.getPatron_id().ToString()); values.add("@medida", dto.getmedida().ToString()); values.add("@identifier", dto.getid().ToString()); return(db.ExecSQL(query, values)); } return(false); }
//Methods public override bool create(Tendencia dto) { if (dto != null && dto.isValid()) { MySQL_DBManager db = new MySQL_DBManager(DBCredentials_Factory.getCredentials(typeof(Tendencia))); string query = "INSERT INTO `tendencia` ( `id`, `Categoria_id`, `Patron_id`, `medida`) VALUES ( NULL, @Categoria_id, @Patron_id, @medida);"; Value values = new Value(); values.add("@Categoria_id", dto.getCategoria_id().ToString()); values.add("@Patron_id", dto.getPatron_id().ToString()); values.add("@medida", dto.getmedida().ToString()); if (db.ExecSQL(query, values)) { dto.setid((int)db.getLastInsertedID()); return(true); } } return(false); }
public void SoftmaxNormalizer() { if (logits != null && logits.Any()) { int i = 0; double sum = getSumatoria(logits); List <Tendencia> log = new List <Tendencia>(); while (i < logits.Count) { Tendencia current = logits[i]; current.Logit = (double)Math.Pow(Math.E, (double)current.Logit) / sum; log.Add(current); i++; } if (log.Any()) { this.logits = log; } } }
/// <summary> /// Proceso de Classificacion mediante el algoritmo Naive Bayes /// </summary> private void calculoBayesiano(Tendencia tendencia, int totalTendency) { double pre_logit = ((double)tendencia.getmedida()) / ((double)totalTendency); pre_logit = pre_logit * ((double)beta); Tendencia t = getTendenciaPorCategoria(tendencia.categoria); if (t == null) { t = registerTendencia(tendencia.categoria); } if (t.Logit > 0) { t.Logit = t.Logit * pre_logit; } else { t.Logit = pre_logit; } }
/// <summary> /// Metodo de lectura de un elemento del conjunto Patron producto de una relación con la tabla Tendencia /// </summary> /// <param name="tendencia"></param> /// <returns></returns> public abstract Patron read(Tendencia tendencia);
/// <summary> /// Metodo de lectura de un elemento del conjunto Categoria producto de una relación con la tabla Tendencia /// </summary> /// <param name="tendencia"></param> /// <returns></returns> public abstract Categoria read(Tendencia tendencia);
private async void RequestChartData() { var testPair = ConfigurationManager.AppSettings["testPair"]; var request = new ChartDataRequest(testPair, DateTime.UtcNow.AddHours(-10), DateTime.UtcNow, CandlestickPeriod.MediaHora); var candles = Enumerable.Empty <ChartDataCandle>(); using (var client = new HttpClient()) { candles = await client.GetAsync <IEnumerable <ChartDataCandle> >(new EndPointConfiguration { Address = publicExUrl }, request); } if (!candles.HasElements()) { return; } Tendencia tendencia = null; var tendencias = new List <Tendencia>(); var candlesTendencia = new List <ChartDataCandle>(); TipoTendencia?ultimoTipoTendencia = null; var variacionesNegativas = new[] { TipoVariacion.BajaEstabilizacion, TipoVariacion.BajaModerada, TipoVariacion.BajaFuerte }; var variacionesPositivas = new[] { TipoVariacion.AlzaEstabilizacion, TipoVariacion.AlzaModerada, TipoVariacion.AlzaFuerte }; foreach (var candle in candles) { var tipoTendenciaActual = TipoTendencia.Estable; if (variacionesNegativas.Contains(candle.TipoVariacion)) { tipoTendenciaActual = TipoTendencia.Baja; } else if (variacionesPositivas.Contains(candle.TipoVariacion)) { tipoTendenciaActual = TipoTendencia.Alza; } if (!ultimoTipoTendencia.HasValue) { tendencia = new Tendencia { Tipo = tipoTendenciaActual } } ; else if (ultimoTipoTendencia.Value != tipoTendenciaActual) { tendencia.Candles = candlesTendencia.OrderBy(ct => ct.DateTime); tendencias.Add(tendencia); tendencia = new Tendencia { Tipo = tipoTendenciaActual }; candlesTendencia = new List <ChartDataCandle>(); } candlesTendencia.Add(candle); ultimoTipoTendencia = tipoTendenciaActual; } tendencia.Candles = candlesTendencia; tendencias.Add(tendencia); var tendenciasResult = tendencias.OrderBy(t => t.Start); }