# Fund AI Assistant

> Fund portfolio tracker with AI analysis, multi-agent debate, technical indicators (VaR/Sortino/Calmar), macro monitoring, and rebalancing alerts.

- Skill: `lord1egypt/fund-ai-assistant` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lord1egypt/fund-ai-assistant`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lord1egypt/fund-ai-assistant/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: Lord1Egypt (https://skillmd.com/u/lord1egypt)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/lord1egypt/fund-ai-assistant

---


# Fund AI Assistant

**Version**: 3.0 | **License**: MIT-0 | **LLM**: Any OpenAI-compatible provider

---

## Overview

A local-first fund investment assistant running entirely on your machine. Fetches data from East Money, analyzes with any LLM provider, and supports scheduled tasks via OpenClaw or crontab.

> ⚠️ **Security Notice**: This skill requires `LLM_MODEL` + `LLM_API_KEY`. Use a dedicated API key. See Section 7 for all security considerations.

---

## 1. Features

| Feature | Description |
|---------|-------------|
| 📊 Technical Analysis | MACD / KDJ / RSI / Bollinger Bands / MA + **VaR / Sortino / Calmar** |
| 🤖 AI Quantitative Analysis | Any LLM (OpenAI-compatible), outputs buy/sell/hold with price targets |
| ⚖️ Multi-Agent Debate | 6 roles → game-theory judge verdict |
| 📋 Portfolio Rebalancing | Detects allocation drift, outputs precise rebalancing instructions |
| 🎯 Entry Timing | RSI + Bollinger + trend composite score |
| 🌡️ Correlation Heatmap | Pairwise correlation matrix for diversification |
| 🌍 Macro Event Monitor | CSI300 / USD-CNY / FOMC / LPR alerts |

---

## 2. Environment Variables

### Required

| Variable | Description |
|----------|-------------|
| `LLM_MODEL` | Model name, e.g. `gpt-4o-mini` |
| `LLM_API_KEY` | Your LLM API key |

### Optional

| Variable | Description |
|----------|-------------|
| `LLM_API_BASE` | ⚠️ Custom API URL — if untrusted, your key and data go there. Use endpoints you control. Default: `https://api.openai.com/v1` |
| `TAVILY_API_KEY` | Tavily API for real-time macro search |
| `FUND_SCENE_DIR` | Directory with optional `.md` scene templates (default: `./scenes/`) |
| `PUSH_WEBHOOK_URL` | Generic HTTP POST webhook (WeCom / Feishu / Slack) |
| `BARK_PUSH_URL` | iOS Bark notification URL |
| `PUSH_EMAIL` | Target email for SMTP push |
| `SMTP_HOST/PORT/USER/PASS` | SMTP configuration (used with `PUSH_EMAIL`) |
| `QQ_WEBHOOK_URL` | QQ bot HTTP interface (go-cqhttp / Lagrange) |

### Setup Example

```bash
export LLM_MODEL="gpt-4o-mini"
export LLM_API_KEY="sk-xxx"

# Optional
export TAVILY_API_KEY="tvly-xxx"
export PUSH_WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY"
```

---

## 3. Installation

```bash
# 1. Clone
git clone https://github.com/tempest-01/fund-ai-assistant.git
cd fund-ai-assistant

# 2. Install optional dependencies (charts)
pip install -r requirements.txt

# 3. Configure
cp config.example.json config.json
cp positions.example.json positions.json

# 4. Set environment variables (see Section 2)
export LLM_MODEL="your_model"
export LLM_API_KEY="your_key"

# 5. Verify
python3 analyzer.py list
python3 analyzer.py analyze
```

---

## 4. Script Reference

| Script | Function | Usage |
|--------|----------|-------|
| `analyzer.py` | Main entry, tracking + analysis | `python3 analyzer.py list` |
| `ai_analysis.py` | AI quantitative analysis | `python3 ai_analysis.py` |
| `debate_analyzer.py` | Multi-agent debate | `python3 debate_analyzer.py <code>` |
| `rebalance.py` | Portfolio drift detection | `python3 rebalance.py` |
| `recommend.py` | Entry timing suggestions | `python3 recommend.py` |
| `event_monitor.py` | Macro event monitor | `python3 event_monitor.py` |
| `correlation_v2.py` | Correlation heatmap | `python3 correlation_v2.py` |
| `fund_api.py` | East Money data API | `python3 fund_api.py` |
| `technical.py` | Technical indicators | `python3 technical.py` |
| `chart_generator.py` | PIL chart generation | `python3 chart_generator.py` |
| `positions.py` | Position record management | `python3 positions.py` |
| `macro_fetcher.py` | Macro data fetcher | `python3 macro_fetcher.py` |
| `strip_color.py` | ANSI strip for cron | `cmd \| python3 strip_color.py` |
| `llm.py` | Unified LLM interface | `from llm import get_llm_config, call_llm` |

