Rebuilds the client into Live (watchlist with charts, fundamentals, news, quant analysis) and Strategy (backtest runner / precomputed results) pages, adds the corresponding /api/stocks/:symbol/chart|fundamentals|related|quant and /api/strategies endpoints, and updates project tooling. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
71 lines
2.7 KiB
Markdown
71 lines
2.7 KiB
Markdown
# Personal Stock Agent
|
||
|
||
统一个人股票监控 MVP,支持 A股、港股、美股自选股,按日生成监控报告。数据接口固定使用 IPADS Responses API,密钥从 `.env` 的 `IPADS_API_KEY` 读取。
|
||
|
||
## Run
|
||
|
||
```bash
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
Frontend: http://127.0.0.1:5173
|
||
|
||
Backend: http://127.0.0.1:8787
|
||
|
||
LAN access:
|
||
|
||
```bash
|
||
HOST=0.0.0.0 CLIENT_PORT=5174 PORT=8787 npm run dev
|
||
```
|
||
|
||
Open `http://gahow-pc.ipads-lab.se.sjtu.edu.cn:5174` from another device on the same network.
|
||
|
||
## IPADS API
|
||
|
||
配置文件:
|
||
|
||
```env
|
||
IPADS_API_KEY=your_api_key
|
||
```
|
||
|
||
固定服务端配置:
|
||
|
||
```text
|
||
base_url = "http://tianx.ipads-lab.se.sjtu.edu.cn:8319/v1"
|
||
wire_api = "responses"
|
||
env_key = "IPADS_API_KEY"
|
||
```
|
||
|
||
The backend calls:
|
||
|
||
```text
|
||
POST http://tianx.ipads-lab.se.sjtu.edu.cn:8319/v1/responses
|
||
Authorization: Bearer ${IPADS_API_KEY}
|
||
```
|
||
|
||
The response output text must be JSON matching the stock snapshot schema used by the agent. If `IPADS_API_KEY` is blank, the app uses deterministic demo data so the dashboard remains usable.
|
||
|
||
## Features
|
||
|
||
- Add/remove watchlist symbols such as `600519`, `000001.SZ`, `00700.HK`, `AAPL`, `MSFT.US`.
|
||
- Normalize symbols into A股、港股、美股 markets.
|
||
- Generate a daily report with earnings timing, peer stocks, valuation discount/premium, related news, and buy-watch/hold/avoid recommendations.
|
||
- Refreshes the cached daily report every 24 hours while the backend process is running.
|
||
- View each watchlist stock with locally cached D/W/M/Y K-line chart data, zoom controls, MA5/MA20/MA60, RSI14, MACD, volume, and cached financial statements. US K-line and quote/research fields use Nasdaq as the fixed data source and target at least 5 years of verified daily OHLCV history when available.
|
||
- Cache related market context such as sector, liquidity, volatility, drawdown, relative strength, capital flow, sentiment, and risk flags.
|
||
- Run an agent-backed quantitative analysis across technical, valuation, growth, quality, liquidity, sentiment, and risk factors to classify each stock as buy-watch/hold/avoid.
|
||
- Add tags to every watchlist stock and filter the watchlist by tag.
|
||
- In configured provider mode, prompts require verified data and do not permit approximate or fabricated values; missing data is surfaced instead of being filled with synthetic values.
|
||
- K-line cache updates incrementally: once 5 years of daily bars exist locally, refreshes request only the latest missing window and merge by date.
|
||
|
||
## Local cache
|
||
|
||
Persistent app data defaults to `./data` and can be moved with:
|
||
|
||
```env
|
||
STOCK_AGENT_DATA_DIR=/path/to/stock-agent-data
|
||
```
|
||
|
||
The backend stores watchlist data in `watchlist.json` and per-stock cached snapshot/K-line/financial data under `cache/`.
|