返回目录
开源项目股票分析类新手

GitHub - TNT-Likely/PanWatch: PanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, re

PanWatch — Self-hosted AI stock monitoring English | 简体中文 Monitor A-shares, Hong Kong, and U.S. stocks, manage your portfolios, and research ideas with TradingAgents . Self-host PanWatch with your preferred OpenAI-compatible provider or local models through

2 次阅读2026/11/10 发布
GitHub - TNT-Likely/PanWatch: PanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, re 来源图片

社区作者 · zZz

它解决什么问题

PanWatch — Self-hosted AI stock monitoring

English | 简体中文

Monitor A-shares, Hong Kong, and U.S. stocks, manage your portfolios, and research ideas with TradingAgents . Self-host PanWatch with your preferred OpenAI-compatible provider or local models through Ollama.

Feature overview · Core features · Quick start · Reference · Support · Contributing

🧠 Start from a portfolio holding → let a nine-agent TradingAgents research team analyze it → follow the bull/bear debate and risk review → receive a PM decision memo and the complete reasoning trail in your messaging app within 3–5 minutes.

📸 Feature Overview

The screenshots below use the English interface; Simplified Chinese is available throughout the same product surfaces.

Portfolio · Multi-account overview Opportunities · AI-scored ideas

Paper trading · Equity curve and performance Deep stock analysis

Technical confluence · MACD/RSI/KDJ at a glance Price alerts · Combined conditions

Mobile screenshots

📱 PanWatch is an installable PWA and can be added to your mobile home screen like a native app.

💡 If PanWatch is useful to you, please consider giving the project a ⭐ Star . It is the best way to support the project and help more people discover it.

Core Features

Capability What you can do

Portfolio Manage multiple brokerage accounts, track holdings and P&L, and set trading styles.

AI research Follow technical, sentiment, news, and fundamentals analysis through debate, risk review, and a portfolio-manager decision.

Scheduled agents Run pre-market, intraday, and closing workflows on eligible exchange trading days using your configured schedules.

Price alerts Combine conditions with AND/OR logic and configure cooldowns, daily limits, expiration, and notification channels.

Opportunities Review ranked candidates with entry levels, targets, and risk context.

Paper trading Simulate signal-based entries and exits, then track equity and performance.

Notifications Deliver reports and alerts through Telegram, WeCom, DingTalk, Feishu, Bark, or webhooks.

Mobile Install the PWA on your home screen and use the same workspace on your phone.

Stock and listed ETF search, watchlists, holdings, price alerts, quotes and candlesticks share the same workflow across mainland China, Hong Kong and US markets. Search by code or name (for example, 510300 , 159915 , 02800 or SPY ).

The asset type is saved with each instrument; select ETF for funds whose provider name does not identify them as ETFs.

ETF deep analysis uses fund-specific context and does not substitute company financial statements. Fund holdings, NAV, fees and tracking error are not yet supplied as structured data.

Paper trading continues to use its existing market rules and cost model; ETF-specific T+0 exceptions and fee schedules are not modeled.

Quick Start

命令
docker run -d \

--name panwatch \ --restart unless-stopped \ -e TZ=Asia/Shanghai \ -p 8000:8000 \ -v panwatch_data:/app/data \ sunxiao0721/panwatch:latest

Open http://localhost:8000 and create your login credentials.

命令
Set TZ explicitly for background schedules and notification quiet hours, for example

-e TZ=UTC or -e TZ=America/New_York . The image defaults to Asia/Shanghai and does not detect the host timezone. Interface timestamps and alert expiry inputs use the browser timezone. Timezone policy

