@catalyst-team/poly-mcp 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,49 +1,121 @@
1
1
  # @catalyst-team/poly-mcp
2
2
 
3
- A Model Context Protocol (MCP) server that exposes Polymarket functionality to AI agents.
3
+ AI Agent 接入 Polymarket 预测市场的 MCP Server。
4
4
 
5
- ## Installation
5
+ ## 🎯 你可以做什么
6
6
 
7
- ### From npm (after publishing)
7
+ ### 1. 聪明钱分析 (Smart Money Analysis)
8
+ ```
9
+ get_leaderboard → 获取 Top 10 聪明钱地址
10
+
11
+ get_trader_positions(address) → 查看每个钱包持仓
12
+
13
+ get_trader_profile(address) → 分析盈利模式
14
+ ```
15
+ **示例问题**: "Top 10 聪明钱主要在哪些市场有持仓?"
8
16
 
9
- ```bash
10
- npm install -g @catalyst-team/poly-mcp
11
- # or
12
- pnpm add -g @catalyst-team/poly-mcp
17
+ ### 2. 交易者深度分析 (Trader Deep Dive)
13
18
  ```
19
+ get_trader_positions(address) → 持仓分析
20
+
21
+ 按 eventSlug 分组 → 识别对冲 vs 单边策略
22
+
23
+ get_trader_trades(address) → 入场时机分析
24
+
25
+ 判断策略类型: 对冲型/方向型/套利型/做市型
26
+ ```
27
+ **示例问题**: "这个交易者是什么策略类型?他的盈利主要来自哪里?"
14
28
 
15
- ### From source
29
+ ### 3. 跟单交易 (Copy Trading)
30
+ ```
31
+ get_leaderboard → 选择跟单目标
32
+
33
+ get_trader_trades(address) → 监控新交易
34
+
35
+ get_market + get_orderbook → 评估当前价格
36
+
37
+ place_limit_order → 跟进交易
38
+ ```
39
+ **示例问题**: "排名第一的交易者最近买了什么?我应该跟吗?"
16
40
 
17
- ```bash
18
- # Build the packages
19
- pnpm -F @catalyst-team/poly-sdk build
20
- pnpm -F @catalyst-team/poly-mcp build
41
+ ### 4. 钱包追踪 (Wallet Tracking)
42
+ ```
43
+ get_trader_trades(address) 查看今日交易
44
+
45
+ get_trader_positions(address) → 当前持仓
46
+
47
+ get_market(conditionId) → 深入分析相关市场
21
48
  ```
49
+ **示例问题**: "这个钱包今天有哪些交易?表现如何?"
22
50
 
23
- ## Publishing
51
+ ### 5. 热门市场发现 (Market Discovery)
52
+ ```
53
+ search_markets(query, sortBy: 'volume') → 热门市场
54
+
55
+ get_orderbook(conditionId) → 分析流动性
56
+
57
+ get_leaderboard → 查看哪些聪明钱参与
58
+ ```
59
+ **示例问题**: "最近24小时哪些市场交易量最大?聪明钱在买入什么?"
24
60
 
