图表最终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集成
执行流程
启动阶段
- 解析CLI参数(股票代码、时间范围、日期范围)
- 验证DuckDB中是否存在数据
- 使用插件初始化Bevy应用程序:
- DefaultPlugins -Bevy核心功能 - ChatUiPlugin -与Claude的聊天界面 - WebSocketPlugin -实时Binance连接 - RealtimePlugin -实时蜡烛更新 - RemotePlugin -MCP集成的BRP
- 从数据库加载历史蜡烛
- 设置渲染系统和实体池
- 建立与币安的WebSocket连接
主循环(每帧)
- 输入相位:焦点管理、鼠标/键盘操作
- 数据阶段:应用延迟更新、聚合级别检测、延迟加载
- 实时相位:处理WebSocket事件,限制蜡烛更新
- 聊天阶段:发送/接收Claude消息,处理工具调用
- 渲染阶段:网格、烛台、指标、交易量、十字准线
用法
先决条件
# 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"许可证
麻省理工学院
