金融工具包

MCP Tools

股票数据获取、分析和可视化工具包。支持A股、港股、美股数据,提供技术分析、基本面分析和投资组合管理功能。

Install

openclaw skills install finance-toolkit

金融工具包技能

功能特性

数据获取

  • 实时行情: A股、港股、美股实时价格
  • 历史数据: 日线、周线、月线数据
  • 基本面数据: 财务指标、财报数据
  • 市场数据: 指数、板块、资金流向

技术分析

  • K线图: 蜡烛图、成交量图
  • 技术指标: MA、MACD、KDJ、RSI、BOLL等
  • 形态识别: 头肩顶、双底、三角形等
  • 趋势分析: 趋势线、支撑阻力位

基本面分析

  • 财务分析: 资产负债表、利润表、现金流量表
  • 估值指标: PE、PB、PS、股息率等
  • 成长性分析: 营收增长、利润增长
  • 盈利能力: ROE、ROA、毛利率、净利率

投资组合

  • 组合管理: 持仓管理、盈亏计算
  • 风险评估: 波动率、夏普比率、最大回撤
  • 资产配置: 股债配置、行业配置
  • 绩效评估: 收益率、风险调整后收益

可视化

  • 交互图表: 可缩放、可拖动的K线图
  • 指标叠加: 多指标同图显示
  • 报表生成: 自动生成分析报告
  • 仪表盘: 实时监控仪表盘

安装依赖

# Python依赖
pip install akshare pandas numpy matplotlib mplfinance plotly ta

# 可选:更多高级功能
pip install backtrader quantstats yfinance

配置说明

API配置

# config/api_config.py
API_CONFIG = {
    "akshare": {
        "timeout": 10,
        "retry": 3
    },
    "cache": {
        "enabled": True,
        "ttl": 300  # 5分钟缓存
    }
}

数据源配置

# config/data_sources.py
DATA_SOURCES = {
    "a_share": {
        "realtime": "akshare.stock_zh_a_spot_em",
        "history": "akshare.stock_zh_a_hist",
        "fundamental": "akshare.stock_financial_report_sina"
    },
    "hk_stock": {
        "realtime": "akshare.stock_hk_spot_em",
        "history": "akshare.stock_hk_hist"
    },
    "us_stock": {
        "realtime": "akshare.stock_us_spot_em", 
        "history": "akshare.stock_us_hist"
    }
}

使用示例

基础使用

from finance_toolkit import StockAnalyzer

# 创建分析器
analyzer = StockAnalyzer()

# 获取股票数据
df = analyzer.get_stock_data("000001", start_date="2024-01-01")

# 技术分析
indicators = analyzer.calculate_indicators(df)

# 生成图表
analyzer.plot_chart(df, indicators, save_path="chart.png")

命令行使用

# 查看股票信息
python -m finance_toolkit.cli stock 000001

# 技术分析
python -m finance_toolkit.cli analyze 000001 --indicators macd,rsi,boll

# 投资组合
python -m finance_toolkit.cli portfolio list
python -m finance_toolkit.cli portfolio add 000001 1000

# 生成报告
python -m finance_toolkit.cli report 000001 --output report.html

OpenClaw集成

// 在OpenClaw技能中调用
const finance = require('./skills/finance-toolkit');

// 股票查询命令
app.command('/stock <code>', async (code) => {
  const data = await finance.getStockData(code);
  return `股票 ${code} 信息:\n当前价: ${data.price}\n涨跌幅: ${data.change}`;
});

// 投资组合命令
app.command('/portfolio', async () => {
  const portfolio = await finance.getPortfolio();
  return `投资组合总价值: ${portfolio.total_value}\n今日盈亏: ${portfolio.today_pnl}`;
});

命令参考

股票命令

/stock <代码> [参数]
  参数:
    --detail    详细模式
    --chart     显示图表
    --news      相关新闻
    --analysis  技术分析

示例:
  /stock 000001
  /stock 000001 --chart
  /stock 000001 --analysis --indicators macd,rsi

投资组合命令