Initial setup

  • Open the web interface and create your login credentials.
  • The main tour opens on first sign-in and follows stocks, quotes, AI setup and a first analysis. Required steps cannot be skipped; you can pause and resume. Reopen it from the Guide center , which also offers opportunities, paper trading, assistant, daily tasks and data sources, each with saved progress and replay. Click highlighted controls directly. The main tour verifies saved actions or successful checks; exploration routes record instructions you acknowledge.
  • In the main tour, configure a service in Settings → AI Services , set the default model, and test the connection before explicitly generating your first analysis. This action uses your model quota; its result stays on the page.
  • Optionally create a price alert and test a notification channel. You can defer or resume the guide; progress survives browser changes and service restarts. A changed model or channel configuration needs a new successful test.
  • Enable scheduled agents or explore TradingAgents after the basics work. These are configured separately from the first analysis.
命令
Docker Compose

services : panwatch : image : sunxiao0721/panwatch:latest container_name : panwatch environment : TZ : " Asia/Shanghai " ports :

volumes :

restart : unless-stopped

  • " 8000:8000 "
  • panwatch_data:/app/data

volumes : panwatch_data :

命令
docker compose up -d

Change environment.TZ to your IANA timezone and run docker compose up -d to recreate the container. Review existing cron and quiet-hour wall times before changing it; the same 09:00 schedule will run at a different instant. Keep the data volume.

First startup and browser installation The image includes Playwright's system dependencies. Chromium's headless shell for screenshots is downloaded on first startup into the mounted volume (default /app/data/playwright ), which requires network access and can take a few minutes.

If you do not need browser features such as screenshots, set PLAYWRIGHT_SKIP_BROWSER_INSTALL=1 to skip this installation.

Reference

Scheduled agents and deep analysis

Agent Purpose

Pre-market outlook Combine overnight moves, news, and technical structure into a plan.

Intraday monitor Watch unusual moves and technical signals during open sessions.

Daily report Review the session and prepare the next trading day's plan.

Schedules are configurable. Automatic runs filter exchange holidays before collection and analysis; intraday workflows also require an open trading session.

Select the brain icon beside a holding to start TradingAgents deep analysis. Four analyst roles feed a bull/bear debate, risk review, and portfolio-manager decision, with the reasoning trail available in the app and through configured notification channels.

Runtime and cost depend on the selected models and configuration.

Deep-analysis flowchart · Backend architecture

Market calendars and scheduling

  • Select the market status strip to compare all three exchanges across the next 14 dates. Opening/session times use your browser timezone; trade dates and status use each exchange's local date.
  • A non-trading day shows closed; a completed trading day shows market closed. Beijing Saturday morning may still be New York Friday after close.
  • Published 2026 closures and half-days are bundled locally. Startup warms only the previous 30 and next 90 days, without downloading full history. Unpublished weekdays show a pending calendar and block automatic execution; the bundled annual data must be updated for the next year.
  • Agent Cron/interval settings remain unchanged; execution and schedule previews share calendar filters. Price alerts in “all day” mode still require a trading day.
  • Paper fills require an open session for that stock's market. Paper notifications follow each exchange's local clock, including half-days and U.S. daylight-saving changes.
  • Mainland China paper positions follow T+1 using the Shanghai purchase date: automatic and manual sells are blocked on the purchase date and allowed from the next trading day, without waiting 24 hours. Prices and unrealized P&L continue updating while locked; stop-loss, take-profit and other exit conditions are checked again when selling becomes available, using the then-current quote.
  • Paper cash settlement is separate from sell eligibility: A shares settle T+1 and allow sale proceeds to fund new purchases immediately; HK (T+2) and US (T+1) use a cash account that only buys with settled, unreserved funds. The page shows cash balance, buying power, settled available cash and outstanding sale proceeds. Purchases reserve cash immediately; settlement changes availability without crediting cash or P&L again.
  • Settlement dates use each market's local calendar. HK half-days are non-settlement days; US Columbus Day and Veterans Day also defer settlement even when stocks trade. The simulation releases funds at the start of the due date, rather than modeling intraday clearing batches, withdrawal cutoffs, margin, FX or broker-specific facilities. Existing balances are treated as settled opening funds; historical trades are not retroactively locked. Unknown future calendars keep new outstanding proceeds pending until calendar data is updated.
  • Rule references: HKEX settlement and half-days , SEC T+1 , DTC 2026 holidays .

