public void should_cancel_order_by_setting_qty_to_0()
        {
            // arrange
            var @params = OrderPOSTRequestParams.CreateSimpleLimit("XBTUSD", 3, _xbtAvgPrice - LimitPriceSubtractor, OrderSide.Buy);
            var result  = Sut.Execute(BitmexApiUrls.Order.PostOrder, @params).Result.Result;

            result.Should().NotBeNull();
            result.OrdType.Should().Be("Limit");
            result.OrdStatus.Should().Be("New");
            result.OrderId.Should().NotBeNull();

            var @paramsPut = new OrderPUTRequestParams()
            {
                OrderID  = result.OrderId,
                OrderQty = 0
            };

            // act
            var resultPut = Sut.Execute(BitmexApiUrls.Order.PutOrder, paramsPut).Result.Result;

            // assert
            resultPut.Should().NotBeNull();
            resultPut.OrdType.Should().Be("Limit");
            resultPut.OrdStatus.Should().Be("Canceled");
            resultPut.OrderId.Should().NotBeNull();
        }
        public void should_change_sell_limit_order()
        {
            // arrange
            var @params = OrderPOSTRequestParams.CreateMarketStopOrder("XBTUSD", 3, _xbtAvgPrice - LimitPriceSubtractor, OrderSide.Sell);
            var result  = Sut.Execute(BitmexApiUrls.Order.PostOrder, @params).Result.Result;

            result.Should().NotBeNull();
            result.OrdType.Should().Be("Stop");
            result.OrdStatus.Should().Be("New");
            result.OrderId.Should().NotBeNull();
            var @paramsPut = new OrderPUTRequestParams()
            {
                OrderID  = result.OrderId,
                OrderQty = 2
            };

            // act
            var resultPut = Sut.Execute(BitmexApiUrls.Order.PutOrder, paramsPut).Result.Result;

            // assert
            resultPut.Should().NotBeNull();
            resultPut.OrdType.Should().Be("Stop");
            resultPut.OrdStatus.Should().Be("New");
            resultPut.OrderQty.Should().Be(2);
            resultPut.OrderId.Should().NotBeNull();
        }
        public void should_throw_bitmex_exception_with_deserialized_data_when_put()
        {
            // arrange
            var @paramsPut = new OrderPUTRequestParams()
            {
                // this order doesn't exist
                OrderID  = Guid.NewGuid().ToString("N"),
                OrderQty = 2
            };

            // act
            Action action = () => { var resultPut = Sut.Execute(BitmexApiUrls.Order.PutOrder, paramsPut).Result; };

            // assert
            action.Should().Throw <BitmexApiException>().Which.Error?.Error.Should().NotBeNull();
        }
 private async void ChaseOrder()
 {
     var putOrderParams   = OrderPUTRequestParams.ModifyOrderByID(SelectedOrder, NewOrderPrice, NewOrderQty);
     var bitmexApiService = BitmexApiService.CreateDefaultApi(_bitmexAuthorization);
     await bitmexApiService.Execute(BitmexApiUrls.Order.PutOrder, putOrderParams);
 }