{"adoption": {"forks": 146, "observed_at": "2026-08-28T04:03:26.139514+00:00", "stars": 1062}, "canonical_url": "https://ross.abutalabs.com/products/whchien-ai-trader", "card": {"archived": false, "artifact_type": "framework", "description": "Backtrader-powered backtesting framework for algorithmic trading, featuring 20+ strategies, multi-market support, CLI tools, and an integrated MCP server for professional traders.", "domain": ["fintech", "developer-tools"], "enriched": true, "function": ["cli", "mcp", "sdk", "data-science", "trading"], "health_score": 81, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["whchien/ai-trader"], "name": "whchien/ai-trader", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2026-03-28T11:16:18+00:00", "repo": "whchien/ai-trader", "stars": 1062, "tags": ["backtesting", "backtrader", "algorithmic-trading", "mcp-server", "technical-analysis", "quantitative-finance", "llm-integration", "multi-market", "command-line"], "topics": ["ai", "algorithmic-trading", "backtrader", "portfolio-management", "stock-price-prediction", "trading", "ai-agents", "cli", "mcp", "mcp-server", "quantitative-finance"], "urls": [], "use_cases": ["backtest trading strategies on historical stock data", "run algorithmic trading backtests from yaml config files", "fetch historical market data for stocks crypto and forex", "let claude run backtests via mcp server", "test technical indicator strategies like sma crossovers", "build custom trading strategies in python", "quick backtest on a csv of price data"], "what_it_is": "A config-driven backtesting framework for algorithmic trading built on Backtrader, with 20+ built-in strategies and multi-market support (US/Taiwan stocks, crypto, forex). It includes a CLI for running backtests and fetching market data, plus an integrated MCP server so LLM assistants like Claude can run backtests and analyze strategies.", "when_to_avoid": ["you need live trading execution or broker integration rather than backtesting", "you want a GUI-based trading platform", "you need high-frequency or tick-level backtesting performance", "you require a non-Python or non-GPL-licensed solution"], "when_to_choose": ["you want a Python backtesting framework built on Backtrader with a rich CLI", "you need multi-market support across US stocks, Taiwan stocks, crypto, and forex", "you want LLM/AI assistants to trigger and analyze backtests through MCP", "you prefer reproducible, version-controlled YAML-driven backtest configs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/whchien-ai-trader", "repo": "whchien/ai-trader", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:56:47.567146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6aba3b58100e538903133539e547b76193bb547e9d11d45ecb1d61fa8585b779", "fetched_at": "2026-08-28T04:03:26.139514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whchien/ai-trader"}, {"content_hash": "8a64a0ead4838b7f55b1f8199ef65df30e1deeadfb53e9b69cbff45804b1d956", "fetched_at": "2026-08-29T12:58:41.414205+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ai-trader/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:56:47.567146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6aba3b58100e538903133539e547b76193bb547e9d11d45ecb1d61fa8585b779", "fetched_at": "2026-08-28T04:03:26.139514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whchien/ai-trader"}, {"content_hash": "8a64a0ead4838b7f55b1f8199ef65df30e1deeadfb53e9b69cbff45804b1d956", "fetched_at": "2026-08-29T12:58:41.414205+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ai-trader/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:56:47.567146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6aba3b58100e538903133539e547b76193bb547e9d11d45ecb1d61fa8585b779", "fetched_at": "2026-08-28T04:03:26.139514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whchien/ai-trader"}, {"content_hash": "8a64a0ead4838b7f55b1f8199ef65df30e1deeadfb53e9b69cbff45804b1d956", "fetched_at": "2026-08-29T12:58:41.414205+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ai-trader/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:56:47.567146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6aba3b58100e538903133539e547b76193bb547e9d11d45ecb1d61fa8585b779", "fetched_at": "2026-08-28T04:03:26.139514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whchien/ai-trader"}, {"content_hash": "8a64a0ead4838b7f55b1f8199ef65df30e1deeadfb53e9b69cbff45804b1d956", "fetched_at": "2026-08-29T12:58:41.414205+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ai-trader/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:56:47.567146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6aba3b58100e538903133539e547b76193bb547e9d11d45ecb1d61fa8585b779", "fetched_at": "2026-08-28T04:03:26.139514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whchien/ai-trader"}, {"content_hash": "8a64a0ead4838b7f55b1f8199ef65df30e1deeadfb53e9b69cbff45804b1d956", "fetched_at": "2026-08-29T12:58:41.414205+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ai-trader/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:56:47.567146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6aba3b58100e538903133539e547b76193bb547e9d11d45ecb1d61fa8585b779", "fetched_at": "2026-08-28T04:03:26.139514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whchien/ai-trader"}, {"content_hash": "8a64a0ead4838b7f55b1f8199ef65df30e1deeadfb53e9b69cbff45804b1d956", "fetched_at": "2026-08-29T12:58:41.414205+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ai-trader/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.139514+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:56:47.567146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6aba3b58100e538903133539e547b76193bb547e9d11d45ecb1d61fa8585b779", "fetched_at": "2026-08-28T04:03:26.139514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whchien/ai-trader"}, {"content_hash": "8a64a0ead4838b7f55b1f8199ef65df30e1deeadfb53e9b69cbff45804b1d956", "fetched_at": "2026-08-29T12:58:41.414205+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ai-trader/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:56:47.567146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6aba3b58100e538903133539e547b76193bb547e9d11d45ecb1d61fa8585b779", "fetched_at": "2026-08-28T04:03:26.139514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whchien/ai-trader"}, {"content_hash": "8a64a0ead4838b7f55b1f8199ef65df30e1deeadfb53e9b69cbff45804b1d956", "fetched_at": "2026-08-29T12:58:41.414205+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ai-trader/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:56:47.567146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6aba3b58100e538903133539e547b76193bb547e9d11d45ecb1d61fa8585b779", "fetched_at": "2026-08-28T04:03:26.139514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whchien/ai-trader"}, {"content_hash": "8a64a0ead4838b7f55b1f8199ef65df30e1deeadfb53e9b69cbff45804b1d956", "fetched_at": "2026-08-29T12:58:41.414205+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ai-trader/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:56:47.567146+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6aba3b58100e538903133539e547b76193bb547e9d11d45ecb1d61fa8585b779", "fetched_at": "2026-08-28T04:03:26.139514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whchien/ai-trader"}, {"content_hash": "8a64a0ead4838b7f55b1f8199ef65df30e1deeadfb53e9b69cbff45804b1d956", "fetched_at": "2026-08-29T12:58:41.414205+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/ai-trader/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 74, "longevity": 57, "rhythm": 64}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 806, "days_push": 158, "days_rel": 240, "gap_med": 16, "n_releases_24m": 2}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}