示例#1
0
 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);
     }
 }
示例#2
0
        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);
        }