Our focus is on quantitative programming and we use high level mathematical programming software for both prototyping and, depending on your needs, final delivery. Our preferred languages are MATLAB for mathematics and R for statistics.
We deliver source code and, where applicable, compiled binaries with our results. This means that you can implement the code at your site and extend it yourself (or pass the work onto our competitors if you wish).
Our code can be integrated into your site in any way you desire. We can deliver stand-alone applications, DLLs, or Excel plugins.
MATLAB is a powerful mathematical programming language that provides the quickest way to implement our algorithms. It also has a massive worldwide user base amongst mathematicians and engineers and there is a large existing library of freely available algorithms to draw on. Using these resources we can sometimes implement sophisticated models in just a few hours.
MATLAB code can be compiled into fairly speedy binary code so that you can use it without having to buy a copy of MATLAB. This involves installing a 400 megabyte runtime engine at your site. There is no charge for the engine (MATLAB itself costs a few thousand dollars but you don't require it)
R is a powerful statistical programming language that is similar to MATLAB but is aimed specifically at statisticians. It is a free open-source package that has a massive user base including financial institutions. It also has large existing library of freely available algorithms to draw on.
There is limited ability to compile R code into binary so it may not be as quick as MATLAB in some cases and it does not have deployment flexibility. Usually we would install R in your environment. This is free, however.
Weka is another open soure free Machine Learning software from New Zealand. It is available from the University of Waikato.
Python is sometimes a useful alternative to R for some purposes such as Machine Learning and Data Science applications. We use whatever works best for your application
SAS Jmp (not to be confused with SAS) is a menu-driven statistical package. It can be used without programming and is quite a good step up for Excel users who want to do some Statistics.
For absolute speed FORTRAN followed by C++ are the best choices. But these are low level programming languages and development time is much greater than for MATLAB and R. We would usually prototype code in MATLAB first to get it working before converting it to C++ or FORTRAN.
C# is a little slower than C++ for mathematics but C# is increasingly being used by financial institutions for application development and we can deliver C# code. We have combined C++ DLLs with C# for some clients in order to speed up some algorithms so the speed of C# should not be a hindrance.
We can write C++ plugins for MATLAB and Excel and for any application (such as a trading platform) that you may be using.
Mathematica, Maple are symbolic mathematical languages that can do, for example, algebra. We would mostly use these packages in-house and not to deliver results to users since the packages require a high level of training. But they can deliver code that can be converted into a binary form for end users.
The advantages of these packages are their power to develop algorithms and their large user base and available code.
Data management is an important issue for financial institutions where huge amounts of data may need to be stored. We can write SQL code and all of our deliverables can work with SQL databases.
We have a lot of experience with concepts specific to financial data such as prices and holdings and the tricky stuff such as dates and intra-day dates.
Where possible, we use third party libraries since these are always priced to be more cost-effective than writing our own. Optimisation libraries are too complicated for small companies to develop their own and third party libraries are essential.
We can incorporate any optimisation library and have experience with LINDO and Mosek. We use matrix libraries for all our low level matrix programming whether C++, FORTRAN, or C#. Our favourite is the IMSL library which we have been using for nearly three decades.