Skip to content

枚举类型 ​

枚举类型用于限制参数的可选值,常见于日期类型、标的状态类型等参数。策略代码中可直接使用枚举成员,例如 DAY_TYPE.TRADE、STATUS_TYPE.ST。

日期类型 ​

DAY_TYPE-日期类型

用于区分按交易日还是自然日计算。

python
DAY_TYPE

枚举值 ​

枚举值说明
DAY_TYPE.TRADE交易日
DAY_TYPE.NORMAL自然日

常见使用场景 ​

参数说明
day_type=DAY_TYPE.TRADE按交易日计算,常用于交易日偏移、交易日天数统计
day_type=DAY_TYPE.NORMAL按自然日计算,常用于上市天数等自然日口径统计

完整示例 ​

python
from zltquant import *

def initialize(context):
    pass

def handle_data(context, data):
    # 计算标的上市至指定日期的交易日天数
    days = get_listing_days('sz000001', date='2024-01-31', day_type=DAY_TYPE.TRADE)
    log.info(days)

    # 计算两个日期之间的交易日数量
    n = count_diff_trade_days(security='sh000001',
                              start_date='2024-01-01',
                              end_date='2024-01-31',
                              day_type=DAY_TYPE.TRADE)
    log.info(n)

if __name__ == '__main__':
    run_main()

状态类型 ​

STATUS_TYPE-状态类型

用于指定要查询或判断的标的状态。

python
STATUS_TYPE

枚举值 ​

枚举值说明
STATUS_TYPE.STST
STATUS_TYPE.SUSPEND停牌
STATUS_TYPE.PREDELIST退市整理期
STATUS_TYPE.DELISTED退市
STATUS_TYPE.STX*ST

常见使用场景 ​

参数说明
status_type=STATUS_TYPE.ST判断或统计 ST 状态
status_type=STATUS_TYPE.SUSPEND判断或统计停牌状态
status_type=[STATUS_TYPE.ST, STATUS_TYPE.SUSPEND]同时判断多个状态

完整示例 ​

python
from zltquant import *

def initialize(context):
    pass

def handle_data(context, data):
    # 判断标的是否处于 ST 状态
    ret = is_status('sz000001', status_type=STATUS_TYPE.ST)
    log.info(ret)

    # 同时判断 ST 和停牌状态
    ret = is_status('sz000001', status_type=[STATUS_TYPE.ST, STATUS_TYPE.SUSPEND])
    log.info(ret)

    # 统计区间内处于 ST 状态的交易日天数
    days = count_status_days(security='sz000001',
                             start_date='2024-01-01',
                             end_date='2024-01-31',
                             day_type=DAY_TYPE.TRADE,
                             status_type=STATUS_TYPE.ST)
    log.info(days)

if __name__ == '__main__':
    run_main()