Market
exchange.GetTicker()
获取当前交易对的 Ticker 行情数据。
语法
python
ticker = exchange.GetTicker()返回值
返回一个字典,包含以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| High | float | 最高价 |
| Low | float | 最低价 |
| Sell | float | 卖一价(ask) |
| Buy | float | 买一价(bid) |
| Last | float | 最新成交价 |
| Volume | float | 成交量 |
| Time | int | 时间戳(毫秒) |
示例
基础用法
python
# 获取当前行情
ticker = exchange.GetTicker()
Log("最新价:", ticker['Last'])
Log("买一价:", ticker['Buy'])
Log("卖一价:", ticker['Sell'])
Log("24h最高:", ticker['High'])
Log("24h最低:", ticker['Low'])
Log("成交量:", ticker['Volume'])计算买卖价差
python
ticker = exchange.GetTicker()
spread = ticker['Sell'] - ticker['Buy']
spread_percent = (spread / ticker['Last']) * 100
Log(f"价差: {spread:.2f}")
Log(f"价差百分比: {spread_percent:.4f}%")监控价格变化
python
last_price = 0
while True:
ticker = exchange.GetTicker()
current_price = ticker['Last']
if last_price > 0:
change = current_price - last_price
change_percent = (change / last_price) * 100
Log(f"价格变化: {change:+.2f} ({change_percent:+.2f}%)")
last_price = current_price
Sleep(5000) # 5秒检查一次获取多个交易所的行情
python
# 假设配置了多个交易所
for i in range(len(exchanges)):
ticker = exchanges[i].GetTicker()
name = exchanges[i].GetName()
Log(f"{name} 最新价: {ticker['Last']}")注意事项
- 频率限制:不同交易所对 API 调用频率有限制,建议间隔至少 1 秒
- 数据延迟:Ticker 数据可能有轻微延迟(通常小于 1 秒)
- 精度处理:价格和数量可能包含很多小数位,建议格式化显示
- 异常处理:网络问题可能导致调用失败,建议添加 try-except
python
try:
ticker = exchange.GetTicker()
Log("获取成功:", ticker['Last'])
except Exception as e:
Log("获取Ticker失败:", str(e))Polymarket 说明
python
ticker = exchange.GetTicker() # 按"全局 Token ID > SetCurrency"解析
ticker = exchange.GetTicker(symbol) # 直接按 {slug}_USDC.{outcome} 解析,不改变当前标的| 字段 | Polymarket 下的含义 |
|---|---|
| Buy | 买一价:订单簿 bids 最高价;订单簿为空时等于 Last |
| Sell | 卖一价:订单簿 asks 最低价;订单簿为空时等于 Last |
| Last | 最新成交价:优先取 CLOB last-trade-price,取不到时用 Gamma outcomePrices 中对应结果的价格 |
| High | 等于 Sell(不是 24h 最高价) |
| Low | 等于 Buy(不是 24h 最低价) |
| Volume | 市场 24h 成交量(USDC);市场属于系列(如周期涨跌市场)时取系列的 volume24hr |
| Time | 查询时的本地时间戳(毫秒) |
- 所有价格都是 0~1 之间的 USDC 价格,可理解为该结果发生的概率。
- 使用全局 Token ID 且不传 symbol 时,不请求 Gamma 数据,
Volume为 0;需要成交量请传symbol。 - 订单簿接口失败不会报错,
Buy/Sell回退为Last。
python
slug = "btc-updown-5m-1778612700"
up = exchange.GetTicker(f"{slug}_USDC.Up")
down = exchange.GetTicker(f"{slug}_USDC.Down")
Log(f"Up 卖一 {up['Sell']} + Down 卖一 {down['Sell']} = {up['Sell'] + down['Sell']:.3f}")相关方法
- GetDepth - 获取订单簿深度
- GetTrades - 获取最近成交记录
- GetRecords - 获取K线数据