Toomre Capital Markets LLC

Real-Time Capital Markets -- Analytics, Visualization, Event Processing, and Intelligence

MATLAB

Initial Discussions about Sample Summary of Google Image Search Results

This is being cross-posted to both the Toomre Capital Markets website and to Lars Toomre's personal website.

===========================================================================

Earlier this week, Lars Toomre broke up an LT post about Adding Images to Lars Toomre Website. Previously, buried at the bottom of that post, there was a hand-crafted HTML table summarizing what information currently was in Google Image Search for various combinations of site domain restrictions, safe search parameters and some typical search terms. That table is now presented in the LT post Sample Summary of Google Image Search Results and repeated here for easier reference.

Google Image Search (Row Title plus Safe Search Type plus Column Title) — Nov. 7, 2010 about 2 PM
Website Domain Safe
Search
(none) Toomre Lars Kyra Mary Blonde Blonde
Mary
site:toomre.com Strict 157 162 182 36 185 115 142
Moderate 188 178 182 21 170 124 142
Off 188 162 182 36 185 115 142
site:lars.toomre.com Strict 112 117 111 30 134 143 116
Moderate 145 117 132 30 134 143 136
Off 145 136 132 30 134 127 136
site:larstoomre.toomre.com Strict 89 83 89 7 79 68 61
Moderate 89 89 89 7 70 68 54
Off 89 89 83 8 70 68 54
site:www.toomre.com Strict 10 10 10 0 0 1 0
Moderate 10 10 10 0 0 1 0
Off 10 10 10 0 0 1 0

The public presentation of these search results has already resulted in several stimulating conversations heading off in numerous different directions. Let me try to summarize some of the issues that have been raised thus far and the broad categories that they might be grouped into. Each of these categories probably will receive additional attention in the coming days. They include:

Web Enabling MATLAB Analytics

Over the past several months, I’ve been working on several projects at Toomre Capital Markets LLC dealing with optimal ways of distributing results of calculations done in MATLAB. In previous posts, I’ve written about accessing and storing information from Excel and SQL databases. In this post, I want to look at distributing some of the results via web pages.

One approach that we’ve used is having a MATLAB routine run as a DLL called from an IIS web server. The webserver passes key parameters to the MATLAB routine. The routine then retrieves information from an SQL database, runs a set of analytical routines and stores the results back in SQL. The IIS server retrieves the results from the database and builds the webpage for the end users.

There is a lot that can be done using this methodology, but it can be complicated making sure that all the variables are properly mapped between Matlab, SQL, and the webpages. If you have an IIS server and an SQL Server up and running and have plenty of time, you can build a very powerful application this way.

2009 TCM Transition

As Toomre Capital Markets LLC ("TCM") starts the fourth quarter of 2009, we are cognizant that our consulting business is once again in transition. As it is sometimes said, as one door closes, another door opens. We are just not quite sure which door (professionally at least) might be opening.

For much of the past two years during the on-going credit crunch, the TCM staff has been working extensively with a major participant in the Life Settlements sector. We have used various pieces of the MATLAB mathematical modeling language together with Microsoft SQL Server relational data bases and ActiveX technology to create the calculation code for their customized portfolio management application. The resulting code is rather advanced.

This MATLAB-compiled code enables TCM's client to quickly price various individual life insurance policies and to help identify the risk/rewards in simultaneously managing several portfolios of such investments. It has moved the client away from the risks and confusion of large complicated Excel spreadsheets and onto a modern web-based platform. Alas, though, the heavy development work for that particular project is drawing to an end and we are now in the acceptance testing phase. There is unlikely to be any further enhancement work necessary until at least the code has been used in production for some time period.

Partly as a result, TCM has wondered where we should turn our attention to next. Should we turn to focusing our efforts on developing similar types of MATLAB-based code for other financial clients? Certainly there are many financial firms that enjoy the convenience and ease of data input into Excel spreadsheets. With time, though, many of these same spreadsheets become large, many times unwieldy and often contain inaccurate cell references in some of their formulae.

Depending upon the complexity of what information the spreadsheet is attempting to model, MATLAB often is an effective tool for tying together: the ease of that spreadsheet bring to data input and manipulation; easy access to data stored elsewhere in relational data bases; mathematical calculation of arrays (including good routines for various types of optimization); integration with tried and time tested C/C++ calculation libraries; and excellent visualization opportunities for understanding the results.

