public async Task <decimal> GetPrice(string symbol) { using var client = new FTXClient(); var result = await client.TradeApi.ExchangeData.GetSymbolAsync(symbol); return(result.Data.LastPrice ?? 0); }
public async Task <Dictionary <string, decimal> > GetBalances() { using var client = new FTXClient(); var result = await client.TradeApi.Account.GetBalancesAsync(); return(result.Data.ToDictionary(d => d.Asset, d => d.Total)); }
public async Task <WebCallResult> CancelOrder(string symbol, string id) { using var client = new FTXClient(); var result = await client.TradeApi.Trading.CancelOrderAsync(long.Parse(id)); return(result.AsDataless()); }
static async Task Main(string[] args) { BinanceClient.SetDefaultOptions(new BinanceClientOptions { LogLevel = LogLevel.Trace, ApiCredentials = new ApiCredentials("APIKEY", "APISECRET") }); FTXClient.SetDefaultOptions(new FTXClientOptions { LogLevel = LogLevel.Trace, ApiCredentials = new ApiCredentials("APIKEY", "APISECRET") }); while (true) { Console.WriteLine("> Available commands: PlaceOrder, GetBalances, GetOpenOrders, CancelOrder, GetPrice, SubscribePrice"); var input = Console.ReadLine(); switch (input) { case "PlaceOrder": await ProcessPlaceOrder(); break; case "GetBalances": await ProcessGetBalances(); break; case "GetOpenOrders": await ProcessGetOpenOrders(); break; case "CancelOrder": await ProcessCancelOrder(); break; case "GetPrice": await ProcessGetPrice(); break; case "SubscribePrice": var sub = await ProcessSubscribePrice(); Console.ReadLine(); await sub.CloseAsync(); break; default: Console.WriteLine("> Unknown command"); break; } } }
public async Task <WebCallResult <string> > PlaceOrder(string symbol, string side, string type, decimal quantity, decimal?price) { using var client = new FTXClient(); var result = await client.TradeApi.Trading.PlaceOrderAsync( symbol, side.ToLower() == "buy"?FTX.Net.Enums.OrderSide.Buy : FTX.Net.Enums.OrderSide.Sell, type == "market"?FTX.Net.Enums.OrderType.Market : FTX.Net.Enums.OrderType.Limit, quantity, price : price); return(result.As(result.Data?.Id.ToString())); }
public async Task <IEnumerable <OpenOrder> > GetOpenOrders() { using var client = new FTXClient(); var order = await client.TradeApi.Trading.GetOpenOrdersAsync(); return(order.Data.Select(o => new OpenOrder { Symbol = o.Symbol, OrderSide = o.Side.ToString(), OrderStatus = o.Status.ToString(), OrderTime = o.CreateTime, OrderType = o.Type.ToString(), Price = o.Price ?? 0, Quantity = o.Quantity, QuantityFilled = o.QuantityFilled ?? 0 })); }