Tuesday, 29 January 2013

Open Source Financial Trading Software

Some time in early 2012 an open source project Lodestone Foundation was backed by Deutsche Bank. In September, 2012 FT let it know to ones who missed the news earlier.

The initiative is quite interesting and it split finance professionals in two camps - ones who believe that this is the way to go and their counterparts who think it would never happen.

I've looked for any existing and more or less active projects in this space. This is what I found out so far:

1. OpenGamma (Java, R, .Net and REST APIs, Tools for MS Excel)


The OpenGamma Platform provides both buy-side and sell-side firms a rich set of features, including trade data management, live risk alerts, and sophisticated, dynamic Excel integration.


2. QuantLib (C++)


QuantLib project is aimed at providing a comprehensive software framework for quantitative finance. QuantLib is a free/open-source library for modeling, trading, and risk management in real-life. 

Possibly this is the most popular project at the moment, there are signs that it's quietly used by many quant developers in their day-to-day work.


3. Open Heartbeat (probably C/C++)


Open Heartbeat is a lightweight data distribution system designed primarily for collecting and distributing rapidly changing price quotes for stocks, securities or other distributable data sets.

The core component is a reusable library which manages all communication, synchronization  caching etc., which can be linked into applications that create or, more commonly, consume data.

Primarily aimed at the financial sector, as a way to distribute rapidly changing stock quotes etc., this system can be used for any application that needs to distribute volatile data sets reliably and efficiently.

This suite includes a sample feed handler for Yahoo financial data. Use of the data provided by this service is subject to the terms and conditions of the Yahoo real time stock quote service.

The library offers very efficient operation (~10,000 updates per second), redundant paths and automatic error recovery and reporting.

4. Eclipse Trader (Java)


EclipseTrader is an  Eclipse Rich Client Platform (RCP) application focused on the building of an online stock trading system, featuring shares pricing watch, intraday and history charts with technical analysis indicators, level II/market depth view, news watching, and integrated trading. 

The standard Eclipse RCP plug-ins architecture allows third-party vendors to extend the functionality of the program to include custom indicators, views or access to subscription-based data feeds and order entry.


5. QuickFX/J (Java)


The Financial Information eXchange (FIX) protocol is a messaging standard developed specifically for the real-time electronic exchange of securities transactions. FIX is a public-domain specification owned and maintained by FIX Protocol, Ltd (FPL).

QuickFIX/J is a fully featured messaging engine for the FIX protocol. It is a 100% Java open source implementation of the popular C++ QuickFIX engine.


6. Premium Markets (Java)


Premium Markets is an automated financial technical analysis system. 
It implements a graphical environment for monitoring financial technical analysis major indicators and for portfolio management.

In its advanced packaging (not provided under open-source license) it also includes :

  • Screening of financial web sites to pickup the best market shares, 
  • Forecast of share prices trend changes on the basis of financial technical analysis, (with a rate of around 70% of forecasts being successful observed while back testing over DJI, FTSE, DAX and SBF), 
  • Back testing and Email sending on buy and sell alerts triggered while scanning markets and user defined portfolios.


7. ojAlgo (Java)


ojAlgo is Open Source Java code that has to do with mathematics, linear algebra and optimization  Its feature set make it particularly suitable for use within the financial domain.

8. EWaveTrade (C++, MFC, Visual C++ Compiler)


EWaveTrade is a tool to aid in the process of analyzing market price data using the Elliot Wave Theory, particularly applying the concepts and principles developed by Glenn Neely. The book "Mastering Elliott Wave" by Glen Neely is recommended for both potential developers and users of this software.

9. QChartist (Qt, Basic)


QChartist is a free charting software designed to do technical analysis from any data. The program is written in Basic language.

10. jFin (Java)


Pure Java lib that provides:
  • Date adjustment
  • Schedule generation
  • Day count fraction calculation

11. ActiveQuant (Java, ActiveMQ, HSQL)


ActiveQuant is an entire framework to backtest and run automated trading systems. This project is an open source project, but is not a free software, it is provided free of charge to academics and hobbyists.

12. Akutan (Java)


Akutan is an open source finance project working in the asset allocation, portfolio analysis arena of financial informatics. For the most part it stays away from instrument valuation and market models given that there are several other projects dedicated to that space, e.g. quantlib.

13. Net Positions


Net Positions allows to receive current and historical data about net positions(*) and opened on the futures market (info is taken from 'Commitments of Traders' weekly report). 

(*) net position is the difference between total open long and open shot positions.


14. Credit Analytics


CreditAnalytics is a full-featured financial fixed income credit analytics, trading, and risk library, developed with a special focus towards the needs of the credit products community. In particular, CreditAnalytics provides analytics to value liquid products (CDS, CDX, CDO, and bonds of all types and variants) and standard index/custom products (single credit forwards and options, and portfolio credit forwards, options, tranches, and other structures).