25
- ```bash
26
- # 1. Build both packages
27
- pnpm -F @catalyst-team/poly-sdk build
28
- pnpm -F @catalyst-team/poly-mcp build
61
+ ### 6. 体育市场策略 (Sports Strategy)
62
+ ```
63
+ search_markets(query: 'NBA/NFL') → 体育市场
64
+
65
+ get_market(conditionId) → 查看赔率和截止时间
66
+
67
+ get_orderbook → 分析价差和深度
68
+ ```
69
+ **示例问题**: "今天有哪些 NBA 比赛可以投注?赔率合理吗?"
29
70
 
30
- # 2. Publish poly-sdk first (poly-mcp depends on it)
31
- pnpm -F @catalyst-team/poly-sdk publish --access public
71
+ ### 7. 充值与授权 (Deposit & Auth)
72
+ ```
73
+ check_allowances() → 检查授权状态
74
+
75
+ approve_trading() → 一键授权所有合约
76
+
77
+ swap("MATIC", "USDC", "100") → 换币
78
+
79
+ deposit_usdc(100) → 充值到交易账户
80
+ ```
81
+ **示例问题**: "我的钱包准备好交易了吗?帮我检查授权状态"
32
82
 
33
- # 3. Publish poly-mcp
34
- pnpm -F @catalyst-team/poly-mcp publish --access public
83
+ ### 8. 执行交易 (Trading)
84
+ ```
85
+ get_market(identifier) → 获取市场信息
86
+
87
+ get_orderbook(conditionId) → 查看盘口深度
88
+
89
+ estimate_execution(conditionId, "Yes", "BUY", 100) → 预估成交
90
+
91
+ place_limit_order(conditionId, "Yes", "BUY", 0.55, 100) → 下单
92
+ ```
93
+ **示例问题**: "帮我在这个市场买入 100 USDC 的 Yes"
94
+
95
+ ---
96
+
97
+ ## 📦 安装
98
+
99
+ ### npm 安装 (推荐)
100
+ ```bash
101
+ npm install -g @catalyst-team/poly-mcp
35
102
  ```
36
103
 
37
- **Note**: Publishing requires npm 2FA authentication.
104
+ ### 从源码构建
105
+ ```bash
106
+ pnpm -F @catalyst-team/poly-sdk build
107
+ pnpm -F @catalyst-team/poly-mcp build
108
+ ```
38
109
 
39
- ## MCP Configuration
110
+ ---
40
111
 
41
- ### After npm publish (recommended)
112
+ ## ⚙️ MCP 配置
42
113
 
43
- Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
114
+ ### Claude Desktop 配置
44
115
 
45
- #### Read-only mode (market data, orderbook, trader analysis)
116
+ 文件位置: `~/Library/Application Support/Claude/claude_desktop_config.json`
46
117
 
118
+ #### 只读模式 (市场数据、钱包分析)
47
119
  ```json
