public static CandidatoManager LoadSaved(Consts.PERIODO_ACAO periodo, string path = "")
        {
            if (singleton != null)
            {
                return(singleton);
            }
            try
            {
                if (File.Exists("saved-candidatos-" + periodo.ToString() + ".js"))
                {
                    path = "";
                }
                var fileStream = File.Open(path + "saved-candidatos.js", FileMode.Open);
                DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(CandidatoManager));
                singleton = (CandidatoManager)ser.ReadObject(fileStream);
                fileStream.Close();
                singleton.ranking = singleton.ranking.ToList();

                return(singleton);
            }
            catch (System.Exception e)
            {
            }
            singleton = new CandidatoManager();
            return(singleton);
        }
Beispiel #2
0
        private void ProcessaDia(Ativo ativo, Consts.PERIODO_ACAO periodoAcao, CargaADVFN item)
        {
            Candle  candleAnterior  = null;
            Periodo periodoAnterior = null;

            //i=0 está bugado...

            for (int i = item.t.Count - 1; i > 0; i--)
            {
                //DataDTO data = item.data[i];
                DateTime data = Utils.UnixTimeStampToDateTime(item.t[i]);
                if (!minDateSet)
                {
                    minDate    = data;
                    minDateSet = true;
                }
                if (data.CompareTo(minDate) >= 0)
                {
                    if (ativo.name.Contains("USIM5") && data.Month == 3 && data.Year == 2016 && data.Day > 27)
                    {
                        Console.WriteLine("beep");
                    }

                    if (periodoAcao == Consts.PERIODO_ACAO.DIARIO)
                    {
                        ProcessaPeriodoDiario(ativo, item, ref candleAnterior, ref periodoAnterior, i, data);
                    }
                    if (periodoAcao == Consts.PERIODO_ACAO.SEMANAL)
                    {
                        ProcessaPeriodoSemanal(ativo, item, ref candleAnterior, ref periodoAnterior, i, data);
                    }
                }
            }
        }
 public int AddTradeSystem(TradeSystem ts, Estatistica stat, Consts.PERIODO_ACAO periodo)
 {
     if (!RankingContains(ts, stat.capitalFinal))
     {
         ranking.Add(new CandidatoData(ts, stat, stat.capitalFinal));
     }
     SortRanking();
     SaveToFile(periodo);
     return(GetRanking(ts));
 }
        public void LoadAtivo(string papel, int loteMin, Consts.PERIODO_ACAO periodo, string fileName, Consts.TIPO_CARGA_ATIVOS tipoCarga = backend.Consts.TIPO_CARGA_ATIVOS.GERA_CANDIDATOS)
        {
            Ativo ativo = dh.GetOrCreateAtivo(papel, loteMin);

            if (ativo.candles.Count > 0)
            {
                return;
            }
            if (!dm.LoadAtivo(ativo, periodo, fileName, tipoCarga))
            {
                dh.RemoveAtivo(ativo);
            }
        }
        public void SaveToFile(Consts.PERIODO_ACAO periodo)
        {
            //objeto de teste
            if (this != singleton)
            {
                return;
            }
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(CandidatoManager));
            var fileStream = File.Create("saved-candidatos-" + periodo.ToString() + ".js");

            ser.WriteObject(fileStream, this);
            fileStream.Close();
        }
 internal Periodo GetPeriodo(DateTime data, Consts.PERIODO_ACAO tipoPeriodo = Consts.PERIODO_ACAO.DIARIO)
 {
     if (tipoPeriodo == Consts.PERIODO_ACAO.DIARIO)
     {
         return(dh.GetPeriodo(data.ToShortDateString()));
     }
     else if (tipoPeriodo == Consts.PERIODO_ACAO.SEMANAL)
     {
         int v = (int)data.DayOfWeek;
         data = data.AddDays(-v + 1);
         return(dh.GetPeriodo(data.ToShortDateString()));
     }
     else
     {
         throw new Exception("Periodo não implementado:" + tipoPeriodo);
     }
 }
        public void LoadAtivos(Config config, int loopNumber, Consts.PERIODO_ACAO periodo, Consts.TIPO_CARGA_ATIVOS tipoCarga)
        {
            dh.ClearAtivos();
            IList <string> list = config.GetLista(tipoCarga, loopNumber);

            foreach (string papel in list)
            {
                if (periodo == Consts.PERIODO_ACAO.DIARIO)
                {
                    LoadAtivoDiario(papel, tipoCarga);
                }
                else if (periodo == Consts.PERIODO_ACAO.SEMANAL)
                {
                    LoadAtivoSemanal(papel, tipoCarga);
                }
                else
                {
                    throw new Exception("Periodo não implementado:" + periodo);
                }
            }
        }
Beispiel #8
0
        internal bool LoadAtivo(Ativo ativo, Consts.PERIODO_ACAO periodoAcao, string fileName, Consts.TIPO_CARGA_ATIVOS tipoCarga)
        {
            fileName = fileName.Replace("%5e", "_");
            CarregaDadosWebSeNaoExisteArquivo(ativo, fileName, tipoCarga);

            using (StreamReader r = new StreamReader(fileName))
            {
                ativo.candles.Clear();
                string            json  = "[" + r.ReadToEnd() + "]";
                List <CargaADVFN> items = JsonConvert.DeserializeObject <List <CargaADVFN> >(json);
                foreach (CargaADVFN item in items)
                {
                    if (item.s != "ok")
                    {
                        return(false);
                    }
                    ProcessaDia(ativo, periodoAcao, item);
                }
                return(true);
            }
        }