The QUSMA Data Management System (QDMS) is a client/server system for acquiring, managing, and distributing low-frequency historical and real-time data, written in C#.
The server acts as a broker between clients and external data sources, as well as a local storage of historical data. The server UI allows its use without the need for a client application. Here's a rough view of how the systems are connected to each other.
A client library is provided which can access the server either locally or over a network, to request data, metadata, etc. A simple sample application showing usage of the client can be found here.
QDMS uses MySQL for storage, ZeroMQ and Protocol Buffers for client/server communications, MahApps.Metro for the interface, and ib-csharp to communicate with IB's TWS.
If you wish to contribute, fork the repo and send a pull request with your changes.
For bug reports, feature requests, and general discussion please use the google group.
- Manages metadata on stocks, options, futures, CFDs, etc.
- Downloads historical and real time data from external data sources.
- Local storage of historical data.
- Constructs continuous futures data.
- Schedule automatic data updates.
- CSV import/export.
- Instrument metadata.
- The main server interface.
- Adding a new instrument from IB.
- Importing CSV data.
- Editing futures expiration rules.
- Continuous futures options.
- Yahoo
- Interactive Brokers
- Quandl
- A reasonably recent version of MySQL.
- .NET 4.5
- Constructing low-frequency bars from higher frequency data.
- Support for more data sources.
- Support for fundamental data.
- Alternative (binary files) storage mechanism for tick data.
- Some sort of market-wide "snapshot" functionality.
- Far wider test coverage.
- Proper docs.