示例#1
0
        /// <summary>
        /// Some bare-bones way to do some bot recovery.
        /// </summary>
        private async void botRecovery()
        {
            var orders = await api.GetCompletedOrderDetailsAsync(null);

            decimal stakeThreshold = 180m;
            var     myWallet       = await getWallet();

            var availableCoins = myWallet.Values.ToList().Where(v => v > stakeThreshold);
        }
示例#2
0
        public override async void pollOrders(object source, ElapsedEventArgs e)
        {
            if (pollingOrders)
            {
                return;
            }
            else
            {
                pollingOrders = true;
            }
            try
            {
                for (bool open_completed = false; open_completed; open_completed = !open_completed)
                {
                    IEnumerable <ExchangeOrderResult> resultOrders;
                    if (open_completed)
                    {
                        resultOrders = await api.GetCompletedOrderDetailsAsync();
                    }
                    else
                    {
                        resultOrders = await api.GetOpenOrderDetailsAsync();
                    }

                    foreach (ExchangeOrderResult orderOpen in resultOrders)
                    {
                        String   orderID              = orderOpen.OrderId;
                        Decimal  amount               = orderOpen.Amount;
                        Decimal  amountFilled         = orderOpen.AmountFilled;
                        Decimal  averagePrice         = orderOpen.AveragePrice;
                        Boolean  isBuy                = orderOpen.IsBuy;
                        DateTime orderDate            = orderOpen.OrderDate;
                        ExchangeAPIOrderResult result = orderOpen.Result;
                        String symbol = orderOpen.Symbol;
                        COrder order  = null;
                        if (server.dctIdToOrder.ContainsKey(orderID))
                        {
                            order = server.dctIdToOrder[orderID];
                        }

                        if (order != null)
                        {
                            order.OrderID   = orderID;
                            order.DealPrice = (Double)averagePrice;
                            //order.Fee = fee;
                            //order.FeeRate = feeRate;
                            order.Size   = (double)amount;
                            order.Filled = (Double)amountFilled;
                            switch (result)
                            {
                            case ExchangeAPIOrderResult.Canceled:
                                order.Status = COrder.OrderState.Cancelled;
                                break;

                            case ExchangeAPIOrderResult.Error:
                                order.Status = COrder.OrderState.Error;
                                break;

                            case ExchangeAPIOrderResult.Filled:
                                order.Status = COrder.OrderState.Filled;
                                break;

                            case ExchangeAPIOrderResult.FilledPartially:
                                order.Status = COrder.OrderState.Partial;
                                break;

                            case ExchangeAPIOrderResult.Pending:
                                order.Status = COrder.OrderState.Queued;
                                break;

                            case ExchangeAPIOrderResult.Unknown:
                                order.Status = COrder.OrderState.Unknown;
                                break;
                            }
                            order.TimeStampFilled = orderDate;
                            order.updateGUI();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                server.AddLog(ex.Message);
            }
            pollingOrders = false;
        }