3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 量化交易平台中,高效的基本面选股依赖于财务数据接口 get_fundamentals。营运能力(operating_ability)是评估企业运营效率的核心维度,其中**存货周转率(inventory_turnover_rate)**衡量了企业存货变现及管理效率。存货周转率越高,说明资产利用效率越高,流动性越强。自由调取该指标可帮助投资者筛选出高质量的运营标的。
获取存货周转率需要指定表名为 'operating_ability',并设置业务字段 fields='inventory_turnover_rate'。
'600570.SS' 或股票池列表)。'operating_ability'。'inventory_turnover_rate'。'20231231'。在盘中或回测中不传默认取系统/回测当前时间最近的数据。'1':一季报,'2':半年报,'3':三季报,'4':年报)。# 获取单个或多个股票的存货周转率数据
stocks = ['600570.SS', '000001.SZ', '600000.SS']
df = get_fundamentals(
security=stocks,
table='operating_ability',
fields=['inventory_turnover_rate'],
date='20231231'
)
print(df)
以下策略在盘前运行阶段(before_trading_start)调取全 A 股的存货周转率指标,筛选出存货周转率最高的 Top 10 标的并更新股票池:
import pandas as pd
def initialize(context):
# 设置初始股票池
g.security = ['600570.SS']
set_universe(g.security)
# 每天 09:15 运行选股逻辑
run_daily(context, select_stocks, time='09:15')
def select_stocks(context):
# 1. 获取当前全 A 股代码列表
all_stocks = get_Ashares()
# 2. 查询所有 A 股的存货周转率
try:
df = get_fundamentals(
security=all_stocks,
table='operating_ability',
fields=['inventory_turnover_rate']
)
if df is not None and not df.empty:
# 过滤掉缺失值
valid_df = df.dropna(subset=['inventory_turnover_rate'])
# 按存货周转率降序排序
sorted_df = valid_df.sort_values(by='inventory_turnover_rate', ascending=False)
# 取前 10 只标的
top_stocks = list(sorted_df.index[:10])
# 更新全局股票池
g.security = top_stocks
set_universe(g.security)
log.info("今日筛选出的高存货周转率股票池: %s" % g.security)
except Exception as e:
log.error("获取财务数据异常: %s" % e)
def handle_data(context, data):
# 盘中根据筛选出的股票池进行交易逻辑(示例:调仓买入)
pass
get_fundamentals 接口每秒调用不可超过 100 次,单次最大数据请求量为 500 条。若全市场股票较多,建议分批获取或加 time.sleep(1) 规避流控。get_industry_stocks() 在同行业内部进行相对排名筛选。