15. FpML



FpML® (Financial products Markup Language) is the open source XML standard for electronic dealing and processing of OTC derivatives. It establishes the industry protocol for sharing information on, and dealing in, financial derivatives and structured products.

The standard is developed under the auspices of ISDA, using the ISDA derivatives documentation as the basis. As a true open standard, the standards work is available to all at no cost and open to contribution from all. There is no membership requirement.

The standard evolution and development is overseen and managed by the FpML Standards committee, following W3C rules of operations guidelines.


16. Kooderive


The objective of this project is to create a library of code for pricing financial derivatives products using CUDA to achieve GPU programming.

Tuesday, 22 January 2013

Guidelines for Business Requirements Document

Trying to avoid thick Business Requirements Document (BRD) together with Functional Specification Document (FSD) as well as to shorten the time frame needed for preparing both of them, I compiled a document template that happened to be quite useful in a number of projects.

The idea is to take business project participants away from long verbal, and sometimes even inconsistent and confusing, descriptions and let them get concentrated on four basic models that clearly define what and how a new system should do. The models are:

- Use Case Model
- Domain Model
- Workflow Model, and
- GUI Model

On top of these four models, a development team would build an IT Model (or Implementation Model). Basically, these four models help to align Business Model with IT Model avoiding possible misunderstandings in communication between business analysts, software developers and system testers.

Document template could be downloaded here.

Wednesday, 9 January 2013

Who would provide Mobile Services for The Enterprise?

B.Y.O.D. is now an important part of an urban lifestyle description. Thanks to powerful mobile devices, online shopping (aka eCommerce) caught its second wind (look at Australia for example). Brick and mortal retail stores are getting obsolete, warehouses nearby large cities became hot properties. Rumors say that small businesses in Europe are happy to pay 2-5K Euros to teen developers for opening their own internet shops. Online payment services flourish. Clearly mobile networks are getting busier than ever (no refs to telcos income numbers). But what happens in the Enterprise?

Well, apparently biggest consumers of IT services, banks and telcos (no idea about military and aeronautics), don't have an access to their systems from mobile devices standardized yet. Yes, there are BlackBerries, iPhones and Androids with their connections to corporate Outlook Exchange servers, something that existed for quite awhile with no major upgrades. Now it looks even a bit ugly when people keep in their pockets two phones - one corporate BlackBerry and a personal 'iDroid'. How long is it going to stay this way? What do enterprise people need?

The Enterprise needs its own 'eCommerce' - synchronized data (mails, documents, etc - you name it), visual monitoring of various kinds that would help to replace every day email tsunamis, highly secure access to core functional services for those who are on-the-go or on-the-meeting. They need James Bond kind of things demonstrated in latest movies with Daniel Craig. The question is - who could deliver such services?

There are three major players in this space - Apple, Google and Microsoft. I'm not sure what's happening in China and Japan, they might have their own ones. There is also Samsung but I don't think that it could be listed here. Samsung is a good hardware producer but without its own OS and integration software it cannot compete with three from above.

To make a long story short, I would not go through what Apple and Google already have and what they may offer for this in near future. I think that Microsoft has all the chances to be a favorite again. Why? Because:

1. The Enterprise uses Windows desktops and it will continue to do that.

2. Windows Server is slowly becoming a standard platform for back-end processing. Yes, Microsoft dropped the ball at the server-side space and couldn't pick it up for a decade or so. That's probably why Linux became so popular. But Microsoft learnt its lesson - look at Windows Server 2012, check what and how it does. It is not that bad at all. I worked with Linux since late 90s and last two years spent using both Linux and Windows Servers, I don't really see any advantages of using one over the other except for the license cost and security.

3. Microsoft has its own mobile touch screen. Yes, iPad looks great, I completely agree with that, I love Apple devices and use them everywhere except my work. As the matter of fact, Apple taught people to use touch screens, all generations apparently. Now Microsoft made similar device but practically better - it comes with a keyboard. It doesn't look that sexy yet, just give it a time.

4. Microsoft has its own mobile OS. Well, it's comparatively new and hasn't become popular yet. But people will get used to it. The Enterprise will do its thinking and allocate the budget...

5. Microsoft has its own Cloud.

6. And it has Windows Intune to manage all listed above.

It seems that Microsoft has a complete technology stack to make 'James Bond' real in a company even if its employees travel 100% of their time. And the number of employees doesn't really matter.

I wonder if it's time to buy Nokia shares, their price is amazingly low at the moment... Is anyone up for a Jim Rogers kind of investment?

Online Encyclopedia of Statistical Science (Free)

Please, click on the chart below to go to the source: