Market

exchange.GetTicker()

获取当前交易对的 Ticker 行情数据。

语法

python
ticker = exchange.GetTicker()

返回值

返回一个字典,包含以下字段:

字段类型说明
Highfloat最高价
Lowfloat最低价
Sellfloat卖一价(ask)
Buyfloat买一价(bid)
Lastfloat最新成交价
Volumefloat成交量
Timeint时间戳(毫秒)

示例

基础用法

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']}")

注意事项

  1. 频率限制:不同交易所对 API 调用频率有限制,建议间隔至少 1 秒
  2. 数据延迟:Ticker 数据可能有轻微延迟(通常小于 1 秒)
  3. 精度处理:价格和数量可能包含很多小数位,建议格式化显示
  4. 异常处理:网络问题可能导致调用失败,建议添加 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}")

相关方法