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);
        }
Example #2
0
 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);
 }
Example #11
0
 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);
Example #15
0
        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);
        }