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 and MahApps.Metro for the interface.
- 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.
Windows | Linux (planned for 2.0) |
---|---|
Data Source | Historical Data supported | Real Time Data supported | Verified and Tested |
---|---|---|---|
Yahoo | ✅ | ❔ | |
Interactive Brokers | ✅ | ❔ | |
Quandl | ✅ | ❔ | |
FRED (Federal Reserve Economic Data) | ✅ | ❔ | |
BarChart | ✅ | ❔ | |
Bloomberg | ✅ | ✅ | ❔ |
OpenECry | ✅ | ✅ | ❔ |
ForexFeed | (not implemented yet) | ✅ | ✅ |
Feel free to add a new data service that you're missing. Please make a pull request when you're finish.
- MySQL/MariaDB or SQL Server (2008+)
- Windows Client
- .NET 4.5 (.NET Core support planned)
Take a look at Roadmap, the github issues and the milestones.
If you wish to contribute, you can easily fork the repo and send a pull request with your changes. Try to send pull requests that are dealing just with one topic. In case you recommend a bigger changes (like general architecture changes), please create an issue for that and we can discuss the best way of doing it.
For bug reports, feature requests, and general discussion please use the github issue list for this fork.
This is a fork of the QDMS from QUSMA. In general, my plan was not to make my own fork. I would gladly see my changes in the origin fork. But the fact that QUSMA seems to be dead forced me to make my own fork. I wanna help to build a community around the QDMS project.
My major changes to the origin fork are:
- refactoring, splitting logic to separate assemblies (to make it more flexible to the individual need)
- adding new data sources.
- minor improvements.
- see also github issues list
Please send all your feedback / bug report etc. via the GitHub Issues list.
This project is still licensed on the origin license from the QDMS project from QUSMA.