The most important goals for FinanceAI are:
  • Create a complete and easy to use platform for design, testing and execution of automatic trading algorithms
  • Create libraries for Quantitative Finance, Mathematics, Statistics and Artificial Intelligence applied to Finance
  • Deliver sub-second real time performance for the whole pipeline for simple algorithms

Automatic trading platform

It should be possible to create automatic trading algorithms, from the initial idea to the final implementation in an easy way. These algorithms usually are composed of many components, a main workflow of selection of instruments, valuation of instruments based on certain information, capital allocation, static (initial) and dynamic trading plans, how to respond to concrete phenomena, determine risk analysis criteria, etc. All of these tasks should be easy to do. A complete algorithm should take an amount of code in the hundreds of lines. the level of abstraction of the supporting libraries and tools should be high enough to be able to check indicators with a couple of lines, to test for risk conditions with a few lines, or to create events to respond to risk with a minimal amount of code. Creating automatic trading algorithms should be very easy.

Support libraries

The architecture must be very generic, but also it should be possible to optimize it for performance, for example, in message passing. The libraries should include everything necessary to satisfy the first objective, including the usual financial libraries, to calculate features for technical and fundamental analysis, and for modeling and pricing of common financial instruments. Also the more powerful mathematical, statistical and artificial intelligence methods should be available, and easy to use without being an expert.


There are strict time constraints. If a tick in a financial market is every second, then the whole system has to run each step in less than one second (from data gathering to order emission). It would be appropriate to aim for .5 second execution. And keep increasing the number of variables and algorithms until that limit is reached. Later, the number of machines can be increased. The amount of resources required should be approximately linear. The more values analyzed, or the more algorithms executed, the more processing power and data storage that is necessary in a linear way. Machines should be very independent, the same way that algorithms are mostly independent, and financial instruments are also mostly independent.

These are explicitly not goals of FinanceAI for now:
  • High performance AI, mathematical or financial libraries. They are more likely to be used offline. Online algorithm execution should be fast, but this libraries are not likely to be used online
  • Interfaces with data suppliers. FIX protocol implementation
  • Interfaces with brokers
  • Rich and customizable client UI
  • Internationalization
  • Custom syntax for the creation of trading algorithms, or any other method apart from writing code
  • Integration with commercial packages
  • Execution in multiple platforms, in particular in platforms other than Windows and .NET

Last edited Nov 15, 2008 at 10:45 PM by JavierTordable, version 3


No comments yet.