{"id":29124873,"url":"https://github.com/eracle/openquantkit","last_synced_at":"2025-06-29T21:07:15.049Z","repository":{"id":297580507,"uuid":"997234396","full_name":"eracle/OpenQuantKit","owner":"eracle","description":"OpenQuantKit is an open-source pipeline for stock analysis and portfolio management. Includes ticker selection, data validation, fixing, model tuning, forecasting, and portfolio balancing—all in a modular, notebook-friendly workflow.","archived":false,"fork":false,"pushed_at":"2025-06-14T12:20:13.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-14T12:34:19.852Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eracle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-06T07:19:21.000Z","updated_at":"2025-06-14T12:20:16.000Z","dependencies_parsed_at":"2025-06-06T08:39:48.988Z","dependency_job_id":null,"html_url":"https://github.com/eracle/OpenQuantKit","commit_stats":null,"previous_names":["eracle/openquantkit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eracle/OpenQuantKit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eracle%2FOpenQuantKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eracle%2FOpenQuantKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eracle%2FOpenQuantKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eracle%2FOpenQuantKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eracle","download_url":"https://codeload.github.com/eracle/OpenQuantKit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eracle%2FOpenQuantKit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262667296,"owners_count":23345534,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-29T21:07:12.146Z","updated_at":"2025-06-29T21:07:15.037Z","avatar_url":"https://github.com/eracle.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧠 OpenQuantKit\n\nThe open-source data pipeline toolkit for modern quant research.\nClean data. Modular pipelines. Real financial signals.\n\n📈 What is Open Quant Kit?\nOpen Quant Kit (OQK) is an open-source, modular data pipeline framework designed for developers, analysts, and researchers who want to work with financial data the right way.\n\nIt connects real-time and historical market data to a clean, extensible analytics stack using tools like Dagster, dbt, and Python. From ingestion to transformation to dashboard-ready metrics — everything is reproducible, inspectable, and built for scale.\n\n🔧 Features\n✅ Modular pipelines powered by Dagster\n\n✅ Clean transformations using dbt\n\n✅ Support for price data, earnings, filings, and more\n\n✅ Easy local setup with DuckDB / CSV\n\n✅ Plug-in ready architecture for indicators, signals, and strategies\n\n✅ Compatible with Streamlit, Jupyter, and backtesting frameworks\n\n✅ Ready for cloud or local deployment\n\n💡 Why Use It?\nMost quant projects start with messy CSVs and brittle scripts.\nOpen Quant Kit gives you a clean slate, structured flow, and modular power — without the enterprise price tag or bloat.\n\nWhether you're:\n\n🧑‍💻 Building your own quant system\n\n🎓 Working on a finance/data science thesis\n\n🧠 Testing new indicators\n\n🚀 Launching a new fintech tool\n\n...OQK gives you a real data foundation with zero vendor lock-in.\n\n---\n\n## 🚀 Features\n\n1. **Input Tickers**\n   - Define custom ticker lists based on sectors, indices, or personal criteria.\n\n2. **Efficient Data Loading**\n   - Automatically fetch and cache only the most recent stock data.\n   - Prevents redundant downloads to optimize performance.\n\n3. **Data Validation**\n   - Detect and report missing or anomalous values.\n   - Ensure a sufficient historical window for accurate analysis.\n\n4. **Data Fixing**\n   - Interpolate missing data points.\n   - Identify and correct outliers.\n   - Optionally drop unreliable tickers.\n\n5. **Hyperparameter Search \u0026 Tuning**\n   - Perform automated hyperparameter optimization (e.g., Prophet).\n   - Store configurations and results for auditability and reuse.\n\n6. **Final Model Training**\n   - Train forecasting models on cleaned, validated datasets.\n\n7. **Forecasting**\n   - Use Prophet to forecast future stock behavior.\n   - Identify stocks with a low probability of underperforming over a defined horizon (e.g., 2 years).\n\n8. **Secondary Ticker Selection \u0026 Portfolio Construction**\n   - **Step 1: Forecast-Guided Selection**  \n     Use probabilistic forecasts to identify a shortlist of \"winning\" stocks—those with high confidence in outperforming their current price over the investment horizon.\n   - **Step 2: Greedy Portfolio Expansion**  \n     Apply a **greedy algorithm** to iteratively build a diversified portfolio.  \n     At each step, add the stock that most reduces overall portfolio variance.  \n     Favor assets that are negatively correlated (or weakly correlated) with existing holdings.\n   - **Step 3: Hierarchical Portfolio Construction**  \n     Build the portfolio bottom-up, balancing risk and return.  \n     Prioritize anti-correlated assets to increase robustness and minimize drawdown potential.\n\n9. **Portfolio Balancing**\n   - Allocate weights based on model insights and risk minimization strategies.\n\n10. **Portfolio Difference Analysis**\n    - Compare current allocations to target allocations.\n    - Identify required trades to rebalance effectively.\n\n11. **Trade Logging**\n    - Maintain a history of executed trades and portfolio states for backtesting and review.\n\n---\n\n## ⚡ Quickstart\n\nInstall the dependencies and update price data locally:\n\n```bash\npip install -r requirements.txt\npython -m oqk.update_data\n```\n\nOr run the same command inside Docker:\n\n```bash\nmake compose\n```\n\nThis builds the container and runs the data update script.\n\n## \\ud83d\\udd2e Tests\n\nRun the unit tests with:\n\n```bash\nmake test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feracle%2Fopenquantkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feracle%2Fopenquantkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feracle%2Fopenquantkit/lists"}