public ServerMBMain() { InitializeComponent(); _msg.SendToBack(); m_ComMgr = new MBTCOMLib.MbtComMgrClass(); m_ComMgr.SilentMode = true; m_ComMgr.EnableSplash(false); m_OrderClient = m_ComMgr.OrderClient; m_Quotes = m_ComMgr.Quotes; ContextMenu = new ContextMenu(); ContextMenu.MenuItems.Add("Messages", new EventHandler(rightmessage)); // tradelink bindings tl.newProviderName = Providers.MBTrading; tl.newFeatureRequest += new MessageArrayDelegate(tl_newFeatureRequest); tl.newSendOrderRequest += new OrderDelegate(tl_newSendOrderRequest); tl.newRegisterStocks += new DebugDelegate(tl_newRegisterStocks); tl.newOrderCancelRequest += new UIntDelegate(tl_newOrderCancelRequest); tl.newAcctRequest += new StringDelegate(tl_newAcctRequest); tl.newPosList += new PositionArrayDelegate(tl_newPosList); // mb bindings m_ComMgr.OnLogonSucceed += new IMbtComMgrEvents_OnLogonSucceedEventHandler(m_ComMgr_OnLogonSucceed); m_ComMgr.OnLogonDeny += new IMbtComMgrEvents_OnLogonDenyEventHandler(m_ComMgr_OnLogonDeny); m_OrderClient.OnSubmit += new _IMbtOrderClientEvents_OnSubmitEventHandler(m_OrderClient_OnSubmit); m_OrderClient.OnRemove += new _IMbtOrderClientEvents_OnRemoveEventHandler(m_OrderClient_OnRemove); m_OrderClient.OnPositionUpdated += new _IMbtOrderClientEvents_OnPositionUpdatedEventHandler(m_OrderClient_OnPositionUpdated); FormClosing += new FormClosingEventHandler(ServerMBMain_FormClosing); }
/// <summary> /// /// </summary> public bool UnSubscribeSymbolSession(string symbol) { if (IsInitialized == false) { return(false); } lock (this) { if (_sessions.Remove(symbol) == false) { return(false); } } bool result = true; _messageLoopOperator.Invoke(delegate() { MbtQuotes client = _quotesClient; if (client == null) { result = false; return; } client.UnadviseSymbol(this, symbol, (int)enumQuoteServiceFlags.qsfLevelOne); }); return(result); }
/// <summary> /// Call is non confirmative; /// Forwarded to requestMessage looped thread. /// </summary> /// <param name="baseCurrency"></param> public bool SubscribeSymbolSession(Symbol symbol) { if (IsInitialized == false) { return(false); } lock (this) { if (_sessions.ContainsKey(symbol.Name)) {// BaseCurrency already subscribed. return(true); } _sessions.Add(symbol.Name, new SessionQuoteInformation() { Symbol = symbol }); } MbtQuotes client = _quotesClient; if (client != null) { _messageLoopOperator.BeginInvoke(delegate() { client.AdviseSymbol(this, symbol.Name, (int)enumQuoteServiceFlags.qsfLevelOne); }); return(true); } return(false); }
public InstrumentReader(MbtOrderClient orderClient, MbtQuotes quotes, SymbolInfo instrument) { m_OrderClient = orderClient; m_Quotes = quotes; this.symbol = instrument; lastChangeTime = Environment.TickCount; }
internal MBT () { Client = new MbtComMgr(); Quotes = Client.Quotes; Orders = Client.OrderClient; Client.EnableSplash(false); Client.SilentMode = false; QN = new QuoteNotifier(); }
/// <summary> /// /// </summary> internal bool Initialize(MbtQuotes quotesClient) { SystemMonitor.CheckError(_messageLoopOperator.InvokeRequred == false, "Init must better be called on message loop method."); if (_quotesClient != null) { return(false); } _quotesClient = quotesClient; return(true); }
public Quote?GetSingleSymbolQuote(string symbolName, TimeSpan timeOut, out string symbolMarket) { symbolMarket = string.Empty; if (IsInitialized == false) { return(null); } string market = string.Empty; Quote? result = null; _messageLoopOperator.Invoke(delegate() { MbtQuotes client = _quotesClient; if (client == null) { return; } QUOTERECORD record = client.GetSingleQuote(symbolName, (int)timeOut.TotalMilliseconds); if (string.IsNullOrEmpty(record.bstrSymbol) == false && record.bstrSymbol.ToUpper() == symbolName.ToUpper()) {// Match found. Quote quoteResult = new Quote(); Commission?commission = null; Dictionary <string, SessionQuoteInformation> sessionsHotSwap = _sessionsHotSwap; if (sessionsHotSwap.ContainsKey(record.bstrSymbol)) { commission = sessionsHotSwap[record.bstrSymbol].Commission; } ConvertQuoteRecord(ref quoteResult, commission, record); market = record.bstrMarket; result = quoteResult; } else { // Failed to find baseCurrency. SystemMonitor.OperationWarning("Failed to find requested symbol."); } }); if (result.HasValue) { symbolMarket = market; } return(result); }
private void Initialize() { m_ComMgr = null; m_ComMgr = new MBTCOMLib.MbtComMgrClass(); m_ComMgr.SilentMode = true; m_ComMgr.EnableSplash(false); m_OrderClient = m_ComMgr.OrderClient; m_OrderClient.SilentMode = true; m_Quotes = m_ComMgr.Quotes; AssignEventHandlers(); InstrumentReaders = new InstrumentReaders(receiver, m_OrderClient, m_Quotes); }
/// <summary> /// /// </summary> public void Dispose() { try { if (_quotesClient != null) { _quotesClient.UnadviseAll(this); _quotesClient = null; } } catch (Exception ex) { SystemMonitor.OperationError(ex.Message); } _messageLoopOperator = null; }
public ServerMB(TLServer tls) { v("VerboseDebugging: " + VerboseDebugging); tl = tls; m_ComMgr = null; try { m_ComMgr = new MbtComMgr(); //pmh - Preferred. Was MbtComMgrClass(). Either should work. } catch (Exception ex) { System.Diagnostics.Process.Start(@"http://code.google.com/p/tradelink/wiki/ComFactoryErrors"); debug("m_ComMgr = new MbtComMgr() failed: " + ex.Message + ex.StackTrace); //pmh return; } // m_ComMgr.SilentMode = true; //pmh - 9/18/12 - display login dialog if blank UID/Pwd (this allows me/pmh to connect to special servers for advanced testing) m_ComMgr.EnableSplash(false); m_OrderClient = m_ComMgr.OrderClient; m_OrderClient.SilentMode = true; /* //pmh - OnDemandMode has been deprecated if (!m_ComMgr.IsPreviousInstanceDetected("tradelink")) { m_OrderClient.OnDemandMode = false; v("order client on demand mode disabled as previous tradelink was running."); } */ m_Quotes = m_ComMgr.Quotes; m_OpenOrders = m_OrderClient.OpenOrders; m_HistMgr = m_ComMgr.HistMgr; // tradelink bindings tl.newProviderName = Providers.MBTrading; tl.newFeatureRequest += new MessageArrayDelegate(tl_newFeatureRequest); tl.newSendOrderRequest += new OrderDelegateStatus(tl_newSendOrderRequest); tl.newRegisterSymbols += new SymbolRegisterDel(tl_newRegisterSymbols); tl.newOrderCancelRequest += new LongDelegate(tl_newOrderCancelRequest); tl.newAcctRequest += new StringDelegate(tl_newAcctRequest); tl.newPosList += new PositionAccountArrayDelegate(tl_newPosList); tl.newUnknownRequest += new UnknownMessageDelegate(tl_newUnknownRequest); //pmh - 8/29/12 - reordered alphabetically and added almost all remaining events // MB Trading MbtComMgr bindings m_ComMgr.OnAlertAdded += new IMbtComMgrEvents_OnAlertAddedEventHandler(m_ComMgr_OnAlertAdded); //pmh m_ComMgr.OnAlertsRefresh += new IMbtComMgrEvents_OnAlertsRefreshEventHandler(m_ComMgr_OnAlertsRefresh); //pmh m_ComMgr.OnCriticalShutdown += new IMbtComMgrEvents_OnCriticalShutdownEventHandler(m_ComMgr_OnCriticalShutdown); //pmh m_ComMgr.OnHealthUpdate += new IMbtComMgrEvents_OnHealthUpdateEventHandler(m_ComMgr_OnHealthUpdate); m_ComMgr.OnLogonDeny += new IMbtComMgrEvents_OnLogonDenyEventHandler(m_ComMgr_OnLogonDeny); m_ComMgr.OnLogonSucceed += new IMbtComMgrEvents_OnLogonSucceedEventHandler(m_ComMgr_OnLogonSucceed); /* * pmh - add later if desired * m_ComMgr.OnMATAccountPercentSet += new IMbtComMgrEvents_OnMATAccountPercentSetEventHandler(m_ComMgr_OnMATAccountPercentSet); //pmh m_ComMgr.OnMATGroupAccountAdded += new IMbtComMgrEvents_OnMATGroupAccountAddedEventHandler(m_ComMgr_OnMATGroupAccountAdded); //pmh m_ComMgr.OnMATGroupAccountRemoved += new IMbtComMgrEvents_OnMATGroupAccountRemovedEventHandler(m_ComMgr_OnMATGroupAccountRemoved); //pmh m_ComMgr.OnMATGroupsGroupAdded += new IMbtComMgrEvents_OnMATGroupsGroupAddedEventHandler(m_ComMgr_OnMATGroupsGroupAdded); //pmh m_ComMgr.OnMATGroupsGroupRemoved += new IMbtComMgrEvents_OnMATGroupsGroupRemovedEventHandler(m_ComMgr_OnMATGroupsGroupRemoved); //pmh m_ComMgr.OnMATGroupsGroupRenamed += new IMbtComMgrEvents_OnMATGroupsGroupRenamedEventHandler(m_ComMgr_OnMATGroupsGroupRenamed); //pmh */ // MB Trading MbtOrderClient bindings m_OrderClient.OnAccountLoaded += new _IMbtOrderClientEvents_OnAccountLoadedEventHandler(m_OrderClient_OnAccountLoaded); m_OrderClient.OnAccountLoading += new _IMbtOrderClientEvents_OnAccountLoadingEventHandler(m_OrderClient_OnAccountLoading); m_OrderClient.OnAccountUnavailable += new _IMbtOrderClientEvents_OnAccountUnavailableEventHandler(m_OrderClient_OnAccountUnavailable); //pmh m_OrderClient.OnAcknowledge += new _IMbtOrderClientEvents_OnAcknowledgeEventHandler(m_OrderClient_OnAcknowledge); //pmh m_OrderClient.OnBalanceUpdate += new _IMbtOrderClientEvents_OnBalanceUpdateEventHandler(m_OrderClient_OnBalanceUpdate); //pmh m_OrderClient.OnCancelPlaced += new _IMbtOrderClientEvents_OnCancelPlacedEventHandler(m_OrderClient_OnCancelPlaced); m_OrderClient.OnCancelRejected += new _IMbtOrderClientEvents_OnCancelRejectedEventHandler(m_OrderClient_OnCancelRejected); m_OrderClient.OnClose += new _IMbtOrderClientEvents_OnCloseEventHandler(m_OrderClient_OnClose); m_OrderClient.OnConnect += new _IMbtOrderClientEvents_OnConnectEventHandler(m_OrderClient_OnConnect); //pmh - 9/21/12 - See note on DefaultAccount at end of document! //m_OrderClient.OnDefaultAccountChanged += new _IMbtOrderClientEvents_OnDefaultAccountChangedEventHandler(m_OrderClient_OnDefaultAccountChanged); //pmh m_OrderClient.OnExecute += new _IMbtOrderClientEvents_OnExecuteEventHandler(m_OrderClient_OnExecute); //pmh m_OrderClient.OnHistoryAdded += new _IMbtOrderClientEvents_OnHistoryAddedEventHandler(m_OrderClient_OnHistoryAdded); m_OrderClient.OnLogonSucceed += new _IMbtOrderClientEvents_OnLogonSucceedEventHandler(m_OrderClient_OnLogonSucceed); m_OrderClient.OnPositionAdded += new _IMbtOrderClientEvents_OnPositionAddedEventHandler(m_OrderClient_OnPositionAdded); m_OrderClient.OnPositionStrategyGroupAdded += new _IMbtOrderClientEvents_OnPositionStrategyGroupAddedEventHandler(m_OrderClient_OnPositionStrategyGroupAdded); //pmh m_OrderClient.OnPositionStrategyGroupRemoved += new _IMbtOrderClientEvents_OnPositionStrategyGroupRemovedEventHandler(m_OrderClient_OnPositionStrategyGroupRemoved); //pmh m_OrderClient.OnPositionStrategyGroupUpdated += new _IMbtOrderClientEvents_OnPositionStrategyGroupUpdatedEventHandler(m_OrderClient_OnPositionStrategyGroupUpdated); //pmh m_OrderClient.OnPositionUpdated += new _IMbtOrderClientEvents_OnPositionUpdatedEventHandler(m_OrderClient_OnPositionUpdated); m_OrderClient.OnRemove += new _IMbtOrderClientEvents_OnRemoveEventHandler(m_OrderClient_OnRemove); //pmh m_OrderClient.OnReplacePlaced += new _IMbtOrderClientEvents_OnReplacePlacedEventHandler(m_OrderClient_OnReplacePlaced); //pmh m_OrderClient.OnReplaceRejected += new _IMbtOrderClientEvents_OnReplaceRejectedEventHandler(m_OrderClient_OnReplaceRejected); //pmh m_OrderClient.OnSubmit += new _IMbtOrderClientEvents_OnSubmitEventHandler(m_OrderClient_OnSubmit); // MB Trading MbtQuote bindings m_Quotes.OnClose += new _IMbtQuotesEvents_OnCloseEventHandler(m_Quotes_OnClose); m_Quotes.OnConnect += new _IMbtQuotesEvents_OnConnectEventHandler(m_Quotes_OnConnect); m_Quotes.OnLogonSucceed += new _IMbtQuotesEvents_OnLogonSucceedEventHandler(m_Quotes_OnLogonSucceed); // MB Trading MbtHist bindings m_HistMgr.OnDataEvent += new _IMbtHistEvents_OnDataEventEventHandler(m_HistMgr_OnDataEvent); m_HistMgr.OnError += new _IMbtHistEvents_OnErrorEventHandler(m_HistMgr_OnError); //disable old ticks //DisableOldTicks = Convert.ToBoolean(ConfigurationSettings.AppSettings["DisableOldTicks"]); DisableOldTicks = true; debug("TL binding and MBT Desktop event mapping complete."); }
public void Stop() { v("stopping ServerMB connector."); pt = null; m_HistMgr = null; m_OpenOrders = null; m_Quotes.UnadviseAll(this); //pmh - 9/18/12 - MUST NOT FORGET THIS! m_Quotes.Disconnect(); m_OrderClient.Disconnect(); m_Quotes = null; m_OrderClient = null; m_HistMgr = null; }
public InstrumentReaders(Receiver providerClient, MbtOrderClient orderClient, MbtQuotes quotes) { this.receiver = providerClient; m_OrderClient = orderClient; m_Quotes = quotes; }
/// <summary> /// /// </summary> internal bool Initialize(MbtQuotes quotesClient) { SystemMonitor.CheckError(_messageLoopOperator.InvokeRequred == false, "Init must better be called on message loop method."); if (_quotesClient != null) { return false; } _quotesClient = quotesClient; return true; }
public ServerMB(TLServer tls) { tl = tls; m_ComMgr = null; try { m_ComMgr = new MbtComMgrClass(); } catch (Exception ex) { System.Diagnostics.Process.Start(@"http://code.google.com/p/tradelink/wiki/ComFactoryErrors"); debug("An error occured: " + ex.Message + ex.StackTrace); return; } m_ComMgr.SilentMode = true; m_ComMgr.EnableSplash(false); m_OrderClient = m_ComMgr.OrderClient; m_OrderClient.SilentMode = true; if (!m_ComMgr.IsPreviousInstanceDetected("tradelink")) { m_OrderClient.OnDemandMode = false; v("order client on demand mode disabled as previous tradelink was running."); } m_Quotes = m_ComMgr.Quotes; m_Orders = m_OrderClient.OpenOrders; m_Hist = m_ComMgr.HistMgr; // tradelink bindings tl.newProviderName = Providers.MBTrading; tl.newFeatureRequest += new MessageArrayDelegate(tl_newFeatureRequest); tl.newSendOrderRequest += new OrderDelegateStatus(tl_newSendOrderRequest); tl.newRegisterSymbols += new SymbolRegisterDel(tl_newRegisterSymbols); tl.newOrderCancelRequest += new LongDelegate(tl_newOrderCancelRequest); tl.newAcctRequest += new StringDelegate(tl_newAcctRequest); tl.newPosList += new PositionArrayDelegate(tl_newPosList); tl.newUnknownRequest += new UnknownMessageDelegate(tl_newUnknownRequest); // mb bindings m_OrderClient.OnAccountLoaded += new _IMbtOrderClientEvents_OnAccountLoadedEventHandler(m_OrderClient_OnAccountLoaded); m_OrderClient.OnAccountLoading += new _IMbtOrderClientEvents_OnAccountLoadingEventHandler(m_OrderClient_OnAccountLoading); m_OrderClient.OnSubmit += new _IMbtOrderClientEvents_OnSubmitEventHandler(m_OrderClient_OnSubmit); m_OrderClient.OnClose += new _IMbtOrderClientEvents_OnCloseEventHandler(m_OrderClient_OnClose); m_OrderClient.OnConnect += new _IMbtOrderClientEvents_OnConnectEventHandler(m_OrderClient_OnConnect); m_OrderClient.OnLogonSucceed += new _IMbtOrderClientEvents_OnLogonSucceedEventHandler(m_OrderClient_OnLogonSucceed); m_ComMgr.OnCriticalShutdown += new IMbtComMgrEvents_OnCriticalShutdownEventHandler(m_ComMgr_OnCriticalShutdown); m_ComMgr.OnHealthUpdate += new IMbtComMgrEvents_OnHealthUpdateEventHandler(m_ComMgr_OnHealthUpdate); m_ComMgr.OnLogonSucceed += new IMbtComMgrEvents_OnLogonSucceedEventHandler(m_ComMgr_OnLogonSucceed); m_ComMgr.OnLogonDeny += new IMbtComMgrEvents_OnLogonDenyEventHandler(m_ComMgr_OnLogonDeny); m_Quotes.OnClose += new _IMbtQuotesEvents_OnCloseEventHandler(m_Quotes_OnClose); m_Quotes.OnConnect += new _IMbtQuotesEvents_OnConnectEventHandler(m_Quotes_OnConnect); m_Quotes.OnLogonSucceed += new _IMbtQuotesEvents_OnLogonSucceedEventHandler(m_Quotes_OnLogonSucceed); m_OrderClient.OnPositionAdded += new _IMbtOrderClientEvents_OnPositionAddedEventHandler(m_OrderClient_OnPositionAdded); m_OrderClient.OnPositionUpdated += new _IMbtOrderClientEvents_OnPositionUpdatedEventHandler(m_OrderClient_OnPositionUpdated); //m_OrderClient.OnExecute += new _IMbtOrderClientEvents_OnExecuteEventHandler( m_OrderClient_OnExecute ); m_OrderClient.OnCancelPlaced += new _IMbtOrderClientEvents_OnCancelPlacedEventHandler(m_OrderClient_OnCancelPlaced); m_OrderClient.OnCancelRejected += new _IMbtOrderClientEvents_OnCancelRejectedEventHandler(m_OrderClient_OnCancelRejected); //m_OrderClient.OnRemove += new _IMbtOrderClientEvents_OnRemoveEventHandler( m_OrderClient_OnRemove ); m_OrderClient.OnHistoryAdded += new _IMbtOrderClientEvents_OnHistoryAddedEventHandler(m_OrderClient_OnHistoryAdded); m_Hist.OnDataEvent += new _IMbtHistEvents_OnDataEventEventHandler(m_Hist_OnDataEvent); //disable old ticks //DisableOldTicks = Convert.ToBoolean(ConfigurationSettings.AppSettings["DisableOldTicks"]); DisableOldTicks = true; debug("all binding configured successfully."); }