KakiQuant Project aims to provide an AI-ready toolkit for Quant developers and a minimalistic web interface for traditional traders to keep the pace of AI-Quant-Trading.
Features include:
- Datasource service that can provide completed financial data at low cost, and local Databases to enjoy low latency streaming
- Ready for AI, we will setup a framework where traditional ML toolkits, DNN-based solutions, and innovative models are introduced by Quant journals.
- Easy to use, we will finally provide high-level wrappers, such as flowcharts, that people can drag blocks and assemble a strategy.
This project is currently in the early stages, we are continuously adding more features and making the code base more robust. We will always maintain a publicly available branch for developers. In KakiQuant, you are able to find:
- Profitable Strategies
- Daily advice
- AI portfolio management
- More ...
- Datafeeding: Downloading, Cleaning, Reading, Updating
- Factor Analysis: Single Factor validation, Multi-Factor model, Barra, etc
- Basic ML: K-Means, Lightgbm, Gplearn, Graph Neural Networks, Hidden Markov Models...
- RL: Portfolio Management(MARL)
- DL: Time-series models
# We recommend you to create a conda environment in case of any incompatibilities
# Our code is developed on python3.10
conda create -n quant python=3.10
cd /path_to_Kakiquant
pip install -e . # For developers
The following is a list of some of the features. Expect to see this list grow as we continuously work on implementing new features!
- Similarity Klines to get the most correlated indexes to the target.
- Graph Neural Network to generate a list of the 10 most similar indexes
- Hidden Markov Model.
- Access the data through our Database
We value your contributions and strive to make the process of reporting issues as smooth as possible. If you encounter a problem or have a suggestion, please follow these guidelines to help us address your concerns effectively.
- Check Existing Issues: Before creating a new issue, please check already existing ones, to see if the issue or feature request has already been filed. Make sure to check closed issues as well.
- Gather Information: Collect as much information as possible about the issue. This could include steps to reproduce the problem, the version of the software you're using, and relevant configuration details.
- Attempt to Reproduce: If you encounter a bug, try to reproduce it consistently. If the issue is intermittent, provide details about how often and under what conditions it occurs.
-
Use the Issue Template: Determine what is wrong and why. Head to the issue section of this repository.
-
Describe the Bug/Feature: Clearly describe the issue you are experiencing or the feature you are proposing. Include any error messages, stack traces, screenshots, or other artifacts that would be helpful.
-
Steps to Reproduce: If applicable, provide a step-by-step guide on how to reproduce the bug.
-
Expected Behavior: Describe what you expected to happen when you encountered the bug.
-
Actual Behavior: Describe what happened. Include any error messages or unexpected outcomes.
-
Possible Solution: If you have an idea of how to fix the bug or implement the feature, suggest it here.
-
Additional Context: Add any other context about the problem or feature request here. This might include the impact of the issue, workarounds you have tried, or links to similar issues.
- Patience is Key: After you submit an issue, the maintainers will need time to investigate and respond. We appreciate your patience as we work to resolve your issue.
- Follow-Up: You may be asked to provide