Node.js解析TDA API返回JSON 提取行权价构建内存数组
提取方法
TDA API返回的期权数据结构固定,所有看涨期权数据存储在callExpDateMap节点下,看跌期权对应putExpDateMap,提取逻辑如下:
- 第一层节点key为「到期日标识」,格式为
YYYY-MM-DD:剩余到期天数 - 每个到期日节点下的第二层key就是目标行权价(字符串格式)
- 每个行权价对应长度为1的数组,数组首元素即为该行权价的完整合约字段
Python 实现示例
以下代码可以直接将所有行权价数据提取为内存数组,也可转换为列式表格方便后续计算:
import json import pandas as pd # 替换为你实际拿到的API返回JSON字符串 api_response = '{"symbol": "F", "status": "SUCCESS", ...}' # 完整JSON内容放在此处 data = json.loads(api_response) contracts = [] # 遍历所有看涨期权到期日 for exp_label, strike_info in data["callExpDateMap"].items(): # 遍历当前到期日下所有行权价 for strike, contract_list in strike_info.items(): # 取出合约详情,补充到期日标识字段方便后续筛选 contract = contract_list[0] contract["expirationLabel"] = exp_label contracts.append(contract) # 如需构建列式表格,直接转换为pandas DataFrame即可 contract_df = pd.DataFrame(contracts) # 示例:输出所有行权价、合约代码、买卖价、隐波、Delta print(contract_df[["strikePrice", "symbol", "bid", "ask", "volatility", "delta"]])
处理后得到的contracts是标准数组结构,contract_df是列式表格,你可以直接基于这两个结构做行权价筛选、收益测算等交易评估操作。
如果需要提取看跌期权,把遍历节点从callExpDateMap换成putExpDateMap即可。
内容的提问来源于stack exchange,提问作者Bill Scott
相关产品推荐
相关产品推荐

