{"adoption": {"forks": 882, "observed_at": "2026-08-28T04:08:20.640751+00:00", "stars": 3817}, "canonical_url": "https://ross.abutalabs.com/products/tick-stock-panel", "card": {"archived": false, "artifact_type": "application", "description": "TSP自托管、零运维的 A 股「选股 + 监控 + 回测」量化工作台 | 基于 TickFlow 数据源  | LLM能力驱使策略定制+个股分析+复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源 ,非第三方官方项目", "domain": ["fintech", "data-science", "self-hosted", "analytics", "artificial-intelligence", "large-language-models", "web-development"], "enriched": true, "function": ["search-engine", "data-visualization", "analytics", "machine-learning", "llm-inference", "agent-framework", "monitoring", "alerting", "charts", "web-framework", "database"], "health_score": 80, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["shy3130/tick-stock-panel"], "name": "shy3130/tick-stock-panel", "platform": ["self-hosted", "python", "cross-platform"], "pushed_at": "2026-08-26T14:08:19+00:00", "repo": "shy3130/tick-stock-panel", "stars": 3817, "tags": ["a-stock", "stock-screener", "backtesting", "quant", "tickflow", "polars", "duckdb", "fastapi", "react", "llm-driven", "factor-mining", "market-monitoring", "stock-analysis", "trading-strategies", "chinese-stock-market", "quantitative-finance", "ai-agents", "automation", "docker", "web-server"], "topics": ["a-stock", "ai-agent", "aigc", "backtesting", "duckdb", "fastapi", "llm", "polars", "quant", "quantitative-finance", "quantitative-trading", "react", "screener", "self-hosted", "stock-analysis", "tickflow", "tdx", "daily", "stock", "tsp"], "urls": [], "use_cases": ["screen all A-share stocks with built-in or custom strategies in milliseconds", "backtest trading strategies and factors with T+1, fees, and slippage constraints", "mine multi-factor ranking combinations with out-of-sample validation", "monitor stock price signals and exchange anomaly rules in real time with push notifications", "use LLM to generate custom screening strategies and analyze individual stocks", "track market sentiment phases and limit-up ladder statistics", "connect custom third-party data sources via plugins and YAML configuration", "run AI-powered post-market review and stock analysis across technical, fundamental, and news dimensions"], "what_it_is": "A self-hosted, zero-ops quantitative workbench for China A-share stock screening, monitoring, and backtesting, built with Python (FastAPI, Polars, DuckDB) and a React frontend. It integrates LLM capabilities for strategy generation and stock analysis, supports pluggable third-party data sources, and provides factor mining, market sentiment tracking, and real-time anomaly alerts.", "when_to_avoid": ["you need a production trading or order-execution platform", "you want a polished consumer market-watching app like Tonghuashun or TDX", "you expect built-in AI stock recommendations or limit-up prediction (explicitly excluded)", "you require commercial use (license forbids it)", "you are a beginner seeking a turnkey investment tool rather than a research demo"], "when_to_choose": ["you are a retail investor or quant hobbyist wanting a self-hosted A-share research workbench", "you need fast full-market stock screening with Polars and DuckDB", "you want LLM-assisted strategy authoring and stock analysis", "you need factor backtesting with point-in-time financial snapshots", "you want pluggable data sources and extensible custom fields"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tick-stock-panel", "repo": "shy3130/tick-stock-panel", "role": "main", "score": 58}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:26:31.909337+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a21ab18cfa7bbc66e46d0cdff82ae57c92956bd056a06179c346f79b10910900", "fetched_at": "2026-08-28T04:08:20.640751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shy3130/tick-stock-panel"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:26:31.909337+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a21ab18cfa7bbc66e46d0cdff82ae57c92956bd056a06179c346f79b10910900", "fetched_at": "2026-08-28T04:08:20.640751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shy3130/tick-stock-panel"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:26:31.909337+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a21ab18cfa7bbc66e46d0cdff82ae57c92956bd056a06179c346f79b10910900", "fetched_at": "2026-08-28T04:08:20.640751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shy3130/tick-stock-panel"}], "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:20.640751+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:26:31.909337+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a21ab18cfa7bbc66e46d0cdff82ae57c92956bd056a06179c346f79b10910900", "fetched_at": "2026-08-28T04:08:20.640751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shy3130/tick-stock-panel"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:26:31.909337+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a21ab18cfa7bbc66e46d0cdff82ae57c92956bd056a06179c346f79b10910900", "fetched_at": "2026-08-28T04:08:20.640751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shy3130/tick-stock-panel"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:26:31.909337+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a21ab18cfa7bbc66e46d0cdff82ae57c92956bd056a06179c346f79b10910900", "fetched_at": "2026-08-28T04:08:20.640751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shy3130/tick-stock-panel"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.640751+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:26:31.909337+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a21ab18cfa7bbc66e46d0cdff82ae57c92956bd056a06179c346f79b10910900", "fetched_at": "2026-08-28T04:08:20.640751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shy3130/tick-stock-panel"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:26:31.909337+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a21ab18cfa7bbc66e46d0cdff82ae57c92956bd056a06179c346f79b10910900", "fetched_at": "2026-08-28T04:08:20.640751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shy3130/tick-stock-panel"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:26:31.909337+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a21ab18cfa7bbc66e46d0cdff82ae57c92956bd056a06179c346f79b10910900", "fetched_at": "2026-08-28T04:08:20.640751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shy3130/tick-stock-panel"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:26:31.909337+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a21ab18cfa7bbc66e46d0cdff82ae57c92956bd056a06179c346f79b10910900", "fetched_at": "2026-08-28T04:08:20.640751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shy3130/tick-stock-panel"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 5, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 76, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 58, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}