问题描述
解决方案
在 JoinQuant(聚宽)量化平台中,attribute_history() 函数用于查看某一支股票(或标的)的历史行情数据,并且允许你同时查询该标的的多个数据字段(属性)。
核心特点
- 单标的多字段:与
history()函数(多标的单字段)不同,attribute_history()专门用于获取单个标的的多个属性(如开盘价、收盘价、成交量等)。 - 避免未来函数:当取天数据时,不包括当天的数据(即使是在收盘后调用);当取分钟数据时,不包括当前分钟的数据。
- 停牌处理:默认跳过停牌日期(
skip_paused=True)。如果不跳过,停牌时会使用停牌前的数据填充。 - 复权处理:默认返回前复权数据(
fq='pre')。
可获取的数据字段 (fields)
你可以通过 fields 参数指定要获取的属性列表,支持以下基本属性:
'open':开盘价'close':收盘价'low':最低价'high':最高价'volume':成交量(股)'money':成交额'factor':复权因子'high_limit':涨停价'low_limit':跌停价'avg':平均价'pre_close':前收盘价'paused':是否停牌(1表示停牌)
返回值格式
默认情况下(df=True),它返回一个 pandas.DataFrame 对象:
- 行索引 (index):
datetime.datetime对象,代表时间。 - 列索引 (columns):你请求的属性名称(如 'open', 'close')。
代码示例
# 获取平安银行(000001.XSHE)过去5天的开盘价、收盘价、成交量和复权因子
stock = '000001.XSHE'
h = attribute_history(stock, 5, unit='1d', fields=['open', 'close', 'volume', 'factor'])
# 打印获取到的 DataFrame
print(h)
# 获取昨天的收盘价
yesterday_close = h['close'][-1]
# 计算过去5天的平均开盘价
mean_open = h['open'].mean()
总结来说,attribute_history() 是你在编写策略时,用来计算移动平均线(MA)、MACD 等技术指标,或者获取单只股票近期量价特征最常用的 API。