예제 #1
0
        public ObterPontosHistoricoResponse ObterPontosGraficoHistorico(ObterPontosHistoricoRequest request)
        {
            logger.Debug("Solicitando Historico ativo[" + request.Ativo + "] DataInicial[" + request.DataCotacaoInicial + "] DataFinal[" + request.DataCotacaoFinal + "]");
            ObterPontosHistoricoResponse ret = new ObterPontosHistoricoResponse();

            ANGPersistenciaDB db = new ANGPersistenciaDB();

            ret.pontos = db.ObterPontosSerieHistorica(request.Ativo, request.DataCotacaoInicial, request.DataCotacaoFinal);

            logger.Debug("Respondendo Historico ativo[" + request.Ativo + "] DataInicial[" + request.DataCotacaoInicial + "] DataFinal[" + request.DataCotacaoFinal + "]");
            return(ret);
        }
예제 #2
0
        public ObterPontosIntradayResponse ObterPontosGraficoIntradayIncremental(ObterPontosIntradayRequest request)
        {
            logger.Debug("Solicitando Incremental ativo[" + request.Ativo + "] DataInicial[" + request.DataCotacaoInicial + "]");
            ObterPontosIntradayResponse ret = new ObterPontosIntradayResponse();

            ANGPersistenciaDB db = new ANGPersistenciaDB();

            ret.cotacoes = db.ObterPontosIntradayIncremental(request.Ativo, request.DataCotacaoInicial);

            logger.Debug("Respondendo Incremental ativo[" + request.Ativo + "] DataInicial[" + request.DataCotacaoInicial + "]");
            return(ret);
        }
예제 #3
0
        public ObterPontosIntradayResponse ObterPontosGraficoIntraday(ObterPontosIntradayRequest request)
        {
            logger.Debug("Solicitando DadosIntraday ativo[" + request.Ativo + "] intervalo[" + request.Intervalo + "]");
            ObterPontosIntradayResponse ret = new ObterPontosIntradayResponse();

            ANGPersistenciaDB db = new ANGPersistenciaDB();

            ret.cotacoes = db.ObterPontosIntraday(request.Ativo, request.Intervalo);

            logger.Debug("Respondendo DadosIntraday ativo[" + request.Ativo + "] intervalo[" + request.Intervalo + "]");
            return(ret);
        }
예제 #4
0
        /// <summary>
        /// Invocado pelo framework ao iniciar o serviço
        /// </summary>
        public virtual void IniciarServico()
        {
            logger.Info("*** Iniciando Processador de Cotacao ***");

            _bKeepRunning = true;


            _db = new ANGPersistenciaDB();

            _threadCotacao = new Thread(new ThreadStart(Run));
            _threadCotacao.Start();

            _srvstatus = ServicoStatus.EmExecucao;
        }
예제 #5
0
        /// <summary>
        /// Invocado pelo framework ao iniciar o serviço
        /// </summary>
        public void IniciarServico()
        {
            logger.Info("*** Iniciando Capturador de Negocios ***");

            _bKeepRunning = true;

            _config = GerenciadorConfig.ReceberConfig <ProcessadorNegociosConfig>();

            _db = new ANGPersistenciaDB();

            _threadNegocios = new Thread(new ThreadStart(Run));
            _threadNegocios.Start();

            _srvstatus = ServicoStatus.EmExecucao;
        }
예제 #6
0
        /// <summary>
        /// Invocado pelo framework ao iniciar o serviço
        /// </summary>
        public void IniciarServico()
        {
            logger.Info("*** Iniciando Gravador de Negocios ***");

            _config        = GerenciadorConfig.ReceberConfig <ProcessadorCotacaoConfig>();
            _diretorioLogs = _config.DiretorioLogs;
            _nomeLogPadrao = _config.NomeLogPadrao;

            _db = new ANGPersistenciaDB();

            _threadCotacao = new Thread(new ThreadStart(Run));
            _threadCotacao.Start();

            _srvstatus = ServicoStatus.EmExecucao;
        }
예제 #7
0
        /// <summary>
        /// Invocado pelo framework ao iniciar o serviço
        /// </summary>
        public virtual void IniciarServico()
        {
            logger.Info("*** Iniciando Processador de Cotacao ***");

            _bKeepRunning = true;

            _config = GerenciadorConfig.ReceberConfig <ProcessadorCotacaoConfig>();

            _db = new ANGPersistenciaDB();
            _db.ConnectionString    = _config.ConnectionString;
            _db.MDSConnectionString = _config.MDSConnectionString;

            _threadCotacao = new Thread(new ThreadStart(Run));
            _threadCotacao.Start();

            _srvstatus = ServicoStatus.EmExecucao;
        }
