示例扩展索引
官方示例扩展的功能说明、对应 API 及关键代码位置。
market_dashboard_plugin
类型:Dart / Stdio · 路径:extensions/market_dashboard_plugin/
综合演示全部 16 类 tradingai_api 能力:侧边栏视图、SDUI 面板、命令、状态栏、工具栏、行情、图表、警报、组合、文件系统、HTTP、Shell、Window、终端、输出通道、编辑器与工作区。
API 演示清单
| API | 演示内容 | 关键文件 |
|---|---|---|
| View Registration | Activity Bar 按钮 + Sidebar SDUI 视图 | bin/main.dart |
| SDUI Panel | 底部面板实时行情仪表盘 | lib/features/dashboard_panel.dart |
| Commands | 4 个命令面板入口 | bin/main.dart |
| Status Bar | 实时价格 Ticker + 警报计数 | bin/main.dart |
| Toolbar | 快速操作菜单按钮 | bin/main.dart |
| Market | 行情订阅 + 快照查询 | lib/features/market_monitor.dart |
| Chart | SMA / Bollinger 指标 + 价格线 | lib/features/market_monitor.dart |
| Alerts | 价格警报创建 / 触发回调 | lib/features/market_monitor.dart |
| Portfolio | 持仓 + 余额查询 | lib/features/market_monitor.dart |
| File System | 交易日志 JSON/CSV 保存 | lib/features/trade_journal.dart |
| HTTP | 日志远程同步 (POST) | lib/features/trade_journal.dart |
| Shell | 系统命令 (date, echo) | lib/features/trade_journal.dart |
| Window | showMessage / QuickPick / InputBox | 多处 |
| Terminal | 交互式终端 | lib/features/trade_journal.dart |
| Output Channel | 结构化日志 | lib/features/trade_journal.dart |
| Workspace + Editor | 配置监听 / 文档事件 / 选区 | bin/main.dart |
完整 API 说明见 API 参考。
关键代码片段
dart
// 入口 (bin/main.dart)
void main() => MarketDashboardPlugin().run();
// 创建 SDUI 面板 (dashboard_panel.dart)
_panelId = await context.sduiPanel.createPanel(
id: 'market_dashboard.panel',
title: 'Market Dashboard',
tree: _buildDashboardTree(),
location: 'panel',
);
// 订阅行情 (market_monitor.dart)
await context.market.subscribe(symbol);
context.market.onQuoteUpdate((quote) => onQuoteUpdate?.call(quote));
目录结构
market_dashboard_plugin/
├── plugin.yaml
├── pubspec.yaml
├── bin/main.dart
└── lib/features/
├── dashboard_panel.dart
├── market_monitor.dart
└── trade_journal.dart
ta_calculator_plugin
类型:Rust / WASM · 路径:extensions/ta_calculator_plugin/
技术分析计算器,演示 SMA、EMA、RSI、MACD、Bollinger、ATR、Fibonacci 及风险管理函数。使用 C-ABI 导出,价格与百分比需定点编码(×10000)。完整 C-ABI 函数列表见 WASM SDK 参考。
导出函数
| 类别 | 函数 | 说明 |
|---|---|---|
| 生命周期 | plugin_activate, plugin_deactivate | 由 export_plugin! 宏生成 |
| 技术指标 | calculate_sma, calculate_ema_*, calculate_rsi, calculate_macd_signal, calculate_bollinger_width, calculate_atr, fibonacci_level | 参数与返回值均 ×10000 |
| 风险管理 | calculate_position_size, calculate_risk_reward, calculate_max_drawdown, calculate_pnl | 同上 |
编译与安装
bash
rustup target add wasm32-unknown-unknown
cargo build --target wasm32-unknown-unknown --release
宿主调用示例
dart
// 计算 SMA(3) for [100, 102, 104]
// sum = 306 × 10000 = 3_060_000
final sma = await wasmLoader.callPluginFunction(
'com.tradingai.ta_calculator', 'calculate_sma', [3060000, 3]
);
// sma = 1_020_000 → 102.00