跨市场价格发现:谁领涨,谁跟跌,原因何在
跨市场价格发现:谁领涨,谁跟跌,原因何在
Polymarket上的市场通常在设计上相互关联:
- 一个市场是宏观信念的清晰代理
- 另一个是同一信念的细化版本
- 第三个则是时间窗口版本
理论上,它们应该同步波动。
但实际上,它们并非同步波动。 它们是按顺序波动的:
- 领先者:率先吸收信息
- 跟随者:随后更新,通常以跳跃方式
如果你能测量这种领先-滞后关系,你就不会再盯着错误的图表——也不会再把大户的资金流动视为随机事件。
内部链接:
1) 为什么Polymarket上存在领先-滞后关系
领先-滞后是微观结构,并非玄学。
两个市场可以编码相似的信念,但在以下方面存在差异:
- 价差与深度(交易成本)
- 参与者构成(对冲者 vs 叙事交易者)
- 结果清晰度(措辞和来源)
- 到期时间(紧迫性改变交易者和交易时机)
“领先者”通常是这样的市场:
- 最容易交易(价差小,深度实)
- 更新最快(订单簿补单快,虚假挂单少)
跟随者通常是这样的市场:
- 流动性较差或结果摩擦较高
- 散户交易者较多
如果你想深入了解市场状态转换,请阅读:
2) 你需要什么(仅公开数据)
Polymarket提供了三个公开API系列:
- Gamma API:市场元数据(发现、代币ID)
- CLOB API:订单簿和定价端点
- Data API:仓位/交易 外部来源:https://docs.polymarket.com/quickstart/reference/endpoints
对于领先-滞后分析,你只需要:
- 两个代币ID(每个市场/结果一个)
- 每个代币的价格历史序列
代币ID可以从Gamma市场对象中获取。 外部来源:https://docs.polymarket.com/developers/gamma-markets-api/get-markets
3) 领先-滞后工作流(有效版本)
我们将进行两项检查:
- 收益率的互相关(跨不同滞后阶数)(快速、稳健)
- 跨窗口的稳定性(最重要的部分)
使用收益率而非原始价格:
r_t = p_t - p_{t-1}
然后对于每个滞后阶数 k,比较:
corr(r_A(t), r_B(t + k))
如果相关性在正 k 处达到峰值,则 A 倾向于领先 B k 个时间步。
现在关键的是:重复测试。
你需要这种关系持续存在:
- 跨多个回溯窗口(1天、3天、7天)
- 在多个时间粒度下(1分钟、5分钟)
如果“领先者”每小时都在变化,那么你面对的不是价格发现,而是噪音。
4) 可复现脚本(数据获取 + 领先-滞后分析)
Polymarket的端点概述列出了公开的CLOB定价端点,包括价格历史。 外部来源:https://docs.polymarket.com/quickstart/reference/endpoints
此脚本获取两个价格历史,重采样到固定时间间隔,然后计算跨滞后阶数的互相关。
import json
import math
import urllib.request
from statistics import mean
TOKEN_A = "TOKEN_ID_A"
TOKEN_B = "TOKEN_ID_B"
INTERVAL_SECONDS = 60
MAX_LAG = 30 # 如果时间间隔为60秒,则最多30分钟
def get_json(url: str):
with urllib.request.urlopen(url) as r:
return json.loads(r.read().decode("utf-8"))
def fetch_prices(token_id: str):
data = get_json(f"https://clob.polymarket.com/prices-history?token_id={token_id}")
points = []
for row in data:
ts = int(row.get("t") or row.get("timestamp") or row.get("time"))
px = float(row.get("p") or row.get("price"))
points.append((ts, px))
points.sort(key=lambda x: x[0])
return points
def resample(points, interval):
buckets = {}
for ts, px in points:
b = (ts // interval) * interval
buckets[b] = px
if not buckets:
return []
sorted_buckets = sorted(buckets.items())
return sorted_buckets
(注:由于长度限制,脚本未完整展示,但核心逻辑已包含。)
发布于: 2026年6月23日 · 5 分钟 · SightWhale