48
120
  {
49
121
  "mcpServers": {
@@ -55,8 +127,7 @@ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_
55
127
  }
56
128
  ```
57
129
 
58
- #### Trading mode (with private key)
59
-
130
+ #### 交易模式 (需要私钥)
60
131
  ```json
61
132
  {
62
133
  "mcpServers": {
@@ -71,29 +142,13 @@ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_
71
142
  }
72
143
  ```
73
144
 
74
- ### Local development
75
-
76
- #### Read-only mode
77
-
145
+ #### 本地开发
78
146
  ```json
79
147
  {
80
148
  "mcpServers": {
81
149
  "polymarket": {
82
150
  "command": "node",
83
- "args": ["/path/to/PerdictionRouter/packages/poly-mcp/dist/server.js"]
84
- }
85
- }
86
- }
87
- ```
88
-
89
- #### Trading mode
90
-
91
- ```json
92
- {
93
- "mcpServers": {
94
- "polymarket": {
95
- "command": "node",
96
- "args": ["/path/to/PerdictionRouter/packages/poly-mcp/dist/server.js"],
151
+ "args": ["/path/to/poly-mcp/dist/server.js"],
97
152
  "env": {
98
153
  "POLY_PRIVATE_KEY": "your-wallet-private-key"
99
154
  }
@@ -102,215 +157,104 @@ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_
102
157
  }
103
158
  ```
104
159
 
105
- #### Development mode (with hot reload)
106
-
107
- ```json
108
- {
109
- "mcpServers": {
110
- "polymarket": {
111
- "command": "npx",
112
- "args": ["tsx", "/path/to/PerdictionRouter/packages/poly-mcp/src/server.ts"],
113
- "env": {
114
- "POLY_PRIVATE_KEY": "your-wallet-private-key"
115
- }
116
- }
117
- }
118
- }
119
- ```
120
-
121
- ## Environment Variables
122
-
123
- | Variable | Description | Required |
124
- |----------|-------------|----------|
125
- | `POLY_PRIVATE_KEY` | Wallet private key (with or without 0x prefix) | For trading |
126
- | `POLY_CHAIN_ID` | Chain ID (137=mainnet, 80002=testnet) | Optional (default: 137) |
127
-
128
- **Note**: API credentials are automatically derived from the private key using Polymarket's `createOrDeriveApiKey()`. You only need to provide the wallet private key to enable trading.
129
-
130
- ## Available Tools
131
-
132
- ### Trader Tools (public data)
133
-
134
- | Tool | Description |
135
- |------|-------------|
136
- | `get_trader_positions` | Get current positions for a wallet address |
137
- | `get_trader_trades` | Get trade history for a wallet |
138
- | `get_trader_profile` | Get trader profile with PnL and stats |
139
- | `get_leaderboard` | Get top traders from leaderboard |
140
-
141
- ### Market Tools (public data)
142
-
143
- | Tool | Description |
144
- |------|-------------|
145
- | `get_market` | Get market details by slug or conditionId |
146
- | `search_markets` | Search markets by keyword |
147
- | `get_trending_markets` | Get trending markets by volume/liquidity |
148
- | `get_market_trades` | Get recent trades for a market |
149
-
150
- ### Order Tools (public data)
151
-
152
- | Tool | Description |
153
- |------|-------------|
154
- | `get_orderbook` | Get orderbook depth for a market outcome |
155
- | `get_best_prices` | Get best bid/ask prices for both outcomes |
156
- | `estimate_execution` | Estimate execution price and slippage |
157
-
158
- ### Trade Tools (requires private key)
159
-
160
- | Tool | Description |
161
- |------|-------------|
162
- | `place_limit_order` | Place a limit order |
163
- | `place_market_order` | Place a market order |
164
- | `cancel_order` | Cancel an existing order |
165
- | `get_my_orders` | Get your open orders |
160
+ ---
161
+
162
+ ## 🛠️ 完整工具列表
163
+
164
+ ### Trader Tools (公开数据)
165
+ | 工具 | 描述 |
166
+ |------|------|
167
+ | `get_trader_positions` | 获取钱包当前持仓和 PnL |
168
+ | `get_trader_trades` | 获取钱包交易历史 |
169
+ | `get_trader_profile` | 获取交易者综合分析 |
170
+ | `get_leaderboard` | 获取 PnL 排行榜 |
171
+
172
+ ### Market Tools (公开数据)
173
+ | 工具 | 描述 |
174
+ |------|------|
175
+ | `get_market` | 通过 slug 或 conditionId 获取市场详情 |
176
+ | `search_markets` | 关键词搜索市场 |
177
+ | `get_trending_markets` | 获取热门市场 |
178
+ | `get_market_trades` | 获取市场最近成交 |
179
+
180
+ ### Order Tools (公开数据)
181
+ | 工具 | 描述 |
182
+ |------|------|
183
+ | `get_orderbook` | 获取盘口深度 |
184
+ | `get_best_prices` | 获取最优买卖价 |
185
+ | `estimate_execution` | 预估成交价格和滑点 |
186
+
187
+ ### Trade Tools (需要私钥)
188
+ | 工具 | 描述 |
189
+ |------|------|
190
+ | `place_limit_order` | 下限价单 |
191
+ | `place_market_order` | 下市价单 |
192
+ | `cancel_order` | 取消订单 |
193
+ | `get_my_orders` | 查看挂单 |
166
194
 
167
195
  ### Wallet Tools
196
+ | 工具 | 描述 | 需要私钥 |
197
+ |------|------|:--------:|
198
+ | `get_supported_deposit_assets` | 支持的充值资产和链 | ❌ |
199
+ | `get_deposit_addresses` | 获取充值地址 | ✅ |
200
+ | `deposit_usdc` | 充值 USDC | ✅ |
201
+ | `check_allowances` | 检查授权状态 | ✅ |
202
+ | `approve_trading` | 一键授权所有合约 | ✅ |
203
+ | `swap` | QuickSwap V3 换币 | ✅ |
204
+ | `swap_and_deposit` | 换币并充值 | ✅ |
205
+ | `get_token_balances` | 获取自己钱包余额 | ✅ |
206
+ | `get_wallet_balances` | 获取任意钱包余额 | ❌ |
207
+ | `get_swap_quote` | 获取换币报价 | ❌ |
208
+ | `get_available_pools` | 获取可用交易池 | ❌ |
168
209
 
169
- | Tool | Description | Requires Key |
170
- |------|-------------|--------------|
171
- | `get_supported_deposit_assets` | Get all supported assets and chains for deposits | No |
172
- | `get_deposit_addresses` | Get deposit addresses (EVM, Solana, Bitcoin) | Yes |
173
- | `deposit_usdc` | Deposit USDC to Polymarket | Yes |
174
- | `check_allowances` | Check ERC20 and ERC1155 allowances for trading | Yes |
175
- | `approve_trading` | Set up all required approvals for trading | Yes |
176
- | `swap` | Swap tokens on Polygon via QuickSwap V3 | Yes |
177
- | `swap_and_deposit` | Swap to USDC and deposit in one operation | Yes |
178
- | `get_token_balances` | Get your wallet token balances | Yes |
179
- | `get_wallet_balances` | Get any wallet's token balances | No |
180
- | `get_swap_quote` | Get a swap quote (check route availability) | No |
181
- | `get_available_pools` | Get available QuickSwap V3 pools | No |
210
+ ### Guide Tool
211
+ | 工具 | 描述 |
212
+ |------|------|
213
+ | `get_usage_guide` | 🚀 获取使用指南,AI Agent 应首先调用此工具 |
182
214
 
183
- ## Tool Examples
215
+ ---
184
216
 
185
- ### Get Market
217
+ ## 💡 Pro Tips
186
218
 
187
- ```json
188
- {
189
- "name": "get_market",
190
- "arguments": {
191
- "identifier": "will-bitcoin-hit-100k-in-2024"
192
- }
193
- }
194
- ```
219
+ 1. **AI Agent 首先调用 `get_usage_guide`** - 获取完整的使用场景指南
220
+ 2. **用 `get_leaderboard` 获取聪明钱地址** - 这是分析的起点
221
+ 3. **用 `search_markets` 的 tag 参数过滤** - Politics, Sports, Crypto
222
+ 4. **分析持仓时看 `avgPrice` vs `curPrice`** - 判断盈亏状态
223
+ 5. **查看 `volume24hr`** - 判断市场活跃度
195
224
 
196
- Response:
197
- ```json
198
- {
199
- "market": {
200
- "conditionId": "0x...",
201
- "question": "Will Bitcoin hit $100k in 2024?",
202
- "slug": "will-bitcoin-hit-100k-in-2024"
203
- },
204
- "prices": {
205
- "yes": 0.65,
206
- "no": 0.35
207
- },
208
- "stats": {
209
- "volume": 1500000,
210
- "liquidity": 250000
211
- }
212
- }
213
- ```
225
+ ---
214
226
 
215
- ### Get Trader Positions
227
+ ## ⚠️ 重要:USDC.e vs Native USDC
216
228
 
217
- ```json
218
- {
219
- "name": "get_trader_positions",
220
- "arguments": {
221
- "address": "0x1234..."
222
- }
223
- }
224
- ```
225
-
226
- ### Get Swap Quote
227
-
228
- ```json
229
- {
230
- "name": "get_swap_quote",
231
- "arguments": {
232
- "tokenIn": "MATIC",
233
- "tokenOut": "USDC",
234
- "amount": "100"
235
- }
236
- }
237
- ```
238
-
239
- Response:
240
- ```json
241
- {
242
- "tokenIn": "MATIC",
243
- "tokenOut": "USDC",
244
- "amountIn": "100",
245
- "amountOut": "55.23",
246
- "route": "MATIC → WETH → USDC (multi-hop)",
247
- "priceImpact": "0.15%"
248
- }
249
- ```
250
-
251
- ## Programmatic Usage
229
+ Polymarket CTF **只接受 USDC.e** (Bridged USDC)!
252
230
 
253
- ```typescript
254
- import { PolymarketSDK } from '@catalyst-team/poly-sdk';
255
- import { createMcpHandler } from '@catalyst-team/poly-mcp';
231
+ | Token | 地址 | CTF 兼容 |
232
+ |-------|------|:--------:|
233
+ | USDC.e (Bridged) | `0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174` | ✅ |
234
+ | Native USDC | `0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` | ❌ |
256
235
 
257
- const sdk = new PolymarketSDK();
258
- const handler = createMcpHandler(sdk);
259
-
260
- // Call any tool
261
- const result = await handler('get_market', {
262
- identifier: 'btc-100k',
263
- });
264
-
265
- console.log(result);
266
- ```
236
+ **常见错误**: 钱包显示有 USDC,但 CTF 操作失败
237
+ **原因**: 你有的是 Native USDC,不是 USDC.e
238
+ **解决**: 使用 `deposit_usdc` 通过 Bridge 自动转换
267
239
 
268
- Or register with an MCP server instance:
240
+ ---
269
241
 
270
- ```typescript
271
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
272
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
273
- import { PolymarketSDK } from '@catalyst-team/poly-sdk';
274
- import { registerMcpTools } from '@catalyst-team/poly-mcp';
242
+ ## 📦 发布
275
243
 
276
- const server = new Server(
277
- { name: 'my-server', version: '1.0.0' },
278
- { capabilities: { tools: {} } }
279
- );
280
-
281
- const sdk = new PolymarketSDK();
282
- registerMcpTools(server, sdk);
283
-
284
- const transport = new StdioServerTransport();
285
- await server.connect(transport);
244
+ ```bash
245
+ # 按顺序发布 (有依赖关系)
246
+ pnpm -F @catalyst-team/cache publish
247
+ pnpm -F @catalyst-team/poly-sdk publish
248
+ pnpm -F @catalyst-team/poly-mcp publish
286
249
  ```
287
250
 
288
- ## Architecture
289
-
290
- ```
291
- packages/poly-mcp/
292
- ├── src/
293
- │ ├── index.ts # Main exports and handler factory
294
- │ ├── server.ts # Standalone MCP server (CLI entry point)
295
- │ ├── types.ts # TypeScript type definitions
296
- │ ├── errors.ts # Error handling utilities
297
- │ └── tools/
298
- │ ├── index.ts # Tool exports
299
- │ ├── trader.ts # Trader analysis tools
300
- │ ├── market.ts # Market discovery tools
301
- │ ├── order.ts # Orderbook analysis tools
302
- │ ├── trade.ts # Trading execution tools
303
- │ ├── wallet.ts # Deposit and authorization tools
304
- │ └── guide.ts # Usage guide tool
305
- ├── docs/
306
- │ └── 01-mcp.md # Detailed MCP design document
307
- ├── package.json
308
- └── README.md
309
- ```
251
+ ---
310
252
 
311
- ## Related Packages
253
+ ## 🔗 相关资源
312
254
 
313
- - `@catalyst-team/poly-sdk` - Core SDK for Polymarket APIs (required dependency)
255
+ - **poly-sdk**: `@catalyst-team/poly-sdk` - Polymarket SDK
256
+ - **文档**: `docs/01-mcp.md` - 详细设计文档
257
+ - **Polymarket**: https://polymarket.com
314
258
 
315
259
  ## License
316
260
 
@@ -0,0 +1,159 @@
1
+ # Trader Tools E2E Test
2
+
3
+ > 交易者分析工具端到端测试
4
+
5
+ ---
6
+
7
+ ## 工具清单
8
+
9
+ | 工具 | 功能 | 认证 | 优先级 |
10
+ |------|------|------|--------|
11
+ | `get_leaderboard` | 获取 PnL 排行榜 | 无 | P1 |
12
+ | `get_trader_profile` | 获取交易者资料 | 无 | P1 |
13
+ | `get_trader_positions` | 获取持仓和 PnL | 无 | P0 |
14
+ | `get_trader_trades` | 获取交易历史 | 无 | P1 |
15
+
16
+ ---
17
+
18
+ ## Test Case 1: get_leaderboard
19
+
20
+ ### 1.1 默认参数
21
+ ```
22
+ 调用: get_leaderboard()
23
+ 预期: 返回 10 个交易者,按 PnL 排序
24
+ 验证:
25
+ - traders 数组长度 = 10
26
+ - 每个 trader 有 rank, address, pnl, volume
27
+ - rank 从 1 开始递增
28
+ ```
29
+
30
+ ### 1.2 自定义 limit
31
+ ```
32
+ 调用: get_leaderboard(limit=5)
33
+ 预期: 返回 5 个交易者
34
+ 验证:
35
+ - traders 数组长度 = 5
36
+ ```
37
+
38
+ ### 1.3 分页测试
39
+ ```
40
+ 调用: get_leaderboard(limit=5, offset=5)
41
+ 预期: 返回第 6-10 名交易者
42
+ 验证:
43
+ - 第一个 trader 的 rank = 6
44
+ - 与 offset=0 的结果不重叠
45
+ ```
46
+
47
+ ---
48
+
49
+ ## Test Case 2: get_trader_profile
50
+
51
+ ### 2.1 有效地址
52
+ ```
53
+ 前置: 从 leaderboard 获取一个地址
54
+ 调用: get_trader_profile(address=<top_trader>)
55
+ 预期: 返回完整的交易者资料
56
+ 验证:
57
+ - trader.address 匹配
58
+ - ranking.rank 存在
59
+ - performance.officialPnl 存在
60
+ - stats.positionCount >= 0
61
+ ```
62
+
63
+ ### 2.2 无效地址
64
+ ```
65
+ 调用: get_trader_profile(address="0x0000000000000000000000000000000000000000")
66
+ 预期: 返回空数据或错误
67
+ 验证:
68
+ - 错误信息清晰
69
+ ```
70
+
71
+ ---
72
+
73
+ ## Test Case 3: get_trader_positions
74
+
75
+ ### 3.1 有持仓的交易者
76
+ ```
77
+ 前置: 从 leaderboard 获取顶级交易者
78
+ 调用: get_trader_positions(address=<top_trader>)
79
+ 预期: 返回持仓列表和汇总
80
+ 验证:
81
+ - positions 是数组
82
+ - 每个 position 有 market, holding, pnl
83
+ - summary.totalPositions 匹配 positions.length
84
+ - unrealizedPnl 和 realizedPnl 有值
85
+ ```
86
+
87
+ ### 3.2 无持仓的地址
88
+ ```
89
+ 调用: get_trader_positions(address=<new_address>)
90
+ 预期: 返回空持仓列表
91
+ 验证:
92
+ - positions = []
93
+ - summary.totalPositions = 0
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Test Case 4: get_trader_trades
99
+
100
+ ### 4.1 默认参数
101
+ ```
102
+ 前置: 从 leaderboard 获取活跃交易者
103
+ 调用: get_trader_trades(address=<active_trader>)
104
+ 预期: 返回最近 20 笔交易
105
+ 验证:
106
+ - trades 数组长度 <= 20
107
+ - 每笔交易有 side, outcome, size, price, timestamp
108
+ - 按时间倒序排列
109
+ ```
110
+
111
+ ### 4.2 过滤 BUY
112
+ ```
113
+ 调用: get_trader_trades(address=<trader>, side="BUY")
114
+ 预期: 只返回买入交易
115
+ 验证:
116
+ - 所有 trade.side = "BUY"
117
+ ```
118
+
119
+ ### 4.3 过滤 SELL
120
+ ```
121
+ 调用: get_trader_trades(address=<trader>, side="SELL")
122
+ 预期: 只返回卖出交易
123
+ 验证:
124
+ - 所有 trade.side = "SELL"
125
+ ```
126
+
127
+ ### 4.4 自定义 limit
128
+ ```
129
+ 调用: get_trader_trades(address=<trader>, limit=5)
130
+ 预期: 返回 5 笔交易
131
+ 验证:
132
+ - trades.length <= 5
133
+ ```
134
+
135
+ ---
136
+
137
+ ## 执行记录
138
+
139
+ | Test Case | 状态 | 结果 | 备注 |
140
+ |-----------|------|------|------|
141
+ | 1.1 get_leaderboard 默认 | - | - | - |
142
+ | 1.2 get_leaderboard limit | - | - | - |
143
+ | 1.3 get_leaderboard 分页 | - | - | - |
144
+ | 2.1 get_trader_profile 有效 | - | - | - |
145
+ | 2.2 get_trader_profile 无效 | - | - | - |
146
+ | 3.1 get_trader_positions 有持仓 | - | - | - |
147
+ | 3.2 get_trader_positions 无持仓 | - | - | - |
148
+ | 4.1 get_trader_trades 默认 | - | - | - |
149
+ | 4.2 get_trader_trades BUY | - | - | - |
150
+ | 4.3 get_trader_trades SELL | - | - | - |
151
+ | 4.4 get_trader_trades limit | - | - | - |
152
+
153
+ ---
154
+
155
+ ## 发现的问题
156
+
157
+ | ID | 问题描述 | 严重性 | 状态 |
158
+ |----|---------|--------|------|
159
+ | - | - | - | - |