适合两类人:已经有基于 Polygon SDK 写好的代码、想换一个国内能直接人民币付款的数据源;或者刚开始写,想用一个成熟的 SDK 而不是自己拼 HTTP 请求。下面的示例都用 polygon-api-client 1.16.3 实际跑通过。
安装
pip install polygon-api-client
创建客户端
和官方用法唯一的区别是多传一个 base:
import os
from polygon import RESTClient
client = RESTClient(
api_key=os.environ["MH_API_KEY"], # 你的明海数据 API Key,建议放在环境变量里
base="https://marilux.dev",
)
已有代码迁移过来,只改创建客户端这一处即可,后面的调用不用动。
股票:K线和上一交易日
bars = client.list_aggs("AAPL", 1, "day", "2026-10-01", "2026-10-16")
for b in bars:
print(b.timestamp, b.open, b.high, b.low, b.close, b.volume)
prev = client.get_previous_close_agg("AAPL")
print(prev[0].close)
时间粒度把 "day" 换成 "minute" 或 "hour",第二个参数是倍数,比如 5, "minute" 就是 5 分钟K。
自动翻页
SDK 里以 list_ 开头的方法会顺着 next_url 自动翻页,直接 for 循环即可。limit 是每页条数,不是总条数,设大一点请求次数少、速度快:
for t in client.list_tickers(market="stocks", active=True, limit=1000):
print(t.ticker, t.name)
期权:合约、期权链和单个合约
# 某个到期日的全部看涨合约
contracts = list(client.list_options_contracts(
underlying_ticker="AAPL", expiration_date="2026-10-23", contract_type="call", limit=1000))
# 整条期权链快照(含希腊值、隐含波动率、未平仓量)
for o in client.list_snapshot_options_chain("AAPL", params={"expiration_date": "2026-10-23", "limit": 250}):
if o.greeks: # 部分合约没有希腊值
print(o.details.ticker, o.greeks.delta, o.implied_volatility, o.open_interest)
# 单个合约
s = client.get_snapshot_option("AAPL", "O:AAPL261023C00345000")
print(s.greeks.delta, s.implied_volatility)
# 期权K线和逐笔成交,用法和股票一样,代码换成期权代码
bars = client.list_aggs("O:AAPL261023C00345000", 1, "day", "2026-10-01", "2026-10-16")
trades = client.list_trades("O:AAPL261023C00345000", timestamp="2026-10-16", limit=50000)
期权数据需要开通期权套餐。期权代码的格式见 美股期权代码格式详解,各字段含义见 用 Python 获取美股期权链和希腊值。
WebSocket 实时推送
SDK 的 WebSocketClient 也能直接用,feed 填服务的域名:
import os
from polygon import WebSocketClient
ws = WebSocketClient(
api_key=os.environ["MH_API_KEY"],
feed="marilux.dev",
market="stocks",
subscriptions=["T.AAPL", "T.NVDA"], # T = 逐笔成交,Q = 逐笔报价
)
def handle_msg(msgs):
for m in msgs:
print(m.symbol, m.price, m.size)
ws.run(handle_msg=handle_msg)
WebSocket 是高级版套餐的功能,订阅数和连接数上限见 WebSocket 文档。
注意事项
- 套餐范围:调用套餐外的接口返回 404,查询超出套餐历史范围的数据返回 403,SDK 会抛出异常,不会返回错误数据。各套餐范围见 文档首页。
- 额度:每次请求都计入每日调用额度,包括 SDK 自动翻页的每一页。用量可以在控制台查看,规则见 响应头与额度。
- 其他语言:Node.js、Go 等语言的 SDK 或 HTTP 客户端,同样只要把服务地址换成
https://marilux.dev。
相关阅读
开始使用:注册账号后用兑换码激活,API Key 立即生成;股票入门版 ¥39 起,期权套餐 ¥99 起,人民币付款。查看套餐 →