예제 #1
0
        public void SellLimit_ShouldUnauthorizedThrowException_IfNoApiKeyIsGiven()
        {
            var         bittrex = new Bittrex();
            Func <Task> action  = async() => { var _ = await bittrex.SellLimit(DefaultMarketName, 1, 1); };

            action.ShouldThrow <UnauthorizedException>();
        }
예제 #2
0
        public void SellLimit_ShouldNotThrowException()
        {
            var         bittrex = new Bittrex(DefaultApiKey, DefaultApiSecret);
            Func <Task> action  = async() => { var _ = await bittrex.SellLimit(DefaultMarketName, 1, 1); };

            action.ShouldNotThrow();
        }
예제 #3
0
        public async Task <bool> createOrder(OpenOrder orderData, System.Threading.CancellationTokenSource cancelOrderAwait)
        {
            ResponseWrapper <AcceptedOrder> response;

            do
            {
                switch (orderData.OrderType)
                {
                case "LIMIT_BUY":
                    response = await account.BuyLimit(orderData.Exchange, orderData.QuantityRemaining, orderData.Limit);

                    break;

                case "LIMIT_SELL":
                    response = await account.SellLimit(orderData.Exchange, orderData.QuantityRemaining, orderData.Limit);

                    break;

                default:
                    return(false);
                }
                await Task.Delay(Constants.second);
            }while (!response.Success);

            if (cancelOrderAwait != null)
            {
                cancelOrderAwait.Cancel();
            }

            while (!ActiveOrders.Exists(x => x.OrderUuid == response.Result.Uuid))
            {
                await Task.Delay(5 *Constants.second);

                if (cancelOrderAwait != null)
                {
                    cancelOrderAwait.Cancel();
                }
            }

            OnHoldOrders.Remove(orderData);

            return(true);
        }
예제 #4
0
        private async Task <string> ExecuteOrder(BaseTypes.Market Market, decimal Amount, decimal Rate, bool DirectionBuy, InvokePrint Print)
        {
            try
            {
                if (DirectionBuy)
                {
                    var accepted = await bittrex.BuyLimit(Market.MarketName, Amount, Rate);

                    return(accepted.Uuid);
                }
                else
                {
                    var accepted = await bittrex.SellLimit(Market.MarketName, Amount, Rate);

                    return(accepted.Uuid);
                }
            }
            catch (Exception ex)
            {
                System.Media.SystemSounds.Beep.Play();
                Print("Ошибка BittrexApi ExecuteOrder: " + ex.Message);
                return("");
            }
        }
 public async Task PlaceSellOrder()
 {
     await BittrexLink.SellLimit(SelectedMarketPair, TradeUnits, TradePrice);
 }