public void CreateOrderSubscription() { if (_dispatcher.InvokeRequired()) { _dispatcher.BeginInvoke(() => { CreateOrderSubscription(); }); return; } Dispatcher dispatcher = Dispatcher.Current; Console.WriteLine("Creating Order Subscription..."); _ts = new TradeSubscription(_apiSession, dispatcher); _ts.OrderBookDownload += new EventHandler <OrderBookDownloadEventArgs>(ts_OrderBookDownload); _ts.OrderAdded += new EventHandler <OrderAddedEventArgs>(ts_OrderAdded); _ts.OrderUpdated += new EventHandler <OrderUpdatedEventArgs>(ts_OrderUpdated); _ts.OrderDeleted += new EventHandler <OrderDeletedEventArgs>(ts_OrderDeleted); _ts.OrderFilled += new EventHandler <OrderFilledEventArgs>(ts_OrderFilled); _ts.OrderStatusUnknown += new EventHandler <OrderStatusUnknownEventArgs>(ts_OrderStatusUnknown); _ts.OrderRejected += new EventHandler <OrderRejectedEventArgs>(ts_OrderRejected); //ts.EnablePNL = true; //ts.ProfitLossChanged += new EventHandler<ProfitLossChangedEventArgs>(ts_ProfitLossChanged); _ts.Start(); Console.WriteLine("Order Subscription created."); }
/// <summary> /// Called via my thread dispatcher to create the TradeSubscription object and start it. /// After which, the thread will sleep until further dispatcher actions are invoked. /// </summary> private void InitComplete() { if (Log != null) { Log.NewEntry(LogLevel.Major, "{0}: Listener thread started.", this); } // Subscribe to events. m_TradeSubsciption = new TradeSubscription(m_TTService.session, m_Dispatcher); if (m_TradeFilter != null) { m_TradeSubsciption.SetFilter(m_TradeFilter); } m_TradeSubsciption.OrderFilled += new EventHandler <TradingTechnologies.TTAPI.OrderFilledEventArgs>(TT_OrderFilled); m_TradeSubsciption.Rollover += new EventHandler <RolloverEventArgs>(TT_Rollover); m_TradeSubsciption.FillRecordAdded += new EventHandler <FillAddedEventArgs>(TT_RecordedFill); m_TradeSubsciption.AdminFillAdded += new EventHandler <FillAddedEventArgs>(TT_AdminFill); m_TradeSubsciption.AdminFillDeleted += new EventHandler <FillDeletedEventArgs>(TT_AdminFillDeleted); m_TradeSubsciption.FillBookDownload += new EventHandler <TradingTechnologies.TTAPI.FillBookDownloadEventArgs>(TT_FillListDownLoad); m_TradeSubsciption.FillListStart += new EventHandler <TradingTechnologies.TTAPI.FillListEventArgs>(TT_FillListStart); m_TradeSubsciption.FillListEnd += new EventHandler <TradingTechnologies.TTAPI.FillListEventArgs>(TT_FillListEnd); m_TradeSubsciption.Start(); }//InitComplete()
/// <summary> /// Event returning the status of a login attempt. /// </summary> void m_TTAPI_AuthenticationStatusUpdate(object sender, AuthenticationStatusUpdateEventArgs e) { // Check for successful login if (!e.Status.IsSuccess) { // if an unsuccessful login, show the user why and allow them to try again MessageBox.Show("Login Unsuccessful.\r\n\r\nReason: " + e.Status.StatusMessage, "Error"); return; } // subscribe to the trade subscription events m_tradeSubscription = new TradeSubscription(m_TTAPI.Session, Dispatcher.Current); m_tradeSubscription.OrderAdded += new EventHandler <OrderAddedEventArgs>(tradeSubscription_OrderAdded); m_tradeSubscription.OrderBookDownload += new EventHandler <OrderBookDownloadEventArgs>(tradeSubscription_OrderBookDownload); m_tradeSubscription.OrderDeleted += new EventHandler <OrderDeletedEventArgs>(tradeSubscription_OrderDeleted); m_tradeSubscription.OrderFilled += new EventHandler <OrderFilledEventArgs>(tradeSubscription_OrderFilled); m_tradeSubscription.OrderRejected += new EventHandler <OrderRejectedEventArgs>(tradeSubscription_OrderRejected); m_tradeSubscription.OrderUpdated += new EventHandler <OrderUpdatedEventArgs>(tradeSubscription_OrderUpdated); m_tradeSubscription.OrderStatusUnknown += new EventHandler <OrderStatusUnknownEventArgs>(tradeSubscription_OrderStatusUnknown); m_tradeSubscription.Start(); // Login succeeded, update GUI this.btnConnect.Enabled = false; UpdateStatusBar("Login Status: " + e.Status.ToString()); }
/// <summary> /// Called via my thread dispatcher to create the TradeSubscription object and start it. /// After which, the thread will sleep until further dispatcher actions are invoked. /// </summary> private void InitComplete() { this.Log.NewEntry(LogLevel.Major, "{0}: Trade listener started.", m_Name); // Subscribe to events. m_TradeSubsciption = new TradeSubscription(m_TTService.session, m_Dispatcher); m_TradeSubsciption.OrderFilled += new EventHandler <TradingTechnologies.TTAPI.OrderFilledEventArgs>(TT_OrderFilled); m_TradeSubsciption.OrderAdded += new EventHandler <TradingTechnologies.TTAPI.OrderAddedEventArgs>(TT_OrderAdded); m_TradeSubsciption.OrderDeleted += new EventHandler <TradingTechnologies.TTAPI.OrderDeletedEventArgs>(TT_OrderDeleted); m_TradeSubsciption.OrderBookDownload += new EventHandler <TradingTechnologies.TTAPI.OrderBookDownloadEventArgs>(TT_OrderBookDownload); m_TradeSubsciption.OrderRejected += new EventHandler <OrderRejectedEventArgs>(TT_OrderRejected); m_TradeSubsciption.Start(); }//InitComplete()
private void OnSDKStatusUpdate(object sender, TTAPIStatusUpdateEventArgs e) { if (e.IsReady && m_ts == null) { lblStatus.Text = "Authenticated. Launching subscriptions..."; m_ts = new TradeSubscription(m_dispatcher, false); m_ts.OrderBookDownload += OnOrderBookDownload; m_ts.OrderAdded += OnOrderAdded; m_ts.OrderDeleted += OnOrderDeleted; m_ts.OrderFilled += OnOrderFilled; m_ts.OrderUpdated += OnOrderUpdated; m_ts.OrderPendingAction += OnOrderPendingAction; m_ts.OrderRejected += OnOrderRejected; m_ts.Start(); } else if (e.IsDown) { lblStatus.Text = $"SDK is down: {e.StatusMessage}"; } }
public void CreateFillSubscription() { if (_dispatcher.InvokeRequired()) { _dispatcher.BeginInvoke(() => { CreateFillSubscription(); }); return; } Dispatcher dispatcher = Dispatcher.Current; Console.WriteLine("Creating Fill Subscription..."); _fs = new FillsSubscription(_apiSession, dispatcher); _fs.FillListStart += new EventHandler <FillListEventArgs>(fs_FillListStart); _fs.FillBookDownload += new EventHandler <FillBookDownloadEventArgs>(fs_FillBookDownload); _fs.FillListEnd += new EventHandler <FillListEventArgs>(fs_FillListEnd); _fs.FillAdded += new EventHandler <FillAddedEventArgs>(fs_FillAdded); _fs.FillDeleted += new EventHandler <FillDeletedEventArgs>(fs_FillDeleted); _fs.FillAmended += new EventHandler <FillAmendedEventArgs>(fs_FillAmended); _fs.Start(); _ts = new TradeSubscription(_apiSession, dispatcher); _ts.FillBookDownload += new EventHandler <FillBookDownloadEventArgs>(ts_FillBookDownload); _ts.FillListEnd += new EventHandler <FillListEventArgs>(ts_FillListEnd); _ts.FillListStart += new EventHandler <FillListEventArgs>(ts_FillListStart); _ts.FillAmended += new EventHandler <FillAmendedEventArgs>(ts_FillAmended); _ts.FillRecordAdded += new EventHandler <FillAddedEventArgs>(ts_FillRecordAdded); _ts.AdminFillAdded += new EventHandler <FillAddedEventArgs>(ts_AdminFillAdded); _ts.AdminFillDeleted += new EventHandler <FillDeletedEventArgs>(ts_AdminFillDeleted); _ts.Rollover += new EventHandler <RolloverEventArgs>(ts_Rollover); _ts.TradeSubscriptionReset += new EventHandler <TradeSubscriptionResetEventArgs>(ts_TradeSubscriptionReset); //ts.EnablePNL = true; //ts.ProfitLossChanged += new EventHandler<ProfitLossChangedEventArgs>(ts_ProfitLossChanged); _ts.Start(); Console.WriteLine("Fill Subscription created."); }
void m_TTAPI_ConnectionStatusUpdate(object sender, ConnectionStatusUpdateEventArgs e) { if (e.Status.IsSuccess) { this.Enabled = true; // Update the Status Bar text. UpdateStatusBar("Drag a contract from X_TRADER to begin"); m_tradeSubscription = new TradeSubscription(m_TTAPI.Session, Dispatcher.Current); m_tradeSubscription.FillRecordAdded += new EventHandler <FillAddedEventArgs>(m_tradeSubscription_FillRecordAdded); m_tradeSubscription.AdminFillAdded += new EventHandler <FillAddedEventArgs>(m_tradeSubscription_AdminFillAdded); m_tradeSubscription.AdminFillDeleted += new EventHandler <FillDeletedEventArgs>(m_tradeSubscription_AdminFillDeleted); m_tradeSubscription.FillBookDownload += new EventHandler <FillBookDownloadEventArgs>(m_tradeSubscription_FillBookDownload); m_tradeSubscription.FillAmended += new EventHandler <FillAmendedEventArgs>(m_tradeSubscription_FillAmended); m_tradeSubscription.Start(); } else { MessageBox.Show(String.Format("ConnectionStatusUpdate: {0}", e.Status.StatusMessage)); } }
private void CreateTradeSubscription() { Message("Creating TradeSubscription..."); /* * InstrumentLookupSubscription req = new InstrumentLookupSubscription(apiInstance.Session, Dispatcher.Current, new ProductKey(MarketKey.Cme, ProductType.Future, "HG"), "Dec13"); * req.Update += new EventHandler<InstrumentLookupSubscriptionEventArgs>(req_Update); * req.Start(); * // We now have a more generic method to subscribe to instruments: * SubscribeToInstrument(MarketKey.Cme, ProductType.Future, "HG", "Dec13"); */ SubscribeToInstrument("CME", "FUTURE", "HG", "Dec12"); ts = new TradeSubscription(apiInstance.Session, Dispatcher.Current); ts.FillBookDownload += new EventHandler <FillBookDownloadEventArgs>(ts_FillBookDownload); ts.FillListEnd += new EventHandler <FillListEventArgs>(ts_FillListEnd); ts.FillListStart += new EventHandler <FillListEventArgs>(ts_FillListStart); ts.OrderBookDownload += new EventHandler <OrderBookDownloadEventArgs>(ts_OrderBookDownload); ts.OrderAdded += new EventHandler <OrderAddedEventArgs>(ts_OrderAdded); ts.OrderUpdated += new EventHandler <OrderUpdatedEventArgs>(ts_OrderUpdated); ts.OrderDeleted += new EventHandler <OrderDeletedEventArgs>(ts_OrderDeleted); ts.OrderFilled += new EventHandler <OrderFilledEventArgs>(ts_OrderFilled); ts.FillAmended += new EventHandler <FillAmendedEventArgs>(ts_FillAmended); ts.FillRecordAdded += new EventHandler <FillAddedEventArgs>(ts_FillRecordAdded); ts.AdminFillAdded += new EventHandler <FillAddedEventArgs>(ts_AdminFillAdded); ts.AdminFillDeleted += new EventHandler <FillDeletedEventArgs>(ts_AdminFillDeleted); ts.OrderStatusUnknown += new EventHandler <OrderStatusUnknownEventArgs>(ts_OrderStatusUnknown); ts.OrderRejected += new EventHandler <OrderRejectedEventArgs>(ts_OrderRejected); ts.Rollover += new EventHandler <RolloverEventArgs>(ts_Rollover); ts.TradeSubscriptionReset += new EventHandler <TradeSubscriptionResetEventArgs>(ts_TradeSubscriptionReset); //ts.EnablePNL = true; //ts.ProfitLossChanged += new EventHandler<ProfitLossChangedEventArgs>(ts_ProfitLossChanged); ts.Start(); Message("TradeSubscription created."); }
/// <summary> /// Event returning the status of a login attempt. /// </summary> void m_TTAPI_AuthenticationStatusUpdate(object sender, AuthenticationStatusUpdateEventArgs e) { // Check for successful login if (!e.Status.IsSuccess) { // if an unsuccessful login, show the user why and allow them to try again MessageBox.Show("Login Unsuccessful.\r\n\r\nReason: " + e.Status.StatusMessage, "Error"); return; } // subscribe to the trade subscription events m_TradeSubscription = new TradeSubscription(m_TTAPI.Session, Dispatcher.Current); m_TradeSubscription.OrderAdded += new EventHandler<OrderAddedEventArgs>(tradeSubscription_OrderAdded); m_TradeSubscription.OrderBookDownload += new EventHandler<OrderBookDownloadEventArgs>(tradeSubscription_OrderBookDownload); m_TradeSubscription.OrderDeleted += new EventHandler<OrderDeletedEventArgs>(tradeSubscription_OrderDeleted); m_TradeSubscription.OrderFilled += new EventHandler<OrderFilledEventArgs>(tradeSubscription_OrderFilled); m_TradeSubscription.OrderRejected += new EventHandler<OrderRejectedEventArgs>(tradeSubscription_OrderRejected); m_TradeSubscription.OrderUpdated += new EventHandler<OrderUpdatedEventArgs>(tradeSubscription_OrderUpdated); m_TradeSubscription.OrderStatusUnknown += new EventHandler<OrderStatusUnknownEventArgs>(tradeSubscription_OrderStatusUnknown); m_TradeSubscription.Start(); // Login succeeded, update GUI this.btnConnect.Enabled = false; UpdateStatusBar("Login Status: " + e.Status.ToString()); }
void m_TTAPI_ConnectionStatusUpdate(object sender, ConnectionStatusUpdateEventArgs e) { if (e.Status.IsSuccess) { this.Enabled = true; // Update the Status Bar text. UpdateStatusBar("Drag a contract from X_TRADER to begin"); m_tradeSubscription = new TradeSubscription(m_TTAPI.Session, Dispatcher.Current); m_tradeSubscription.FillRecordAdded += new EventHandler<FillAddedEventArgs>(m_tradeSubscription_FillRecordAdded); m_tradeSubscription.AdminFillAdded += new EventHandler<FillAddedEventArgs>(m_tradeSubscription_AdminFillAdded); m_tradeSubscription.AdminFillDeleted += new EventHandler<FillDeletedEventArgs>(m_tradeSubscription_AdminFillDeleted); m_tradeSubscription.FillBookDownload += new EventHandler<FillBookDownloadEventArgs>(m_tradeSubscription_FillBookDownload); m_tradeSubscription.FillAmended += new EventHandler<FillAmendedEventArgs>(m_tradeSubscription_FillAmended); m_tradeSubscription.Start(); } else { MessageBox.Show(String.Format("ConnectionStatusUpdate: {0}", e.Status.StatusMessage)); } }
public void req_Update(object sender, InstrumentLookupSubscriptionEventArgs e) { if (e.Instrument != null && e.Error == null) { // Create a TradeSubscription with an Instrument filter ts = new TradeSubscription(apiInstance.Session, Dispatcher.Current); TradeSubscriptionInstrumentFilter tsIF = new TradeSubscriptionInstrumentFilter(apiInstance.Session, e.Instrument.Key, false, "instr"); ts.SetFilter(tsIF); ts.OrderAdded += new EventHandler<OrderAddedEventArgs>(ts_OrderAdded); ts.OrderFilled += new EventHandler<OrderFilledEventArgs>(ts_OrderFilled); ts.OrderRejected += new EventHandler<OrderRejectedEventArgs>(ts_OrderRejected); ts.OrderDeleted += new EventHandler<OrderDeletedEventArgs>(ts_OrderDeleted); ts.OrderUpdated += new EventHandler<OrderUpdatedEventArgs>(ts_OrderUpdated); ts.Start(); // Subscribe for Inside Market Data ps = new PriceSubscription(e.Instrument, Dispatcher.Current); ps.Settings = new PriceSubscriptionSettings(PriceSubscriptionType.InsideMarket); ps.FieldsUpdated += new FieldsUpdatedEventHandler(priceSub_FieldsUpdated); ps.Start(); } else if (e.IsFinal) { // Instrument was not found and TT API has given up looking for it Console.WriteLine("Cannot find instrument: " + e.Error.Message); Dispose(); } }