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); }
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); } } }
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); } }