예제 #8
0
        public override void IniciarServico()
        {
            logger.Info("*** Iniciando Processador de Cotacao ***");

            _bKeepRunning = true;

            _config = GerenciadorConfig.ReceberConfig <ProcessadorCotacaoConfig>();

            UMDFConfig _umdfconfig = GerenciadorConfig.ReceberConfig <UMDFConfig>();

            _umdfSockets = new MDSPackageSocket[_umdfconfig.Portas.Count];
            int i = 0;

            foreach (int porta in _umdfconfig.Portas)
            {
                _umdfSockets[i] = new MDSPackageSocket();

                _umdfSockets[i].IpAddr = _config.MDSAddress;
                _umdfSockets[i].Port   = porta;

                _umdfSockets[i].OnFastQuoteReceived      += new MDSMessageReceivedHandler(OnCotacao);
                _umdfSockets[i].OnSerieHistoricaReceived += new MDSMessageReceivedHandler(OnSerieHistorica);

                i++;
            }


            _db = new ANGPersistenciaDB();
            _db.ConnectionString    = _config.ConnectionString;
            _db.MDSConnectionString = _config.MDSConnectionString;

            _threadCotacao = new Thread(new ThreadStart(Run));
            _threadCotacao.Start();

            _threadSerieHistorica = new Thread(new ThreadStart(SerieHistoricaRun));
            _threadSerieHistorica.Start();

            _srvstatus = ServicoStatus.EmExecucao;
        }
예제 #9
0
파일: Form1.cs 프로젝트: radtek/Gradual
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.Filter      = "Text Files (.txt)|*.txt|All Files (*.*)|*.*";
            openFileDialog1.FilterIndex = 1;

            DialogResult okClicked = openFileDialog1.ShowDialog();

            if (okClicked == System.Windows.Forms.DialogResult.OK)
            {
                // Open the selected file to read.
                System.IO.Stream       fileStream = openFileDialog1.OpenFile();
                System.IO.StreamReader reader     = new System.IO.StreamReader(fileStream);

                do
                {
                    string line = reader.ReadLine();

                    string regtype = line.Substring(0, 2);

                    switch (regtype)
                    {
                    case "00":
                        CotaHist_Header header = Utilities.MarshalFromStringBlock <CotaHist_Header>(line);
                        break;

                    case "01":
                        CotaHist_DadosCotacao registro = Utilities.MarshalFromStringBlock <CotaHist_DadosCotacao>(line);

                        CotacaoANG cotacao = new CotacaoANG();
                        cotacao.A  = registro.CodNegociacao.ByteArrayToString().Trim();
                        cotacao.Ab = Convert.ToDouble(registro.PrecoAbertura.ByteArrayToDecimal(2));
                        cotacao.Bo = "BOV";
                        string datapregao = registro.DataPregao.ByteArrayToString() + "000000";
                        cotacao.Dt  = DateTime.ParseExact(datapregao, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
                        cotacao.Fe  = Convert.ToDouble(registro.PrecoUltimo.ByteArrayToDecimal(2));
                        cotacao.Id  = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                        cotacao.Me  = Convert.ToDouble(registro.PrecoMedio.ByteArrayToDecimal(2));
                        cotacao.Mi  = Convert.ToDouble(registro.PrecoMinimo.ByteArrayToDecimal(2));
                        cotacao.Mx  = Convert.ToDouble(registro.PrecoMaximo.ByteArrayToDecimal(2));
                        cotacao.OfC = Convert.ToDouble(registro.MelhorPrecoCompra.ByteArrayToDecimal(2));
                        cotacao.OfV = Convert.ToDouble(registro.MelhorPrecoVenda.ByteArrayToDecimal(2));
                        cotacao.Pr  = Convert.ToDouble(registro.PrecoUltimo.ByteArrayToDecimal(2));
                        cotacao.Qt  = Convert.ToDouble(registro.QuantidadeTotal.ByteArrayToString());
                        cotacao.To  = Convert.ToDouble(registro.TotalNegocios.ByteArrayToString());
                        cotacao.Vl  = Convert.ToDouble(registro.VolumeTotal.ByteArrayToDecimal(2));
                        if (cotacao.Fe > cotacao.Ab)
                        {
                            cotacao.Os = (cotacao.Fe / cotacao.Ab);
                        }
                        else
                        if (cotacao.Fe < cotacao.Ab)
                        {
                            cotacao.Os = ((1 - (cotacao.Fe / cotacao.Ab)) * 100) * -1;
                        }
                        else
                        {
                            cotacao.Os = 0.0;
                        }

                        string msg = String.Format("Gravando Historico: A:[{0}] Dt [{1}] Ab[{2}] Max[{3}] Med[{4}] Min[{5}] Fe[{6}] Osc[{7}] Qt[{8}] Vl[{9}] Neg[{10}]",
                                                   cotacao.A,
                                                   cotacao.Dt.ToString("yyyy/MM/dd HH:mm:ss"),
                                                   cotacao.Ab,
                                                   cotacao.Mx,
                                                   cotacao.Me,
                                                   cotacao.Mi,
                                                   cotacao.Fe,
                                                   cotacao.Os,
                                                   cotacao.Qt,
                                                   cotacao.Vl,
                                                   cotacao.To);

                        txtResult.Text += msg + "\r\n";

                        ANGPersistenciaDB db = new ANGPersistenciaDB();
                        db.ConnectionString = ConfigurationManager.ConnectionStrings["MDS"].ConnectionString;

                        db.GravaSerieHistorica(cotacao);

                        Application.DoEvents();
                        break;

                    case "99":
                        CotaHist_Trailer trailer = Utilities.MarshalFromStringBlock <CotaHist_Trailer>(line);
                        break;
                    }
                }while(!reader.EndOfStream);


                reader.Close();
                fileStream.Close();
            }
        }