Is OpenGamma a server or set of libraries

Hi ,

I started working with openGamme with the pretext that it would be a live server capable of handling a set of data analytics that i need.
Further it looks more like a set of libraries to create the server of my choice.
Am i right here.
If so , it would be of great help if someone can guide me through how to set a server based on analytics.

It’s both.

The real issue with getting a production analytics system is where the data is coming from. We have available commercial modules for Bloomberg, Activ Financial and Thomson Reuters as part of a holistic package for commercial customers and partners. One reason why these modules are commercial rather than open source components is because our 3rd part developer licenses for these services specifically prevent us from releasing code open source code that uses their proprietary APIs.

Additionally, all these modules require some kind of subscription to the relevant underlying data provider.

The pure open source release ‘OG-Examples’ package attempts to give users an idea of how the system operates when receiving real data by ‘simulating’ real-time data with random price movements on a fixed set of securities.

So does that mean you can’t use the system without a commercial contract? No. You are free to use these examples as a template to interface with your own data provider (the interfaces are quite straightforward) or to talk to us about using one of the commercial packages. But without knowing where your data is coming from it’s difficult to provide an out-of-the-box open source solution.

One thing that will help people such as academics and casual users with access to more disperate source of data (Excel files and so on), will be our forthcoming R integration. This lets you push data from any data sources you want into our engine and see results flowing out. We’re in the testing phase with the R integration now and it will be released in the next month or so as a full open source component.

I hope that helps.

Hello Jim ,

We wont be working with tick data , rather we will be working on daily close values.
This data is freely available via API’s like yahoo,google.
What i want to realize from openGamma is to do analytical processing on data for daily/weekly/monthly basis.
Analytic processing can be anything like finding moving average or some other mathemathical model.
Can you give pointers on where to start ?


Hi Vineeth,

I am interested in OG, if you have Skype please let me know


Hello henriqueo ,

Like you i am also trying to on board openGamma but then am not getting a clue where to start.
Am hoping @jim can give some pointers.


have skype?

yes - vm.vineethmohan

You mentioned that you wanted to do some time series analysis. Were you hoping to run the analytics library independently, or would it go through a complete loop (market data and analytics run through the engine)?

It would be through a complete loop.
Anyway to start with i am trying to understand analytics library and later move to the complete loop.


At the moment, the analytics library does not contain a great deal of time-series functionality (although this is something that will change in the future). It seems that any time series analysis falls into two parts; sampling the time series appropriately and performing the analysis. A possible path through the code to achieve this would be:

  1. Generate a schedule of dates using classes inheriting from (in the OG-Analytics project).

  2. Sample the time series data using this schedule using classes inheriting from (in the OG-Financial project, although it will be moved into OG-Analytics soon).
    Note the sampling functions do not take holiday calendars into account, although this is something that is being worked on now.

  3. Perform the analysis on the sampled time series. As mentioned above, we don’t have much in the way of time series analysis, so the likelihood is that this is a piece of code that you would have to write. Examples of how the code could be structured can be found in the com.opengamma.math.statistics.descriptive package, which take an array of data and perform simple statistical analysis (e.g. standard deviation) (which wraps the aforementioned functions to allow a time series to be supplied directly). It’s also worth looking at com.opengamma.math.statistics.descriptive.StatisticsCalculatorFactory - this is the preferred method for actually getting a hold of these calculators. It might seem like a bit of overkill, but the code is structured like this to allow easier use from the engine (see 4). String labels mapping to a static instance mean that there does not need to be one engine function for every calculator available in OG-Analytics - we can simply use these labels as ValueRequirementNames and so can use an arbitrary number of calculators from one engine function.

  4. Again, there is no specific time series analysis engine function. It’s a simple addition to the library, however, and I plan to add it within the next day or so. When it’s in, I’ll post again pointing you to it.

Incidentally, if there is something that you think would be a good addition to the analytics library, then you could post an issue in our Jira.


Thanks Elaine for taking your time to explain the whole process to me. It helped me a lot to understand the system.