public async Task <Order> PlaceLimitGTCOrderAsync( Sides orderSide, string productId, decimal price, decimal size, Guid clientOrderId, OrderSelfTradePreventionFlags selfTradePreventionFlag = OrderSelfTradePreventionFlags.DecreaseAndCancel ) { var orderRequest = new OrderRequest { OrderSide = orderSide.GetString(), OrderType = OrderTypes.Limit.GetString(), TimeInForceFlag = LimitOrderTimeInForceFlags.GTC.GetString(), ProductId = productId, Price = price, Size = size, SelfTradePreventionFlag = selfTradePreventionFlag.GetString(), ClientOrderId = clientOrderId, PostOnly = true }; return(await Client.InvokeSecureRequestWithBody <OrderRequest, Order>( CredentialsProvider, HttpMethod.Post, OrdersEndpoint, orderRequest)); }
public static OrderSelfTradePreventionFlags FromString(this OrderSelfTradePreventionFlags flag, string flagText) { switch (flagText) { case "dc": return(OrderSelfTradePreventionFlags.DecreaseAndCancel); case "co": return(OrderSelfTradePreventionFlags.CancelOldest); case "cn": return(OrderSelfTradePreventionFlags.CancelNewest); case "cb": return(OrderSelfTradePreventionFlags.CancelBoth); default: throw new ArgumentException($"Unsupported OrderSelfTradePreventionFlag {flagText}"); } }
public static string GetString(this OrderSelfTradePreventionFlags flag) { switch (flag) { case OrderSelfTradePreventionFlags.DecreaseAndCancel: return("dc"); case OrderSelfTradePreventionFlags.CancelOldest: return("co"); case OrderSelfTradePreventionFlags.CancelNewest: return("cn"); case OrderSelfTradePreventionFlags.CancelBoth: return("cb"); default: throw new ArgumentException($"Unsupported OrderSelfTradePreventionFlag"); } }