---

## 5. Scheduled Tasks (Reference)

```bash
# OpenClaw users
openclaw cron add --cron "0 8 * * 1-5" \
  --message "cd /path/to/fund-ai-assistant && python3 event_monitor.py --dry-run"

openclaw cron add --cron "30 9 * * 1-5" \
  --message "cd /path/to/fund-ai-assistant && python3 analyzer.py analyze"

# crontab users
0 8 * * 1-5 cd /path/to/fund-ai-assistant && python3 event_monitor.py >> /var/log/fund.log 2>&1
```

---

## 6. File Structure

```
fund-ai-assistant/
├── .gitignore
├── _meta.json              # Registry metadata
├── SKILL.md               # This file
├── README.md              # Full bilingual documentation
├── config.example.json     # Tracking list template
├── positions.example.json  # Position record template
├── requirements.txt       # Optional: Pillow / numpy / matplotlib
├── llm.py                # Unified LLM interface
├── analyzer.py            # Main entry
├── ai_analysis.py         # AI quantitative analysis
├── debate_analyzer.py    # Multi-agent debate
├── rebalance.py           # Portfolio drift detection
├── recommend.py          # Entry timing
├── event_monitor.py      # Macro event monitor
├── correlation_v2.py     # Correlation heatmap
├── fund_api.py           # East Money API
├── technical.py          # Technical indicators
├── chart_generator.py    # PIL chart generation
├── macro_fetcher.py      # Macro data
├── positions.py          # Position records
├── strip_color.py        # ANSI color strip
└── assets/             # Chart output (auto-created)
```

---

## 7. Security Notes

**Read carefully before installing and running.**

### Required Credentials

- `LLM_MODEL` and `LLM_API_KEY` are **required**. Use a dedicated API key, not a high-value production key.
- Before first run, inspect `llm.py` and `fund_api.py` to confirm no credential exfiltration.

### Filesystem Access

- `FUND_SCENE_DIR`: The skill reads `.md` template files from the directory you specify.
  - **Do NOT** point it at system directories, home directories, or folders containing secrets.
  - If unset, defaults to `{skill_dir}/scenes/` (which is created empty).
  - Only `.md` files in that directory are read.

### Network Access

- **East Money APIs**: `fundgz.1234567.com.cn`, `api.fund.eastmoney.com` — public fund data.
- **Tavily** (if `TAVILY_API_KEY` set): Real-time macro search.
- **Push endpoints** (if configured): Analysis summaries are sent to the URLs you provide.

### Push Channels

If any of these are set, analysis output will be transmitted externally:

| Variable | Transmission |
|----------|-------------|
| `PUSH_WEBHOOK_URL` | HTTP POST to your webhook URL |
| `BARK_PUSH_URL` | GET request to your Bark URL |
| `PUSH_EMAIL` | SMTP email to your address |
| `QQ_WEBHOOK_URL` | HTTP POST to your QQ bot |

> Use endpoints you control. Do not set these with untrusted third-party URLs.

### Data Privacy

- All fund data is fetched from East Money on demand; no persistent storage of market data.
- Position records (`positions.json`) are stored locally in the skill directory only.
- LLM API key is sent only to the configured `LLM_API_BASE` endpoint.
- No telemetry, no external analytics, no data sent to third parties without explicit configuration.

### Recommended Precautions

1. **Use a dedicated LLM API key** — not your main production key.
2. **⚠️ Inspect `LLM_API_BASE`** — if set to an untrusted endpoint, your API key and fund data will be sent there. Only use `https://api.openai.com/v1` or endpoints you control.
3. **Review `llm.py` and `fund_api.py`** before first run.
4. **Run in an isolated environment** (container or VM) on first use.
5. **Do not set `FUND_SCENE_DIR`** to sensitive directories.
6. **Do not share your `LLM_API_KEY`** or push endpoint URLs.

---

## 8. Inspiration & Attribution

- **[astrbot_plugin_fund_analyzer](https://github.com/2529huang/astrbot_plugin_fund_analyzer)** — Multi-agent debate framework inspiration; adapted from stock to fund analysis with added portfolio management features.
- **[OpenClaw](https://github.com/openclaw/openclaw)** — Scheduling and notification infrastructure.
- **East Money (东方财富)** — Fund price and history data source.
- **Tencent Finance (腾讯财经)** — CSI300 real-time data source.

---

*This skill was developed with AI assistance.*

