FAQ > 金融建模 > 数据提取 > 行情数据提取

Q:如何取指定时间点的价格    

  • A:一般而言,我们可以通过最常用的方式,设置高频周期,设置当前时间,就能获取到某个时点的价格了,如:
    setsysparam(pn_stock(),'SZ000002');
    setsysparam(pn_cycle(),cy_1m()); //分钟线
    setsysparam(pn_date(),20190513.1430T); //下午两点半
    return close();

    返回:28.01

    但是,在某个程序中,当前周期为低频,不想改变当前周期,以及当前时间等,只是需要再取某个时点的价格。
    那么此时,我们推荐specall进行临时指定这类系统参数,再进行提取。
    可快速实现如下:
    setsysparam(pn_stock(),'SZ000002');
    p:=specAll(close(),array(pn_cycle():cy_1m(),pn_date():20190513T+strtotime("14:30:00")));
    return p;

    返回:28.01
    若需要精确到具体秒,则可修改周期为秒线(cy_1s())。

    若还想指定与当前证券不同证券的数据,则可增加pn_stock()的指定,可改成如下:
    p:=specAll(close(),array(pn_stock():"SH000300",pn_cycle():cy_1m(),pn_date():20190513T+strtotime("14:30:00")));
    return p;

    返回:3662.99