TCM is quite skilled in doing this advanced MATLAB development and integration work. (The reader might note the many posting on the TCM website about the term MATLAB and then appreciate why we receive so many visitors each day looking for information on such terms as ActiveX, Excel and MATLAB together.)

As we contemplated during the last few weeks which way to turn, Mathworks (the maker of the MATLAB product) contacted TCM about possibly working with a hedge of hedge funds that needed help with integrating some of their existing MATLAB models with their client-facing website. Could we help? It now appears that very shortly we will be starting an initial project focused on foreign-exchange investments.

Writing BLOBs from Matlab to SQL Server using ActiveX and Stored Procedures

Over the past few months, I’ve been working on a project that integrates sophisticated Matlab financial models with a Microsoft environment. Back in February, I wrote about writing from Matlab to Excel using ActiveX. Since then, I’ve been focusing on SQL Server and want to share those experiences.

The simplest way to access a Microsoft SQL Server from Matlab is to use the Database Toolbox. This toolbox allows for an ODBC or a JDBC connection to a database. Since our functions are running in a Microsoft environment, we went with an ODBC connection. The connection is very simple to open:

conn = database('ODBCdatasourcename','ODBCusername','ODBCpassword')

In our case, we would then ‘ping’ the connection to make sure everything has connected properly, and if not, return an error:

try
ping(conn) ;
catch ME
% insert error processing code here …
return;
end

We then execute our SQL and check the results

sql = ‘select a,b from c where d = 10’;
curs = exec(conn, sql) ;
curs = fetch( curs ) ;
NumRows = rows(curs);
if (NumRows < 1 )
% insert error processing code here about no rows returned
return ;
end

result = curs.Data;
for i=1:1:NumRows
if (~isnan(result{i,1}))
a{i} = result{i,1};
b{i} = result{i,2};
end
end
close(curs) ;
close(conn);

It has worked nicely for just about all of our needs. However, for speed and flexibility, we found it useful to use ActiveX for some of our database access.

Writing from MATLAB to Excel Using ActiveX

On a recent project we have needed to compare two versions of a complicated financial model. One is written in Excel and the other in Matlab. The model uses over 150 different input variables, so it can be a challenge to make sure that essentially the same variables are passed to both models. Today, I modified one of the routines to use ActiveX to send data from Matlab to Excel. The process was not easy to figure out, but once I figured it out, it is extremely straightforward.

Initially, we were using the Matlab command xlswrite. It is a quick and easy way to write data from Matlab into Excel. It uses a COM server, and can be a little slow, especially if you are making multiple calls. However, if you want to do anything more than simple reading and writing of data to a spreadsheet from Matlab, you need to start using the ActiveX server functionality that Matlab supplies.

Toomre Capital Markets February 2009 Update

Particularly in recent weeks, Toomre Capital Markets LLC ("TCM") has been extremely busy helping a client implement a custom financial application that is quite complex and truly a modern distributed system. The data, tools, work rules and analytics embedded within this new application are certainly cutting-edge and should help this client further extend their leadership in their particular sector of the financial markets. What is more, this new system should allow this client to truly take their business to the next level on a real-time basis with true Enterprise Risk Management.

TCM primarily assisted this client with some custom analytic code written in the MATLAB technical programming language that takes advantage of that specialized language's strengths with arrays and mathematical calculations as well as a quite powerful set of graphical user interface ("GUI") tools. Like the original Collateralized Mortgage Obligation ("CMO") code that Lars and Aldon wrote at Lehman Brothers more than twenty years ago, this new analytic code allows for the real-time pricing and sensitivity analysis of a relatively new type of cash flow that ultimately will be securitized should the securitization markets revive. The input variations to the analytic model are almost infinite and allow for the effective pricing of many variations of life insurance policies.

One of the noted strengths of the Toomre Capital Markets LLC team is helping our clients connect the hidden dots of financial information, risk management and structured finance modeling. We are especially good at uncovering and honing in on that crucial information or aspect of a financial model that is a key to value / risk determination. If the reader's organization needs some assistance in this area, with their financial models or specifically with detailed MATLAB financial modeling, please feel to contact us so that we might discuss your issues further. As the above client notes, TCM is particularly adept of dealing with those complex financial problems with lots of "hair balls."