function twsevent(varargin) for i = 2:length(varargin) if isstruct(varargin{i}) d = varargin{i}; end end global eventdata data dates eventdata(length(eventdata)+1,1) = {d}; switch d.Type case 'tickPrice' case 'tickSize' case 'orderStatus' case 'errMsg' disp(d.errorMsg); case 'connectionClosed' case 'openOrder1' case 'openOrder2' case 'openOrder4' case 'updateAccountValue' case 'updatePortfolio' case 'updateAccountTime' case 'nextValidId' global orderid orderid = d.id; disp(['Next valid order id: ', num2str(d.id)]); case 'permId' case 'contractDetailsEx' case 'contractDetails' case 'execDetails' case 'updateMktDepth' case 'updateMktDepthL2' case 'updateNewsBulletin' case 'managedAccounts' case 'openOrder3' case 'receiveFA' case 'intradayData' case 'tickString' case 'historicalData' if d.hasGaps disp('gaps') end case 'updatePortfolioEx' case 'currentTime' format long d.time mod(floor(d.time/(60*60)),24) mod(floor(d.time/60),60) mod(d.time,60) format % revert back to default format otherwise disp(['Unknown event: ', d.Type]); end