The Chinese README covers 18 strategies and one local workbench
TickFlow Stock Panel puts much of an individual A-share research routine into a browser application. Its screener lists 18 built-in strategies and custom signals. Other pages cover watchlists, factor and strategy backtests, alerts, financial statements, concepts, industries, market phases, limit-up ladders, and local data status. Optional model calls can generate strategies or analyze a stock, while monitoring can use browser speech and Feishu notifications.
The project is explicit about being a personal research demo rather than official TickFlow software or an investment product. That warning fits the current state. A polished chart can make a computed value feel authoritative even when its upstream units or defaults are wrong. Users need reference fixtures for prices, volume, corporate actions, indicators, and backtest dates before making the panel part of a routine.
English-speaking adopters face an immediate barrier. The README, deployment guide, configuration guide, and feature documents are Chinese, and no English guide is linked. Interface labels often include English names, while the Python and React code use familiar conventions. Machine translation can help with navigation, but it is a poor control for interpreting Chinese market rules, data tiers, or recovery steps.
What happened when we ran it
Our sandbox installed 33 packages from commit 9b9538a in 28 seconds. The Python project lived under backend/, and installed dependencies occupied 36 MB. The build succeeded in 8 seconds in a fresh unprivileged Debian container with 3 CPUs and 8 GB of RAM. No TickFlow key, model credential, or other secret was available.
Pytest exited 1 after 13 seconds. It reported 28 passed, 20 failed, and 69 collection or setup errors out of 117. The log tail named strategy signals, monitor events, parameter normalization, registry, scoring, watchlist, and OCR modules, then repeated the totals. It did not include the underlying exceptions in those final lines, so we cannot claim one shared cause.
Pip-audit found 0 known vulnerabilities. The checkout held 454 files, about 117,471 source lines, and 11 MB. It had 2 CI workflow files and a tests directory but no Dockerfile at the measured commit. The current branch now documents a Docker Compose route, which shows why lab claims must stay attached to commit 9b9538a rather than silently describing later repository state.
A-share and ETF volume use different units
Issue #195 reports that A-share volume is stored in lots while ETF volume is stored in shares. Its example explains that treating both fields alike can introduce a factor-of-100 error. Issue #187 adds an ETF-specific failure: several strategies request turnover data that the ETF path does not store, producing errors or empty results. Both reports remain open.
A blank scan can be mistaken for no signal, while a unit mismatch can corrupt a ranking without an obvious crash. Build a tiny reference dataset with known stock and ETF values, then test each strategy and derived indicator against expected results. Keep raw source fields beside transformed values so a discrepancy can be traced. The README says data accuracy ultimately depends on TickFlow, but normalization inside this project still belongs to the project.
Backtest defaults need the same skepticism. Issue #202 says the factor endpoint uses a 3-year default when code defines 180 days, while the interface mentions 3 months. The different ranges change memory use, calculation time, and the period represented by results. Always send explicit start and end dates, record fees and slippage, and save the strategy plus data revision with any result you intend to compare later.
Docker and uploads have current deployment defects
The current quickstart presents docker compose up --build as the easiest deployment. Issue #205 reproduces a build failure on commit 9b9538a because the backend package points its README outside the project directory after Docker copies files into a new layout. The report includes a container-only path fix, but the issue remains open. Confirm the exact branch builds before choosing Docker as the recovery plan.
The Docker path also mounts the host Codex login directory read-only when that mode is enabled. The README warns that the container can then read those credentials and recommends using it only on a trusted local machine. This is a meaningful boundary. Disable the integration when it is unnecessary, avoid shared servers, and do not expose the app merely because a Compose file makes starting it easy.
Issue #204 says extension CSV and Excel endpoints call file.read() with no byte or row limit, then parse the whole upload in memory. A large request can exhaust memory or make the service unavailable. Until the application enforces a cap, a reverse proxy should limit request size, the service should remain private, and operators should monitor memory during imports.
The requested URL now redirects to tick-stock-panel
GitHub resolves shy3130/tickflow-stock-panel to the canonical shy3130/tick-stock-panel repository. The canonical project was pushed on August 26, 2026, and issues plus pull requests were updated the same day. GitHub showed 3,802 stars and 40 open issues and PRs combined. Its latest-release endpoint returned no release object, so adopters should pin a commit and test updates rather than depend on release tags.
Licensing needs clarification before commercial work. The repository contains an MIT license and labels itself MIT, but the README also says commercial use is strictly prohibited. Those statements conflict. A company should obtain written clarification from the maintainer instead of choosing the interpretation it prefers. For personal research, the immediate priority remains the failed suite and known data defects.
TickFlow Stock Panel offers unusual breadth for one person's A-share workstation, but breadth is not readiness. Our 89 failed or errored tests outweigh the convenient dashboard. Start only with paper workflows, explicit date ranges, reference data, private access, and backups. Keep investment decisions outside the software's authority.

