Install
openclaw skills install fund-ai-assistantFund portfolio tracker with AI analysis, multi-agent debate, technical indicators (VaR/Sortino/Calmar), macro monitoring, and rebalancing alerts.
openclaw skills install fund-ai-assistantVersion: 3.0 | License: MIT-0 | LLM: Any OpenAI-compatible provider
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.
| 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 |
| Variable | Description |
|---|---|
LLM_MODEL | Model name, e.g. gpt-4o-mini |
LLM_API_KEY | Your LLM API key |
| 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) |
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"
# 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
| 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 |
# 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
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)
Read carefully before installing and running.
LLM_MODEL and LLM_API_KEY are required. Use a dedicated API key, not a high-value production key.llm.py and fund_api.py to confirm no credential exfiltration.FUND_SCENE_DIR: The skill reads .md template files from the directory you specify.
{skill_dir}/scenes/ (which is created empty)..md files in that directory are read.fundgz.1234567.com.cn, api.fund.eastmoney.com — public fund data.TAVILY_API_KEY set): Real-time macro search.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.
positions.json) are stored locally in the skill directory only.LLM_API_BASE endpoint.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.llm.py and fund_api.py before first run.FUND_SCENE_DIR to sensitive directories.LLM_API_KEY or push endpoint URLs.This skill was developed with AI assistance.