FinClaw — AI Finance Assistant
Your personal finance assistant covering US stocks, BIST (Turkish market), crypto, and forex. Includes portfolio tracking, price alerts, charts, technical analysis, daily briefings, and more.
First-Time Setup
Run once after installation to create the Python venv and database:
CODEBLOCK0
Then add to openclaw.json under skills.entries:
"finclaw": {
"env": {
"FINNHUB_API_KEY": "",
"FRED_API_KEY": "",
"ALPHA_VANTAGE_API_KEY": "",
"EXCHANGE_RATE_API_KEY": ""
}
}
API keys are optional — core features (prices, charts, TA, portfolio, alerts) work without any keys.
Running Scripts
All scripts use the skill's Python venv:
{baseDir}/venv/bin/python3 {baseDir}/scripts/<script>.py [args]
Market Data
quote.py — Real-Time Quotes
Auto-detects asset type from symbol. Results cached for 60 seconds.
CODEBLOCK3
Symbol detection: .IS → BIST | BTC/ETH/SOL... → Crypto | USD/TRY → Forex | else → US stock
crypto.py — Crypto Market Data
CODEBLOCK4
forex.py — Exchange Rates
CODEBLOCK5
chart.py — Price Charts
Generates PNG charts. Send the saved file to the user.
{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py AAPL # Candlestick
{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py BTC --type line --period 1y # Line chart
{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py AAPL --sma 20 50 200 # With SMAs
Periods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, max
technical.py — Technical Analysis
SMA, EMA, RSI, MACD, Bollinger Bands with buy/sell signals.
CODEBLOCK7
news.py — Financial News (requires FINNHUBAPIKEY)
CODEBLOCK8
screener.py — Stock Screener
{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py us # US gainers
{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py bist --direction bottom # BIST losers
{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py crypto --limit 15 # Crypto gainers
Portfolio & Alerts
portfolio.py — Position Management
{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py add --symbol AAPL --shares 10 --price 150
{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py sell --symbol AAPL --shares 5 --price 175
{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py remove --symbol AAPL
{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py list
{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py summary
Optional:
--fees 1.50,
--date 2024-01-15,
--name "Apple Inc", INLINECODE8
alerts.py — Price Alerts
{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py create --symbol AAPL --condition above --target 200
{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py create --symbol BTC --condition below --target 60000 --note "Buy signal"
{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py list
{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py delete --id 3
{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py snooze --id 3 --hours 48
Conditions:
above,
below,
change_pct, INLINECODE12
check_alerts.py — Alert Checker (for cron)
CODEBLOCK12
pnl.py — Profit & Loss
CODEBLOCK13
watchlist.py — Watchlists
{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py create --name "Tech"
{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py add --name "Tech" --symbol AAPL
{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py show --name "Tech" --prices
{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py list
Intelligence
briefing.py — Market Briefings
CODEBLOCK15
macro.py — Macro Economics (requires FREDAPIKEY)
CODEBLOCK16
earnings.py — Earnings Calendar (requires FINNHUBAPIKEY)
CODEBLOCK17
sentiment.py — News Sentiment (requires ALPHAVANTAGEAPI_KEY)
CODEBLOCK18
research.py — Deep Research
{baseDir}/venv/bin/python3 {baseDir}/scripts/research.py AAPL
Data Sources
- - US Stocks: Finnhub (primary), yfinance (fallback) — no key needed
- BIST: yfinance with .IS suffix — no key needed
- Crypto: Binance API — no key needed
- Forex: ExchangeRate-API — works without key
- Charts/TA: matplotlib + mplfinance + pandas — local computation
- News: Finnhub — needs FINNHUBAPIKEY
- Macro: FRED — needs FREDAPIKEY
- Sentiment: Alpha Vantage — needs ALPHAVANTAGEAPI_KEY
FinClaw — AI金融助手
您的个人金融助手,涵盖美股、BIST(土耳其市场)、加密货币和外汇。包括投资组合追踪、价格提醒、图表、技术分析、每日简报等功能。
首次设置
安装后运行一次,创建Python虚拟环境和数据库:
bash
python3 {baseDir}/scripts/setup.py
然后在openclaw.json的skills.entries下添加:
json
finclaw: {
env: {
FINNHUBAPIKEY: ,
FREDAPIKEY: ,
ALPHAVANTAGEAPI_KEY: ,
EXCHANGERATEAPI_KEY:
}
}
API密钥为可选——核心功能(价格、图表、技术分析、投资组合、提醒)无需任何密钥即可使用。
运行脚本
所有脚本均使用该技能的Python虚拟环境:
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/<脚本名>.py [参数]
市场数据
quote.py — 实时报价
根据代码自动检测资产类型。结果缓存60秒。
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL # 美股
{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py THYAO.IS # BIST股票
{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py BTC # 加密货币
{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py USD/TRY # 外汇
{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL MSFT BTC # 多个
{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL --force # 跳过缓存
{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL --json # JSON输出
代码检测: .IS → BIST | BTC/ETH/SOL... → 加密货币 | USD/TRY → 外汇 | 其他 → 美股
crypto.py — 加密货币市场数据
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/crypto.py price BTC # 币安价格
{baseDir}/venv/bin/python3 {baseDir}/scripts/crypto.py top --limit 10 # 涨幅榜
{baseDir}/venv/bin/python3 {baseDir}/scripts/crypto.py try BTC # 以TRY计价
forex.py — 汇率
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/forex.py rate USD TRY
{baseDir}/venv/bin/python3 {baseDir}/scripts/forex.py convert USD TRY --amount 1000
{baseDir}/venv/bin/python3 {baseDir}/scripts/forex.py multi USD --targets TRY EUR GBP
chart.py — 价格图表
生成PNG图表。将保存的文件发送给用户。
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py AAPL # 蜡烛图
{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py BTC --type line --period 1y # 折线图
{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py AAPL --sma 20 50 200 # 带SMA
周期:1d、5d、1mo、3mo、6mo、1y、2y、5y、max
technical.py — 技术分析
SMA、EMA、RSI、MACD、布林带,附带买入/卖出信号。
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/technical.py AAPL
{baseDir}/venv/bin/python3 {baseDir}/scripts/technical.py BTC --period 1y --json
news.py — 财经新闻(需要FINNHUBAPIKEY)
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/news.py company --symbol AAPL
{baseDir}/venv/bin/python3 {baseDir}/scripts/news.py market --category crypto
screener.py — 股票筛选器
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py us # 美股涨幅榜
{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py bist --direction bottom # BIST跌幅榜
{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py crypto --limit 15 # 加密货币涨幅榜
投资组合与提醒
portfolio.py — 持仓管理
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py add --symbol AAPL --shares 10 --price 150
{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py sell --symbol AAPL --shares 5 --price 175
{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py remove --symbol AAPL
{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py list
{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py summary
可选:--fees 1.50、--date 2024-01-15、--name Apple Inc、--notes 长期持有
alerts.py — 价格提醒
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py create --symbol AAPL --condition above --target 200
{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py create --symbol BTC --condition below --target 60000 --note 买入信号
{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py list
{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py delete --id 3
{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py snooze --id 3 --hours 48
条件:above(高于)、below(低于)、changepct(变动百分比)、volumeabove(成交量高于)
check_alerts.py — 提醒检查器(用于定时任务)
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/check_alerts.py
pnl.py — 盈亏计算
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/pnl.py # 所有持仓
{baseDir}/venv/bin/python3 {baseDir}/scripts/pnl.py --symbol AAPL # 单个代码
watchlist.py — 自选列表
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py create --name 科技
{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py add --name 科技 --symbol AAPL
{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py show --name 科技 --prices
{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py list
智能分析
briefing.py — 市场简报
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/briefing.py morning # 完整晨间简报
{baseDir}/venv/bin/python3 {baseDir}/scripts/briefing.py close # 收盘总结
{baseDir}/venv/bin/python3 {baseDir}/scripts/briefing.py weekend # 周末加密货币+外汇回顾
macro.py — 宏观经济(需要FREDAPIKEY)
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/macro.py dashboard
{baseDir}/venv/bin/python3 {baseDir}/scripts/macro.py indicator --name fed_rate
{baseDir}/venv/bin/python3 {baseDir}/scripts/macro.py list
earnings.py — 财报日历(需要FINNHUBAPIKEY)
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/earnings.py calendar
{baseDir}/venv/bin/python3 {baseDir}/scripts/earnings.py symbol --symbol AAPL
sentiment.py — 新闻情绪分析(需要ALPHAVANTAGEAPI_KEY)
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/sentiment.py --symbol AAPL
{baseDir}/venv/bin/python3 {baseDir}/scripts/sentiment.py --topics technology
research.py — 深度研究
bash
{baseDir}/venv/bin/python3 {baseDir}/scripts/research.py AAPL
数据来源
- - 美股:Finnhub(主要)、yfinance(备用)——无需密钥
- BIST:yfinance,使用.IS后缀——