www.gusucode.com > trading工具箱matlab源码程序 > trading/tradingdemos/ibExampleRealtimeEventHandler.m
function ibExampleRealtimeEventHandler(varargin) %IBEXAMPLEREALTIMEEVENTHANDLER Interactive Brokers' Trader Workstation streaming data example event handler. % Copyright 2012-2013 The MathWorks, Inc. % Get figure t = findobj('Tag','SecurityDataTable'); data = get(t,'data'); % Get ticker request ID's tickerID = evalin('base','tickerID'); % Process event based on identifier switch varargin{end} case 'tickSize' % Get table index tInd = find(varargin{6}.id == tickerID); switch varargin{6}.tickType case 0 % BID SIZE data{tInd,4} = varargin{6}.size; case 3 % ASK SIZE data{tInd,6} = varargin{6}.size; case 5 % LAST SIZE data{tInd,2} = varargin{6}.size; case 8 % VOLUME data{tInd,7} = varargin{6}.size; end set(t,'Data',data) case 'tickString' switch varargin{6}.tickType case 45 % Display current time % IB base date is 01/01/1970 dateEpoch = datenum('01-Jan-1970'); % Convert IB current time to MATLAB date number currentTime = datestr(dateEpoch + str2double(varargin{6}.value)/(24*60*60)); set(findobj('Tag','IBStreamingDataWorkflow'),'Name',currentTime) end case 'tickPrice' % Get table index tInd = find(varargin{7}.id == tickerID); switch varargin{7}.tickType case 1 % BID PRICE data{tInd,3} = varargin{7}.price; case 2 % ASK PRICE data{tInd,5} = varargin{7}.price; case 4 % LAST PRICE data{tInd,1} = varargin{7}.price; end set(t,'Data',data) end