请教各位宽友,如何获取当前所有场内etf基金?
问题描述
解决方案
在 JoinQuant 聚宽平台上,您可以使用 get_all_securities 函数来获取当前所有场内 ETF 基金的列表。
核心 API:get_all_securities
该函数用于获取平台支持的所有股票、基金、指数、期货、期权信息。通过指定 types 参数,我们可以过滤出特定类型的标的。
获取 ETF 基金的代码示例
在研究环境或策略代码中,您可以这样编写:
from jqdata import *
# 获取当前所有场内 ETF 基金的信息,返回一个 pandas.DataFrame
etf_df = get_all_securities(types=['etf'])
# 打印 DataFrame 的前 5 行查看详细信息(包含 display_name, name, start_date, end_date, type)
print("ETF 基金详细信息:")
print(etf_df.head())
# 如果您只需要 ETF 基金的代码列表,可以提取 DataFrame 的 index
etf_list = list(etf_df.index)
# 打印前 5 个 ETF 代码
print("\nETF 基金代码列表(前5个):")
print(etf_list[:5])
参数说明
types=['etf']:指定过滤类型为场内 ETF 基金。除了'etf',您还可以使用'lof'(上市型开放基金)、'fja'(分级A)、'fjb'(分级B)等来获取其他类型的场内基金。date:可选参数。如果不填,在研究模块中默认是今天,在回测模块中默认是回测的当前日期(context.current_dt)。如果您想获取历史上某一天上市的 ETF 列表,可以传入具体的日期字符串,例如date='2020-01-01'。
通过上述方法,您就可以轻松获取到聚宽平台上所有的场内 ETF 基金数据,用于后续的量化分析和策略编写。