Professional technical analysis

  • Trend indicators: moving-average alignment, MACD crosses, and Bollinger Band breakouts.
  • Momentum indicators: RSI overbought/oversold conditions and KDJ saturation or divergence.
  • Price and volume: volume-ratio anomalies, low-volume pullbacks, and high-volume breakouts.
  • Pattern recognition: hammer, engulfing, doji, and other candlestick patterns.
  • Support and resistance: automatic calculation of multiple support and resistance levels.

Price alerts

  • Combine price, percentage change, turnover, volume ratio, and other conditions with AND/OR logic.
  • Limit rules to market hours or keep them active all day on trading days; configure cooldowns, daily trigger limits, and repeat behavior.
可复制命令
Set an expiration date and HH:mm time in the rule dialog, or leave it empty so the rule never expires.
  • Choose notification channels per rule, or use the system default when none is selected.

Environment variables

Variable Description Default

AUTH_USERNAME Preconfigured login username

命令
Set on first visit

AUTH_PASSWORD Preconfigured login password

命令
Set on first visit

JWT_SECRET Secret used to sign JWTs Generated automatically

DATA_DIR Data storage directory

命令
./data

TZ Deployment timezone for Agent schedules and notification quiet hours; interface display/input use the browser timezone Asia/Shanghai

PLAYWRIGHT_SKIP_BROWSER_INSTALL Skip the initial Chromium installation when browser features are not required Not set

LOG_LEVEL Console log level. INFO prints business events and errors; use DEBUG for scheduler heartbeats, collection steps, and other diagnostics. The UI log panel always retains the complete log. INFO

HTTP_PROXY / HTTPS_PROXY / http_proxy Outbound HTTP proxy. Configure it through an external environment variable, http_proxy=http://host:port in .env , or Settings → Global HTTP Proxy . Priority: external environment variables > UI > .env .

NO_PROXY includes localhost,127.0.0.1 by default. Not set

OTEL_EXPORTER_OTLP_ENDPOINT OpenTelemetry OTLP endpoint, such as http://jaeger:4318 . Export remains completely disabled when this is empty. The optional dependencies in requirements-otel.txt are also required. Not set (disabled)

Local development

Requirements

Requirements
Python 3.10+ / Node.js 24.14.0 / pnpm 9.15.9

One-command development setup (recommended)

命令
make dev-api # Backend with automatic venv/dependencies on :8000
命令
make dev-web # Frontend with automatic pnpm install on :5183

Or start each service manually

命令
python -m venv venv && source venv/bin/activate
命令
pip install -r requirements.txt
命令
python server.py # Backend on :8000
命令
cd frontend && pnpm install && pnpm dev # Frontend on :5183

The frontend development server runs at http://localhost:5183 and proxies /api to 127.0.0.1:8000 .

Frontend UI conventions and checks

Technology stack Backend: FastAPI / SQLAlchemy / APScheduler / OpenAI SDK

Frontend: React 18 / TypeScript / Tailwind CSS / shadcn/ui

OpenTelemetry export (optional and disabled by default) PanWatch includes a built-in observability stack with structured logs, end-to-end trace_id correlation, the agent_runs table, and node-level TradingAgents progress and cost reporting. It works without any external service.

You can optionally add standard OpenTelemetry export and send traces to Jaeger, Tempo, Langfuse, or another compatible APM. PanWatch maps three types of spans:

  • One agent run → a root span correlated with the trace_id from agent_runs .
  • One LLM call → a gen_ai child span following the OpenTelemetry GenAI semantic conventions , including gen_ai.system , gen_ai.request.model , input/output token usage, and gen_ai.operation.name .
  • One TradingAgents node → a child span that reuses the node-level progress callback.
命令
Export is a complete no-op when the optional dependencies are not installed and no endpoint is configured.

