private void preencherValoresSimulado(clsModMinhasOrdens aObjOrdem) { clsApiOrders_operations_data vObjOperacao; try { this._ObjOrdemAPI.response_data = new clsApiOrders_data(); this._ObjOrdemAPI.response_data.order = new clsApiOrders_orders_data(); this._ObjOrdemAPI.response_data.order.operations = new List <clsApiOrders_operations_data>(); vObjOperacao = new clsApiOrders_operations_data(); this._ObjOrdemAPI.response_data.order.order_id = Convert.ToInt32(aObjOrdem.pID); this._ObjOrdemAPI.response_data.order.created_timestamp = Convert.ToString((aObjOrdem.pDataCriacao.ToUniversalTime().Subtract(new DateTime(1970, 1, 1))).TotalSeconds); this._ObjOrdemAPI.response_data.order.executed_quantity = clsTooUtil.converterDecimalString_US(aObjOrdem.pQtdExecutada); this._ObjOrdemAPI.response_data.order.quantity = clsTooUtil.converterDecimalString_US(aObjOrdem.pQtdMoeda); this._ObjOrdemAPI.response_data.order.status = 4; this._ObjOrdemAPI.response_data.order.order_type = (aObjOrdem.pTipoOrdem == clsModMinhasOrdens.enumTipoOrdem.Compra) ? 1 : 2; this._ObjOrdemAPI.response_data.order.limit_price = clsTooUtil.converterDecimalString_US(aObjOrdem.pVlrLimite); this._ObjOrdemAPI.response_data.order.executed_price_avg = clsTooUtil.converterDecimalString_US(aObjOrdem.pVlrLimite); this._ObjOrdemAPI.response_data.order.has_fills = true; this._ObjOrdemAPI.response_data.order.fee = clsTooUtil.converterDecimalString_US(aObjOrdem.pVlrTaxa); vObjOperacao.operation_id = 1; vObjOperacao.quantity = this._ObjOrdemAPI.response_data.order.quantity; vObjOperacao.price = this._ObjOrdemAPI.response_data.order.limit_price; vObjOperacao.fee_rate = this._ObjOrdemAPI.response_data.order.fee; vObjOperacao.executed_timestamp = this._ObjOrdemAPI.response_data.order.created_timestamp; this._ObjOrdemAPI.response_data.order.operations.Add(vObjOperacao); } catch { throw; } }
public void atualizar() { clsModMinhasOrdens vObjOrdenAtual; try { vObjOrdenAtual = new clsModMinhasOrdens(); vObjOrdenAtual.carregarOrdemAtual(); if (vObjOrdenAtual.pID > 0) { if (Program.Parametros.pSimulando) { this.preencherValoresSimulado(vObjOrdenAtual); } else { this._ObjOrdemAPI = this._ObjAPI.buscarOrder(clsApiBaseRetornoTAPI.enumParMoedas.BRLBTC, vObjOrdenAtual.pID); } this.gravarOrdem(false); } } catch { throw; } }
private void gravarOperacoes(clsModMinhasOrdens aObjMinhaOrdem) { bool vBooPossuiOperacao = false; clsModOperacao vObjOperacao; try { vBooPossuiOperacao = this._ObjOrdemAPI.response_data.order.has_fills; if (vBooPossuiOperacao == false) { return; } //--Apagando as operações atuais para incluir novamente todas (isso para caso tenha surgido novas operações) aObjMinhaOrdem.limparOperacoes(); //--Percorrendo as operações da ordem foreach (clsApiOrders_operations_data vObj in this._ObjOrdemAPI.response_data.order.operations) { vObjOperacao = new clsModOperacao(); vObjOperacao.pDataOperacao = clsTooUtil.converterUnixTimeStamp(Convert.ToDecimal(vObj.executed_timestamp)); vObjOperacao.pID = vObj.operation_id; vObjOperacao.pOrdem = aObjMinhaOrdem; vObjOperacao.pQtdMoeda = clsTooUtil.converterStringDecimal_US(vObj.quantity); vObjOperacao.pVlrOperacao = clsTooUtil.converterStringDecimal_US(vObj.price); vObjOperacao.pVlrTaxa = clsTooUtil.converterStringDecimal_US(vObj.fee_rate); vObjOperacao.incluir(); } } catch { throw; } }
private void gravarOrdem(bool aBooNovo) { clsModMinhasOrdens vObjMinhaOrdem; try { vObjMinhaOrdem = new clsModMinhasOrdens(); vObjMinhaOrdem.pID = this._ObjOrdemAPI.response_data.order.order_id; vObjMinhaOrdem.pConsulta = this.pConsulta; vObjMinhaOrdem.pDataCriacao = clsTooUtil.converterUnixTimeStamp(Convert.ToDecimal(this._ObjOrdemAPI.response_data.order.created_timestamp)); vObjMinhaOrdem.pQtdExecutada = clsTooUtil.converterStringDecimal_US(this._ObjOrdemAPI.response_data.order.executed_quantity); vObjMinhaOrdem.pQtdMoeda = clsTooUtil.converterStringDecimal_US(this._ObjOrdemAPI.response_data.order.quantity); vObjMinhaOrdem.pStatus = vObjMinhaOrdem.definirTipoStatus(this._ObjOrdemAPI.response_data.order.status); vObjMinhaOrdem.pTipoOrdem = vObjMinhaOrdem.definirTipoOrdem(this._ObjOrdemAPI.response_data.order.order_type); vObjMinhaOrdem.pVlrLimite = this._ValorLimite; vObjMinhaOrdem.pVlrMedioExecutado = clsTooUtil.converterStringDecimal_US(this._ObjOrdemAPI.response_data.order.executed_price_avg); vObjMinhaOrdem.pVlrTaxa = clsTooUtil.converterStringDecimal_US(this._ObjOrdemAPI.response_data.order.fee); vObjMinhaOrdem.pAguardar = this._AguardarAposCompra; if (aBooNovo) { vObjMinhaOrdem.incluir(); } else { vObjMinhaOrdem.atualizar(); } this.gravarOperacoes(vObjMinhaOrdem); } catch { throw; } }
//--Método para verificar a situação do movimento. Se existe venda pendente ou se começa um ciclo novo //--Caso tenha venda pendente, retorna a cotação comprada. public void buscarAcaoAtual() { clsModMinhasOrdens vObjOrdens; enumAcao vEnumAcao = enumAcao.Coletando; try { if (this.pAtivaNegociacao) { vObjOrdens = new clsModMinhasOrdens(); vObjOrdens.carregarOrdemAtual(); if (vObjOrdens.pID == 0) { vEnumAcao = (Program.Carteira.pSaldoBitcoins != 0) ? enumAcao.MonitorandoVenda : enumAcao.MonitorandoCompra; } else { //--Verificando em que situação está a movimentação (se está comprando ou em vendendo) switch (vObjOrdens.pStatus) { case clsModMinhasOrdens.enumTipoStatus.Aberta: vEnumAcao = (vObjOrdens.pTipoOrdem == clsModMinhasOrdens.enumTipoOrdem.Compra) ? enumAcao.Comprando : enumAcao.Vendendo; break; case clsModMinhasOrdens.enumTipoStatus.Finalizada: vEnumAcao = (vObjOrdens.pTipoOrdem == clsModMinhasOrdens.enumTipoOrdem.Compra) ? enumAcao.MonitorandoVenda : enumAcao.MonitorandoCompra; break; default: vEnumAcao = enumAcao.MonitorandoCompra; break; } } } //--Se teve alteração de ação, chama função para atualizar carteira. if (vEnumAcao != this.pAcaoAtual) { System.Threading.Thread.Sleep(20000); Program.Carteira.atualizarCarteira(); System.Threading.Thread.Sleep(10000); } this.pAcaoAtual = vEnumAcao; } catch { throw; } }
public DataTable listarOperacoes(DateTime aDatInicio, DateTime aDatFim) { clsModMinhasOrdens vObjOrdens; try { vObjOrdens = new clsModMinhasOrdens(); return(vObjOrdens.listarOrdens(aDatInicio, aDatFim)); } catch { throw; } }
public clsCtrResultado() { this._ObjMinhasOrdens = new clsModMinhasOrdens(); }