private Contract createContractFromProduct(FlexTrade.Product p) { Contract c = null; if (p is FlexTrade.Equity) { c = new Krs.Ats.IBNet.Contracts.Equity(p.symbol); } else { //throw exception!! We don't support other products } return c; }
/// <summary> /// The main entry point for the application. /// </summary> //[STAThread] static void Main(string[] args) { client = new IBClient(); client.ThrowExceptions = true; client.TickPrice += client_TickPrice; client.TickSize += client_TickSize; client.Error += client_Error; client.NextValidId += client_NextValidId; client.UpdateMarketDepth += client_UpdateMktDepth; client.RealTimeBar += client_RealTimeBar; client.OrderStatus += client_OrderStatus; client.ExecDetails += client_ExecDetails; Console.WriteLine("Connecting to IB."); client.Connect("127.0.0.1", 7496, 0); TF = new Contract("TF", "NYBOT", SecurityType.Future, "USD", "200909"); YmEcbot = new Contract("YM", "ECBOT", SecurityType.Future, "USD", "200909"); ES = new Contract("ES", "GLOBEX", SecurityType.Future, "USD", "200909"); SPY = new Contract("SPY", "GLOBEX", SecurityType.Future, "USD", "200909"); ZN = new Contract("ZN", "ECBOT", SecurityType.Future, "USD", "200909"); ZB = new Contract("ZB", "ECBOT", SecurityType.Future, "USD", "200909"); ZT = new Contract("ZT", "ECBOT", SecurityType.Future, "USD", "200909"); AAPL = new Contract("ZF", "ECBOT", SecurityType.Future, "USD", "200909"); //TickNasdaq = new Contract("TICK-NASD", "NASDAQ", SecurityType.Index, "USD"); //VolNasdaq = new Contract("VOL-NASD", "NASDAQ", SecurityType.Index, "USD"); //AdNasdaq = new Contract("AD-NASD", "NASDAQ", SecurityType.Index, "USD"); //TickNyse = new Contract("TICK-NYSE", "NYSE", SecurityType.Index, "USD"); //VolNyse = new Contract("VOL-NYSE", "NYSE", SecurityType.Index, "USD"); //AdNyse = new Contract("AD-NYSE", "NYSE", SecurityType.Index, "USD"); //New Contract Creation Features Equity Google = new Equity("GOOG"); client.RequestMarketData(14, Google, null, false, false); client.RequestMarketDepth(15, Google, 5); client.RequestRealTimeBars(16, Google, 5, RealTimeBarType.Trades, false); Order BuyContract = new Order(); BuyContract.Action = ActionSide.Sell; BuyContract.OutsideRth = false; BuyContract.LimitPrice = 560; BuyContract.OrderType = OrderType.Market; BuyContract.TotalQuantity = 1; BuyContract.AuxPrice = 560; client.PlaceOrder(NextOrderId, Google, BuyContract); client.RequestIds(1); client.RequestExecutions(34, new ExecutionFilter()); client.RequestAllOpenOrders(); //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Form1()); while (true) { Thread.Sleep(100); } }
//Place the orders public static void PlaceOrders() { int id = nextOrderId; fPlaceOrders = true; Logger.WriteToLog(DateTime.Now, string.Format("ClientManager.PlaceOrders: start placing orders for {0}", Mode) , Program.UserId); foreach (OrderInfo order in orders) { Equity stock = new Equity(order.Symbol); if (order.Amount == 0) continue; Order contract = new Order{ Action = order.Direction == "Buy" ? ActionSide.Buy : ActionSide.Sell,TotalQuantity = order.Amount }; contract.Tif = TimeInForce.Day; order.OrderId = id; try { client.PlaceOrder(id++, stock, contract); Logger.WriteToLog(DateTime.Now,String.Format("ClientManager.PlaceOrders: orderid: {0,-4} symbol:{1,-4} diraction:{2,-4} amount:{3,-4} stutus:{4,-4}",order.OrderId, stock.Symbol, contract.Action, contract.TotalQuantity, order.Status), Program.UserId); } catch (Exception e) { Logger.WriteToLog(DateTime.Now, String.Format("ClientManager.PlaceOrders: {0}", e.Message),Program.UserId); } } fdone = true; Logger.WriteToLog(DateTime.Now, String.Format("ClientManager.PlaceOrders: done placing orders"), Program.UserId); Logger.WriteToProgramLog(DateTime.Now, string.Format("{0}: done placing {1} orders", Program.UserId,execCounter)); }