Enable it in three steps:

1. Install the optional dependencies

命令
pip install -r requirements-otel.txt

2. Configure your collector or APM endpoint

命令
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
命令
export OTEL_SERVICE_NAME=panwatch # Optional; defaults to panwatch

3. Start PanWatch normally. The startup log will confirm that OTel export is enabled.

命令
python server.py

Run a local Jaeger instance to verify the integration:

命令
docker run -d --name jaeger -p 16686:16686 -p 4318:4318 \

jaegertracing/all-in-one:latest

Trigger an agent, open http://localhost:16686, and select service=panwatch.

Langfuse and Tempo work the same way: point OTEL_EXPORTER_OTLP_ENDPOINT to their OTLP endpoint.

Publishing Docker images The repository includes a GitHub Actions release workflow:

  • Pushing a tag such as 0.2.3 automatically builds and publishes:
  • sunxiao0721/panwatch:0.2.3
  • sunxiao0721/panwatch:latest
  • The workflow can also be started manually with workflow_dispatch and an explicit version.

Configure these repository secrets before publishing:

  • DOCKERHUB_USERNAME
  • DOCKERHUB_TOKEN

Support the Project

Sponsorship

For sponsorship or partnership inquiries, contact [email protected] .

Donations

PanWatch is free and open source. If it saves you time or improves your workflow, you can support continued development:

Alipay / WeChat Pay

Alipay WeChat Pay

USDT Binance Pay — scan with the Binance app:

On-chain USDT (TRC20) — scan with any TRON wallet:

Address: TKBV69B2AoU67p3vDhnJUbMJtZ1DxuUF5C

Contributing

Issues and pull requests are welcome. See the contribution guide for setup, validation, internationalization, custom agents, and market-data sources.

Community chat (Telegram): t.me/panwatch

License

MIT

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

Feature overview · Core features · Quick start · Reference · Support · Contributing 🧠 Start from a portfolio holding → let a nine-agent TradingAgents research team analyze it → follow the bull/bear debate and risk review → receive a PM decision memo and the complete reasoning trail in your messaging app within 3–5 minutes.

📸 Feature Overview The screenshots below use the English interface; Simplified Chinese is available throughout the same product surfaces.

Portfolio · Multi-account overview Opportunities · AI-scored ideas Paper trading · Equity curve and performance Deep stock analysis Technical confluence · MACD/RSI/KDJ at a glance Price alerts · Combined conditions Mobile screenshots 📱 PanWatch is an installable PWA and can be added to your mobile home screen like a native app.

💡 If PanWatch is useful to you, please consider giving the project a ⭐ Star . It is the best way to support the project and help more people discover it.

Core Features Capability What you can do Portfolio Manage multiple brokerage accounts, track holdings and P&L, and set trading styles.

AI research Follow technical, sentiment, news, and fundamentals analysis through debate, risk review, and a portfolio-manager decision.

Scheduled agents Run pre-market, intraday, and closing workflows on eligible exchange trading days using your configured schedules. Price alerts Combine conditions with AND/OR logic and configure cooldowns, daily limits, expiration, and notification channels.

Opportunities Review ranked candidates with entry levels, targets, and risk context. Paper trading Simulate signal-based entries and exits, then track equity and performance.

Notifications Deliver reports and alerts through Telegram, WeCom, DingTalk, Feishu, Bark, or webhooks. Mobile Install the PWA on your home screen and use the same workspace on your phone.

Stock and listed ETF search, watchlists, holdings, price alerts, quotes and candlesticks share the same workflow across mainland China, Hong Kong and US markets. Search by code or name (for example, 510300 , 159915 , 02800 or SPY ).

The asset type is saved with each instrument; select ETF for funds whose provider name does not identify them as ETFs. ETF deep analysis uses fund-specific context and does not substitute company financial statements.

