问题描述
使用get_stock_status时,query_type参数应该传入什么值,不同值有什么区别?
解决方案
在 ptrade 量化交易平台中,get_stock_status 函数用于获取指定日期股票的特定状态属性。其中,query_type 参数用于指定你要查询的具体状态类型。
query_type 可选值及区别
根据 ptrade API 文档,query_type 参数(字符串类型)支持以下三种可选值,默认值为 'ST':
'ST':- 含义:查询指定股票是否属于 ST(特别处理)股票。
- 返回值:如果是 ST 股票返回
True,否则返回False。
'HALT':- 含义:查询指定股票是否处于停牌状态。
- 返回值:如果处于停牌状态返回
True,否则返回False。
'DELISTING':- 含义:查询指定股票是否已经退市。
- 返回值:如果已经退市返回
True,否则返回False。
代码示例
以下是如何在策略中使用不同 query_type 值的示例:
def initialize(context):
# 设置股票池
g.security = ['600397.SS', '600701.SS', '000001.SZ']
set_universe(g.security)
def handle_data(context, data):
stocks_list = g.security
# 1. 查询是否为 ST 股票 (默认 query_type='ST')
st_status = get_stock_status(stocks_list, 'ST')
log.info('ST 状态: %s' % st_status)
# 过滤掉 ST 股票
filter_stocks = [stock for stock in stocks_list if not st_status.get(stock)]
log.info('非 ST 股票列表: %s' % filter_stocks)
# 2. 查询是否停牌
halt_status = get_stock_status(stocks_list, 'HALT')
log.info('停牌状态: %s' % halt_status)
# 3. 查询是否退市
delist_status = get_stock_status(stocks_list, 'DELISTING')
log.info('退市状态: %s' % delist_status)
注意:get_stock_status 返回的是一个字典(dict),键为股票代码,值为布尔值(True 或 False)。如果查询不到数据或输入有误,对应的值可能为 None。在编写策略时,建议做好 None 值的异常处理。