The QUSMA Data Management System (QDMS) is an application for acquiring, managing, and distributing low-frequency historical and real-time data, written in C#.
QDMS uses a client/server model. The server acts as a broker between clients and external data sources. It also manages metadata on instruments, and local storage of historical data. Finally it also functions as a UI for managing the metadata & data, as well as importing/exporting data from and to CSV files. Here's a rough view of how the systems are connected to each other.
A simple sample application showing usage of the client can be found in the SampleApp project.
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.
- 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
- Continuous futures.
- 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.