コード例 #1
0
        public void registrar(clsModConsulta aObjConsulta, clsApiOrderbook aObjOrderBook)
        {
            try
            {
                this._ObjDados.pConsulta = aObjConsulta;
                this._ObjDados.pIDUltimaOrdemNegociada = aObjOrderBook.response_data.orderbook.latest_order_id;

                //--incluindo a lista de compras (bids)
                foreach (clsApiOrderbook_bids_asks_data obj in aObjOrderBook.response_data.orderbook.bids)
                {
                    this._ObjDados.pIDOrdem      = obj.order_id;
                    this._ObjDados.pTipoOrdem    = clsModLivroOrdens.enumTipoOrdem.Compra;
                    this._ObjDados.pProprietario = obj.is_owner;
                    this._ObjDados.pQtdNegociada = Convert.ToDouble(clsTooUtil.converterStringDecimal_US(obj.quantity));
                    this._ObjDados.pVlrLimite    = clsTooUtil.converterStringDecimal_US(obj.limit_price);
                    this._ObjDados.incluir();
                }

                //--incluindo a lista de vendas(asks)
                foreach (clsApiOrderbook_bids_asks_data obj in aObjOrderBook.response_data.orderbook.asks)
                {
                    this._ObjDados.pIDOrdem      = obj.order_id;
                    this._ObjDados.pTipoOrdem    = clsModLivroOrdens.enumTipoOrdem.Venda;
                    this._ObjDados.pProprietario = obj.is_owner;
                    this._ObjDados.pQtdNegociada = Convert.ToDouble(clsTooUtil.converterStringDecimal_US(obj.quantity));
                    this._ObjDados.pVlrLimite    = clsTooUtil.converterStringDecimal_US(obj.limit_price);
                    this._ObjDados.incluir();
                }
            }
            catch
            {
                throw;
            }
        }
コード例 #2
0
        public override clsApiOrderbook buscarOrderBook(clsApiBaseRetornoTAPI.enumParMoedas aEnumParMoedas, bool aBooCompleto = false)
        {
            string vStrRetornoAPI = string.Empty;

            clsApiOrderbook vObjOrderBook = new clsApiOrderbook();

            try
            {
                vStrRetornoAPI = this.chamarMetodoAPI_Dados(this.retornarTipoMoeda(aEnumParMoedas), enumTipoMetodo.orderbook);
                vObjOrderBook  = new clsApiOrderbook(vStrRetornoAPI);

                this.tratarErro(vObjOrderBook.status_code, vObjOrderBook.error_message);
            }
            catch
            {
                throw;
            }
            return(vObjOrderBook);
        }
コード例 #3
0
        public override clsApiOrderbook buscarOrderBook(clsApiBaseRetornoTAPI.enumParMoedas aEnumParMoedas, bool aBooCompleto = false)
        {
            string vStrRetornoAPI = string.Empty;

            List <clsTooParametros> vObjParametros = new List <clsTooParametros>();
            clsApiOrderbook         vObjOrderBook  = new clsApiOrderbook();

            try
            {
                vObjParametros.Add(new clsTooParametros("tapi_method", enumTipoTapiMetodo.list_orderbook.ToString()));
                vObjParametros.Add(new clsTooParametros("coin_pair", aEnumParMoedas.ToString()));
                vObjParametros.Add(new clsTooParametros("full", aBooCompleto.ToString()));

                vStrRetornoAPI = this.chamarMetodoAPI_Negociacao(vObjParametros);
                vObjOrderBook  = new clsApiOrderbook(vStrRetornoAPI);

                this.tratarErro(vObjOrderBook.status_code, vObjOrderBook.error_message);
            }
            catch
            {
                throw;
            }
            return(vObjOrderBook);
        }
コード例 #4
0
        //--Método que consulta no MercadoBitcoin e grava os dados retornados no repositório de consultas
        private void consultarBitCoin()
        {
            clsModConsulta vObjConsulta;
            //clsCtrLivroOrdens vObjLivro;
            clsApiTicker vObjTicker;

            try
            {
                //--Se o usuário optou por forçar a operação não faz consulta do ticker, vai direto para a negociação utilizando o último ticker consultado.
                if (this._OperacaoForcada == false)
                {
                    System.Threading.Thread.Sleep(15000);
                    //--Buscando as cotações;
                    vObjTicker = this._API.buscarTicker(clsApiMercadoBitcon.enumTipoMoeda.BTC);

                    //--Se tanto a compra quanto a venda estiverem zeradas, significa que o MercadoBitcoin não respondeu nossa consulta.
                    if (vObjTicker.ticker.buy == 0 && vObjTicker.ticker.sell == 0)
                    {
                        return;
                    }

                    //--Lógica incluída para minimizar problemas conhecidos do serviço do MercadoBitcoin:
                    if (this.pObjTickerAtual != null)
                    {
                        //--Se o valor de mínimo está zerado, pega o mínimo da consulta anterior (erro do MercadoBitcoin)
                        if (vObjTicker.ticker.low == 0)
                        {
                            vObjTicker.ticker.low = this.pObjTickerAtual.ticker.low;
                        }

                        //--Retornar os mesmos dados em requisições diferentes ou retornar valor 1 na cotação
                        if (this.pObjTickerAtual.ticker.verDataHora() == vObjTicker.ticker.verDataHora() || vObjTicker.ticker.sell == 1 || vObjTicker.ticker.buy == 1)
                        {
                            return;
                        }
                    }

                    //--Buscando o livro de ordens:
                    this.pObjOrderBookAtual = this._API.buscarOrderBook(clsApiBaseRetornoTAPI.enumParMoedas.BRLBTC);

                    //--Gravando no Banco de Dados a consulta e o livro de ordens
                    vObjConsulta = new clsModConsulta(vObjTicker);
                    vObjConsulta.incluir();
                    //vObjLivro = new clsCtrLivroOrdens();
                    //vObjLivro.registrar(vObjConsulta, this.pObjOrderBookAtual);
                    this.pObjTickerAtual = vObjTicker;

                    //--Consultando bitstamp
                    this.consultarBitstamp();
                }
                else
                {
                    vObjConsulta = new clsModConsulta();
                    vObjConsulta.buscarUltimaConsulta();
                }


                //--Chamando função que irá verificar se negocia ou não com a cotação consultada
                if (this.pAtivaNegociacao)
                {
                    this.negociar(vObjConsulta);
                }
            }
            catch
            {
                throw;
            }
        }