private static void CancelOrders() { var tradeClient = new AlgoOrderClient(Config.AccessKey, Config.SecretKey); _logger.Start(); var request = new CancelOrdersRequest { clientOrderIds = new string[] { "0922T1753" } }; var response = tradeClient.CancelOrdersAsync(request).Result; _logger.StopAndLog(); if (response.code == (int)ResponseCode.Success) { foreach (string cid in response.data.accepted) { AppLogger.Info($"Cancel algo order successfully, client order id: {cid}"); } foreach (string cid in response.data.rejected) { AppLogger.Info($"Cancel algo order fail, client order id: {cid}"); } } else { AppLogger.Info($"Place algo order fail, error code: {response.code}, error message: {response.message}"); } }
public void CancelOrders(long[] orderIdsToCancel) { CancelOrdersRequest request = new CancelOrdersRequest(); request.OrderHandle = orderIdsToCancel; CancelOrdersResponse response = _proxy.CancelOrders(request); if (response.ReturnStatus.Code != 0) { throw new Exception(response.ReturnStatus.Description); } }
public void CancelAllOrders(List <string> secName) { var cancelOrders = new CancelOrdersRequest { ExpireControl = new RequestExpired { Now = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds, Ttl = 30000 }, }; string token = "CancelAllOrders"; SendAuthMessage(_secKey, token, WsRequestMetaData.WsRequestMsgType.CancelOrders, cancelOrders); }
/// <summary> /// Cancel an algo order by client order Ids /// </summary> /// <param name="request"></param> /// <returns>CancelOrdersResponse</returns> public async Task <CancelOrdersResponse> CancelOrdersAsync(CancelOrdersRequest request) { string url = _urlBuilder.Build(POST_METHOD, $"/v2/algo-orders/cancellation"); return(await HttpRequest.PostAsync <CancelOrdersResponse>(url, request.ToJson())); }
public override async Task <CancelOrderResponse> CancelAllOrders(CancelOrdersRequest request, ServerCallContext context) { var result = await _validationService.ValidateAssetPairAsync(request.AssetPairId); if (result != null) { return(new CancelOrderResponse { Error = new Error { Code = (int)result.Code, Message = result.Message } }); } bool?isBuy; switch (request.Side) { case Side.Buy: isBuy = true; break; case Side.Sell: isBuy = false; break; default: isBuy = null; break; } var model = new LimitOrderMassCancelModel { Id = Guid.NewGuid().ToString(), AssetPairId = request.AssetPairId, ClientId = context.GetHttpContext().User.GetWalletId(), IsBuy = isBuy }; MeResponseModel response = await _matchingEngineClient.MassCancelLimitOrdersAsync(model); if (response == null) { return(new CancelOrderResponse { Error = new Error { Code = (int)HftApiErrorCode.MeRuntime, Message = "ME not available" } }); } (HftApiErrorCode code, string message) = response.Status.ToHftApiError(); if (code == HftApiErrorCode.Success) { return new CancelOrderResponse { Payload = true } } ; return(new CancelOrderResponse { Error = new Error { Code = (int)code, Message = message } }); }
public override async Task <CancelOrderResponse> CancelAllOrders(CancelOrdersRequest request, ServerCallContext context) { MeResponseModel response; if (!string.IsNullOrEmpty(request.AssetPairId)) { var result = await _validationService.ValidateAssetPairAsync(request.AssetPairId); if (result != null) { var res = new CancelOrderResponse { Error = new ErrorResponseBody { Code = ErrorCode.InvalidField, Message = result.Message } }; res.Error.Fields.Add(result.FieldName, result.Message); } bool?isBuy; if (request.OptionalSideCase == CancelOrdersRequest.OptionalSideOneofCase.None) { isBuy = null; } else { switch (request.Side) { case Side.Buy: isBuy = true; break; case Side.Sell: isBuy = false; break; default: isBuy = null; break; } } var model = new LimitOrderMassCancelModel { Id = Guid.NewGuid().ToString(), AssetPairId = request.AssetPairId, ClientId = context.GetClientId(), IsBuy = isBuy }; response = await _matchingEngineClient.MassCancelLimitOrdersAsync(model); } else { var orders = await GetOrders(new LimitOrdersRequest(), context); if (orders.Body?.Orders.Any() ?? false) { var orderIds = orders.Body.Orders.Select(x => x.Id).ToList(); response = await _matchingEngineClient.CancelLimitOrdersAsync(orderIds); } else { response = new MeResponseModel { Status = MeStatusCodes.Ok }; } } if (response == null) { return(new CancelOrderResponse { Error = new ErrorResponseBody { Code = ErrorCode.Runtime, Message = ErrorMessages.MeNotAvailable } }); } if (response.Status == MeStatusCodes.Ok) { return new CancelOrderResponse { Body = new CancelOrderResponse.Types.Body { Payload = true } } } ; return(new CancelOrderResponse { Error = new ErrorResponseBody { Code = ErrorCode.Runtime, Message = response.Message ?? response.Status.ToString() } }); }