mirror of
https://github.com/wangzhe3224/awesome-systematic-trading.git
synced 2026-07-28 11:17:46 +00:00
Compare commits
277 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5b5e87885b | |||
| 69cee9ec2f | |||
| 8e28f49389 | |||
| 9481ab8c34 | |||
| d9ea88be12 | |||
| feebf33ffe | |||
| 0d291798d6 | |||
| 983dc05710 | |||
| e5571c9577 | |||
| f1874d96cc | |||
| 02b43231b8 | |||
| cddb912d4a | |||
| 197c208f5b | |||
| e0d362ad7b | |||
| f127fcf6b9 | |||
| ad24b3aa5d | |||
| c5c6501e88 | |||
| 8e2078d05f | |||
| ed47d9d32d | |||
| ba94d94365 | |||
| 5a4951514d | |||
| 283da66561 | |||
| c7dff6b4be | |||
| 53cc081d7c | |||
| 04fbaab3ee | |||
| 7c786cecdb | |||
| d545851d53 | |||
| 1efa72d06c | |||
| ececd66e7d | |||
| b26d08cfe1 | |||
| 5da8879d11 | |||
| 241f5a05e5 | |||
| f16af2a9eb | |||
| 385ef7165f | |||
| 120d625510 | |||
| dbf39e488b | |||
| 4267ac74a2 | |||
| a480d9b218 | |||
| bbb0116f34 | |||
| a082f395f8 | |||
| 9615973c68 | |||
| 0250dd0e7e | |||
| 3cd344fbc4 | |||
| 78e637dc2e | |||
| 8c784c9369 | |||
| adde612ade | |||
| 339a4dd482 | |||
| 1633aee1e9 | |||
| 6685d1bf44 | |||
| fa002bf653 | |||
| ed2def7e0b | |||
| fb04ca14f0 | |||
| daebb307ff | |||
| dfbc002b7b | |||
| 666a1acd13 | |||
| 45aa59e567 | |||
| 59b1338fab | |||
| ff4eb591e3 | |||
| 133aa7d9e8 | |||
| 56c34276ec | |||
| 709976717d | |||
| 63fc0b4a83 | |||
| 54343df1ff | |||
| 4df4ef1734 | |||
| 0427066f97 | |||
| 5e8baf8451 | |||
| b1e4db6e84 | |||
| c65b69d45e | |||
| 625413dd69 | |||
| a8afd10eb4 | |||
| 165ba7896f | |||
| 487a8b4cde | |||
| bae2d84b88 | |||
| 20fda526a1 | |||
| b50c57b6dd | |||
| d3f8a48798 | |||
| 307da39305 | |||
| 3f9ba2425d | |||
| 33aa1f653b | |||
| 2db165424d | |||
| eb01760258 | |||
| 2d8d501829 | |||
| 07ea6151ce | |||
| cb59bb35fb | |||
| c2668484cc | |||
| 9cbb64ff2c | |||
| bcab2f4565 | |||
| 2e1ce43ba0 | |||
| 3a4627ef62 | |||
| f47cce0033 | |||
| 5bfcaa3d0d | |||
| 29b3aafe25 | |||
| 36126e7f27 | |||
| 19d07acc9f | |||
| 6cbb3e8b2d | |||
| 4804186b1e | |||
| 0bcf3c31fa | |||
| e3b3f78e64 | |||
| 9ee964b832 | |||
| fbba932305 | |||
| 06361c64d0 | |||
| 74a76762c5 | |||
| bd65405d4a | |||
| 58e80f680c | |||
| f5cd607855 | |||
| 517cfe2984 | |||
| 16f215d453 | |||
| f469f4a8a3 | |||
| aeefde1838 | |||
| 14956a1808 | |||
| a0523d50fe | |||
| 5b711a6d71 | |||
| bf967c8379 | |||
| 004786d534 | |||
| a6b2fbf0d1 | |||
| 3b7c748b67 | |||
| 3e0b902e11 | |||
| 111400a821 | |||
| 334dd70a69 | |||
| 270983c5a9 | |||
| 6a1aaf25fc | |||
| c06f681a37 | |||
| 9fc6befaa0 | |||
| 05ec8f23d0 | |||
| 5b700aadd3 | |||
| 48f21e5ab0 | |||
| e36022d5bd | |||
| d6c24f7d41 | |||
| 216fbd3b26 | |||
| f794828fc3 | |||
| cb6e145721 | |||
| c454fdf95a | |||
| bb268e0b69 | |||
| 81a1b764a9 | |||
| eb89a83e0d | |||
| 92fa9bd9d5 | |||
| acd43ed123 | |||
| 82bd40ce5c | |||
| 7d24a53b06 | |||
| 2c78060191 | |||
| cee8dd714f | |||
| e052f71df1 | |||
| 7bafec26db | |||
| 2cfdeef676 | |||
| b70503c7cc | |||
| 6f9d302556 | |||
| 6b00158b4b | |||
| 4665a36713 | |||
| 491efa3356 | |||
| afd39a59b8 | |||
| 97a7797ecc | |||
| 7c1f885f19 | |||
| 26c7dbe2aa | |||
| 5eaed8876c | |||
| 67849fc528 | |||
| 38fe1db474 | |||
| bc48c4650c | |||
| 9be21a16aa | |||
| f0cb70ed40 | |||
| 14b67044c5 | |||
| 2e75064ad1 | |||
| de4be031fd | |||
| d9dafdd7a8 | |||
| afff47592c | |||
| 1c0bc68c47 | |||
| b41ce0c500 | |||
| 8641f943a1 | |||
| f154d29204 | |||
| 70e5c18afe | |||
| a7a7c27ecd | |||
| 327a8dd1e1 | |||
| 946215318b | |||
| 4a1cba1ecf | |||
| ec9885577f | |||
| 7eed5e28f1 | |||
| 5fc2cdaaa0 | |||
| e891783960 | |||
| 779c0a0842 | |||
| 90573954a9 | |||
| 81b2524ffd | |||
| 4b20e8bf60 | |||
| f42cad760e | |||
| 60a6941677 | |||
| 016c4cae21 | |||
| ce685d90f0 | |||
| 3102b5ba10 | |||
| 59a743b080 | |||
| a456e54585 | |||
| e6d2999f6b | |||
| 5f41c1b966 | |||
| 3f43ba727f | |||
| 6e1eb2df7d | |||
| 719f08c64c | |||
| 0d571bb46a | |||
| fcb78875db | |||
| e94576942e | |||
| 0133dccbf8 | |||
| 16637dc479 | |||
| 64abd31d31 | |||
| 36f5861893 | |||
| 7ad006d10e | |||
| d0f51ad2eb | |||
| 6ba50d9bb5 | |||
| 3c41c3befd | |||
| e0b13fde9f | |||
| 4740ca99c9 | |||
| a1d9335f9d | |||
| 0e4662443b | |||
| 9d0c0a028a | |||
| 5b0cbc92ab | |||
| 1817d8cfa2 | |||
| 770272b900 | |||
| 3854afb580 | |||
| b72fe479c2 | |||
| bbbbdafe86 | |||
| 8e336910d7 | |||
| 0d7bcf2345 | |||
| 7a32c1f335 | |||
| 940703399a | |||
| 04b28a2c0c | |||
| 69f050eb79 | |||
| 282c0fdd0c | |||
| d0d4ce796e | |||
| 022fe99409 | |||
| 17b6950c53 | |||
| e5fd179316 | |||
| 179c02d79b | |||
| 0fd4e74ac8 | |||
| 7cf56d393c | |||
| 878f4e5e53 | |||
| a04a0a9260 | |||
| 8837c6757d | |||
| 18d4cc2537 | |||
| cbe1935928 | |||
| 1111a932f5 | |||
| 9e9c58d3fb | |||
| abab21bd6b | |||
| 57aae0d654 | |||
| ac9815abde | |||
| 5945965867 | |||
| 31bd0c9480 | |||
| 0d4d4f8fb1 | |||
| 78365beafb | |||
| 202a9bba67 | |||
| e6df37cbec | |||
| 71482d84fa | |||
| ba0fe3589f | |||
| eb19c2ea69 | |||
| bb6d2cd90a | |||
| da6f7fc9d1 | |||
| feca0caff7 | |||
| 4b6eaa7d03 | |||
| 4f4cb662e6 | |||
| 5f5fc386d4 | |||
| 388d9406a2 | |||
| 01c0cb2bdd | |||
| 73e2005a86 | |||
| 46b45bbe2e | |||
| 743b8087ec | |||
| f3ce20c307 | |||
| ec521e4d25 | |||
| c2707b01f0 | |||
| 204672d068 | |||
| dcf8c7ed36 | |||
| ce75f0249f | |||
| ba5d846fe6 | |||
| 8118a13d8f | |||
| acc34e856b | |||
| ee53bec6c9 | |||
| 0ca8d6611b | |||
| 9f8d024794 | |||
| 7dac693ab8 | |||
| 6219829f79 | |||
| 3dd41f8d00 | |||
| 3a48bbf1be | |||
| bd41d33881 | |||
| a4361769e0 |
@@ -0,0 +1,3 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: [wangzhe3224]
|
||||
@@ -0,0 +1,16 @@
|
||||
name: ci
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.x
|
||||
- run: pip install mkdocs-material
|
||||
- run: mkdocs gh-deploy --force
|
||||
+179
@@ -0,0 +1,179 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
cover/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
# For a library or package, you might want to ignore these files since the code is
|
||||
# intended to run in multiple environments; otherwise, check them in:
|
||||
# .python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# poetry
|
||||
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||
# commonly ignored for libraries.
|
||||
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||
#poetry.lock
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# pytype static type analyzer
|
||||
.pytype/
|
||||
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
|
||||
# PyCharm
|
||||
# JetBrains specific template is maintainted in a separate JetBrains.gitignore that can
|
||||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||
#.idea/
|
||||
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Zhe Wang
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,552 @@
|
||||
# Awesome Systematic Trading
|
||||
|
||||
> or Quantitative Trading + a bit data science infra
|
||||
|
||||
[](https://awesome.re)
|
||||

|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Star History
|
||||
|
||||
[](https://star-history.com/#wangzhe3224/awesome-systematic-trading&Timeline)
|
||||
|
||||
[希望阅读中文版?点我](./Readme_cn.md)
|
||||
|
||||
[Interested in systematic trading? Check QuantBox](https://quant.funcoder.net/)
|
||||
|
||||
A curated list of awesome libraries, packages and resources for Systematic Trading (Quantitative Trading)
|
||||
|
||||
> Open access: all rights granted for use and re-use of any kind, by anyone, at no cost, under your choice of either the free MIT License or Creative Commons CC-BY International Public License.
|
||||
|
||||
How do we pick the projects?
|
||||
|
||||
- Fit in Systematic Trading / Quantitative Trading domain
|
||||
- Good coding style and software architecture
|
||||
- (Optional) Under active development
|
||||
- (Optional) Reasonable test coverage
|
||||
|
||||
Overall, I tend to pick decent or promising libraries that closely related to systematic trading instead of including as many libraries as possible.
|
||||
|
||||
**Please raise a PR if you found some good fit projects for this repo or remove some outdated projects. Thanks!**
|
||||
|
||||
Search page by languages you are interested in to find related libraries. For example: `Ctrl+F`, `Rust`
|
||||
|
||||
And I count crypto as whole new category: [>> Click ME to Systematic Crypto](crypto_focus.md).
|
||||
|
||||
- [Awesome Systematic Trading](#awesome-systematic-trading)
|
||||
- [Star History](#star-history)
|
||||
- [🔥 AI Powered Systematic Trading Systems](#-ai-powered-systematic-trading-systems)
|
||||
- [Backtest + live trading](#backtest--live-trading)
|
||||
- [General purpose](#general-purpose)
|
||||
- [Crypto currency focus](#crypto-currency-focus)
|
||||
- [Machine Learning / Reinforcement Learning Focused](#machine-learning--reinforcement-learning-focused)
|
||||
- [Alpha Collections](#alpha-collections)
|
||||
- [General Alpha](#general-alpha)
|
||||
- [Expression based alpha](#expression-based-alpha)
|
||||
- [Stock picking](#stock-picking)
|
||||
- [Orderbook](#orderbook)
|
||||
- [Arbitrage (Crypto)](#arbitrage-crypto)
|
||||
- [Basic Components](#basic-components)
|
||||
- [Fundamental libraries](#fundamental-libraries)
|
||||
- [Computation](#computation)
|
||||
- [Python Performance Booster](#python-performance-booster)
|
||||
- [Python Profilers](#python-profilers)
|
||||
- [Alternative libraries](#alternative-libraries)
|
||||
- [Numpy Alternatives](#numpy-alternatives)
|
||||
- [Pandas Alternatives](#pandas-alternatives)
|
||||
- [Analytic tools](#analytic-tools)
|
||||
- [Metrics computation](#metrics-computation)
|
||||
- [Indicators](#indicators)
|
||||
- [Pricing](#pricing)
|
||||
- [Risk](#risk)
|
||||
- [Optimization](#optimization)
|
||||
- [TimeSeries Analysis](#timeseries-analysis)
|
||||
- [Visualization](#visualization)
|
||||
- [Message Queues](#message-queues)
|
||||
- [Databases](#databases)
|
||||
- [Data Source](#data-source)
|
||||
- [Stocks and General](#stocks-and-general)
|
||||
- [Alternative](#alternative)
|
||||
- [Crypto](#crypto)
|
||||
- [Broker APIs](#broker-apis)
|
||||
- [Quant Shops Code and Blog](#quant-shops-code-and-blog)
|
||||
- [Resources](#resources)
|
||||
- [Research](#research)
|
||||
- [Books](#books)
|
||||
- [Blogs](#blogs)
|
||||
- [Tutorials](#tutorials)
|
||||
- [Courses](#courses)
|
||||
- [Relevant Projects](#relevant-projects)
|
||||
|
||||
## 🔥 AI Powered Systematic Trading Systems
|
||||
|
||||
- [DepthSight](https://github.com/depthsight-pro/depthsight)   | `Python` `TypeScript` | - Self-hosted visual algo-trading platform featuring a drag-and-drop strategy builder, an AI co-pilot for automated strategy design, and integrated billing.
|
||||
- [TradeSight](https://github.com/rmbell09-lang/tradesight)   | `Python` | - AI-powered trading intelligence platform with automated strategy tournaments, multi-market scanning (stocks + prediction markets), 15+ technical indicators, paper trading, and web dashboard. Self-evolving strategies via overnight optimization cron.
|
||||
- [AI Hedge Fund](https://github.com/virattt/ai-hedge-fund)   | `Python` | - An AI Hedge Fund Team
|
||||
- [FinRL](https://github.com/AI4Finance-Foundation/FinRL)   | Python | - FinRL is the first open-source framework to demonstrate the great potential of applying deep reinforcement learning in quantitative finance.
|
||||
- [FinGPT](https://github.com/AI4Finance-Foundation/FinGPT)   - FinGPT: Open-Source Financial Large Language Models! Revolutionize 🔥 We release the trained model on HuggingFace.
|
||||
- [QLib (Microsoft)](https://github.com/microsoft/qlib)   | Python, Cython | - Qlib is an AI-oriented quantitative investment platform, which aims to realize the potential, empower the research, and create the value of AI technologies in quantitative investment. With Qlib, you can easily try your ideas to create better Quant investment strategies. An increasing number of SOTA Quant research works/papers are released in Qlib.
|
||||
- [Qbot](https://github.com/UFund-Me/Qbot)   | `Python` | - AI 自动量化交易机器人 AI-powered Quantitative Investment Research Platform.
|
||||
- [VARRD](https://github.com/augiemazza/varrd)   | `Python` | - AI-powered trading research platform that validates any trading idea with event studies, statistical tests, and real market data across 15,000+ instruments. CLI, Python SDK, and MCP server.
|
||||
- [InvicTrade](https://invictrade.com) - AI-powered trading signals with 74% historical win rate, combining strategies from legendary investors using multi-model AI intelligence.
|
||||
- [BullBear](https://github.com/DunkinGuys/bullbear)   | `TypeScript` | - Open-source AI agent stock trading battle platform. AI agents get $100K virtual cash, trade real US stock prices, and compete on a public leaderboard with social feed.
|
||||
- [FinClaw](https://github.com/NeuZhou/finclaw)   | `Python` | - AI-native quantitative finance engine with genetic algorithm strategy evolution. 484 built-in factors, walk-forward validation, multi-market support (A-shares, US, crypto). Strategies evolve themselves via GA — no manual parameter tuning needed.
|
||||
- [OpenFinClaw](https://github.com/cryptoSUN2049/openFinclaw)   | `TypeScript` | - AI-native systematic trading framework. Natural language strategy generation, multi-market execution (US/HK/CN/Crypto), self-evolving strategy pipeline with community leaderboard. Built on OpenClaw (68K+ stars).
|
||||
- [StockKit](https://stockkit.net/) ([GitHub](https://github.com/kentmswood-ui/stockkit)) | `TypeScript` | - Free AI-powered stock research reports delivered daily. Wall Street-grade analysis for US, China & HK stocks using Claude Opus and multi-model AI engine. 20+ technical indicators, automated email delivery.
|
||||
- [stock-analysis](https://github.com/AdvancingTitans/stock-analysis)   | `Python` | - Evidence-driven market recap CLI for A/HK/US stocks and funds, producing Markdown reports and JSON Evidence Packs for AI agent workflows.
|
||||
- [oracle3](https://github.com/YichengYang-Ethan/oracle3)   | `Python` | - Autonomous trading agent for Kalshi, Polymarket, and Solana DFlow with Wang Transform pricing engine calibrated on 291,309 resolved contracts (λ̂ = 0.183), eight constraint-based arbitrage strategies, hierarchical MLE, model Greeks, and Kelly-sized execution. Backed by SSRN working paper.
|
||||
- [Eterna](https://github.com/EternaHybridExchange/eterna-ai)   | `MCP` | - Launch your own autonomous perp trading AI via Claude Code in 60 seconds. Hybrid exchange MCP with $10B+ aggregated liquidity across 500+ pairs — Claude executes your strategies 24/7. Endpoint: `https://mcp.eterna.exchange/mcp`
|
||||
- [Inalpha](https://github.com/mirror29/inalpha)   | `Python` `TypeScript` | - AI agent framework for quant research: agents pick the factors working now to time entries (time-series rank IC), write full Python strategies audited in sandboxes, and evolve them under multi-objective fitness. Every order passes machine approval — the LLM has no direct order path. Multi-market: crypto, US/CN/HK equities, global indices, FRED macro.
|
||||
- [TraderHarness](https://github.com/HephaestLab/TraderHarness)   | `Python` | - Contamination-resistant A-share backtesting environment for LLM trading agents: point-in-time masking, entity/date anonymization, progressive 5-minute execution, fingerprinted replay, and full-fidelity trajectory (SFT) export.
|
||||
|
||||
## Backtest + live trading
|
||||
|
||||
### General purpose
|
||||
|
||||
> Event Driven Frameworks
|
||||
|
||||
Note: the one marked as `Live Trading` has reasonable live trading support for at least 1 broker. Otherwise, backtest
|
||||
function only.
|
||||
|
||||
- [the0](https://github.com/alexanderwanyoike/the0)   | Python, TypeScript, Rust, C++, C#, Scala, Haskell, Live Trading | - Self-hosted execution engine for algorithmic trading bots. Each bot runs in an isolated container. No framework imposed — your bot is just normal code.
|
||||
- [aat](https://github.com/AsyncAlgoTrading/aat)   | Python, C++, Live Trading| - an asynchronous, event-driven framework for writing algorithmic trading strategies in python with optional acceleration in C++. It is designed to be modular and extensible, with support for a wide variety of instruments and strategies, live trading across (and between) multiple exchanges.
|
||||
- [* barter-rs](https://github.com/barter-rs/barter-rs)   | Rust | - Open-source Rust framework for building event-driven live-trading & backtesting systems. Algorithmic trade with the peace of mind that comes from knowing your strategies have been backtested with a near-identical trading Engine.
|
||||
- [* bt](https://github.com/pmorissette/bt)   | Python | - Flexible backtesting for Python based on Algo and Strategy Tree
|
||||
- [Better Quant](https://github.com/byrnexu/betterquant)   | C++, Live Trading | - Better quant today, best quant tomorrow. 💪
|
||||
- [Botvana](https://github.com/featherenvy/botvana)   | Rust | - high-performance and event-driven trading system built using Rust
|
||||
- [backtrader](https://github.com/mementum/backtrader)   | Python, Live Trading | - Event driven Python Backtesting library for trading strategies
|
||||
- [backtesting.py](https://github.com/kernc/backtesting.py)   | Python | - Backtesting.py is a Python framework for inferring viability of trading strategies on historical (past) data. Improved upon the vision of Backtrader, and by all means surpassingly comparable to other accessible alternatives, Backtesting.py is lightweight, fast, user-friendly, intuitive, interactive, intelligent and, hopefully, future-proof.
|
||||
- [FlashFunk](https://github.com/HFQR/FlashFunk)   | Rust | - High Performance Runtime in Rust
|
||||
- [QuantFabric](https://github.com/QuantFabric/QuantFabric)   | C++ | - QuantFabric是基于Linux/C++开发的中高频量化交易系统,支持中金所、郑商所、大商所、上期所、上海国际能源中心的期货业务品种交易,支持上交所、深交所的股票、债券品种交易。
|
||||
- [gobacktest](https://github.com/gobacktest/gobacktest)   | Go | - A Go implementation of event-driven backtesting framework
|
||||
- [Hikyuu](https://github.com/fasiondog/hikyuu)   | C++, Python| - Hikyuu Quant Framework 基于C++/Python的开源量化交易研究框架
|
||||
- [Investing Algorithm Framework](https://github.com/coding-kitties/investing-algorithm-framework/tree/main)   | Python | - Framework for developing, backtesting, and deploying automated trading algorithms and trading bots.
|
||||
- [lumibot](https://github.com/Lumiwealth/lumibot)   | Python | - A very simple yet useful backtesting and sample based live trading framework (a bit slow to run...)
|
||||
- [* nautilus_trader](https://github.com/nautechsystems/nautilus_trader)   | Python, Cython, Rust, Live Trading | - A high-performance algorithmic trading platform and event-driven backtester
|
||||
- [PyBroker](https://github.com/edtechre/pybroker)   | Python | - Algorithmic Trading in Python with Machine Learning
|
||||
- [QuantConnect](https://github.com/QuantConnect/Lean)   | C#, .NET, Live Trading | - Lean Algorithmic Trading Engine by QuantConnect (Python, C#)
|
||||
- [QUANTAXIS](https://github.com/QUANTAXIS/QUANTAXIS)   | Python, Rust, Live Trading | - QUANTAXIS 支持任务调度 分布式部署的 股票/期货/期权/港股/虚拟货币 数据/回测/模拟/交易/可视化/多账户 纯本地量化解决方案
|
||||
- [Rqalpha](https://github.com/ricequant/rqalpha)   | Python | - A extendable, replaceable Python algorithmic backtest && trading framework supporting multiple securities
|
||||
- [quanttrader](https://github.com/letianzj/quanttrader)   | Python | - Backtest and live trading in Python. Event based. Similar to backtesting.py.
|
||||
- [qf-lib](https://github.com/quarkfin/qf-lib)   | Python | - Modular Python library that provides an advanced event driven backtester and a set of high quality tools for quantitative finance. Integrated with various data vendors and brokers, supports Crypto, Stocks and Futures.
|
||||
- [sdoosa-algo-trade-python](https://github.com/sreenivasdoosa/sdoosa-algo-trade-python)   | Python | - This project is mainly for newbies into algo trading who are interested in learning to code their own trading algo using python interpreter.
|
||||
- [* vnpy](https://github.com/vnpy/vnpy)   | Python, Stock, Futures, Crypto, Live Trading | - Python-based open source quantitative trading system development framework, officially released in January 2015, has grown step by step into a full-featured quantitative trading platform
|
||||
- [WonderTrader](https://github.com/wondertrader/wondertrader)   | C++, Python | - WonderTrader——量化研发交易一站式框架
|
||||
- [zvt](https://github.com/zvtvz/zvt)   | Python, Stock, Backtest | - Modular quant framework
|
||||
- [zipline](https://github.com/quantopian/zipline)   | Python | - Zipline is a Pythonic algorithmic trading library. It is an event-driven system for backtesting.
|
||||
- [PandoraTrader](https://github.com/pegasusTrader/PandoraTrader)   | C++ | - CTP 高频量化交易平台 C++ Trade Platform for quant developer
|
||||
- [hftbacktest](https://github.com/nkaz001/hftbacktest)   | Python, numba | - A high-frequency trading and market-making backtesting tool accounts for limit orders, queue positions, and latencies, utilizing full tick data for trades and order books.
|
||||
- [flashalpha-fill-simulator](https://github.com/FlashAlpha-lab/flashalpha-fill-simulator)   | Python, Options | - Realistic limit-order fill simulator for options credit/debit spreads. Models post-and-wait limits, stale-quote guards, deterministic same-bar tiebreaks, and a patient-then-cross exit. Engine-agnostic per-bar primitive that embeds in QuantConnect / Backtrader / custom loops; zero runtime dependencies.
|
||||
- [Cipher](https://github.com/nanvel/cipher-bt)   | Python | - Backtesting library with focus on position adjustment that allows testing complicated setups. Pythonic, extensible, well-structured, documented.
|
||||
- [Gunbot Quant](https://github.com/GuntharDeNiro/gunbot-quant)   | Python | - Standalone application for market screening and backtesting. Supports multi-asset, multi-strategy backtests. Includes user interface and CLI options.
|
||||
- [PythonTradingFramework](https://github.com/JustinGuese/python_tradingbot_framework)  | Python | - Python algorithmic trading bot framework for Kubernetes: backtesting, hyperparameter optimization, 150+ technical analysis indicators (RSI, MACD, Bollinger Bands, ADX), portfolio management, PostgreSQL integration, Helm deployment, CronJob scheduling. Minimal overhead, production-ready, Yahoo Finance data.
|
||||
- [Tradingview Screener API](https://github.com/jmargieh/tradingview-screener)   | TypeScript | - Query TradingView's financial data with a type-safe, fluent TypeScript API. Screen stocks, crypto, forex, bonds, and futures using 13,000+ data fields. The library includes a Model Context Protocol (MCP) server that lets you query financial markets using natural language in Claude Desktop. This is a unique feature that enables conversational market analysis.
|
||||
|
||||
> Vector Based Frameworks
|
||||
|
||||
- [QTradeX](https://github.com/squidKid-deluxe/QTradeX-Algo-Trading-SDK)   | Python, Live Trading | - A powerful and flexible Python framework for designing, backtesting, optimizing, and deploying algotrading bots
|
||||
- [FinHack](https://github.com/FinHackCN/finhack)   | Python | - 一个易于拓展的量化金融框架,它在当前版本中集成了数据采集、因子计算、因子挖掘、因子分析、机器学习、策略编写、量化回测、实盘接入等全流程的量化投研工作
|
||||
- [pysystemtrade](https://github.com/robcarver17/pysystemtrade)   | Python, Live Trading | - Systematic Trading in python from book <Systematic Trading> by Rob Carver
|
||||
- [finmarketpy](https://github.com/cuemacro/finmarketpy)   | Python | - Python library for backtesting trading strategies & analyzing financial markets (formerly pythalesians)
|
||||
- [vectorbt](https://github.com/polakowo/vectorbt)   | Python, numba | - vectorbt takes a novel approach to backtesting: it operates entirely on pandas and NumPy objects, and is accelerated by Numba to analyze any data at speed and scale. This allows for testing of many thousands of strategies in seconds.
|
||||
- [fund-strategy](https://github.com/SunshowerC/fund-strategy)   | TypeScript | - 一个简单实用的基金投资策略分析,基金回测工具
|
||||
- [fastquant](https://github.com/enzoampil/fastquant)   | Python | - Backtest and optimize your ML trading strategies with only 3 lines of code
|
||||
- [Manifold-BT](https://github.com/manifoldbt/manifoldbt)   | Python, Rust | - High-performance Rust-powered backtesting engine: strategies are written as vectorized signal expressions and run with realistic per-bar fills (fees, slippage and look-ahead handled), testing hundreds of thousands of parameter combinations in seconds, plus walk-forward and Monte Carlo.
|
||||
|
||||
### Crypto currency focus
|
||||
|
||||
- [basana](https://github.com/gbeced/basana)   | Python | - A Python async and event driven framework for algorithmic trading, with a focus on crypto currencies.
|
||||
- [c-binance-future-quant](https://github.com/Melelery/c-binance-future-quant/tree/main)   | Python | - 低成本,高效率,简单实现的币安合约量化系统架构
|
||||
- [triangular-arbitrage2](https://github.com/zlq4863947/triangular-arbitrage2)   | TypeScript | - a server side application for perform triangular arbitrage.
|
||||
- [bTrader](https://github.com/gabriel-milan/btrader)   | Rust | - Triangle arbitrage trading bot for Binance
|
||||
- [crypto-crawler-rs](https://github.com/crypto-crawler/crypto-crawler-rs)   | Rust | - Crawl orderbook and trade messages from crypto exchanges
|
||||
- [cryptotrader-core](https://github.com/monomadic/cryptotrader-core)   | Rust | - Simple to use Crypto Exchange REST API client in rust.
|
||||
- [openlimits](https://github.com/nash-io/openlimits)   | Rust | - A Rust high performance cryptocurrency trading API with support for multiple exchanges and language wrappers.
|
||||
- [Freqtrade](https://github.com/freqtrade/freqtrade)   | Python | - Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram. It contains backtesting, plotting and money management tools as well as strategy optimization by machine learning.
|
||||
- [* Hummingbot](https://github.com/CoinAlpha/hummingbot)   | Python, Cython, Live Trading | - A client for crypto market making
|
||||
- [Jesse](https://github.com/jesse-ai/jesse)   | Python | - Jesse is an advanced crypto trading framework which aims to simplify researching and defining trading strategies.
|
||||
- [* OctoBot](https://github.com/Drakkar-Software/OctoBot)   | Python, Cython, Live Trading| - Cryptocurrency trading bot for TA, arbitrage and social trading with an advanced web interface
|
||||
- [DeepAlpha](https://github.com/stefanoviana/deepalpha) - `Python` | AI crypto trading bot for Bybit with 70.9% walk-forward validated accuracy. LightGBM + XGBoost ensemble with 72 ML features.
|
||||
- [Kelp](https://github.com/stellar/kelp)   | Go, Live Trading | - Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges
|
||||
- [exc](https://github.com/Nouzan/exc)   | Rust | - The abstraction layer of exchanges.
|
||||
- [MyCryptoBot](https://github.com/diogomatoschaves/MyCryptoBot)   | Python, Js | - Automated, open source crypto trading and backtesting platform
|
||||
- [godzilla.dev](https://godzilla.dev)   | C++, Python | - Open-source framework for crypto quant trading, funding rate arbitrage and ultra-low-latency market making. [GitHub](https://github.com/godzilla-foundation/godzilla-community)
|
||||
|
||||
|
||||
### Machine Learning / Reinforcement Learning Focused
|
||||
|
||||
> ML, RL
|
||||
|
||||
- [ml-quant-trading](https://github.com/initial-d/ml-quant-trading)   | `Python`, `PyTorch` | - Research stack for multi-factor ML experiments with 213 mask-aware factors, bias correction, portfolio optimization, and vectorized backtesting.
|
||||
- [TradingGym](https://github.com/Yvictor/TradingGym)   | Python, Live Trading | - Trading and Backtesting environment for training reinforcement learning agent or simple rule base algo.
|
||||
- [Stock Trading Bot using Deep Q-Learning](https://github.com/pskrunner14/trading-bot)   | Python | - Stock Trading Bot using Deep Q-Learning
|
||||
|
||||
## Alpha Collections
|
||||
|
||||
### General Alpha
|
||||
|
||||
- [Python quantitative trading strategies including VIX Calculator, Pattern Recognition, Commodity Trading Advisor, Monte Carlo, Options Straddle, Shooting Star, London Breakout, Heikin-Ashi, Pair Trading, RSI, Bollinger Bands, Parabolic SAR, Dual Thrust, Awesome, MACD](https://github.com/je-suis-tm/quant-trading#15-vix-calculator)
|
||||
- [analyzingalpha](https://github.com/leosmigel/analyzingalpha)
|
||||
- [Finance](https://github.com/shashankvemuri/Finance) | `Python` | - 150+ quantitative finance Python programs to help you gather, manipulate, and analyze stock market data
|
||||
- [ThetaGang](https://github.com/brndnmtthws/thetagang) - ThetaGang is an IBKR bot for collecting money
|
||||
- <https://www.reddit.com/r/options/comments/a36k4j/the_wheel_aka_triple_income_strategy_explained/>
|
||||
- [PyTrendFollow](https://github.com/chrism2671/PyTrendFollow) | `Python` | - PyTrendFollow - systematic futures trading using trend following
|
||||
- [czsc - 缠中说禅技术分析工具](https://github.com/waditu/czsc) | `Python` | - 缠中说禅技术分析工具;缠论;股票;期货;Quant;量化交易
|
||||
- [volest](https://github.com/jasonstrimpel/volatility-trading) | `Python` | - A complete set of volatility estimators based on Euan Sinclair's Volatility Trading
|
||||
- [quant-trading](https://github.com/je-suis-tm/quant-trading) | `Python` | - Python quantitative trading strategies including VIX Calculator, Pattern Recognition, Commodity Trading Advisor, Monte Carlo, Options Straddle, Shooting Star, London Breakout, Heikin-Ashi, Pair Trading, RSI, Bollinger Bands, Parabolic SAR, Dual Thrust, Awesome, MACD
|
||||
- [一个中文策略合集](https://github.com/fmzquant/strategies) | `Python` |
|
||||
- [一个实盘的股票趋势策略](https://github.com/BigBrotherTrade/trader) | `Python` | -
|
||||
- [Quantitative-analysis](https://github.com/hugo2046/QuantsPlaybook) | `Python` | - 量化研究-券商金工研报复现
|
||||
|
||||
### Expression based alpha
|
||||
|
||||
- [torchquantum](https://github.com/nymath/torchquantum) | `Cython`, `C`, `Python` | - TorchQuantum is a backtesting framework that integrates the structure of PyTorch and WorldQuant's Operator for efficient quantitative financial analysis.
|
||||
- [OpenAlpha](https://github.com/caoruicn/openalpha) | `C++` | - An open source equity statistical arbitrage backtest simulator, use the same API as WorldQuant's WebSim
|
||||
- [stock](https://github.com/xcycharles/stock) | `Python` | - 一些因子挖掘的代码 A 股
|
||||
- [AlphaGen](https://github.com/RL-MLDM/alphagen) | `Python` | - Automatic formulaic alpha generation with reinforcement learning.
|
||||
- [Genetic-Alpha](https://github.com/Morgansy/Genetic-Alpha) - A genetic programming algorithm used for generating alpha factors in the multi-factor investment strategy
|
||||
- [alpha_examples](https://github.com/wukan1986/alpha_examples) - An expression based alpha demo using Polars
|
||||
|
||||
### Stock picking
|
||||
|
||||
- [InvesTool](https://github.com/axiaoxin-com/investool) | `Go` | - Golang实现财报分析、个股基本面检测、基本面选股、4433法则基金筛选与检测、基金持仓相似度、股票选基、基金经理筛选
|
||||
- [Sequoia选股系统](https://github.com/sngyai/Sequoia#sequoia%E9%80%89%E8%82%A1%E7%B3%BB%E7%BB%9F) | `Python` | - A股自动选股程序,实现了海龟交易法则、缠中说禅牛市买点,以及其他若干种技术形态
|
||||
- [ValueInvest](https://github.com/wangzhe3224/valueinvest)   | `Python` | - A modular Python library for comprehensive stock valuation using multiple methodologies (Graham, DCF, EPV, DDM, etc.) with real-time data fetching and news sentiment analysis
|
||||
|
||||
### Orderbook
|
||||
|
||||
- [The Microprice](https://github.com/sstoikov/microprice/tree/master) - An estimator of the fair price, given the state of the order book.
|
||||
|
||||
### Arbitrage (Crypto)
|
||||
|
||||
> Note: these bots are old and not maintained. I put them here just to show some logic of crypto arbitrage.
|
||||
|
||||
- [Blackbird](https://github.com/butor/blackbird) | `C++` | - Blackbird Bitcoin Arbitrage: a long/short market-neutral strategy
|
||||
- [bitcoin-arbitrage](https://github.com/maxme/bitcoin-arbitrage) | `Python` | - Bitcoin arbitrage - opportunity detector
|
||||
- [R2 Bitcoin Arbitrager](https://github.com/bitrinjani/r2) | `TypeScript` | - R2 Bitcoin Arbitrager is an automatic arbitrage trading system powered by Node.js + TypeScript.
|
||||
|
||||
## Basic Components
|
||||
|
||||
### Fundamental libraries
|
||||
|
||||
- [Cvxpy](https://github.com/cvxpy/cvxpy)   | Python, C++ | - A Python-embedded modeling language for convex optimization problems.
|
||||
- [jax](https://github.com/google/jax)   | `Python` | - Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more
|
||||
- [Numpy](https://github.com/numpy/numpy)   | Python, C | - The fundamental package for scientific computing with Python
|
||||
- [trade-frame](https://github.com/rburkholder/trade-frame)   | C++ | - C++ 17 based library (with sample applications) for testing equities, futures, currencies, etfs & options based automated trading ideas using DTN IQFeed real time data feed and Interactive Brokers (IB TWS API) for trade execution. Some support for Alpaca & Phemex. Notifications via Telegram
|
||||
- Modelling
|
||||
- [Scipy](https://github.com/scipy/scipy)   | Python, C | - Fundamental algorithms for scientific computing in Python
|
||||
- [statsmodels](https://github.com/statsmodels/statsmodels/)   - Python module that allows users to explore data, estimate statistical models, and perform statistical tests.
|
||||
- [PyMC](https://github.com/pymc-devs/pymc)   | Python | - Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Aesara
|
||||
- [DEAP](https://github.com/DEAP/deap)   |Python| - Distributed Evolutionary Algorithms in Python
|
||||
- DataFrame
|
||||
- [Pandas](https://github.com/pandas-dev/pandas)   | Python, Cython | - Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
|
||||
- [Polars](https://github.com/pola-rs/polars)  | Rust, Python | - Polars is a blazingly fast DataFrames library implemented in Rust using Apache Arrow Columnar Format as memory model.
|
||||
- [FireDucks](https://fireducks-dev.github.io/)  - Compiler Accelerated DataFrame Library for Python with fully-compatible pandas API
|
||||
- Machine Learning
|
||||
- [Hugging Face](https://github.com/huggingface/)  - The AI community building the future.
|
||||
- [LangChain](https://github.com/langchain-ai/langchain)  - Building applications with LLMs through composability
|
||||
- [Sikit-learn](https://github.com/scikit-learn/scikit-learn)   | Python, Cython | - Machine learning in Python
|
||||
- [JAX](https://github.com/google/jax)   - Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more
|
||||
- [Pytorch](https://github.com/pytorch/pytorch)   | Python | - Tensors and Dynamic neural networks in Python with strong GPU acceleration
|
||||
- [Keras](https://github.com/keras-team/keras)   | Python | - The most user friendly Deep Learning for humans in Python
|
||||
- [TensorFlow](https://github.com/tensorflow/tensorflow)   | Python, C++ | - More low level Deep Learning framework
|
||||
- DAG
|
||||
- [Rustworkx](https://github.com/Qiskit/rustworkx/tree/main)   | Rust, Python | - A high performance Python graph library implemented in Rust.
|
||||
- [Networkx](https://github.com/networkx/networkx)   | Python | - Network Analysis in Python
|
||||
|
||||
### Computation
|
||||
|
||||
- [Ray](https://github.com/ray-project/ray)   | Python, C++ | - An open source framework that provides a simple, universal API for building distributed applications.
|
||||
- [csp (Point72)](https://github.com/Point72/csp/tree/main)   | Python, C++ | - csp is a high performance reactive stream processing library, written in C++ and Python
|
||||
- [Dask](https://github.com/dask/dask)   | Python | - Parallel computing with task scheduling in Python with a Pandas like API
|
||||
- [Spark](https://github.com/apache/spark)   | Scala | - Apache Spark - A unified analytics engine for large-scale data processing
|
||||
- [Hamilton](https://github.com/dagworks-inc/hamilton)  | Python | - A scalable general purpose micro-framework for defining dataflows. You can use it to build dataframes, numpy matrices, python objects, ML models, etc. Embed Hamilton anywhere python runs, e.g. spark, airflow, jupyter, fastapi, python scripts, etc.
|
||||
- [Incremental (JaneStreet)](https://github.com/janestreet/incremental)   | Ocaml | - Incremental is a library that gives you a way of building complex computations that can update efficiently in response to their inputs changing, inspired by the work of Umut Acar et. al. on self-adjusting computations. Incremental can be useful in a number of applications
|
||||
- [Joblib](https://github.com/joblib/joblib)   | Python | - running Python functions as pipeline jobs
|
||||
- [Tributary](https://github.com/timkpaine/tributary)  | Python | - Streaming reactive and dataflow graphs in Python
|
||||
- [GraphKit(No activity)](https://github.com/yahoo/graphkit)  | Python | - A lightweight Python module for creating and running ordered graphs of computations.
|
||||
- [Man MDF (No activity)](https://github.com/man-group/mdf)  | Python | - Data-flow programming toolkit for Python
|
||||
- [Anchors - C++(No activity)](https://github.com/oluwatimilehin/anchors)  | C++ | - C++ library for incremental computing
|
||||
- [Anchors - Rust(No activity)](https://github.com/lord/anchors)  | Rust | - self adjusting computations in rust
|
||||
- [Loman (No activity)](https://github.com/janushendersonassetallocation/loman)  | Python | - Loman is a Python library designed to allow quantitative researchers to control complex live updating calculation processes
|
||||
|
||||
### Python Performance Booster
|
||||
|
||||
- [cython](https://github.com/cython/cython)   - Cython is a Python compiler that makes writing C extensions for Python as easy as Python itself. Cython is based on Pyrex, but supports more cutting edge functionality and optimizations.
|
||||
- [numba](https://github.com/numba/numba)   - NumPy aware dynamic Python compiler using LLVM
|
||||
- [pybind11](https://github.com/pybind/pybind11)   - Seamless operability between C++11 and Python
|
||||
- [pyo3](https://github.com/PyO3/pyo3)   - Rust bindings for the Python interpreter
|
||||
- [CuPy](https://github.com/cupy/cupy/)   | Python, C++, Cython, Cuda | - CuPy is an open-source array library for GPU-accelerated computing with Python. 100x Boost for some operations
|
||||
- [CuDF](https://github.com/rapidsai/cudf)   | Python | - cuDF - GPU DataFrame Library. No-code-change accelerator for pandas.
|
||||
- [codon](https://github.com/exaloop/codon)   | C++ | - A high-performance, zero-overhead, extensible Python compiler using LLVM
|
||||
- [Bottleneck](https://github.com/pydata/bottleneck)   | Python, C | - Fast NumPy array functions written in C
|
||||
- [NumExpr](https://github.com/pydata/numexpr)   | Python, C++ | - Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more
|
||||
- [pandarallel](https://github.com/nalepae/pandarallel)   | Python | - A simple and efficient tool to parallelize Pandas operations on all available CPUs
|
||||
|
||||
### Python Profilers
|
||||
|
||||
- [py-spy](https://github.com/benfred/py-spy)   - Sampling profiler for Python programs
|
||||
- [pyinstrument](https://github.com/joerick/pyinstrument)   - Call stack profiler for Python. Shows you why your code is slow!
|
||||
- [Memray](https://github.com/bloomberg/memray)   - Memray is a memory profiler for Python
|
||||
|
||||
### Alternative libraries
|
||||
|
||||
#### Numpy Alternatives
|
||||
|
||||
- [ndarray](https://github.com/rust-ndarray/ndarray)   | Rust | - ndarray: an N-dimensional array with array views, multidimensional slicing, and efficient operations
|
||||
- [faer](https://github.com/sarah-ek/faer-rs)   | Rust | - Linear algebra foundation for the Rust programming language
|
||||
|
||||
#### Pandas Alternatives
|
||||
|
||||
- [DataFrame](https://github.com/hosseinmoein/DataFrame)   | C++ | - C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and contiguous memory storage
|
||||
- [Vaex](https://github.com/vaexio/vaex)   | Python, C++ | - Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second
|
||||
- [Modin](https://github.com/modin-project/modin)   | Python | - Modin: Speed up your Pandas workflows by changing a single line of code
|
||||
- [Koalas](https://github.com/databricks/koalas)   | Python | - Koalas: pandas API on Apache Spark
|
||||
|
||||
## Analytic tools
|
||||
|
||||
### Metrics computation
|
||||
|
||||
- [alphalens (Fork)](https://github.com/wangzhe3224/alphalens) | `Python` | - Performance analysis of predictive (alpha) stock factors
|
||||
- [ffn](https://github.com/pmorissette/ffn) | `Python` | - A financial function library for Python
|
||||
- [honest-signals](https://github.com/MarvinRey7879/honest-signals) | `Python` | - Scores detected chart patterns against the pattern-free baseline for the same market and timeframe, reporting lift with cluster-robust confidence intervals instead of a hit rate against 50%
|
||||
- [quantstats](https://github.com/ranaroussi/quantstats) | `Python` | - Portfolio analytics for quants, written in Python
|
||||
|
||||
### Indicators
|
||||
|
||||
- [TA-Lib](https://ta-lib.org) | `C` | - Perform technical analysis of financial market data
|
||||
- [Python Wrapper](https://github.com/mrjbq7/ta-lib) | `Python` |
|
||||
- [Go Port](https://github.com/markcheno/go-talib) | `Go` |
|
||||
- [Rust Wrapper](https://github.com/CLevasseur/ta-lib-rust) | `Rust` |
|
||||
- [ta-rust](https://github.com/greyblake/ta-rs) | `Rust` | - Technical analysis library for Rust language
|
||||
- [finta](https://github.com/peerchemist/finta) | `Python` | - Common financial technical indicators implemented in Pandas
|
||||
- [pandas-ta](https://github.com/twopirllc/pandas-ta) | `Python` | - Pandas Technical Analysis (Pandas TA) is an easy to use library that leverages the Pandas package with more than 130 Indicators and Utility functions and more than 60 TA Lib Candlestick Patterns.
|
||||
- [kand](https://github.com/rust-ta/kand) | `Rust` & `Python` | - A blazingly fast technical analysis library in Rust and Python.
|
||||
- [chart-patterns](https://github.com/focus1691/chart-patterns) | `TypeScript` | - Technical analysis library for chart patterns, price action, and volume-based pattern detection.
|
||||
- [ChartScout](https://chartscout.io) - Real-time crypto chart pattern detection and alerts
|
||||
- [Wickra](https://github.com/wickra-lib/wickra) | `Rust` & `Python` & `JavaScript` & `C++` & `C#` & `Go` & `Java` & `R` | - Streaming-first technical-analysis library with 514 O(1)-per-tick indicators across 24 families; bit-exact batch and streaming from one Rust core.
|
||||
|
||||
|
||||
### Pricing
|
||||
|
||||
- [Quantlib](https://www.quantlib.org)
|
||||
- [PyQL](https://github.com/enthought/pyql) | `Python`, `Cython` | - Python wrapper of the famous pricing library QuantLib
|
||||
- [QuantLib.jl](https://github.com/pazzo83/QuantLib.jl) | `Julia` | - Quantlib implementation in pure Julia.
|
||||
- [FinancePy](https://github.com/domokane/FinancePy) | `Python` | - A Python Finance Library that focuses on the pricing and risk-management of Financial Derivatives, including fixed-income, equity, FX and credit derivatives.
|
||||
- [tf-quant-finance](https://github.com/google/tf-quant-finance) - High-performance TensorFlow library for quantitative finance from Google
|
||||
- [vollib](https://github.com/vollib/vollib) | `Python` | - Fundamentally a swig/python wrapper around Peter Jaeckel's lets_be_rational. lets_be_rational focuses exclusively on Black76, while Vollib extends this to add support for Black-Scholes and Black-Scholes-Merton.
|
||||
|
||||
### Risk
|
||||
|
||||
- [pyfolio](https://github.com/quantopian/pyfolio) | `Python` | - Portfolio and risk analytics in Python
|
||||
- [curistat](https://github.com/moxiespirit/MyClone/tree/main/volatility_platform) | `Python` | - Futures volatility forecasting for ES/NQ. Daily CVN rating (1-10), regime detection (CRC composite), directional signals, economic event impact analytics. Includes MCP server for AI agent integration.
|
||||
- [System R](https://agents.systemr.ai) | `Python` | - Risk intelligence API for trading agents. Pre-trade gate with position sizing (G-formula/Kelly), drawdown analysis, Monte Carlo simulation, regime detection. REST API and MCP server.
|
||||
- [QuantDojo Tools Hub](https://quantdojo.ai/tools/) – Free, no-login web calculators for position sizing, Kelly criterion, risk/reward, drawdown recovery, Sharpe ratio, and trading expectancy.
|
||||
|
||||
### Optimization
|
||||
|
||||
- [cvxportfolio](https://github.com/cvxgrp/cvxportfolio)   | Python | - Portfolio optimization and back-testing.
|
||||
- [skfolio](https://github.com/skfolio/skfolio)   | Python | - Python library for portfolio optimization built on top of scikit-learn
|
||||
- [Riskfolio-Lib](https://github.com/dcajasn/Riskfolio-Lib)   | C++, Python | - Portfolio Optimization and Quantitative Strategic Asset Allocation in Python
|
||||
- [Deepdow](https://github.com/jankrepl/deepdow)   | Python | - Python package connecting portfolio optimization and deep learning. Its goal is to facilitate research of networks that perform weight allocation in one forward pass.
|
||||
- [PyPortfolioOpt](https://github.com/robertmartin8/PyPortfolioOpt)   | Python | - Financial portfolio optimizations in python, including classical efficient frontier, Black-Litterman, Hierarchical Risk Parity
|
||||
- [empyrial](https://github.com/ssantoshp/Empyrial)   | Python | - Empyrial is a Python-based open-source quantitative investment library dedicated to financial institutions and retail investors, officially released in March 2021.
|
||||
- [spectre](https://github.com/Heerozh/spectre)   | Python | - spectre is a GPU-accelerated Parallel quantitative trading library, focused on performance.
|
||||
|
||||
### TimeSeries Analysis
|
||||
|
||||
- [tsfresh](https://github.com/blue-yonder/tsfresh) - Automatic extraction of relevant features from time series.
|
||||
- [Facebook Prophet](https://github.com/facebook/prophet) - Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth.
|
||||
- [pmdarima](https://github.com/alkaline-ml/pmdarima) - A statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function.
|
||||
- [hurst-calculator](https://github.com/Osamwonyi18/hurst-calculator) - Rescaled Range (R/S) analysis for estimating the Hurst exponent of a time series. Classifies series as mean-reverting, random walk, or trending. NumPy-only, single-file Python.
|
||||
|
||||
## Visualization
|
||||
|
||||
- [Matplotlib](https://github.com/matplotlib/matplotlib)   | Python | - matplotlib: plotting with Python
|
||||
- [Seaborn](https://github.com/mwaskom/seaborn)   | Python | - Statistical data visualization in Python
|
||||
- [Dash](https://github.com/plotly/dash)   | Python | - Data Apps & Dashboards for Python. No JavaScript Required.
|
||||
- [Perspective](https://github.com/finos/perspective)   | C++, Python | - A data visualization and analytics component, especially well-suited for large and/or streaming datasets.
|
||||
- [Streamlit](https://github.com/streamlit/streamlit)   | Python | - Streamlit — A faster way to build and share data apps.
|
||||
- [gradio](https://github.com/gradio-app/gradio/)   | Python | - Build and share delightful machine learning apps, all in Python.
|
||||
- [pylatex](https://github.com/JelteF/PyLaTeX/)   | Python | - A Python library for creating LaTeX files
|
||||
- [D-Tale (Man Group)](https://github.com/man-group/dtale)   | JavaScript, Python | - D-Tale is the combination of a Flask back-end and a React front-end to bring you an easy way to view & analyze Pandas data structures.
|
||||
- [mplfinance](https://github.com/matplotlib/mplfinance)   | Python | - Financial Markets Data Visualization using Matplotlib
|
||||
- [KLinePic](https://klinepic.com/) | `TypeScript` | - Converts broker and exchange trade records into annotated candlestick review charts with buy/sell markers, batch PNG/ZIP export, and an Agent API. [Examples](https://github.com/sher1096/klinepic-agent-api-examples)
|
||||
- [btplotting](https://github.com/happydasch/btplotting)   | Python, bokeh | - btplotting provides plotting for backtests, optimization results and live data from backtrader.
|
||||
|
||||
## Message Queues
|
||||
|
||||
- [Kafka](https://github.com/apache/kafka)   | Java | - Mirror of Apache Kafka
|
||||
- [RedPanda](https://github.com/redpanda-data/redpanda/)   | C++ | - Redpanda is a streaming data platform for developers. Kafka API compatible. 10x faster. No ZooKeeper. No JVM!
|
||||
- [BlazingMQ](https://github.com/bloomberg/blazingmq)   | C++ | - A modern high-performance open source message queuing system
|
||||
|
||||
## Databases
|
||||
|
||||
- [ArcticDB (Man Group)](https://github.com/man-group/ArcticDB) | `C++`, `Python` | - ArcticDB is a high performance, serverless DataFrame database built for the Python Data Science ecosystem.
|
||||
- [DuckDB](https://github.com/duckdb/duckdb)  | `C++`, `Python` | - ArcticDB is a high performance, serverless DataFrame database built for the Python Data Science ecosystem.
|
||||
- [pylance](https://github.com/lancedb/lance)  | `Rust` | - Modern columnar data format for ML and LLMs implemented in Rust. Convert from parquet in 2 lines of code for 100x faster random access, vector index, and data versioning. Compatible with Pandas, DuckDB, Polars, Pyarrow
|
||||
- [Arctic (Man Group)](https://github.com/man-group/arctic)  | `Python` | - High performance datastore for time series and tick data
|
||||
- [PyStore](https://github.com/ranaroussi/pystore) | `Python` | - Fast data store for Pandas time-series data
|
||||
- [Marketstore](https://github.com/alpacahq/marketstore) | `Go` | - DataFrame Server for Financial Timeseries Data
|
||||
- [Tectonicdb](https://github.com/0b01/tectonicdb) | `Rust` | - Tectonicdb is a fast, highly compressed standalone database and streaming protocol for order book ticks.
|
||||
- [Redis](https://github.com/redis/redis) | `C` | - Redis is an in-memory database that persists on disk.
|
||||
- [kdb](https://github.com/KxSystems) | `q` | - Companion files to kdb+ and q
|
||||
|
||||
## Data Source
|
||||
- [FilingFirehose](https://github.com/jaablon/filingfirehose-python) - SEC EDGAR JSON API with body-text-classified 8-Ks (catches buried items: 7.3% of Item 8.01 filings flagged), 13D/G with 21+ activist filers tagged, S-3/424B5 ATM detection. Free 72h tier, paid full archive from $29/mo. REST + MCP + Python SDK + GitHub Action.
|
||||
- [AltData Atlas](https://altdataatlas.com) - Open directory of alternative data providers for systematic and fundamental investors.
|
||||
- [polymarket-canary-tape](https://huggingface.co/datasets/oraclemangle/polymarket-canary-tape) - Free CC-BY-4.0 prediction-market microstructure tape: 271M CEX trades + 61M Polymarket order-book WebSocket events (Apr-Jul 2026), including a dual-vantage overlap window for latency studies. Companion open-source bot lab: [polymarket-bot-lab](https://github.com/oraclemangle/polymarket-bot-lab).
|
||||
|
||||
### Stocks and General
|
||||
|
||||
- [* OpenBB Terminal](https://github.com/OpenBB-finance/OpenBBTerminal) | `Python` | - Investment Research for Everyone, Anywhere.
|
||||
- [FinanceDatabase](https://github.com/JerBouma/FinanceDatabase)  - This is a database of 300.000+ symbols containing Equities, ETFs, Funds, Indices, Currencies, Cryptocurrencies and Money Markets.
|
||||
- [FinanceToolkit](https://github.com/JerBouma/FinanceToolkit)  - Toolkit with 200+ financial metrics including 80+ financial ratios, 30+ technical indicators, 20+ risk and performance metrics and 50+ macro indicators which pulls from Financial Modeling Prep, Yahoo Finance, OECD, GMBD and more.
|
||||
- [AkShare](https://github.com/akfamily/akshare)  |`Python`| - AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库
|
||||
- [多因子模型数据](https://github.com/hugo2046/GetAstockFactors) - 获取经典的量化多因子模型数据
|
||||
- [findatapy](https://github.com/cuemacro/findatapy) |`Python`| - findatapy creates an easy to use Python API to download market data from many sources including Quandl, Bloomberg, Yahoo, Google etc. using a unified high level interface.
|
||||
- [FXMacroData](https://github.com/fxmacrodata/fxmacrodata) |`Python`| - Real-time forex macroeconomic data API serving central bank announcements, policy rates, inflation, employment, and GDP for 18 currencies. Includes MCP server and OAuth support.
|
||||
- [yfinance](https://github.com/ranaroussi/yfinance) |`Python`| - yfinance offers a threaded and Pythonic way to download market data from Yahoo!Ⓡ finance.
|
||||
- [pandas-datareader](https://github.com/pydata/pandas-datareader) |`Python`| - Up to date remote data access for pandas, works for multiple versions of pandas.
|
||||
- [Wallstreet](https://github.com/mcdallas/wallstreet) |`Python`| - Wallstreet: Real time Stock and Option tools
|
||||
- [TuShare](https://github.com/waditu/tushare) |`Python`| - TuShare is a utility for crawling historical data of China stocks
|
||||
- [Investpy](https://github.com/alvarobartt/investpy) - Financial Data Extraction from Investing.com with Python
|
||||
- [awesome-data](https://github.com/akfamily/awesome-data) - Awesome-data shows most interesting data-source around the financial world
|
||||
- [Fundamental Analysis Data](https://github.com/JerBouma/FundamentalAnalysis) | `Python` | - Fully-fledged Fundamental Analysis package capable of collecting 20 years of Company Profiles, Financial Statements, Ratios and Stock Data of 20.000+ companies.
|
||||
- [Financial Data](https://financialdata.net/) - Stock Market and Financial Data API
|
||||
- [StockAInsights](https://stockainsights.com) - Institutional-grade financial statements API with AI extraction from SEC filings — not XBRL. Covers domestic and foreign filers (20-F, 6-K, 40-F), normalized quarterly and annual data.
|
||||
- [Insider Alerts](https://insideralerts.io/) - SEC Form 4 insider buying and selling alert platform with watchlists, searchable filings, and Telegram notifications for public insider activity.
|
||||
- [goMacro.ai](https://gomacro.ai) - AI-powered economic calendar with institutional-grade macro insights and scenario planning for NFP, CPI, PPI and other data releases.
|
||||
- [Chart Library](https://github.com/grahammccain/chart-library-mcp) |`Python`| - Historical chart pattern similarity search engine. 24M+ pre-computed embeddings (pgvector) across 15K+ symbols and 10 years of minute-bar data. Returns forward returns (1/3/5/10 day) for pattern-based strategy development. Also available as MCP server.
|
||||
- [Helium MCP](https://heliumtrades.com/mcp-page/) | `REST API`, `MCP` | - Free REST + MCP API providing ML-derived options pricing (per-symbol fair value, prob_ITM, Greeks), real-time market data, and AI-ranked trading strategies. Also includes 31-dim news bias scoring across 3.2M+ articles for sentiment overlays. 50 free queries/IP, no signup. [Source](https://github.com/connerlambden/helium-mcp)
|
||||
- [The Stall](https://github.com/thebrierfox/the-stall) | `MCP`, `x402` | - Pay-per-call MCP server with 191 financial market data capabilities: US stocks, ETFs, equity fundamentals, analyst ratings, earnings surprises, insider trades, hedge fund holdings, options chains, treasury yields, macro indicators, DeFi, crypto, and prediction markets. Pays in USDC on Base via x402; no API keys required. [Server](https://the-stall.intuitek.ai)
|
||||
- [AlphaAI](https://alphai.io/developers) | `REST API`, `MCP` | - Relevance-scored, ticker-linked financial news (GDELT + SEC EDGAR): every article gets a 1-10 relevance score, a category, and per-ticker impact at ingest, and SEC Form 4 insider filings become scored structured events. Free tier: 20 req/min and 100/day, no card. [MCP](https://alphai.io/mcp)
|
||||
- [BDE Score™](https://github.com/hbhqq9/bde-score)   | `Python`, `MCP` | - AI-powered multi-market stock analysis with transparent multi-factor scoring for 73 stocks across US, HK, and A-share markets. EU AI Act Art.50 compliant. MCP server + REST API.
|
||||
|
||||
### Alternative
|
||||
|
||||
- [Adanos Market Sentiment API](https://api.adanos.org/docs/) | `REST API` | - Cross-platform market sentiment API for equities using Reddit, X/Twitter, and Polymarket signals; returns trending tickers, buzz scores, and sentiment snapshots for quant workflows.
|
||||
- [13F Insight](https://13finsight.com/?utm_source=github&utm_medium=referral&utm_campaign=seo_outreach_20260422&utm_content=wangzhe3224_awesome-systematic-trading) - AI-powered platform for tracking institutional investor 13F holdings; covers 5,000+ managers with position change alerts, concentration analysis, and quarterly filing summaries. Free tier available.
|
||||
- [SEC EDGAR Filing API](https://github.com/janlukasschroeder/sec-api-python)
|
||||
- [edgartools](https://github.com/dgunning/edgartools) |`Python`| - SEC EDGAR data for quant strategies — fundamentals, institutional holdings (13F), insider transactions, and corporate events (8-K). Includes MCP server for AI workflows.
|
||||
- [AlphaSMO](https://github.com/alphasmo/alphasmo-tools) | `CLI`, `MCP`, `REST API` | - SEC 13F institutional holdings, Form 4 insider trading, and a "smart money convergence" signal (tickers where institutions and insiders are both buying). Free anonymous tier, no signup required.
|
||||
- [CongressionalStockBrain](https://congressionalstockbrain.com) - AI-powered STOCK Act disclosure tracker that converts U.S. lawmaker trade filings into machine-scored signals for retail investors. Alternative data source for equity quant strategies. Free tier available.
|
||||
- [Helium MCP](https://github.com/connerlambden/helium-mcp)   | `REST API`, `MCP` | - Real-time stock, ETF, and crypto data with AI bull/bear cases and price forecasts; ML options fair value (probability ITM, full Greeks); top-ranked options strategies (short vol, long vol); and news sentiment from 5,000+ sources. MCP server with REST endpoints. Free tier: 50 queries, no auth. [Website](https://heliumtrades.com/mcp-page/)
|
||||
|
||||
### Crypto
|
||||
|
||||
- [Cryptofeed](https://github.com/bmoscon/cryptofeed) |`Python`| - Cryptocurrency Exchange Websocket Data Feed Handler with Asyncio
|
||||
- [Orderflow](https://github.com/focus1691/orderflow) | `TypeScript`, `NestJS`, `TimescaleDB` | - Builds real-time Footprint Candles from WebSocket trade data across crypto exchanges.
|
||||
- [Agent Gateway](https://agent-gateway-kappa.vercel.app) | `REST API` | - Free unified REST API providing real-time prices for 500+ crypto tokens via Hyperliquid. No API key required for price data. OpenAPI spec at `/openapi.json`.
|
||||
- [tessera-api](https://github.com/tesseralytics/python-client) | `Python` | - Official client for Tessera: order-flow-enriched OHLCV, funding-rate, and positioning datasets built from raw Hyperliquid trades, read straight into Polars or DuckDB over a REST API. [Website](https://tesseralytics.dev)
|
||||
- [CoinPaprika](https://api.coinpaprika.com) | `REST API` | - Free crypto market data API with prices, volume, market cap, OHLCV, and exchange data for 7,000+ coins. No API key required, no rate limits.
|
||||
- [DexPaprika](https://api.dexpaprika.com) | `REST API` | - Free DEX/DeFi data API covering pools, tokens, OHLCV, and trade history across all chains and DEXes. No API key, no rate limits.
|
||||
- [PreReason](https://github.com/PreReason/mcp) | `TypeScript`, `REST API`, `MCP` | - Pre-analyzed Bitcoin and macro market briefings. 17 contexts covering BTC, Fed balance sheet, M2, Treasury yields, hash rate, difficulty, mining production costs, and cross-asset correlations (SPY, QQQ, VXX, UUP as BTC relationship signals). Returns trend direction, confidence scores, percentile rankings, and regime classification. [Website](https://www.prereason.com)
|
||||
- [Sharpe](https://www.sharpe.ai/docs/free-api) | `REST API`, `MCP` | - Crypto market intelligence API and MCP server covering funding rates, options, arbitrage, narratives, exchange listings, and news. Public endpoints work without a required API key. [Website](https://www.sharpe.ai)
|
||||
- [Coinugget](https://coinugget.com) - Real-time RSI signals, price action & volume spikes dashboard for crypto traders. Free, no sign-up required.
|
||||
- [Microverse Systems](https://microversesystems.com) - Real-time L2 order books from 21 exchanges. Free WebSocket API, historical replay, sub-ms latency.
|
||||
- [Market Posture Daily](https://marketpd.com) - Daily trend, regime and relative-strength data for ~90 crypto assets and US stocks/ETFs (price vs the 50/200-day trend, momentum, correlation) plus a cointegration pair screener. Free terminal + JSON API.
|
||||
- [BitBank](https://bitbank.nz) | `REST API` | - AI-powered crypto forecasting and predictions API with machine learning models for price movement analysis.
|
||||
- [AgentServices](https://github.com/vbkotecha/aiservices-api) | `REST API`, `MCP`, `x402` | - Crypto & market data API platform with 54 services, 97 endpoints, and 37 MCP tools. On-chain payments via x402 (USDC on Base). Covers prices, OHLCV, on-chain metrics, DeFi data, and technical indicators. [Server](https://agentservices.to)
|
||||
- [WealthVille](https://wealthville.net/api/v1) | `REST API`, `MCP` | - DeFi liquidity-pool scoring for LP/yield strategies. Covers ~68,800 Solana pools (Meteora DLMM, Orca Whirlpool, Raydium AMM/CLMM/CPMM) and 575 EVM pools across Ethereum, Arbitrum, Base, Optimism, Polygon and BSC. Returns a 0-100 pool score plus an ENTER/HOLD/EXIT/REDUCE/AVOID verdict with per-protocol calibrated confidence, and publishes a miss-inclusive 30-day track record so the signal can be evaluated before it is used. No API key required. Endpoints: `/pools/top`, `/evm/pools`, `/signals/feed`, `/track-record`. [Website](https://wealthville.net/developers)
|
||||
|
||||
### Prediction Markets
|
||||
|
||||
- [Parsec](https://github.com/parsecular/parsec-mcp) | `Rust`, `TypeScript`, `Python` | - Prediction market data, execution, and live streams across all major exchanges. [Website](https://parsecapi.com)
|
||||
- [ProfitPlay Agent Arena](https://github.com/jarvismaximum-hue/profitplay-starter) | `Python`, `JavaScript` | - Open prediction market arena where AI agents compete in real-time BTC/ETH/SOL prediction games. Python and Node.js SDKs, 9 live markets, REST + WebSocket APIs. [(Demo)](https://profitplay-1066795472378.us-east1.run.app)
|
||||
- [pykalshi](https://github.com/ArshKA/kalshi-client)   | `Python` | - Feature-rich Python client for Kalshi prediction markets with WebSocket streaming, automatic retries, rate limiting, pandas integration, Jupyter rendering, and local orderbook management.
|
||||
- [TurbineFi](https://turbinefi.com) | `Web` | - Build, backtest, and deploy automated trading strategies for prediction markets including Kalshi and Polymarket.
|
||||
- [TBD Predict](https://github.com/ego-protocol/tbd-vote-cli) | `TypeScript` | - Solana-based prediction market for human opinions with an agent CLI (`@tbd-vote/cli`) and AGENTS.md spec for AI agents to authenticate, list opinion campaigns, and place bets via JSON-friendly commands. [Website](https://www.tbd.vote)
|
||||
- [PolyMind](https://polyminds.netlify.app/) | - Real-time Polymarket trading alerts with multi-AI analysis (Groq, Claude, Gemini). Monitors 200+ markets every 15 seconds across 12 signal types: whale bets, volume spikes, price reversals, coordinated wallets, and more. Free tier available.
|
||||
|
||||
## Broker APIs
|
||||
|
||||
- [Ib_insync](https://github.com/erdewit/ib_insync) | `Python` | - Python sync/async framework for Interactive Brokers API
|
||||
- [PENDAX](https://github.com/CompendiumFi/PENDAX-SDK) | `JavaScript` | - A free Javascript library allowing simplified interaction with trading and data commands on a growing list of cryptocurrency exchanges like FTX, OKX, ByBit, & more.
|
||||
- [ccxt](https://github.com/ccxt/ccxt) | `Python`, `JavaScript` | - A JavaScript / Python / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges
|
||||
- [Coinnect](https://github.com/hugues31/coinnect) | `Rust` | - Coinnect is a Rust library aiming to provide a complete access to main crypto currencies exchanges via REST API.
|
||||
- [async_rithmic](https://github.com/rundef/async_rithmic) | `Python` | - Python async framework for Rithmic Protocol Buffer API
|
||||
- [pmxt](https://github.com/pmxt-dev/pmxt) | `Python`, `JavaScript` | - A JavaScript / Python prediction markets trading API with support for major exchanges. (The ccxt for prediction markets)
|
||||
- [PolyClawster](https://github.com/al1enjesus/polyclawster) - AI agent skill for trading on Polymarket prediction markets. Non-custodial, whale signal detection, public leaderboard. Works as OpenClaw skill or Telegram Mini App.
|
||||
- [NanoStack](https://api.nano-labs.io) | `Rust`, `REST API` | - Permissionless cross-chain execution fabric. 86 chains, 8-15 bps fee, no API key required. Direct pool routing, conservation-enforced settlement, sub-millisecond dispatch.
|
||||
- More is coming... (PR welcome)
|
||||
|
||||
## Quant Shops Code and Blog
|
||||
|
||||
- **JaneStreet**
|
||||
- [JaneStreet Tech Blog](https://blog.janestreet.com/)
|
||||
- [JaneStreet Tech Podcast](https://signalsandthreads.com/)
|
||||
- [Tech Talks](https://www.janestreet.com/tech-talks/)
|
||||
- [Open Source](https://opensource.janestreet.com/)
|
||||
- Tech stack: Ocaml, C, F#
|
||||
- **Man AHL**
|
||||
- [Man Group Tech Blog](https://www.man.com/tech-articles-all)
|
||||
- [Podcast](https://www.man.com/maninstitute/podcasts)
|
||||
- [Open Source](https://github.com/man-group)
|
||||
- Tech stack: Python, JavaScript, Java, C, Go
|
||||
- **DE Show**
|
||||
- [Open Source](https://github.com/deshaw)
|
||||
- Tech stack: Python, TypeScript, JavaScript, Rust, Nix
|
||||
- **Two Sigma**
|
||||
- [Two Signal Engineering](https://www.twosigma.com/topic/engineering/)
|
||||
- [Open Source](https://github.com/twosigma)
|
||||
- Tech stack: Python, Java, C, Clojure, Rust
|
||||
- **Hudson River Trading - HRT**
|
||||
- [HRT Engineering](https://www.hudsonrivertrading.com/hrtbeat/category/engineering/)
|
||||
|
||||
## Resources
|
||||
|
||||
### Research
|
||||
|
||||
- [RevenPack - Insight](https://www.ravenpack.com/insights/research/)
|
||||
- [Alexandria Technology - Insight](https://www.alexandriatechnology.com/insights)
|
||||
|
||||
### Books
|
||||
|
||||
- [Building Low Latency Applications with C++](https://www.packtpub.com/product/building-low-latency-applications-with-c/9781837639359)
|
||||
- Source Code: <https://github.com/PacktPublishing/Building-Low-Latency-Applications-with-CPP>
|
||||
- [Quantitative Portfolio Management: The Art and Science of Statistical Arbitrage (2021)](https://www.amazon.co.uk/Quantitative-Portfolio-Management-Statistical-Arbitrage/dp/1119821320/ref=asc_df_1119821320/?tag=googshopuk-21&linkCode=df0&hvadid=534858257189&hvpos=&hvnetw=g&hvrand=3040398248892159445&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9044954&hvtargid=pla-919734400242&psc=1&th=1&psc=1)
|
||||
- [Algorithmic Trading with Python (2020) by Chris Conlan](https://github.com/chrisconlan/algorithmic-trading-with-python)
|
||||
- [Python for Algorithmic Trading (2020) by Dr. Yves J. Hilpisch](https://github.com/yhilpisch/py4at)
|
||||
- [Systematic Trading: A unique new method for designing trading and investing systems by Robert Carver](https://github.com/robcarver17/pysystemtrade)
|
||||
- [Machine Learning for Algorithmic Trading: Predictive models to extract signals from market and alternative data for systematic trading strategies with Python](https://github.com/stefan-jansen/machine-learning-for-trading)
|
||||
- [Advances in Financial Machine Learning](https://github.com/BlackArbsCEO/Adv_Fin_ML_Exercises)
|
||||
- [Machine Learning for Asset Managers](https://github.com/emoen/Machine-Learning-for-Asset-Managers)
|
||||
|
||||
### Blogs
|
||||
|
||||
- [QuantBox - Systematic trading toolbox](https://quant.funcoder.net/)
|
||||
- [大富翁量化](https://github.com/zillionare/zillionare)
|
||||
- [Proof Engineering: The Algorithmic Trading Platform](https://medium.com/prooftrading/proof-engineering-the-algorithmic-trading-platform-b9c2f195433d)
|
||||
- [KeepRule](https://keeprule.com) - Free investment principles knowledge base with 500+ rules from Buffett, Munger, Graham and more, organized by investing scenarios.
|
||||
|
||||
### Tutorials
|
||||
|
||||
- [Algorithmic Trading for Cryptocurrencies in Python](https://github.com/tudorelu/tudorials/tree/master/trading) - A simple yet practical experiment tutorial for cryto trading.
|
||||
- [Solo Crypto Quant Starter Kit](https://github.com/cryptomotifs/cipher-starter) - A 150-page playbook for building a Solana-native signal engine + autonomous trading bot solo on $0/mo infrastructure. Covers universe selection, top-K signal filtering, eighth-Kelly sizing, MEV sandwich defenses, three-tier wallet architecture, Canadian NI 31-103 compliance, and Oracle Cloud Always Free deploy. [Landing page](https://cryptomotifs.github.io/cipher-starter/).
|
||||
|
||||
### Courses
|
||||
|
||||
- [Hudson and Thames Quantitative Research](https://github.com/hudson-and-thames) - Our mission is to promote the scientific method within investment management by codifying frameworks, algorithms, and best practices.
|
||||
- More is coming... (PR welcome)
|
||||
|
||||
## Relevant Projects
|
||||
|
||||
- [量化交易知识集 @ 泛程序员](https://github.com/wangzhe3224/systematic-trading-knowledge-collection) - Collect knowledge around systematic trading, including software design, trading strategies, statistical skill. 量化交易/系统化交易知识集
|
||||
- [Awesome Quant 中文](https://github.com/thuquant/awesome-quant) - 中国的Quant相关资源索引
|
||||
- [awesome-deep-trading](https://github.com/cbailes/awesome-deep-trading) - List of awesome resources for machine learning-based algorithmic trading
|
||||
- [Awesome Crypto Trading Bots](https://github.com/botcrypto-io/awesome-crypto-trading-bots)
|
||||
|
||||
- [Congressional Stock Brain](https://congressionalstockbrain.com) - Free AI-powered platform that ingests every U.S. STOCK Act disclosure and scores each trade by significance: committee relevance, timing vs. legislative activity, trade size vs. historical baseline, and disclosure delay. Covers 800+ lawmakers and 50,000+ disclosed trades. No login required.
|
||||
|
||||
- [PolyMind](https://polyminds.netlify.app/) - Real-time Polymarket trading alerts with multi-AI analysis (Groq, Claude, Gemini). Monitors 200+ markets every 15 seconds across 12 signal types: whale bets, volume spikes, price reversals, coordinated wallets, and more. Free tier available.
|
||||
|
||||
- [EventTrader](https://cymetica.com?utm_source=github&utm_medium=pr&utm_campaign=trading-outreach) — CLOB exchange with 10 AI trading agents running live. Automated market making, epoch keeping, smart order routing. Pre-launch TGE token predictions on Base L2. REST + WebSocket API. [API](https://cymetica.com/api/docs) | [Platform](https://cymetica.com?utm_source=github&utm_medium=pr&utm_campaign=trading-outreach)
|
||||
- [ToolsNova](https://toolsnova.net) - Free browser-based trading calculators for forex and gold traders. Includes XAU/USD pip calculator, margin calculator, position size calculator and 100+ other tools. No signup required.
|
||||
+303
@@ -0,0 +1,303 @@
|
||||
# 棒棒的系统化交易
|
||||
|
||||
> 量化交易 + 一点数据科学
|
||||
|
||||
[](https://awesome.re)
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
[Start Tracker](https://seladb.github.io/StarTrack-js/#/preload?r=wangzhe3224,awesome-systematic-trading)
|
||||
|
||||
[English Version](./Readme.md)
|
||||
|
||||
> Open access: all rights granted for use and re-use of any kind, by anyone, at no cost, under your choice of either the free MIT License or Creative Commons CC-BY International Public License.
|
||||
>
|
||||
> © 2021 Zhe Wang ([知乎](https://www.zhihu.com/people/wangzhetju) | [wangzhetju@gmail.com](mailto:wangzhetju@gmai.com))
|
||||
|
||||
我们怎么选项目呢?
|
||||
|
||||
- 属于系统交易和量化交易范畴
|
||||
- 现在还在积极维护的
|
||||
- 具有优秀的编程书写风格和软件架构
|
||||
- (不全是) 有覆盖到测试
|
||||
|
||||
**如果你找到好的项目,或者想删除过时的项目,可以 raise PR 哦!**
|
||||
|
||||
可以用快捷查找方式找到相关的libraries,比如:`Ctrl+F`, `Rust`
|
||||
|
||||
关于crypto相关的: [>> 点这里 Systematic Crypto](crypto_focus.md).
|
||||
|
||||
- [棒棒的系统化交易](#棒棒的系统化交易)
|
||||
- [回测 + 实时交易](#回测--实时交易)
|
||||
- [General purpose](#general-purpose)
|
||||
- [加密货币相关](#加密货币相关)
|
||||
- [机器学习/强化学习](#机器学习强化学习)
|
||||
- [Alpha 集合](#alpha-集合)
|
||||
- [Alpha](#alpha)
|
||||
- [套利 (Crypto)](#套利-crypto)
|
||||
- [基本日常用到的库集合](#基本日常用到的库集合)
|
||||
- [基础库](#基础库)
|
||||
- [Computation Graph计算图](#computation-graph计算图)
|
||||
- [其他可用的库 libraries](#其他可用的库-libraries)
|
||||
- [Numpy Alternatives](#numpy-alternatives)
|
||||
- [Pandas Alternatives](#pandas-alternatives)
|
||||
- [分析工具 Analytic tools](#分析工具-analytic-tools)
|
||||
- [指标计算 Metrics computation](#指标计算-metrics-computation)
|
||||
- [指标 Indicators](#指标-indicators)
|
||||
- [定价 Pricing](#定价-pricing)
|
||||
- [风险 Risk](#风险-risk)
|
||||
- [优化 Optimization](#优化-optimization)
|
||||
- [时间序列分析 TimeSeries Analysis](#时间序列分析-timeseries-analysis)
|
||||
- [可视化 Visualization](#可视化-visualization)
|
||||
- [数据库 Databases](#数据库-databases)
|
||||
- [数据源 Data Source](#数据源-data-source)
|
||||
- [股票和其他 Stocks and General](#股票和其他-stocks-and-general)
|
||||
- [Crypto](#crypto)
|
||||
- [Broker APIs](#broker-apis)
|
||||
- [资源 Resources](#资源-resources)
|
||||
- [书籍](#书籍)
|
||||
- [博客](#博客)
|
||||
- [教程 Tutorials](#教程-tutorials)
|
||||
- [专业课程 Courses](#专业课程-courses)
|
||||
- [相关项目 Relevant Projects](#相关项目-relevant-projects)
|
||||
- [Buy me a coffee?](#buy-me-a-coffee)
|
||||
|
||||
|
||||
## 回测 + 实时交易
|
||||
|
||||
### General purpose
|
||||
|
||||
> 事件驱动框架
|
||||
|
||||
Note: 如果标有`Live Trading` 表示具有实时交易功能(至少一个),否则的话,只有回测功能而已。
|
||||
|
||||
- [aat](https://github.com/AsyncAlgoTrading/aat) | `Python`, `C++`, `Live Trading`| - 一个异步的、事件驱动的框架,主要用于编写Python算法交易策略(可以选择C++作为加速)。其具有模块化,可扩展性,支持多种工具和策略的特点,同时支持多个交易所之间进行实时交易。
|
||||
- [barter-rs](https://gitlab.com/open-source-keir/financial-modelling/trading/barter-rs) | `Rust` | - 开源Rust框架,用于建立事件驱动实时交易&回测系统。Open-source Rust framework for building event-driven live-trading & backtesting systems. Algorithmic trade with the peace of mind that comes from knowing your strategies have been backtested with a near-identical trading Engine.
|
||||
- [backtesting.py](https://github.com/kernc/backtesting.py) | `Python` | - Backtesting.py 是一个 Python 框架,用于根据历史(过去)数据推断交易策略的可行性。 在 Backtrader 的基础上进行了改进,且与其他的替代方案相比,Backtesting.py 是轻量级的、快速的、用户友好的、直观的、交互式的、智能的,并且有望面向未来。
|
||||
- [backtrader](https://github.com/mementum/backtrader) | `Python`, `Live Trading` | - 用于交易策略的事件驱动 Python 回测库
|
||||
- [FlashFunk](https://github.com/HFQR/FlashFunk) | `Rust` | - High Performance Runtime in Rust
|
||||
- [finmarketpy](https://github.com/cuemacro/finmarketpy) | `Python` | - 用于回测交易策略和分析金融市场的 Python 库(formerly pythalesians)
|
||||
- [FinClaw](https://github.com/NeuZhou/finclaw) | `Python` | - AI原生量化金融引擎,内置遗传算法策略进化。484个内置因子、Walk-Forward验证、多市场支持(A股、美股、加密货币)。策略通过GA自动进化,无需手动调参。
|
||||
- [gobacktest](https://github.com/gobacktest/gobacktest) | `Go` | - 基于Go的事件驱动回测框架
|
||||
- [lumibot](https://github.com/Lumiwealth/lumibot/tree/8da88cadfe9ee35399dd69c94aa5ed3cf995f417) | `Python` | - 一个非常简单但有用的回测和基于样本的实时交易框架(运行起来有点慢......)
|
||||
- [nautilus_trader](https://github.com/nautechsystems/nautilus_trader) | `Python`, `Cython`, `Rust`, `Live Trading` | - 高性能算法交易平台和事件驱动回测器
|
||||
- [QuantConnect](https://github.com/QuantConnect/Lean) | `C#`, `.NET`, `Live Trading` | - Lean 算法交易引擎 by QuantConnect (Python, C#)
|
||||
- [PineForge](https://github.com/pineforge-4pass/pineforge-engine) | `C++`, `PineScript` | - 确定性的 PineScript v6 离线回测引擎:把 Pine 转译成 C++ 在本机运行,与 TradingView 逐笔对齐校验(246 套参考策略中 245 套严格通过,0 引擎 bug)。一个 Docker 容器、免 API key,AI agent 可通过内置 MCP server 直接调用。
|
||||
- [QUANTAXIS](https://github.com/QUANTAXIS/QUANTAXIS) | `Python`, `Rust`, `Live Trading` | - QUANTAXIS 支持任务调度 分布式部署的 股票/期货/期权/港股/虚拟货币 数据/回测/模拟/交易/可视化/多账户 纯本地量化解决方案
|
||||
- [Rqalpha](https://github.com/ricequant/rqalpha) | `Python` | - 一个可扩展、可替换的 Python 算法回测 && 交易框架,支持多种证券
|
||||
- [quanttrader](https://github.com/letianzj/quanttrader) | `Python` | - 一个完全的基于python的事件驱动回测和量化交易者的实时交易库。
|
||||
- [sdoosa-algo-trade-python](https://github.com/sreenivasdoosa/sdoosa-algo-trade-python) | `Python` | - 该项目主要面向有兴趣学习使用 python 解释器编写自己的交易算法的算法交易新手。
|
||||
- [vnpy](https://github.com/vnpy/vnpy) | `Python`, `Stock`, `Futures`, `Crypto`, `Live Trading` | - 基于Python的开源量化交易系统开发框架,2015年1月正式发布,逐步成长为功能齐全的量化交易平台
|
||||
- [WonderTrader](https://github.com/wondertrader/wondertrader) | `C++`, `Python` | - WonderTrader——量化研发交易一站式框架
|
||||
- [zvt](https://github.com/zvtvz/zvt) | `Python`, `Stock`, `Backtest` | - Modular quant framework
|
||||
- [zipline](https://github.com/quantopian/zipline) | `Python` | - Zipline 是一个 Pythonic 算法交易库,用于回测的事件驱动系统。
|
||||
|
||||
> Vector Based Frameworks
|
||||
|
||||
- [bt](https://github.com/pmorissette/bt) | `Python` | - bt是一个基于Python的灵活回测框架,用于Algo和策略树中。
|
||||
- [pysystemtrade](https://github.com/robcarver17/pysystemtrade) | `Python`, `Live Trading` | - <Systematic Trading> by Rob Carver这本书的系统交易代码实现
|
||||
- [vectorbt](https://github.com/polakowo/vectorbt) | `Python`, `numba` | - vectorbt 采用了一种新颖的回测方法:它完全在 pandas 和 NumPy 对象上运行,并由 Numba 加速对大规模的数据进行分析,这使得于几秒钟内测试数千种策略。
|
||||
|
||||
### 加密货币相关
|
||||
|
||||
- [bTrader](https://github.com/gabriel-milan/btrader) | `Rust` | - Binance三角套利交易机器人
|
||||
- [crypto-crawler-rs](https://github.com/crypto-crawler/crypto-crawler-rs) | `Rust` | - 从加密货币交易所抓取订单簿和交易消息
|
||||
- [cryptotrader-core](https://github.com/monomadic/cryptotrader-core) | `Rust` | - 简单易用的Crypto Exchange REST API client(in Rust)
|
||||
- [openlimits](https://github.com/nash-io/openlimits) | `Rust` | - 一个 Rust 高性能加密货币交易 API,支持多个交易所和语言包装器。
|
||||
- [Freqtrade](https://github.com/freqtrade/freqtrade) | `Python` | - Freqtrade 是一个用 Python 编写的免费开源加密交易机器人。 它旨在支持所有主要交易所并通过 Telegram 进行控制。 它包含回测、绘图和资金管理工具以及通过机器学习进行的策略优化。
|
||||
- [Hummingbot](https://github.com/CoinAlpha/hummingbot) | `Python`, `Cython`, `Live Trading` | - A client for crypto market making
|
||||
- [Jesse](https://github.com/jesse-ai/jesse) | `Python` | - Jesse 是一个先进的加密交易框架,旨在简化交易策略的研究和定义。
|
||||
- [OctoBot](https://github.com/Drakkar-Software/OctoBot) | `Python`, `Cython`, `Live Trading`| - 具有高级 Web 界面的用于 TA、套利和社交交易的加密货币交易机器人
|
||||
- [Kelp](https://github.com/stellar/kelp) | `Go`, `Live Trading` | - Kelp 是一个免费的开源交易机器人,适用于 Stellar DEX 和 100 多个中心化交易所
|
||||
- [exc](https://github.com/Nouzan/exc) | `Rust` | - Exc 是一个加密货币交易所API抽象层实现,旨在让使用者更关注于策略实现。
|
||||
|
||||
### 机器学习/强化学习
|
||||
|
||||
> ML, RL
|
||||
|
||||
- [FinRL](https://github.com/AI4Finance-Foundation/FinRL) | `Python` | - FinRL 是第一个展示在量化金融中应用深度强化学习的巨大潜力的开源框架。
|
||||
- [QLib (Microsoft)](https://github.com/microsoft/qlib) | `Python`, `Cython` | - Qlib是一个面向AI的量化投资平台,旨在挖掘潜力,赋能研究,创造AI技术在量化投资中的价值。 使用 Qlib,您可以轻松尝试您的想法以创建更好的量化投资策略。 越来越多的 SOTA Quant 研究作品/论文在 Qlib 中发布。
|
||||
- [TradingGym](https://github.com/Yvictor/TradingGym) | `Python`, `Live Trading` | - 用于训练强化学习代理或简单规则库算法的交易和回测环境。
|
||||
- [Stock Trading Bot using Deep Q-Learning](https://github.com/pskrunner14/trading-bot) | `Python` | - 使用Deep Q Learning的股票交易机器人
|
||||
|
||||
## Alpha 集合
|
||||
|
||||
### Alpha
|
||||
|
||||
- [analyzingalpha](https://github.com/leosmigel/analyzingalpha)
|
||||
- [ThetaGang](https://github.com/brndnmtthws/thetagang) - ThetaGang is an IBKR bot for collecting money
|
||||
- https://www.reddit.com/r/options/comments/a36k4j/the_wheel_aka_triple_income_strategy_explained/
|
||||
|
||||
### 套利 (Crypto)
|
||||
|
||||
> 注意:这些项目很旧,没有维护。 我把它们放在这里只是为了展示一些加密套利的逻辑。
|
||||
|
||||
- [Blackbird](https://github.com/butor/blackbird) | `C++` | - 黑鸟比特币套利:多头/空头市场中性策略
|
||||
- [bitcoin-arbitrage](https://github.com/maxme/bitcoin-arbitrage) | `Python` | - 比特币套利 - 机会监控器
|
||||
- [R2 Bitcoin Arbitrager](https://github.com/bitrinjani/r2) | `TypeScript` | - R2 Bitcoin Arbitrager 是一个由 Node.js + TypeScript 提供支持的自动套利交易系统。
|
||||
|
||||
## 基本日常用到的库集合
|
||||
|
||||
### 基础库
|
||||
|
||||
- [Cvxpy](https://github.com/cvxpy/cvxpy) | `Python`, `C++` | - 用于凸优化问题的 Python 嵌入式建模语言.
|
||||
- [Numpy](https://github.com/numpy/numpy) | `Python`, `C` | - 使用 Python 进行科学计算的基础库
|
||||
- [Scipy](https://github.com/scipy/scipy) | `Python`, `C` | - 科学计算的基础算法(Python)
|
||||
- [Pandas](https://github.com/pandas-dev/pandas) | `Python`, `Cython` | - 灵活而强大的 Python 数据分析/操作库,提供类似于 R 的数据结构、框架对象、统计函数等
|
||||
- [Sikit-learn](https://github.com/scikit-learn/scikit-learn) | `Python`, `Cython` | - Machine learning in Python
|
||||
- [Keras](https://github.com/keras-team/keras) | `Python` | - 最友好的强化学习(in Python)
|
||||
- [TensorFlow](https://github.com/tensorflow/tensorflow) | `Python`, `C++` | - 更底层的深度学习框架
|
||||
- [Pytorch](https://github.com/pytorch/pytorch) | `Python` | - 具有强大 GPU 加速功能的 Python 张量和动态神经网络
|
||||
- [PyMC](https://github.com/pymc-devs/pymc) | `Python` | - Python 中的概率编程:使用 Aesara 进行贝叶斯建模和概率机器学习
|
||||
|
||||
### Computation Graph计算图
|
||||
|
||||
- [Dask](https://github.com/dask/dask) | `Python` | - 在 Python 中使用 Pandas 之类 API 进行任务调度的并行计算
|
||||
- [Ray](https://github.com/ray-project/ray) | `Python`, `C++` | - An open source framework that provides a simple, universal API for building distributed applications.
|
||||
- [Incremental (JaneStreet)](https://github.com/janestreet/incremental) | `Ocaml` | - Incremental 是一个库,它为您提供了一种构建复杂计算的方法,该计算可以有效地更新以响应输入的变化,灵感来自 Umut Acar et. al。关于自调整计算。 incremental在许多应用程序中都很有用
|
||||
- [GraphKit](https://github.com/yahoo/graphkit) | `Python` | - 用于创建和运行有序计算图的轻量级 Python 模块。
|
||||
- [Man MDF](https://github.com/man-group/mdf) | `Python` | - Python数据流编程工具包
|
||||
- [Tributary](https://github.com/timkpaine/tributary) | `Python` | - Python 流式处理反应式和数据流图
|
||||
|
||||
### 其他可用的库 libraries
|
||||
|
||||
#### Numpy Alternatives
|
||||
|
||||
- [ndarray](https://github.com/rust-ndarray/ndarray) | `Rust` | - ndarray: 具有数组视图、多维切片和高效操作的 N 维数组
|
||||
|
||||
#### Pandas Alternatives
|
||||
|
||||
- [Polars](https://github.com/pola-rs/polars) | `Rust`, `Python` | - Polars 是使用 Apache Arrow Columnar Format 作为内存模型在 Rust 中实现的速度极快的 DataFrames 库。
|
||||
- [Vaex](https://github.com/vaexio/vaex) | `Python`, `C++` | - Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second
|
||||
- [Modin](https://github.com/modin-project/modin) | `Python` | - Modin:通过更改一行代码来加快 Pandas 工作流程
|
||||
- [Koalas](https://github.com/databricks/koalas) | `Python` | - Koalas: pandas API on Apache Spark
|
||||
|
||||
## 分析工具 Analytic tools
|
||||
|
||||
### 指标计算 Metrics computation
|
||||
|
||||
- [ffn](https://github.com/pmorissette/ffn) | `Python` | - Python的金融函数库
|
||||
- [quantstats](https://github.com/ranaroussi/quantstats) | `Python` | - 用 Python 编写的量化投资组合分析
|
||||
|
||||
### 指标 Indicators
|
||||
|
||||
- [TA-Lib](https://ta-lib.org) | `C` | - 对金融市场数据进行技术分析
|
||||
- [Python Wrapper](https://github.com/mrjbq7/ta-lib) | `Python` |
|
||||
- [Go Port](https://github.com/markcheno/go-talib) | `Go` |
|
||||
- [Rust Wrapper](https://github.com/CLevasseur/ta-lib-rust) | `Rust` |
|
||||
- [ta-rust](https://github.com/greyblake/ta-rs) | `Rust` | - Rust金融分析库
|
||||
- [finta](https://github.com/peerchemist/finta) | `Python` | - Pandas常用金融技术指标
|
||||
- [pandas-ta](https://github.com/twopirllc/pandas-ta) | `Python` | - Pandas TA is an easy to use library that leverages the Pandas package with more than 130 Indicators and Utility functions and more than 60 TA Lib Candlestick Patterns.
|
||||
|
||||
### 定价 Pricing
|
||||
|
||||
- [Quantlib](https://www.quantlib.org)
|
||||
- [PyQL](https://github.com/enthought/pyql) | `Python`, `Cython` | - Python wrapper of the famous pricing library QuantLib
|
||||
- [QuantLib.jl](https://github.com/pazzo83/QuantLib.jl) | `Julia` | - Quantlib implementation in pure Julia.
|
||||
- [FinancePy](https://github.com/domokane/FinancePy) | `Python` | - Python 金融库,专注于金融衍生品的定价和风险管理,包括固定收益、股票、外汇和信用衍生品。
|
||||
- [tf-quant-finance](https://github.com/google/tf-quant-finance) - 量化金融的高性能 TensorFlow 库。
|
||||
|
||||
### 风险 Risk
|
||||
|
||||
- [pyfolio](https://github.com/quantopian/pyfolio) | `Python` | - Python 投资组合和风险分析
|
||||
|
||||
### 优化 Optimization
|
||||
|
||||
- [Deepdow](https://github.com/jankrepl/deepdow) | `Python` | - Python package connecting portfolio optimization and deep learning. Its goal is to facilitate research of networks that perform weight allocation in one forward pass.
|
||||
- [PyPortfolioOpt](https://github.com/robertmartin8/PyPortfolioOpt) | `Python` | - python 中的金融投资组合优化,包括经典有效前缘、Black-Litterman、分层风险平价策略
|
||||
- [Riskfolio-Lib](https://github.com/dcajasn/Riskfolio-Lib) | `Python` | - Python 投资组合优化和量化战略资产配置
|
||||
- [empyrial](https://github.com/ssantoshp/Empyrial) | `Python` | - Empyrial 是一个基于 Python 的开源量化投资库,致力于金融机构和散户投资者,于 2021 年 3 月正式发布。
|
||||
- [spectre](https://github.com/Heerozh/spectre) | `Python` | - Spectre 是一个 GPU 加速的并行量化交易库,专注于性能。
|
||||
|
||||
### 时间序列分析 TimeSeries Analysis
|
||||
|
||||
- [statsmodels](http://statsmodels.sourceforge.net) - 允许用户探索数据、估计统计模型和执行统计测试的 Python 模块。
|
||||
- [tsfresh](https://github.com/blue-yonder/tsfresh) - 从时间序列中自动提取相关特征。
|
||||
- [Facebook Prophet](https://github.com/facebook/prophet) - 用于为具有线性或非线性增长的多个季节性的时间序列数据生成高质量预测的工具。
|
||||
- [etf-pattern-match-pybind11](https://github.com/redamancy231-create/etf-pattern-match-pybind11) | `Python`, `C++`, `pybind11` | - ETF形态匹配工具,基于DTW动态时间规整+余弦距离预筛选,C++加速实现43倍性能提升,含pytest测试和双语文档。
|
||||
- [pmdarima](https://github.com/alkaline-ml/pmdarima) - 一个统计库,旨在填补 Python 时间序列分析功能的空白,包括与 R 的 auto.arima 函数等效的功能。
|
||||
|
||||
## 可视化 Visualization
|
||||
|
||||
- [D-Tale (Man Group)](https://github.com/man-group/dtale) | `JavaScript`, `Python` | - D-Tale 是 Flask 后端和 React 前端的组合,提供查看和分析 Pandas 数据结构功能。
|
||||
- [mplfinance](https://github.com/matplotlib/mplfinance) | `Python` | - 使用 Matplotlib 进行金融市场数据可视化
|
||||
- [btplotting](https://github.com/happydasch/btplotting) | `Python`, `bokeh` | - btplotting 提供回测、优化结果和来自 backtrader 的实时数据的绘图。
|
||||
|
||||
## 数据库 Databases
|
||||
|
||||
- [Arctic (Man Group)](https://github.com/man-group/arctic) | `Python` | - 时间序列和tick data的高性能数据存储
|
||||
- [Marketstore](https://github.com/alpacahq/marketstore) | `Go` | - 金融时间序列数据的 DataFrame 服务器
|
||||
- [Tectonicdb](https://github.com/0b01/tectonicdb) | `Rust` | - Tectonicdb 是一个快速、高度压缩的独立数据库和order book tick串流协议。
|
||||
|
||||
## 数据源 Data Source
|
||||
|
||||
### 股票和其他 Stocks and General
|
||||
|
||||
- [findatapy](https://github.com/cuemacro/findatapy) |`Python`| - findatapy 创建了一个易于使用的 Python API,使用统一的高级接口从 Quandl、Bloomberg、Yahoo、Google 等多个来源下载市场数据。
|
||||
- [yfinance](https://github.com/ranaroussi/yfinance) |`Python`| - yfinance 提供了从 Yahoo!Ⓡ Finance 下载市场数据。
|
||||
- [pandas-datareader](https://github.com/pydata/pandas-datareader) |`Python`| - 最新远程数据访问,适用于多个版本的 pandas。
|
||||
- [Wallstreet](https://github.com/mcdallas/wallstreet) |`Python`| - Wallstreet: 实时股票和期权工具
|
||||
- [TuShare](https://github.com/waditu/tushare) |`Python`| - TuShare是一个用于抓取中国股票历史数据的实用程序
|
||||
- [Investpy](https://github.com/alvarobartt/investpy) - 使用 Python 从 Investing.com 提取财务数据
|
||||
- [AkShare](https://github.com/akfamily/akshare) |`Python`| - AKShare 是一个优雅简洁的 Python 金融数据接口库,专为人类打造! 开源财经数据接口库
|
||||
- [Fundamental Analysis Data](https://github.com/JerBouma/FundamentalAnalysis) | `Python` | - 是一个成熟的基本面分析库,能够收集 20.000 多家公司的 20 年公司简介、财务报表、比率和股票数据。
|
||||
- [Adanos Market Sentiment API](https://api.adanos.org/docs/) | `REST API` | - 跨平台股票市场情绪 API,结合 Reddit、X/Twitter 和 Polymarket 信号,提供 trending tickers、buzz scores 和情绪指标,适合量化研究工作流。
|
||||
|
||||
### Crypto
|
||||
|
||||
- [Cryptofeed](https://github.com/bmoscon/cryptofeed) |`Python`| - Cryptocurrency Exchange Websocket Data Feed Handler with Asyncio
|
||||
|
||||
## Broker APIs
|
||||
|
||||
- [Ib_insync](https://github.com/erdewit/ib_insync) | `Python` | - P盈透证券API的同步/异步python框架
|
||||
- [ccxt](https://github.com/ccxt/ccxt) | `Python`, `JavaScript` | - 一个 JavaScript / Python / PHP 加密货币交易 API,支持 100 多个比特币/山寨币交易所
|
||||
- [Coinnect](https://github.com/hugues31/coinnect) | `Rust` | - Coinnect 是一个 Rust 库,旨在通过 REST API 提供对主要加密货币交易所的完整访问。
|
||||
- More is coming... (欢迎PR)
|
||||
|
||||
## 资源 Resources
|
||||
|
||||
### 书籍
|
||||
|
||||
- [Quantitative Portfolio Management: The Art and Science of Statistical Arbitrage (2021)](https://www.amazon.co.uk/Quantitative-Portfolio-Management-Statistical-Arbitrage/dp/1119821320/ref=asc_df_1119821320/?tag=googshopuk-21&linkCode=df0&hvadid=534858257189&hvpos=&hvnetw=g&hvrand=3040398248892159445&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9044954&hvtargid=pla-919734400242&psc=1&th=1&psc=1)
|
||||
- [Algorithmic Trading with Python (2020) by Chris Conlan](https://github.com/chrisconlan/algorithmic-trading-with-python)
|
||||
- [Python for Algorithmic Trading (2020) by Dr. Yves J. Hilpisch](https://github.com/yhilpisch/py4at)
|
||||
- [Systematic Trading: A unique new method for designing trading and investing systems by Robert Carver](https://github.com/robcarver17/pysystemtrade)
|
||||
- [Machine Learning for Algorithmic Trading: Predictive models to extract signals from market and alternative data for systematic trading strategies with Python](https://github.com/stefan-jansen/machine-learning-for-trading)
|
||||
- [Advances in Financial Machine Learning](https://github.com/BlackArbsCEO/Adv_Fin_ML_Exercises)
|
||||
- [Machine Learning for Asset Managers](https://github.com/emoen/Machine-Learning-for-Asset-Managers)
|
||||
- More is coming... (PR welcome)
|
||||
|
||||
### 博客
|
||||
|
||||
- [Proof Engineering: The Algorithmic Trading Platform](https://medium.com/prooftrading/proof-engineering-the-algorithmic-trading-platform-b9c2f195433d) 证明工程:算法交易平台
|
||||
|
||||
### 教程 Tutorials
|
||||
|
||||
- [Algorithmic Trading for Cryptocurrencies in Python](https://github.com/tudorelu/tudorials/tree/master/trading) - 一个简单而实用的加密交易教程。
|
||||
|
||||
### 专业课程 Courses
|
||||
|
||||
- [Hudson and Thames Quantitative Research](https://github.com/hudson-and-thames) - 目标是提倡使用编纂框架、算法和最佳实践等方式促进投资管理中的科学方法。
|
||||
- More is coming... (PR welcome)
|
||||
|
||||
## 相关项目 Relevant Projects
|
||||
|
||||
- [量化交易知识集 @ 泛程序员](https://github.com/wangzhe3224/systematic-trading-knowledge-collection) - 收集有关系统交易的知识,包括软件设计、交易策略、统计技能. 量化交易/系统化交易知识集
|
||||
- [Awesome Quant 中文](https://github.com/thuquant/awesome-quant) - 中国的Quant相关资源索引
|
||||
- [awesome-deep-trading](https://github.com/cbailes/awesome-deep-trading) - 机器学习的算法交易的资源列表
|
||||
- [Awesome Crypto Trading Bots](https://github.com/botcrypto-io/awesome-crypto-trading-bots)
|
||||
|
||||
## Buy me a coffee?
|
||||
|
||||
作者收集资料和维护项目等花费了不少心思和时间,如果你想支持一下的话,可以送我一杯咖啡呀!:)
|
||||
|
||||
- [Patreon](https://www.patreon.com/funcoder777)
|
||||
- BTC: bc1qrjrffv7aaf5f4f6dydkt4yaukt4297vedd6w6p
|
||||
- 支付宝
|
||||
|
||||
<img src="https://github.com/wangzhe3224/awesome-systematic-trading/blob/master/assets/IMG_0825.jpg" width="200" height="200" />
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 105 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 KiB |
-16
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-18
@@ -1,18 +0,0 @@
|
||||
/*!
|
||||
* Lunr languages, `Danish` language
|
||||
* https://github.com/MihaiValentin/lunr-languages
|
||||
*
|
||||
* Copyright 2014, Mihai Valentin
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
/*!
|
||||
* based on
|
||||
* Snowball JavaScript Library v0.3
|
||||
* http://code.google.com/p/urim/
|
||||
* http://snowball.tartarus.org/
|
||||
*
|
||||
* Copyright 2010, Oleg Mazko
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=f.cursor+3;if(d=f.limit,0<=r&&r<=f.limit){for(a=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d<a&&(d=a)}}function n(){var e,r;if(f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});
|
||||
-18
File diff suppressed because one or more lines are too long
-18
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-18
File diff suppressed because one or more lines are too long
-18
File diff suppressed because one or more lines are too long
-18
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}});
|
||||
-18
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hy=function(){this.pipeline.reset(),this.pipeline.add(e.hy.trimmer,e.hy.stopWordFilter)},e.hy.wordCharacters="[A-Za-z-֏ff-ﭏ]",e.hy.trimmer=e.trimmerSupport.generateTrimmer(e.hy.wordCharacters),e.Pipeline.registerFunction(e.hy.trimmer,"trimmer-hy"),e.hy.stopWordFilter=e.generateStopWordFilter("դու և եք էիր էիք հետո նաև նրանք որը վրա է որ պիտի են այս մեջ ն իր ու ի այդ որոնք այն կամ էր մի ես համար այլ իսկ էին ենք հետ ին թ էինք մենք նրա նա դուք եմ էի ըստ որպես ում".split(" ")),e.Pipeline.registerFunction(e.hy.stopWordFilter,"stopWordFilter-hy"),e.hy.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}(),e.Pipeline.registerFunction(e.hy.stemmer,"stemmer-hy")}});
|
||||
-18
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n<p.length;n++)r?a.push(new e.Token(p[n],{position:[f,p[n].length],index:a.length})):a.push(p[n]),f+=p[n].length;l=c+1}return a},e.ja.stemmer=function(){return function(e){return e}}(),e.Pipeline.registerFunction(e.ja.stemmer,"stemmer-ja"),e.ja.wordCharacters="一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Za-zA-Z0-90-9",e.ja.trimmer=e.trimmerSupport.generateTrimmer(e.ja.wordCharacters),e.Pipeline.registerFunction(e.ja.trimmer,"trimmer-ja"),e.ja.stopWordFilter=e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")),e.Pipeline.registerFunction(e.ja.stopWordFilter,"stopWordFilter-ja"),e.jp=e.ja,e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.Pipeline.registerFunction(e.jp.trimmer,"trimmer-jp"),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}});
|
||||
-1
@@ -1 +0,0 @@
|
||||
module.exports=require("./lunr.ja");
|
||||
-1
@@ -1 +0,0 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.kn=function(){this.pipeline.reset(),this.pipeline.add(e.kn.trimmer,e.kn.stopWordFilter,e.kn.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.kn.stemmer))},e.kn.wordCharacters="ಀ-಄ಅ-ಔಕ-ಹಾ-ೌ಼-ಽೕ-ೖೝ-ೞೠ-ೡೢ-ೣ೦-೯ೱ-ೳ",e.kn.trimmer=e.trimmerSupport.generateTrimmer(e.kn.wordCharacters),e.Pipeline.registerFunction(e.kn.trimmer,"trimmer-kn"),e.kn.stopWordFilter=e.generateStopWordFilter("ಮತ್ತು ಈ ಒಂದು ರಲ್ಲಿ ಹಾಗೂ ಎಂದು ಅಥವಾ ಇದು ರ ಅವರು ಎಂಬ ಮೇಲೆ ಅವರ ತನ್ನ ಆದರೆ ತಮ್ಮ ನಂತರ ಮೂಲಕ ಹೆಚ್ಚು ನ ಆ ಕೆಲವು ಅನೇಕ ಎರಡು ಹಾಗು ಪ್ರಮುಖ ಇದನ್ನು ಇದರ ಸುಮಾರು ಅದರ ಅದು ಮೊದಲ ಬಗ್ಗೆ ನಲ್ಲಿ ರಂದು ಇತರ ಅತ್ಯಂತ ಹೆಚ್ಚಿನ ಸಹ ಸಾಮಾನ್ಯವಾಗಿ ನೇ ಹಲವಾರು ಹೊಸ ದಿ ಕಡಿಮೆ ಯಾವುದೇ ಹೊಂದಿದೆ ದೊಡ್ಡ ಅನ್ನು ಇವರು ಪ್ರಕಾರ ಇದೆ ಮಾತ್ರ ಕೂಡ ಇಲ್ಲಿ ಎಲ್ಲಾ ವಿವಿಧ ಅದನ್ನು ಹಲವು ರಿಂದ ಕೇವಲ ದ ದಕ್ಷಿಣ ಗೆ ಅವನ ಅತಿ ನೆಯ ಬಹಳ ಕೆಲಸ ಎಲ್ಲ ಪ್ರತಿ ಇತ್ಯಾದಿ ಇವು ಬೇರೆ ಹೀಗೆ ನಡುವೆ ಇದಕ್ಕೆ ಎಸ್ ಇವರ ಮೊದಲು ಶ್ರೀ ಮಾಡುವ ಇದರಲ್ಲಿ ರೀತಿಯ ಮಾಡಿದ ಕಾಲ ಅಲ್ಲಿ ಮಾಡಲು ಅದೇ ಈಗ ಅವು ಗಳು ಎ ಎಂಬುದು ಅವನು ಅಂದರೆ ಅವರಿಗೆ ಇರುವ ವಿಶೇಷ ಮುಂದೆ ಅವುಗಳ ಮುಂತಾದ ಮೂಲ ಬಿ ಮೀ ಒಂದೇ ಇನ್ನೂ ಹೆಚ್ಚಾಗಿ ಮಾಡಿ ಅವರನ್ನು ಇದೇ ಯ ರೀತಿಯಲ್ಲಿ ಜೊತೆ ಅದರಲ್ಲಿ ಮಾಡಿದರು ನಡೆದ ಆಗ ಮತ್ತೆ ಪೂರ್ವ ಆತ ಬಂದ ಯಾವ ಒಟ್ಟು ಇತರೆ ಹಿಂದೆ ಪ್ರಮಾಣದ ಗಳನ್ನು ಕುರಿತು ಯು ಆದ್ದರಿಂದ ಅಲ್ಲದೆ ನಗರದ ಮೇಲಿನ ಏಕೆಂದರೆ ರಷ್ಟು ಎಂಬುದನ್ನು ಬಾರಿ ಎಂದರೆ ಹಿಂದಿನ ಆದರೂ ಆದ ಸಂಬಂಧಿಸಿದ ಮತ್ತೊಂದು ಸಿ ಆತನ ".split(" ")),e.kn.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.kn.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var n=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(n).split("|")},e.Pipeline.registerFunction(e.kn.stemmer,"stemmer-kn"),e.Pipeline.registerFunction(e.kn.stopWordFilter,"stopWordFilter-kn")}});
|
||||
-1
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],s=[],p=0;p<t.length;++p)"en"==t[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[t[p]].wordCharacters,e[t[p]].stopWordFilter&&n.unshift(e[t[p]].stopWordFilter),e[t[p]].stemmer&&(n.push(e[t[p]].stemmer),s.push(e[t[p]].stemmer)));var o=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(o,"lunr-multi-trimmer-"+i),n.unshift(o),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add.apply(this.searchPipeline,s))}}}});
|
||||
-18
File diff suppressed because one or more lines are too long
-18
@@ -1,18 +0,0 @@
|
||||
/*!
|
||||
* Lunr languages, `Norwegian` language
|
||||
* https://github.com/MihaiValentin/lunr-languages
|
||||
*
|
||||
* Copyright 2014, Mihai Valentin
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
/*!
|
||||
* based on
|
||||
* Snowball JavaScript Library v0.3
|
||||
* http://code.google.com/p/urim/
|
||||
* http://snowball.tartarus.org/
|
||||
*
|
||||
* Copyright 2010, Oleg Mazko
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a<s&&(a=s)}}function i(){var e,r,n;if(w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
|
||||
-18
File diff suppressed because one or more lines are too long
-18
File diff suppressed because one or more lines are too long
-18
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sa=function(){this.pipeline.reset(),this.pipeline.add(e.sa.trimmer,e.sa.stopWordFilter,e.sa.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sa.stemmer))},e.sa.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿ꣠-꣱ꣲ-ꣷ꣸-ꣻ꣼-ꣽꣾ-ꣿᆰ0-ᆰ9",e.sa.trimmer=e.trimmerSupport.generateTrimmer(e.sa.wordCharacters),e.Pipeline.registerFunction(e.sa.trimmer,"trimmer-sa"),e.sa.stopWordFilter=e.generateStopWordFilter('तथा अयम् एकम् इत्यस्मिन् तथा तत् वा अयम् इत्यस्य ते आहूत उपरि तेषाम् किन्तु तेषाम् तदा इत्यनेन अधिकः इत्यस्य तत् केचन बहवः द्वि तथा महत्वपूर्णः अयम् अस्य विषये अयं अस्ति तत् प्रथमः विषये इत्युपरि इत्युपरि इतर अधिकतमः अधिकः अपि सामान्यतया ठ इतरेतर नूतनम् द न्यूनम् कश्चित् वा विशालः द सः अस्ति तदनुसारम् तत्र अस्ति केवलम् अपि अत्र सर्वे विविधाः तत् बहवः यतः इदानीम् द दक्षिण इत्यस्मै तस्य उपरि नथ अतीव कार्यम् सर्वे एकैकम् इत्यादि। एते सन्ति उत इत्थम् मध्ये एतदर्थं . स कस्य प्रथमः श्री. करोति अस्मिन् प्रकारः निर्मिता कालः तत्र कर्तुं समान अधुना ते सन्ति स एकः अस्ति सः अर्थात् तेषां कृते . स्थितम् विशेषः अग्रिम तेषाम् समान स्रोतः ख म समान इदानीमपि अधिकतया करोतु ते समान इत्यस्य वीथी सह यस्मिन् कृतवान् धृतः तदा पुनः पूर्वं सः आगतः किम् कुल इतर पुरा मात्रा स विषये उ अतएव अपि नगरस्य उपरि यतः प्रतिशतं कतरः कालः साधनानि भूत तथापि जात सम्बन्धि अन्यत् ग अतः अस्माकं स्वकीयाः अस्माकं इदानीं अन्तः इत्यादयः भवन्तः इत्यादयः एते एताः तस्य अस्य इदम् एते तेषां तेषां तेषां तान् तेषां तेषां तेषां समानः सः एकः च तादृशाः बहवः अन्ये च वदन्ति यत् कियत् कस्मै कस्मै यस्मै यस्मै यस्मै यस्मै न अतिनीचः किन्तु प्रथमं सम्पूर्णतया ततः चिरकालानन्तरं पुस्तकं सम्पूर्णतया अन्तः किन्तु अत्र वा इह इव श्रद्धाय अवशिष्यते परन्तु अन्ये वर्गाः सन्ति ते सन्ति शक्नुवन्ति सर्वे मिलित्वा सर्वे एकत्र"'.split(" ")),e.sa.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.sa.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var i=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(i).split("|")},e.Pipeline.registerFunction(e.sa.stemmer,"stemmer-sa"),e.Pipeline.registerFunction(e.sa.stopWordFilter,"stopWordFilter-sa")}});
|
||||
@@ -1 +0,0 @@
|
||||
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||e<i)return this.cursor++,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e<i)return this.cursor--,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=_.s_size-1-l;m>=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
/*!
|
||||
* Lunr languages, `Swedish` language
|
||||
* https://github.com/MihaiValentin/lunr-languages
|
||||
*
|
||||
* Copyright 2014, Mihai Valentin
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
/*!
|
||||
* based on
|
||||
* Snowball JavaScript Library v0.3
|
||||
* http://code.google.com/p/urim/
|
||||
* http://snowball.tartarus.org/
|
||||
*
|
||||
* Copyright 2010, Oleg Mazko
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o<a&&(o=a)}}function t(){var e,r=w.limit_backward;if(w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});
|
||||
-1
@@ -1 +0,0 @@
|
||||
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ta=function(){this.pipeline.reset(),this.pipeline.add(e.ta.trimmer,e.ta.stopWordFilter,e.ta.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ta.stemmer))},e.ta.wordCharacters="-உஊ-ஏஐ-ஙச-ட-னப-யர-ஹ-ிீ-ொ-ௐ---௩௪-௯௰-௹௺-a-zA-Za-zA-Z0-90-9",e.ta.trimmer=e.trimmerSupport.generateTrimmer(e.ta.wordCharacters),e.Pipeline.registerFunction(e.ta.trimmer,"trimmer-ta"),e.ta.stopWordFilter=e.generateStopWordFilter("அங்கு அங்கே அது அதை அந்த அவர் அவர்கள் அவள் அவன் அவை ஆக ஆகவே ஆகையால் ஆதலால் ஆதலினால் ஆனாலும் ஆனால் இங்கு இங்கே இது இதை இந்த இப்படி இவர் இவர்கள் இவள் இவன் இவை இவ்வளவு உனக்கு உனது உன் உன்னால் எங்கு எங்கே எது எதை எந்த எப்படி எவர் எவர்கள் எவள் எவன் எவை எவ்வளவு எனக்கு எனது எனவே என் என்ன என்னால் ஏது ஏன் தனது தன்னால் தானே தான் நாங்கள் நாம் நான் நீ நீங்கள்".split(" ")),e.ta.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.ta.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.ta.stemmer,"stemmer-ta"),e.Pipeline.registerFunction(e.ta.stopWordFilter,"stopWordFilter-ta")}});
|
||||
-1
@@ -1 +0,0 @@
|
||||
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.te=function(){this.pipeline.reset(),this.pipeline.add(e.te.trimmer,e.te.stopWordFilter,e.te.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.te.stemmer))},e.te.wordCharacters="ఀ-ఄఅ-ఔక-హా-ౌౕ-ౖౘ-ౚౠ-ౡౢ-ౣ౦-౯౸-౿఼ఽ్ౝ౷",e.te.trimmer=e.trimmerSupport.generateTrimmer(e.te.wordCharacters),e.Pipeline.registerFunction(e.te.trimmer,"trimmer-te"),e.te.stopWordFilter=e.generateStopWordFilter("అందరూ అందుబాటులో అడగండి అడగడం అడ్డంగా అనుగుణంగా అనుమతించు అనుమతిస్తుంది అయితే ఇప్పటికే ఉన్నారు ఎక్కడైనా ఎప్పుడు ఎవరైనా ఎవరో ఏ ఏదైనా ఏమైనప్పటికి ఒక ఒకరు కనిపిస్తాయి కాదు కూడా గా గురించి చుట్టూ చేయగలిగింది తగిన తర్వాత దాదాపు దూరంగా నిజంగా పై ప్రకారం ప్రక్కన మధ్య మరియు మరొక మళ్ళీ మాత్రమే మెచ్చుకో వద్ద వెంట వేరుగా వ్యతిరేకంగా సంబంధం".split(" ")),e.te.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.te.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.te.stemmer,"stemmer-te"),e.Pipeline.registerFunction(e.te.stopWordFilter,"stopWordFilter-te")}});
|
||||
-1
@@ -1 +0,0 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[-]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}});
|
||||
-18
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}});
|
||||
-1
@@ -1 +0,0 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("@node-rs/jieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 為 以 于 於 上 他 而 后 後 之 来 來 及 了 因 下 可 到 由 这 這 与 與 也 此 但 并 並 个 個 其 已 无 無 小 我 们 們 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 當 从 從 得 打 凡 儿 兒 尔 爾 该 該 各 给 給 跟 和 何 还 還 即 几 幾 既 看 据 據 距 靠 啦 另 么 麽 每 嘛 拿 哪 您 凭 憑 且 却 卻 让 讓 仍 啥 如 若 使 谁 誰 虽 雖 随 隨 同 所 她 哇 嗡 往 些 向 沿 哟 喲 用 咱 则 則 怎 曾 至 致 着 著 诸 諸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}});
|
||||
@@ -1,206 +0,0 @@
|
||||
/**
|
||||
* export the module via AMD, CommonJS or as a browser global
|
||||
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
|
||||
*/
|
||||
;(function (root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(factory)
|
||||
} else if (typeof exports === 'object') {
|
||||
/**
|
||||
* Node. Does not work with strict CommonJS, but
|
||||
* only CommonJS-like environments that support module.exports,
|
||||
* like Node.
|
||||
*/
|
||||
module.exports = factory()
|
||||
} else {
|
||||
// Browser globals (root is window)
|
||||
factory()(root.lunr);
|
||||
}
|
||||
}(this, function () {
|
||||
/**
|
||||
* Just return a value to define the module export.
|
||||
* This example returns an object, but the module
|
||||
* can return a function as the exported value.
|
||||
*/
|
||||
|
||||
return function(lunr) {
|
||||
// TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript
|
||||
// (c) 2008 Taku Kudo <taku@chasen.org>
|
||||
// TinySegmenter is freely distributable under the terms of a new BSD licence.
|
||||
// For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt
|
||||
|
||||
function TinySegmenter() {
|
||||
var patterns = {
|
||||
"[一二三四五六七八九十百千万億兆]":"M",
|
||||
"[一-龠々〆ヵヶ]":"H",
|
||||
"[ぁ-ん]":"I",
|
||||
"[ァ-ヴーア-ン゙ー]":"K",
|
||||
"[a-zA-Za-zA-Z]":"A",
|
||||
"[0-90-9]":"N"
|
||||
}
|
||||
this.chartype_ = [];
|
||||
for (var i in patterns) {
|
||||
var regexp = new RegExp(i);
|
||||
this.chartype_.push([regexp, patterns[i]]);
|
||||
}
|
||||
|
||||
this.BIAS__ = -332
|
||||
this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378};
|
||||
this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920};
|
||||
this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266};
|
||||
this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352};
|
||||
this.BP2__ = {"BO":60,"OO":-1762};
|
||||
this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965};
|
||||
this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146};
|
||||
this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699};
|
||||
this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973};
|
||||
this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682};
|
||||
this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669};
|
||||
this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990};
|
||||
this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832};
|
||||
this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649};
|
||||
this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393};
|
||||
this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841};
|
||||
this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68};
|
||||
this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591};
|
||||
this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685};
|
||||
this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156};
|
||||
this.TW1__ = {"につい":-4681,"東京都":2026};
|
||||
this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216};
|
||||
this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287};
|
||||
this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865};
|
||||
this.UC1__ = {"A":484,"K":93,"M":645,"O":-505};
|
||||
this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646};
|
||||
this.UC3__ = {"A":-1370,"I":2311};
|
||||
this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646};
|
||||
this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831};
|
||||
this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387};
|
||||
this.UP1__ = {"O":-214};
|
||||
this.UP2__ = {"B":69,"O":935};
|
||||
this.UP3__ = {"B":189};
|
||||
this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422};
|
||||
this.UQ2__ = {"BH":216,"BI":113,"OK":1759};
|
||||
this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212};
|
||||
this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135};
|
||||
this.UW2__ = {",":-829,"、":-829,"〇":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568};
|
||||
this.UW3__ = {",":4889,"1":-800,"−":-1723,"、":4889,"々":-2311,"〇":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"1":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278};
|
||||
this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"〇":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637};
|
||||
this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"1":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343};
|
||||
this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"1":-270,"E1":306,"ル":-673,"ン":-496};
|
||||
|
||||
return this;
|
||||
}
|
||||
TinySegmenter.prototype.ctype_ = function(str) {
|
||||
for (var i in this.chartype_) {
|
||||
if (str.match(this.chartype_[i][0])) {
|
||||
return this.chartype_[i][1];
|
||||
}
|
||||
}
|
||||
return "O";
|
||||
}
|
||||
|
||||
TinySegmenter.prototype.ts_ = function(v) {
|
||||
if (v) { return v; }
|
||||
return 0;
|
||||
}
|
||||
|
||||
TinySegmenter.prototype.segment = function(input) {
|
||||
if (input == null || input == undefined || input == "") {
|
||||
return [];
|
||||
}
|
||||
var result = [];
|
||||
var seg = ["B3","B2","B1"];
|
||||
var ctype = ["O","O","O"];
|
||||
var o = input.split("");
|
||||
for (i = 0; i < o.length; ++i) {
|
||||
seg.push(o[i]);
|
||||
ctype.push(this.ctype_(o[i]))
|
||||
}
|
||||
seg.push("E1");
|
||||
seg.push("E2");
|
||||
seg.push("E3");
|
||||
ctype.push("O");
|
||||
ctype.push("O");
|
||||
ctype.push("O");
|
||||
var word = seg[3];
|
||||
var p1 = "U";
|
||||
var p2 = "U";
|
||||
var p3 = "U";
|
||||
for (var i = 4; i < seg.length - 3; ++i) {
|
||||
var score = this.BIAS__;
|
||||
var w1 = seg[i-3];
|
||||
var w2 = seg[i-2];
|
||||
var w3 = seg[i-1];
|
||||
var w4 = seg[i];
|
||||
var w5 = seg[i+1];
|
||||
var w6 = seg[i+2];
|
||||
var c1 = ctype[i-3];
|
||||
var c2 = ctype[i-2];
|
||||
var c3 = ctype[i-1];
|
||||
var c4 = ctype[i];
|
||||
var c5 = ctype[i+1];
|
||||
var c6 = ctype[i+2];
|
||||
score += this.ts_(this.UP1__[p1]);
|
||||
score += this.ts_(this.UP2__[p2]);
|
||||
score += this.ts_(this.UP3__[p3]);
|
||||
score += this.ts_(this.BP1__[p1 + p2]);
|
||||
score += this.ts_(this.BP2__[p2 + p3]);
|
||||
score += this.ts_(this.UW1__[w1]);
|
||||
score += this.ts_(this.UW2__[w2]);
|
||||
score += this.ts_(this.UW3__[w3]);
|
||||
score += this.ts_(this.UW4__[w4]);
|
||||
score += this.ts_(this.UW5__[w5]);
|
||||
score += this.ts_(this.UW6__[w6]);
|
||||
score += this.ts_(this.BW1__[w2 + w3]);
|
||||
score += this.ts_(this.BW2__[w3 + w4]);
|
||||
score += this.ts_(this.BW3__[w4 + w5]);
|
||||
score += this.ts_(this.TW1__[w1 + w2 + w3]);
|
||||
score += this.ts_(this.TW2__[w2 + w3 + w4]);
|
||||
score += this.ts_(this.TW3__[w3 + w4 + w5]);
|
||||
score += this.ts_(this.TW4__[w4 + w5 + w6]);
|
||||
score += this.ts_(this.UC1__[c1]);
|
||||
score += this.ts_(this.UC2__[c2]);
|
||||
score += this.ts_(this.UC3__[c3]);
|
||||
score += this.ts_(this.UC4__[c4]);
|
||||
score += this.ts_(this.UC5__[c5]);
|
||||
score += this.ts_(this.UC6__[c6]);
|
||||
score += this.ts_(this.BC1__[c2 + c3]);
|
||||
score += this.ts_(this.BC2__[c3 + c4]);
|
||||
score += this.ts_(this.BC3__[c4 + c5]);
|
||||
score += this.ts_(this.TC1__[c1 + c2 + c3]);
|
||||
score += this.ts_(this.TC2__[c2 + c3 + c4]);
|
||||
score += this.ts_(this.TC3__[c3 + c4 + c5]);
|
||||
score += this.ts_(this.TC4__[c4 + c5 + c6]);
|
||||
// score += this.ts_(this.TC5__[c4 + c5 + c6]);
|
||||
score += this.ts_(this.UQ1__[p1 + c1]);
|
||||
score += this.ts_(this.UQ2__[p2 + c2]);
|
||||
score += this.ts_(this.UQ3__[p3 + c3]);
|
||||
score += this.ts_(this.BQ1__[p2 + c2 + c3]);
|
||||
score += this.ts_(this.BQ2__[p2 + c3 + c4]);
|
||||
score += this.ts_(this.BQ3__[p3 + c2 + c3]);
|
||||
score += this.ts_(this.BQ4__[p3 + c3 + c4]);
|
||||
score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]);
|
||||
score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]);
|
||||
score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]);
|
||||
score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]);
|
||||
var p = "O";
|
||||
if (score > 0) {
|
||||
result.push(word);
|
||||
word = "";
|
||||
p = "B";
|
||||
}
|
||||
p1 = p2;
|
||||
p2 = p3;
|
||||
p3 = p;
|
||||
word += seg[i];
|
||||
}
|
||||
result.push(word);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
lunr.TinySegmenter = TinySegmenter;
|
||||
};
|
||||
|
||||
}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"version":3,"sources":["src/templates/assets/stylesheets/palette/_scheme.scss","../../../../src/templates/assets/stylesheets/palette.scss","src/templates/assets/stylesheets/palette/_accent.scss","src/templates/assets/stylesheets/palette/_primary.scss","src/templates/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AA2BA,cAGE,6BAME,sDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CACA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CAGA,mDAAA,CACA,gDAAA,CACA,yDAAA,CACA,4DAAA,CAGA,0BAAA,CACA,mCAAA,CAGA,iCAAA,CACA,kCAAA,CACA,mCAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,+CAAA,CACA,6DAAA,CACA,gEAAA,CACA,4DAAA,CACA,4DAAA,CACA,6DAAA,CAGA,6CAAA,CAGA,+CAAA,CAGA,uDAAA,CACA,6DAAA,CACA,2DAAA,CAGA,iCAAA,CAGA,yDAAA,CACA,iEAAA,CAGA,mDAAA,CACA,mDAAA,CAGA,qDAAA,CACA,uDAAA,CAGA,8DAAA,CAKA,8DAAA,CAKA,0DAAA,CAzEA,iBCiBF,CD6DE,kHAEE,YC3DJ,CDkFE,yDACE,4BChFJ,CD+EE,2DACE,4BC7EJ,CD4EE,gEACE,4BC1EJ,CDyEE,2DACE,4BCvEJ,CDsEE,yDACE,4BCpEJ,CDmEE,0DACE,4BCjEJ,CDgEE,gEACE,4BC9DJ,CD6DE,0DACE,4BC3DJ,CD0DE,2OACE,4BC/CJ,CDsDA,+FAGE,iCCpDF,CACF,CCjDE,2BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD6CN,CCvDE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDoDN,CC9DE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD2DN,CCrEE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDkEN,CC5EE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDyEN,CCnFE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDgFN,CC1FE,kCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDuFN,CCjGE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD8FN,CCxGE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDqGN,CC/GE,6BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD4GN,CCtHE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDmHN,CC7HE,4BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCD6HN,CCpIE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDoIN,CC3IE,6BACE,yBAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCD2IN,CClJE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDkJN,CCzJE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDsJN,CE3JE,4BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwJN,CEnKE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgKN,CE3KE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwKN,CEnLE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgLN,CE3LE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwLN,CEnME,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgMN,CE3ME,mCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwMN,CEnNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgNN,CE3NE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwNN,CEnOE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgON,CE3OE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwON,CEnPE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFmPN,CE3PE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCF2PN,CEnQE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFmQN,CE3QE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCF2QN,CEnRE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgRN,CE3RE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwRN,CEnSE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BF4RN,CE5SE,kCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BFqSN,CEtRE,sEACE,4BFyRJ,CE1RE,+DACE,4BF6RJ,CE9RE,iEACE,4BFiSJ,CElSE,gEACE,4BFqSJ,CEtSE,iEACE,4BFySJ,CEhSA,8BACE,mDAAA,CACA,4DAAA,CACA,0DAAA,CACA,oDAAA,CACA,2DAAA,CAGA,4BFiSF,CE9RE,yCACE,+BFgSJ,CE7RI,kDAEE,0CAAA,CACA,sCAAA,CAFA,mCFiSN,CG7MI,mCD1EA,+CACE,8CF0RJ,CEvRI,qDACE,8CFyRN,CEpRE,iEACE,mCFsRJ,CACF,CGxNI,sCDvDA,uCACE,oCFkRJ,CACF,CEzQA,8BACE,kDAAA,CACA,4DAAA,CACA,wDAAA,CACA,oDAAA,CACA,6DAAA,CAGA,4BF0QF,CEvQE,yCACE,+BFyQJ,CEtQI,kDAEE,0CAAA,CACA,sCAAA,CAFA,mCF0QN,CEnQE,yCACE,6CFqQJ,CG9NI,0CDhCA,8CACE,gDFiQJ,CACF,CGnOI,0CDvBA,iFACE,6CF6PJ,CACF,CG3PI,sCDKA,uCACE,6CFyPJ,CACF","file":"palette.css"}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Awesome Systematic Trading for Crypto + DeFi
|
||||
|
||||
- [perp-arbitrageur](https://github.com/perpetual-protocol/perp-arbitrageur) | `Python` | - An arbitrage bot that executes automated trading strategies between Perpetual Protocol and FTX
|
||||
- [FTX_and_four_other_exchange_futures_and_funding_arbitrage_scanner](https://github.com/staccDOTsol/FTX_and_four_other_exchange_futures_and_funding_arbitrage_scanner) | `Python` | - ?
|
||||
- [Liquidation Bot](https://github.com/HydroProtocol/liquidation_bot) | `Go` | - DDEX Liquidation Bot
|
||||
- [T-1000 Advanced Prototype](https://github.com/Draichi/T-1000) | `Python` | - Bot using deep learning with Ray API
|
||||
- [Tai - Orchestrate Your Trading](https://github.com/fremantle-industries/tai) | `Elixir` | - A composable, real time, market data and trade execution toolkit. Built with Elixir, runs on the Erlang virtual machine
|
||||
- [bTrader](https://github.com/gabriel-milan/btrader) | `Rust` | - Triangle arbitrage trading bot for Binance
|
||||
- [crypto-crawler-rs](https://github.com/crypto-crawler/crypto-crawler-rs) | `Rust` | - Crawl orderbook and trade messages from crypto exchanges
|
||||
- [cryptotrader-core](https://github.com/monomadic/cryptotrader-core) | `Rust` | - Simple to use Crypto Exchange REST API client in rust.
|
||||
- [openlimits](https://github.com/nash-io/openlimits) | `Rust` | - A Rust high performance cryptocurrency trading API with support for multiple exchanges and language wrappers.
|
||||
- [Freqtrade](https://github.com/freqtrade/freqtrade) | `Python` | - Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram. It contains backtesting, plotting and money management tools as well as strategy optimization by machine learning.
|
||||
- [Hummingbot](https://github.com/CoinAlpha/hummingbot) | `Python`, `Cython`, `Live Trading` | - A client for crypto market making
|
||||
- [Jesse](https://github.com/jesse-ai/jesse) | `Python` | - Jesse is an advanced crypto trading framework which aims to simplify researching and defining trading strategies.
|
||||
- [OctoBot](https://github.com/Drakkar-Software/OctoBot) | `Python`, `Cython`, `Live Trading`| - Cryptocurrency trading bot for TA, arbitrage and social trading with an advanced web interface
|
||||
- [Kelp](https://github.com/stellar/kelp) | `Go`, `Live Trading` | - Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges
|
||||
- [DeepAlpha](https://github.com/stefanoviana/deepalpha) | `Python` | - AI crypto trading bot with 3-model ML ensemble (XGBoost, HMM, Transformer), 70.9% walk-forward accuracy, 12 exchanges. Cloud platform with dashboard, backtesting, and TradingView webhooks.
|
||||
- [Golang Crypto Trading Bot](https://github.com/saniales/golang-crypto-trading-bot/tree/develop) | `Go` | - A golang implementation of a console-based trading bot for cryptocurrency exchanges
|
||||
- [BBGO](https://github.com/c9s/bbgo) | `Go` | - The modern cryptocurrency trading bot written in Go.
|
||||
- [Blankly](https://github.com/blankly-finance/blankly) | `Python` | - 🚀 💸 Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package.
|
||||
- [Peregrine](https://github.com/wardbradt/peregrine) | `Python` | - Detects arbitrage opportunities across 131 cryptocurrency exchanges in 50 countries
|
||||
- [K](https://github.com/ctubio/Krypto-trading-bot) | `C++` | - Self-hosted crypto trading bot (automated high frequency market making) written in C++
|
||||
- [polymarket-whales](https://github.com/al1enjesus/polymarket-whales) - Real-time whale trade tracker for Polymarket prediction markets. Fires terminal + Telegram alerts when large orders hit the book. Python, MIT, zero config.
|
||||
- [PolyMind](https://polyminds.netlify.app/) | `JavaScript` | - Real-time Polymarket trading alerts with multi-AI analysis (Groq, Claude, Gemini). Track whale bets, volume spikes, coordinated wallets, and 12 signal types. Free tier available.
|
||||
- [gocryptotrader](https://github.com/thrasher-corp/gocryptotrader) | `Go` | - A cryptocurrency trading bot supporting multiple exchanges written in Golang.
|
||||
- [Solana SDK Tools](https://github.com/DebuggingMax/solana-sdk-tools) | `TypeScript` | - Token scanner and trading toolkit for Solana DEXs (Pump.fun, Raydium) with anti-rug analysis, copy trading, and paper trading mode
|
||||
- [Microverse Systems](https://microversesystems.com) | `C++` | - Real-time L2 order books from 21 exchanges. Free WebSocket API, historical replay, sub-ms latency.
|
||||
- [Signalview](https://www.signalview.xyz) | `Platform` | - Non-custodial AI agents executing backtested signals on Hyperliquid perps; every signal ships a public 18-month backtest scored −100..+100; scoped agent keys cannot withdraw. Free to run.
|
||||
- [TrendRider Strategy](https://github.com/darkvolg/trendrider-strategy) | `Python` | - Open-source Freqtrade strategy for Bybit with a novel cascading early-loss exit ladder (-1.5% at 2h, BE at 4h, +0.5% at 8h, +1% at 16h, forced 24h). Backtest delta vs flat 24h timeout: +69% net profit, -77% max drawdown. Multi-timeframe entries on BTC/ETH/SOL + 15 altcoins. Public live dry-run dashboard at [trendrider.net/live](https://trendrider.net/live). MIT.
|
||||
- [INDICIA DESK](https://indiciadesk.com/en/vol) | `Platform` | - BTC/ETH options analytics on Deribit plus whale behaviour on Hyperliquid perps. Automatically classifies multi-leg whale option structures from the trade flow (butterfly, condor, risk reversal, straddle, calendar and five more families), keeps per-strike implied volatility with history, gamma exposure and the market-maker breakeven corridor. Ships an open daily track record with the misses included, and a public backtest of the "max pain magnet" theory across hundreds of expiries. Free tier available.
|
||||
- [perpsignal](https://github.com/mokshyaprotocol/signalview) | `Python` | - Signal engine and backtester for perpetual futures. Write a strategy as a compact expression or JSON definition, evaluate it against OHLCV, and backtest into Sharpe/return/drawdown/win-rate with fees, funding, stops/targets and leverage modelled. No wallet, key or live-trading code — pure research library, safe to run anywhere. Apache-2.0, `pip install perpsignal`.
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../Readme.md
|
||||
-2155
File diff suppressed because one or more lines are too long
+90
@@ -0,0 +1,90 @@
|
||||
site_name: Systematic Trading
|
||||
site_author: FunCoder
|
||||
site_description: >-
|
||||
Awesome Systematic Trading
|
||||
repo_name: awesome-systematic-trading
|
||||
repo_url: https://github.com/wangzhe3224/awesome-systematic-trading
|
||||
|
||||
copyright: Copyright © 2022-present <a href="https://github.com/wangzhe3224" target="_blank" rel="noopener noreferrer">FunCoder</a>
|
||||
|
||||
theme:
|
||||
name: material
|
||||
# favicon: assets/bitcoin.png
|
||||
# logo: assets/bitcoin.png
|
||||
language: zh
|
||||
include_search_page: false
|
||||
search_index_only: true
|
||||
plugins:
|
||||
- meta
|
||||
features:
|
||||
# - navigation.instant
|
||||
# - navigation.expand
|
||||
# - navigation.sections
|
||||
# - navigation.tabs
|
||||
# - navigation.tabs.sticky
|
||||
# - navigation.indexes
|
||||
# - toc.integrate
|
||||
- header.autohide
|
||||
- navigation.tracking
|
||||
- navigation.top
|
||||
- search.highlight
|
||||
- search.share
|
||||
- search.suggest
|
||||
- content.code.annotate
|
||||
palette:
|
||||
- media: "(prefers-color-scheme: light)"
|
||||
scheme: default
|
||||
primary: light blue
|
||||
accent: deep purple
|
||||
toggle:
|
||||
icon: material/weather-sunny
|
||||
name: Switch to dark mode
|
||||
- media: "(prefers-color-scheme: dark)"
|
||||
scheme: slate
|
||||
primary: cyan
|
||||
accent: deep purple
|
||||
toggle:
|
||||
icon: material/weather-night
|
||||
name: Switch to light mode
|
||||
icon:
|
||||
repo: fontawesome/brands/github
|
||||
admonition:
|
||||
note: octicons/tag-16
|
||||
abstract: octicons/checklist-16
|
||||
info: octicons/info-16
|
||||
tip: octicons/squirrel-16
|
||||
success: octicons/check-16
|
||||
question: octicons/question-16
|
||||
warning: octicons/alert-16
|
||||
failure: octicons/x-circle-16
|
||||
danger: octicons/zap-16
|
||||
bug: octicons/bug-16
|
||||
example: octicons/beaker-16
|
||||
quote: octicons/quote-16
|
||||
custom_dir: overrides
|
||||
markdown_extensions:
|
||||
- attr_list
|
||||
- md_in_html
|
||||
- admonition
|
||||
- pymdownx.details
|
||||
- pymdownx.inlinehilite
|
||||
- pymdownx.snippets
|
||||
- pymdownx.superfences
|
||||
- pymdownx.tabbed:
|
||||
alternate_style: true
|
||||
- pymdownx.emoji:
|
||||
emoji_index: !!python/name:materialx.emoji.twemoji
|
||||
emoji_generator: !!python/name:materialx.emoji.to_svg
|
||||
|
||||
extra_javascript:
|
||||
- https://polyfill.io/v3/polyfill.min.js?features=es6
|
||||
- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
|
||||
|
||||
extra:
|
||||
analytics:
|
||||
provider: google
|
||||
property: G-KJC6F9YNGT
|
||||
social:
|
||||
- icon: fontawesome/brands/github
|
||||
link: https://github.com/wangzhe3224
|
||||
generator: false
|
||||
@@ -0,0 +1,5 @@
|
||||
{% extends "base.html" %}
|
||||
{% block ads %}
|
||||
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9801985319378542"
|
||||
crossorigin="anonymous"></script>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,4 @@
|
||||
{% if page.meta.comments %}
|
||||
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9801985319378542"
|
||||
crossorigin="anonymous"></script>
|
||||
{% endif %}
|
||||
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
</urlset>
|
||||
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
package main
|
||||
|
||||
func main() {
|
||||
println("Go related")
|
||||
println(":)")
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
print("Python related.")
|
||||
Generated
+997
@@ -0,0 +1,997 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "ahash"
|
||||
version = "0.7.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
"once_cell",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
version = "0.7.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.56"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27"
|
||||
|
||||
[[package]]
|
||||
name = "arrow2"
|
||||
version = "0.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2e387b20dd573a96f36b173d9027483898f944d696521afd74e2caa3c813d86e"
|
||||
dependencies = [
|
||||
"bytemuck",
|
||||
"chrono",
|
||||
"csv-core",
|
||||
"either",
|
||||
"hash_hasher",
|
||||
"lexical-core",
|
||||
"multiversion",
|
||||
"num-traits",
|
||||
"simdutf8",
|
||||
"streaming-iterator",
|
||||
"strength_reduce",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "autocfg"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "1.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
|
||||
[[package]]
|
||||
name = "bytemuck"
|
||||
version = "1.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0e851ca7c24871e7336801608a4797d7376545b6928a10d32d75685687141ead"
|
||||
dependencies = [
|
||||
"bytemuck_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bytemuck_derive"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e215f8c2f9f79cb53c8335e687ffd07d5bfcb6fe5fc80723762d0be46e7cc54"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "chrono"
|
||||
version = "0.4.19"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
"time",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "comfy-table"
|
||||
version = "5.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b103d85ca6e209388771bfb7aa6b68a7aeec4afbf6f0a0264bfbf50360e5212e"
|
||||
dependencies = [
|
||||
"crossterm",
|
||||
"strum",
|
||||
"strum_macros",
|
||||
"unicode-width",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-channel"
|
||||
version = "0.5.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fdbfe11fe19ff083c48923cf179540e8cd0535903dc35e178a1fdeeb59aef51f"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"crossbeam-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-deque"
|
||||
version = "0.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"crossbeam-epoch",
|
||||
"crossbeam-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-epoch"
|
||||
version = "0.9.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"cfg-if",
|
||||
"crossbeam-utils",
|
||||
"lazy_static",
|
||||
"memoffset",
|
||||
"scopeguard",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-utils"
|
||||
version = "0.8.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"lazy_static",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossterm"
|
||||
version = "0.23.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f1fd7173631a4e9e2ca8b32ae2fad58aab9843ea5aaf56642661937d87e28a3e"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"crossterm_winapi",
|
||||
"libc",
|
||||
"mio",
|
||||
"parking_lot",
|
||||
"signal-hook",
|
||||
"signal-hook-mio",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossterm_winapi"
|
||||
version = "0.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
|
||||
dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "csv-core"
|
||||
version = "0.1.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dirs"
|
||||
version = "4.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
|
||||
dependencies = [
|
||||
"dirs-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dirs-sys"
|
||||
version = "0.3.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"redox_users",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "either"
|
||||
version = "1.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"wasi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "glob"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
|
||||
|
||||
[[package]]
|
||||
name = "hash_hasher"
|
||||
version = "2.0.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "74721d007512d0cb3338cd20f0654ac913920061a4c4d0d8708edb3f2a698c0c"
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
version = "0.11.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8c21d40587b92fa6a6c6e3c1bdbf87d75511db5672f9c93175574b3a00df1758"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"rayon",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "heck"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
|
||||
dependencies = [
|
||||
"unicode-segmentation",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.1.19"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "1.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"hashbrown 0.11.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lazy_static"
|
||||
version = "1.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||
|
||||
[[package]]
|
||||
name = "lexical"
|
||||
version = "6.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ccd3e434c16f0164124ade12dcdee324fcc3dafb1cad0c7f1d8c2451a1aa6886"
|
||||
dependencies = [
|
||||
"lexical-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lexical-core"
|
||||
version = "0.8.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "92912c4af2e7d9075be3e5e3122c4d7263855fa6cce34fbece4dd08e5884624d"
|
||||
dependencies = [
|
||||
"lexical-parse-float",
|
||||
"lexical-parse-integer",
|
||||
"lexical-util",
|
||||
"lexical-write-float",
|
||||
"lexical-write-integer",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lexical-parse-float"
|
||||
version = "0.8.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f518eed87c3be6debe6d26b855c97358d8a11bf05acec137e5f53080f5ad2dd8"
|
||||
dependencies = [
|
||||
"lexical-parse-integer",
|
||||
"lexical-util",
|
||||
"static_assertions",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lexical-parse-integer"
|
||||
version = "0.8.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "afc852ec67c6538bbb2b9911116a385b24510e879a69ab516e6a151b15a79168"
|
||||
dependencies = [
|
||||
"lexical-util",
|
||||
"static_assertions",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lexical-util"
|
||||
version = "0.8.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c72a9d52c5c4e62fa2cdc2cb6c694a39ae1382d9c2a17a466f18e272a0930eb1"
|
||||
dependencies = [
|
||||
"static_assertions",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lexical-write-float"
|
||||
version = "0.8.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8a89ec1d062e481210c309b672f73a0567b7855f21e7d2fae636df44d12e97f9"
|
||||
dependencies = [
|
||||
"lexical-util",
|
||||
"lexical-write-integer",
|
||||
"static_assertions",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lexical-write-integer"
|
||||
version = "0.8.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "094060bd2a7c2ff3a16d5304a6ae82727cb3cc9d1c70f813cc73f744c319337e"
|
||||
dependencies = [
|
||||
"lexical-util",
|
||||
"static_assertions",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.120"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ad5c14e80759d0939d013e6ca49930e59fc53dd8e5009132f76240c179380c09"
|
||||
|
||||
[[package]]
|
||||
name = "lock_api"
|
||||
version = "0.4.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
|
||||
dependencies = [
|
||||
"scopeguard",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
|
||||
|
||||
[[package]]
|
||||
name = "memmap2"
|
||||
version = "0.5.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memoffset"
|
||||
version = "0.6.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mio"
|
||||
version = "0.7.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"log",
|
||||
"miow",
|
||||
"ntapi",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "miow"
|
||||
version = "0.3.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
|
||||
dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "multiversion"
|
||||
version = "0.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "025c962a3dd3cc5e0e520aa9c612201d127dcdf28616974961a649dca64f5373"
|
||||
dependencies = [
|
||||
"multiversion-macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "multiversion-macros"
|
||||
version = "0.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a8a3e2bde382ebf960c1f3e79689fa5941625fe9bf694a1cb64af3e85faff3af"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ntapi"
|
||||
version = "0.3.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
|
||||
dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
|
||||
dependencies = [
|
||||
"num-bigint",
|
||||
"num-complex",
|
||||
"num-integer",
|
||||
"num-iter",
|
||||
"num-rational",
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-bigint"
|
||||
version = "0.4.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-complex"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085"
|
||||
dependencies = [
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-integer"
|
||||
version = "0.1.44"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-iter"
|
||||
version = "0.1.42"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-rational"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"num-bigint",
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-traits"
|
||||
version = "0.2.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num_cpus"
|
||||
version = "1.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
|
||||
dependencies = [
|
||||
"hermit-abi",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
|
||||
|
||||
[[package]]
|
||||
name = "parking_lot"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58"
|
||||
dependencies = [
|
||||
"lock_api",
|
||||
"parking_lot_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "parking_lot_core"
|
||||
version = "0.9.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"redox_syscall",
|
||||
"smallvec",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polars"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "656db3b86c338a8a717476eb29436a380ebdf74915a71cff6ecce78d52173e53"
|
||||
dependencies = [
|
||||
"polars-core",
|
||||
"polars-io",
|
||||
"polars-lazy",
|
||||
"polars-time",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polars-arrow"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fcedf44a7b15b60c69e811c9d343ac459788e961dc4136f002ed1b68a1fada07"
|
||||
dependencies = [
|
||||
"arrow2",
|
||||
"hashbrown 0.12.0",
|
||||
"num",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polars-core"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6dfed0e21ac4d4c85df45b5864a68cfc5b2a97e9fba8a981be7b09c6f02a7eaa"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"anyhow",
|
||||
"arrow2",
|
||||
"chrono",
|
||||
"comfy-table",
|
||||
"hashbrown 0.12.0",
|
||||
"indexmap",
|
||||
"lazy_static",
|
||||
"num",
|
||||
"num_cpus",
|
||||
"polars-arrow",
|
||||
"rayon",
|
||||
"regex",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polars-io"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d8770fb4233ab88affac80c410be090dc7a2c044a9e4e7b942132e94ceeb732b"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"anyhow",
|
||||
"arrow2",
|
||||
"csv-core",
|
||||
"dirs",
|
||||
"lazy_static",
|
||||
"lexical",
|
||||
"memchr",
|
||||
"memmap2",
|
||||
"num",
|
||||
"num_cpus",
|
||||
"polars-arrow",
|
||||
"polars-core",
|
||||
"rayon",
|
||||
"regex",
|
||||
"simdutf8",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polars-lazy"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4eca1fed3b88ae1bb9b7f1d7b2958f1655d9c1aed33495d6ba30ff84a0c1e9e9"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"glob",
|
||||
"parking_lot",
|
||||
"polars-arrow",
|
||||
"polars-core",
|
||||
"polars-io",
|
||||
"polars-time",
|
||||
"polars-utils",
|
||||
"rayon",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polars-time"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0fe48c759ca778a8b6fb30f70e9a81b56f0987a82dc71e61c5b2d3c236b6b8d6"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"polars-arrow",
|
||||
"polars-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polars-utils"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "71011e8ed52f123ce23d110b496c8704d0a59c5fd4115cd938e7ff19d4bcb7ca"
|
||||
dependencies = [
|
||||
"parking_lot",
|
||||
"rayon",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.36"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
|
||||
dependencies = [
|
||||
"unicode-xid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rayon"
|
||||
version = "1.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"crossbeam-deque",
|
||||
"either",
|
||||
"rayon-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rayon-core"
|
||||
version = "1.9.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
|
||||
dependencies = [
|
||||
"crossbeam-channel",
|
||||
"crossbeam-deque",
|
||||
"crossbeam-utils",
|
||||
"lazy_static",
|
||||
"num_cpus",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "redox_syscall"
|
||||
version = "0.2.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "redox_users"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
"redox_syscall",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "1.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"memchr",
|
||||
"regex-syntax",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-syntax"
|
||||
version = "0.6.25"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
|
||||
|
||||
[[package]]
|
||||
name = "rust"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"polars",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustversion"
|
||||
version = "1.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
|
||||
|
||||
[[package]]
|
||||
name = "scopeguard"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
|
||||
|
||||
[[package]]
|
||||
name = "signal-hook"
|
||||
version = "0.3.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"signal-hook-registry",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "signal-hook-mio"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "29fd5867f1c4f2c5be079aee7a2adf1152ebb04a4bc4d341f504b7dece607ed4"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"mio",
|
||||
"signal-hook",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "signal-hook-registry"
|
||||
version = "1.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "simdutf8"
|
||||
version = "0.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c970da16e7c682fa90a261cf0724dee241c9f7831635ecc4e988ae8f3b505559"
|
||||
|
||||
[[package]]
|
||||
name = "smallvec"
|
||||
version = "1.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
|
||||
|
||||
[[package]]
|
||||
name = "static_assertions"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
||||
|
||||
[[package]]
|
||||
name = "streaming-iterator"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "303235c177994a476226b80d076bd333b7b560fb05bd242a10609d11b07f81f5"
|
||||
|
||||
[[package]]
|
||||
name = "strength_reduce"
|
||||
version = "0.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a3ff2f71c82567c565ba4b3009a9350a96a7269eaa4001ebedae926230bc2254"
|
||||
|
||||
[[package]]
|
||||
name = "strum"
|
||||
version = "0.23.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb"
|
||||
|
||||
[[package]]
|
||||
name = "strum_macros"
|
||||
version = "0.23.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"rustversion",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.89"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"unicode-xid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.30"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
|
||||
dependencies = [
|
||||
"thiserror-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "1.0.30"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "time"
|
||||
version = "0.1.43"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unicode-segmentation"
|
||||
version = "1.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-width"
|
||||
version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-xid"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
|
||||
|
||||
[[package]]
|
||||
name = "version_check"
|
||||
version = "0.9.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.10.2+wasi-snapshot-preview1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
|
||||
|
||||
[[package]]
|
||||
name = "winapi"
|
||||
version = "0.3.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||
dependencies = [
|
||||
"winapi-i686-pc-windows-gnu",
|
||||
"winapi-x86_64-pc-windows-gnu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi-i686-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
|
||||
[[package]]
|
||||
name = "winapi-x86_64-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.32.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6"
|
||||
dependencies = [
|
||||
"windows_aarch64_msvc",
|
||||
"windows_i686_gnu",
|
||||
"windows_i686_msvc",
|
||||
"windows_x86_64_gnu",
|
||||
"windows_x86_64_msvc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_msvc"
|
||||
version = "0.32.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_gnu"
|
||||
version = "0.32.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_msvc"
|
||||
version = "0.32.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnu"
|
||||
version = "0.32.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_msvc"
|
||||
version = "0.32.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316"
|
||||
@@ -0,0 +1,9 @@
|
||||
[package]
|
||||
name = "rust"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
polars="0.20.0"
|
||||
@@ -0,0 +1,10 @@
|
||||
use polars::prelude::*;
|
||||
|
||||
fn main() {
|
||||
println!("Hello, world!");
|
||||
let s1 = Series::new("Fruit", &["Apple", "Apple", "Pear"]);
|
||||
let s2 = Series::new("Color", &["Red", "Yellow", "Green"]);
|
||||
|
||||
let df: Result<DataFrame> = DataFrame::new(vec![s1, s2]);
|
||||
println!("{:?}", df.unwrap());
|
||||
}
|
||||
Reference in New Issue
Block a user