Polymarket
exchange.IO("GetActivity")
Polymarket 专属。查询任意钱包地址在 Polymarket 上的活动流(成交、赎回、拆分、合并、奖励等),数据来自 Data API /activity,无需鉴权。常用于跟单监控和查询本账户历史成交。
语法
python
activity = exchange.IO("GetActivity", address)
activity = exchange.IO("GetActivity", address, opts)参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| address | str | 是 | 要查询的钱包地址(Polymarket 钱包 / Proxy 地址) |
| opts | dict | 否 | 过滤条件,见下表 |
opts 可选键
| 键 | 类型 | 默认 | 说明 |
|---|---|---|---|
| limit | int | 100 | 返回条数,Data API 允许 0~500 |
| start | int | - | 起始时间(Unix 秒) |
| end | int | - | 结束时间(Unix 秒) |
| type | str | - | 活动类型(单个):TRADE / SPLIT / MERGE / REDEEM / REWARD / CONVERSION / MAKER_REBATE / REFERRAL_REWARD |
| side | str | - | BUY / SELL,仅对成交有效 |
- 结果固定按时间倒序(
sortBy=TIMESTAMP,sortDirection=DESC)。 - 其他键会被忽略;数字参数需为数值类型(不要传字符串)。
返回值
List[dict],Data API 原始记录。字段随活动类型变化,成交类记录常见字段:
| 字段 | 说明 |
|---|---|
| timestamp | 时间(Unix 秒) |
| type | 活动类型 |
| side | BUY / SELL |
| size | 份数 |
| usdcSize | USDC 金额 |
| price | 成交价 |
| asset | Token ID |
| conditionId | 条件 ID |
| outcome / outcomeIndex | 结果名称 / 下标 |
| title / slug / eventSlug | 市场标题 / slug / 事件 slug |
| transactionHash | 链上交易哈希 |
| proxyWallet | 钱包地址 |
字段以 Data API 实际返回为准,以上为常见字段(推断自 Polymarket Data API 文档),使用前建议先
Log一条看结构。
示例
查询本账户最近成交
python
addr = exchange.GetAccount()["Info"]["walletAddress"]
trades = exchange.IO("GetActivity", addr, {"type": "TRADE", "limit": 20})
for t in trades or []:
Log(f"{_D(t['timestamp'])} {t.get('side')} {t.get('size')} 份 {t.get('outcome')} "
f"@ {t.get('price')} | {t.get('title')}")跟单监控:轮询目标地址新成交
python
TARGET = "0x0000000000000000000000000000000000000000" # 目标地址
def main():
last_ts = Unix()
while True:
items = exchange.IO("GetActivity", TARGET, {"type": "TRADE", "start": last_ts, "limit": 50}) or []
for t in reversed(items): # 由旧到新处理
if t["timestamp"] <= last_ts:
continue
Log(f"目标{t['side']} {t['size']} 份 {t['slug']} {t['outcome']} @ {t['price']}")
# 按比例跟单
exchange.IO("SetTokenID", t["asset"])
if t["side"] == "BUY":
exchange.Buy(min(round(t["price"] + 0.01, 2), 0.99), 5, "跟单")
last_ts = max(last_ts, t["timestamp"])
Sleep(3000)查询某时间段内的赎回记录
python
start = Unix() - 7 * 24 * 3600
redeems = exchange.IO("GetActivity", addr, {"type": "REDEEM", "start": start, "limit": 500})
total = sum(float(r.get("usdcSize", 0)) for r in redeems or [])
Log(f"近 7 天赎回 {total:.2f} USDC")注意事项
start/end单位是秒,不是毫秒。type只能传一个类型字符串;需要多种类型请分别查询。- 单次最多 500 条,更早的数据需要配合
end分段查询。
相关方法
- exchange.IO() - 扩展命令总览
- exchange.GetTrades() - 本账户成交(CLOB)