Fund holdings, NAV, fees and tracking error are not yet supplied as structured data. Paper trading continues to use its existing market rules and cost model; ETF-specific T+0 exceptions and fee schedules are not modeled. Quick Start

命令
docker run -d \

--name panwatch \ --restart unless-stopped \ -e TZ=Asia/Shanghai \ -p 8000:8000 \ -v panwatch_data:/app/data \ sunxiao0721/panwatch:latest Open http://localhost:8000 and create your login credentials.

命令
Set TZ explicitly for background schedules and notification quiet hours, for example

-e TZ=UTC or -e TZ=America/New_York . The image defaults to Asia/Shanghai and does not detect the host timezone. Interface timestamps and alert expiry inputs use the browser timezone. Timezone policy Initial setup

  • Open the web interface and create your login credentials.
  • The main tour opens on first sign-in and follows stocks, quotes, AI setup and a first analysis. Required steps cannot be skipped; you can pause and resume. Reopen it from the Guide center , which also offers opportunities, paper trading, assistant, daily tasks and data sources, each with saved progress and replay. Click highlighted controls directly. The main tour verifies saved actions or successful checks; exploration routes record instructions you acknowledge.
  • In the main tour, configure a service in Settings → AI Services , set the default model, and test the connection before explicitly generating your first analysis. This action uses your model quota; its result stays on the page.
  • Optionally create a price alert and test a notification channel. You can defer or resume the guide; progress survives browser changes and service restarts. A changed model or channel configuration needs a new successful test.
  • Enable scheduled agents or explore TradingAgents after the basics work. These are configured separately from the first analysis.
命令
Docker Compose

services : panwatch : image : sunxiao0721/panwatch:latest container_name : panwatch environment : TZ : " Asia/Shanghai " ports :

volumes :

restart : unless-stopped volumes : panwatch_data :

  • " 8000:8000 "
  • panwatch_data:/app/data
命令
docker compose up -d

Change environment.TZ to your IANA timezone and run docker compose up -d to recreate the container. Review existing cron and quiet-hour wall times before changing it; the same 09:00 schedule will run at a different instant. Keep the data volume.

First startup and browser installation The image includes Playwright's system dependencies.

Chromium's headless shell for screenshots is downloaded on first startup into the mounted volume (default /app/data/playwright ), which requires network access and can take a few minutes.

If you do not need browser features such as screenshots, set PLAYWRIGHT_SKIP_BROWSER_INSTALL=1 to skip this installation.

Reference Scheduled agents and deep analysis Agent Purpose Pre-market outlook Combine overnight moves, news, and technical structure into a plan. Intraday monitor Watch unusual moves and technical signals during open sessions.

Daily report Review the session and prepare the next trading day's plan. Schedules are configurable. Automatic runs filter exchange holidays before collection and analysis; intraday workflows also require an open trading session.

Select the brain icon beside a holding to start TradingAgents deep analysis. Four analyst roles feed a bull/bear debate, risk review, and portfolio-manager decision, with the reasoning trail available in the app and through configured notification channels.

Runtime and cost depend on the selected models and configuration. Deep-analysis flowchart · Backend architecture Market calendars and scheduling

  • Select the market status strip to compare all three exchanges across the next 14 dates. Opening/session times use your browser timezone; trade dates and status use each exchange's local date.
  • A non-trading day shows closed; a completed trading day shows market closed. Beijing Saturday morning may still be New York Friday after close.

来源教程配图

PanWatch TradingAgents deep-analysis demo
配图 1 · PanWatch TradingAgents deep-analysis demo查看原图
Portfolio management
配图 2 · Portfolio management查看原图
AI-scored opportunities
配图 3 · AI-scored opportunities查看原图
Paper trading
配图 4 · Paper trading查看原图
Stock details
配图 5 · Stock details查看原图
Technical indicators
配图 6 · Technical indicators查看原图
Price alerts
配图 7 · Price alerts查看原图
教程配图
配图 8 · 教程配图查看原图

适用场景

学习研究
开源项目实践