function twsevent(varargin)

for i = 2:length(varargin)
    if isstruct(varargin{i})
        d = varargin{i};
    end
end

global eventdata
eventdata(length(eventdata)+1,1) = {d};

switch d.Type
    case 'tickPrice'
        d.price
        
    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 'contractDetails'

    case 'execDetails'

    case 'updateMktDepth'

    case 'updateMktDepthL2'

    case 'updateNewsBulletin'

    case 'managedAccounts'

    case 'openOrder3'

    case 'receiveFA'

    case 'intradayData'

    case 'tickString'

    case 'historicalData'

    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