/portfolio <子命令> [参数]
  子命令:
    list        查看组合
    add <代码> <数量> [成本价]  添加持仓
    remove <代码> [数量]       减少持仓
    update      更新市值
    analyze     组合分析

示例:
  /portfolio list
  /portfolio add 000001 1000 15.5
  /portfolio analyze --risk

市场命令

/market <子命令> [参数]
  子命令:
    indices     主要指数
    sectors     板块涨跌
    hot         热门股票
    flow        资金流向
    calendar    财经日历

示例:
  /market indices
  /market sectors --sort change
  /market flow --type north

分析命令

/analyze <代码> [参数]
  参数:
    --period <周期>     日/周/月/年
    --indicators <指标> 技术指标列表
    --compare <代码>    对比股票
    --export <格式>     导出格式

示例:
  /analyze 000001
  /analyze 000001 --indicators macd,rsi,boll
  /analyze 000001 --compare 000002 --period month

数据源说明

主要数据源

  1. akshare: 免费、全面的A股数据
  2. 新浪财经: 实时行情、财务数据
  3. 东方财富: 资金流向、龙虎榜
  4. 腾讯财经: 新闻资讯、公告

数据更新频率

  • 实时行情: 3-5秒更新
  • 日线数据: 每日收盘后更新
  • 财务数据: 财报季后更新
  • 新闻资讯: 实时更新

数据质量

  • 准确性: 与交易所官方数据一致
  • 完整性: 包含历史复权数据
  • 及时性: 实时数据延迟小于5秒
  • 稳定性: 99.9%可用性

高级功能

量化策略

from finance_toolkit.quant import StrategyBacktester

# 定义策略
def ma_crossover_strategy(data, short_window=10, long_window=30):
    # 移动平均线交叉策略
    pass

# 回测
backtester = StrategyBacktester(
    strategy=ma_crossover_strategy,
    initial_capital=100000,
    commission=0.0003
)

results = backtester.backtest("000001", "2023-01-01", "2024-01-01")

风险管理

from finance_toolkit.risk import RiskManager

risk_manager = RiskManager(portfolio)

# 风险评估
risk_report = risk_manager.assess_risk()

# 风险控制
if risk_report["var_95"] > 0.05:  # 95% VaR超过5%
    risk_manager.adjust_position()

自动化交易

from finance_toolkit.trading import AutoTrader

trader = AutoTrader(
    strategy=my_strategy,
    broker="simulated",  # 模拟交易
    risk_limit=0.02      # 单笔风险限制2%
)

# 启动交易
trader.start()

注意事项

使用限制

  1. 数据频率: 免费API有调用频率限制
  2. 商业用途: 如需商业使用请购买授权
  3. 投资建议: 本工具不构成投资建议
  4. 数据准确性: 请以交易所官方数据为准

最佳实践

  1. 数据缓存: 合理使用缓存减少API调用
  2. 错误处理: 实现完善的错误处理机制
  3. 日志记录: 记录重要操作和错误信息
  4. 定期备份: 定期备份重要数据和配置

故障排除

  1. 网络问题: 检查网络连接和代理设置
  2. API限制: 确认API调用未超限
  3. 数据格式: 验证数据格式和编码
  4. 依赖版本: 确保依赖库版本兼容

更新日志

v1.0.0 (2026-02-27)

  • 初始版本发布
  • 基础股票数据获取
  • 基本技术分析功能
  • 简单投资组合管理

计划功能

  • 期权数据和分析
  • 期货数据和分析
  • 加密货币支持
  • 多因子模型
  • 机器学习预测
  • 实时预警系统
  • 移动端应用
  • 微信/钉钉集成

支持与贡献

问题反馈

贡献指南

  1. Fork项目
  2. 创建功能分支
  3. 提交更改
  4. 创建Pull Request

开发环境

# 克隆项目
git clone [项目地址]

# 安装开发依赖
pip install -r requirements-dev.txt

# 运行测试
pytest tests/

# 代码检查
flake8 finance_toolkit/
black finance_toolkit/

免责声明: 本工具仅供学习和研究使用,不构成任何投资建议。股市有风险,投资需谨慎。