private static void WebsocketClient_DataUpdated(object sender, DataUpdate e) { Console.WriteLine(e.ToString()); if (e.Entity is ExecutionReport) { Trading.ShowOrderDetails(e.Entity as ExecutionReport); } else if (e.Entity is Order) { Trading.ShowOrderDetails(e.Entity as Order); } if (e.Entity is CommandReport) { Trading.ShowOrderDetails(e.Entity as CommandReport); } }
private static void TradingViaWebSocketExample() { Console.WriteLine("\nCALLING SERVICES VIA WEBSOCKET"); WebSocketClient websocketClient = InitializeWebSocket(false); websocketClient.DataUpdated += WebsocketClient_DataUpdated; websocketClient.Closed += WebsocketClient_Closed; websocketClient.Opened += (sender, e) => { Console.WriteLine("WebsocketClient_Opened"); Task.Run(() => { Accounting.StartRealtimeUpdates(); Accounting.PrepopulateCache(); ContractLibrary.PrepopulateCache(); Thread.Sleep(3000); var symbol = "ESH7"; Log.Write($"SHOW {symbol} SPECIFICATIONS"); ContractLibrary.ContractSpec(symbol); Thread.Sleep(3000); var account = Accounting.GetAccount(0); var orderQty = 1; Log.Write($"PLACE BUY {orderQty} {symbol} MKT ORDER"); Trading.PlaceOrder(account, PlaceOrder.ActionEnum.Buy, orderQty, symbol, PlaceOrder.OrderTypeEnum.Market); Thread.Sleep(3000); Log.Write($"PLACE SELL {orderQty} {symbol} MKT ORDER"); Trading.PlaceOrder(account, PlaceOrder.ActionEnum.Sell, orderQty, symbol, PlaceOrder.OrderTypeEnum.Market); Thread.Sleep(300000); websocketClient.Close(); }); }; Thread.Sleep(13000); }