Exemplo n.º 1
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);
                    }
                }
            }
        }
Exemplo n.º 2
0
        private void ProcessaPeriodoDiario(Ativo ativo, CargaADVFN item, ref Candle candleAnterior, ref Periodo periodoAnterior, int i, DateTime data)
        {
            Periodo periodo = facade.GetPeriodo(data);

            if (ativo.GetCandle(periodo) == null)
            {
                Candle candle = new Candle(periodo, ativo, item.o[i], item.c[i], item.h[i], item.l[i], item.v[i]);
                ProcessaCandle(ativo, ref candleAnterior, ref periodoAnterior, candle);
            }
        }
Exemplo n.º 3
0
        private void ProcessaPeriodoSemanal(Ativo ativo, CargaADVFN item, ref Candle candleAnterior, ref Periodo periodoAnterior, int i, DateTime data)
        {
            Periodo periodo = facade.GetPeriodo(data, Consts.PERIODO_ACAO.SEMANAL);
            Candle  candle  = ativo.GetCandle(periodo);

            if (candle == null)
            {
                candle = new Candle(periodo, ativo, item.o[i], item.c[i], item.h[i], item.l[i], item.v[i]);
                ProcessaCandle(ativo, ref candleAnterior, ref periodoAnterior, candle);
            }
            else
            {
                candle.AddData(item.o[i], item.c[i], item.h[i], item.l[i], item.v[i]);
            }
        }