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 database 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 or SQL Server 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.
- Manage metadata on stocks, options, futures, CFDs, etc.
- Download historical and real time data from external data sources.
- Local storage of historical data.
- 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
- FRED (Federal Reserve Economic Data)
- Google Finance
- MySQL/MariaDB or SQL Server (2008+)
- .NET 4.5
- Excel plugin.
- 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.
- Proper docs.