金融图表可视化系统

一个基于Bevy游戏引擎构建的实时金融图表可视化系统,集成了Claude AI聊天功能,支持加密货币K线图实时更新与交互分析。

  • by molaco
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 molaco/claude-bevy-chart-mcp-rust

使用说明

图表最终3

使用Bevy(Rust游戏引擎)构建的实时财务图表可视化系统,通过Claude实现人工智能聊天集成。

概述

此工作区提供了一个完整的解决方案,用于可视化加密货币烛台图,包括:

  • 来自币安的实时WebSocket更新
  • 交互式平移/缩放导航
  • Claude提供的AI聊天助手
  • 通过MCP(模型上下文协议)实现截图功能
  • 从DuckDB加载历史数据

建筑

板条箱

板条箱 类型 描述
图表 Binary 主Bevy应用程序-实时更新烛台图
图表mcp 二进制 MCP服务器-通过Bevy远程协议将Claude AI与图表应用程序连接起来
聊天用户界面 库 Bevy插件-与Claude集成的嵌入式聊天UI
数据加载器 Binary/Lib CLI工具-将币安市场数据下载并导入DuckDB
bevy_ui_text_input 库 Bevy UI的文本输入小部件
克劳德代理商sdk-rust 库 Claude代理API的Rust SDK

关键技术

  • 贝比0.17:用于渲染的实体组件系统游戏引擎
  • DuckDB:用于市场数据存储的嵌入式分析数据库
  • 东京钨铁矿:用于实时数据的异步WebSocket客户端
  • Claude代理SDK:用于图表分析的AI集成

执行流程

启动阶段

  1. 解析CLI参数(股票代码、时间范围、日期范围)
  2. 验证DuckDB中是否存在数据
  3. 使用插件初始化Bevy应用程序:
    • DefaultPlugins -Bevy核心功能
    • ChatUiPlugin -与Claude的聊天界面
    • WebSocketPlugin -实时Binance连接
    • RealtimePlugin -实时蜡烛更新
    • RemotePlugin -MCP集成的BRP
  4. 从数据库加载历史蜡烛
  5. 设置渲染系统和实体池
  6. 建立与币安的WebSocket连接

主循环(每帧)

  1. 输入相位:焦点管理、鼠标/键盘操作
  2. 数据阶段:应用延迟更新、聚合级别检测、延迟加载
  3. 实时相位:处理WebSocket事件,限制蜡烛更新
  4. 聊天阶段:发送/接收Claude消息,处理工具调用
  5. 渲染阶段:网格、烛台、指标、交易量、十字准线

用法

先决条件

# Install Rust (nightly recommended for Bevy)
rustup default nightly

# Database must exist with market data
# Default path: ~/.local/share/flowsurface/flowsurface.duckdb

下载市场数据

cargo run --bin data-loader -- klines \
  -t BTCUSDT \
  -i 1m \
  -s 2024-01-01 \
  -e 2024-01-31

运行图表应用程序

cargo run --bin charts -- \
  --ticker BTCUSDT \
  --timeframe 1m \
  --start 2024-01-01 \
  --end 2024-01-31

键盘控制

关键 行动
Tab 在图表和聊天之间切换焦点
Ctrl+Left/Right 更改时间表
V 切换音量窗格
F 截图
M 切换移动平均线

鼠标控制

  • 滚动:放大/缩小
  • 拖拽:全景图
  • 悬停:显示带有OHLCV值的十字准线

MCP集成

这 chart-mcp 服务器向Claude公开了图表功能:

# Run MCP server (stdio-based)
cargo run --bin chart-mcp

可用工具

  • chart_screenshot:将当前图表状态捕获为PNG格式

模块结构

图表(主要应用)

charts/
├── aggregation/     # Candle aggregation for different zoom levels
├── api/             # Binance REST API client
├── cache/           # Render cache and throttling
├── error/           # Error types
├── focus/           # UI focus management
├── interaction/     # Mouse/keyboard input handling
├── realtime/        # Live data processing
├── rendering/       # Candlesticks, grid, indicators, volume
├── screenshot/      # Screenshot capture and cropping
├── theme/           # Color configuration
├── types/           # Core data structures
├── ui_layout/       # Split layout (chart + chat)
└── websocket/       # Binance WebSocket streaming

数据加载器

data-loader/
├── db/              # DuckDB database management
├── download/        # Binance data downloader
│   ├── binance/     # API client and parsing
│   └── progress/    # Download progress tracking
└── import/          # ZIP archive import
    ├── archive/     # Archive extraction
    └── helpers/     # ID generation, exchange lookup

建筑图

重新生成架构图:

nix-shell -p mermaid-cli --run "mmdc -i architecture.mmd -o architecture.svg --configFile ../my-hypergraph/.diagrams/config.json"
nix-shell -p mermaid-cli --run "mmdc -i execution_flow.mmd -o execution_flow.svg --configFile ../my-hypergraph/.diagrams/config.json"

许可证

麻省理工学院