{"adoption": {"forks": 1066, "observed_at": "2026-08-28T04:08:06.943686+00:00", "stars": 3484}, "canonical_url": "https://ross.abutalabs.com/products/pysystemtrade", "card": {"archived": false, "artifact_type": "library", "description": "Systematic Trading in python", "domain": ["fintech"], "enriched": true, "function": ["trading", "workflow-automation", "data-science"], "health_score": 85, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["pst-group/pysystemtrade"], "name": "pst-group/pysystemtrade", "platform": ["python", "windows", "self-hosted"], "pushed_at": "2026-07-18T13:30:24+00:00", "repo": "pst-group/pysystemtrade", "stars": 3484, "tags": ["systematic-trading", "futures-trading", "backtesting-engine", "interactive-brokers", "algorithmic-trading", "rob-carver", "quant-strategies", "backtesting", "trading", "quantitative-finance", "automation", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["backtest systematic futures trading strategies in python", "run an automated futures trading system with interactive brokers", "implement trading strategies from Rob Carver's systematic trading book", "test portfolio optimisation and position sizing rules on historical futures data", "build a production algo-trading pipeline for futures markets"], "what_it_is": "pysystemtrade is a Python framework for systematic futures trading, implementing the systems from Rob Carver's book 'Systematic Trading'. It serves as both a backtesting environment and a fully automated production trading system connected to Interactive Brokers.", "when_to_avoid": ["you need a polished product with professional support rather than a DIY framework", "you trade equities, crypto, or forex rather than futures", "you're not comfortable writing and debugging Python code yourself", "you want a package installable from PyPI"], "when_to_choose": ["you want to replicate or extend Rob Carver's systematic trading framework", "you need both backtesting and live automated futures trading in one codebase", "you trade futures via Interactive Brokers and want open-source automation", "you're comfortable with Python and want a head start on your own trading system"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pysystemtrade", "repo": "pst-group/pysystemtrade", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:36:25.247985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8f07d3383929364deef0879788470204aa026ebbfaf2a98da839e5c7b3ecfe7", "fetched_at": "2026-08-28T04:08:06.943686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pst-group/pysystemtrade"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:36:25.247985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8f07d3383929364deef0879788470204aa026ebbfaf2a98da839e5c7b3ecfe7", "fetched_at": "2026-08-28T04:08:06.943686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pst-group/pysystemtrade"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:36:25.247985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8f07d3383929364deef0879788470204aa026ebbfaf2a98da839e5c7b3ecfe7", "fetched_at": "2026-08-28T04:08:06.943686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pst-group/pysystemtrade"}], "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:08:06.943686+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:36:25.247985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8f07d3383929364deef0879788470204aa026ebbfaf2a98da839e5c7b3ecfe7", "fetched_at": "2026-08-28T04:08:06.943686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pst-group/pysystemtrade"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:36:25.247985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8f07d3383929364deef0879788470204aa026ebbfaf2a98da839e5c7b3ecfe7", "fetched_at": "2026-08-28T04:08:06.943686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pst-group/pysystemtrade"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:36:25.247985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8f07d3383929364deef0879788470204aa026ebbfaf2a98da839e5c7b3ecfe7", "fetched_at": "2026-08-28T04:08:06.943686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pst-group/pysystemtrade"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:06.943686+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:36:25.247985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8f07d3383929364deef0879788470204aa026ebbfaf2a98da839e5c7b3ecfe7", "fetched_at": "2026-08-28T04:08:06.943686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pst-group/pysystemtrade"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:36:25.247985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8f07d3383929364deef0879788470204aa026ebbfaf2a98da839e5c7b3ecfe7", "fetched_at": "2026-08-28T04:08:06.943686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pst-group/pysystemtrade"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:36:25.247985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8f07d3383929364deef0879788470204aa026ebbfaf2a98da839e5c7b3ecfe7", "fetched_at": "2026-08-28T04:08:06.943686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pst-group/pysystemtrade"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:36:25.247985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8f07d3383929364deef0879788470204aa026ebbfaf2a98da839e5c7b3ecfe7", "fetched_at": "2026-08-28T04:08:06.943686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pst-group/pysystemtrade"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 40}, "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": 3932, "days_push": 46, "days_rel": 665, "gap_med": 0, "n_releases_24m": 2}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}