FAQ > 金融建模 > 建模问题 > 交易日相关

Q:如何判断是否交易日    

  • A:判断是否交易日,可以使用模型istradeday(endt)或istradeday4()。返回1表示交易,0表示不交易。
    其中,Isstradeday的判断依据:当前股票在指定日是否有日线行情,高频无效,日线及日线更低频有效。
    Istradeday4是在判断istradeday的基础上,还添加了成交量是否为0的判断,若成交量为0,则判断为非交易日。该函数与周期相关,可判断高频。
    注:
    如果当天没有日线,则认为不是交易日。
    如果用户在开盘前进行判断,判断则会出错。同样,在开盘后进行判断,如果判断是否交易的时候,该股票还没有生成日线,判断也会出错。

    istradeday判断逻辑请参考:FAQ:Q:函数istradeday判断是否交易日的规则

    示例01:判断指定股票在指定日是否停牌
    setsysparam(pn_stock(),"SZ000627");
    return istradeday(20250902T);

    返回:0 (表示非交易日,即停牌)

    示例02:返回A股在指定日的交易的股票序列(去掉停牌股)
    endt:=20250902T;
    stocks:=getAbkbydate("A股",endt);
    //echo "所有挂牌的A股数量:",length(stocks);//可对比筛选前后的量
    return sselect thisrow from stocks
         where spec(istradeday(endt),thisrow) end;