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

Q:13:00:00周期划分产生的问题,如何避免取到未来数据?    

  • A: 在取11:30:00的周期线数据时,比如分钟线,会取到下午13:00:00这个时间点的数据。其原因:FAQ:Q:为何天软的分钟线会把13:00:00的交易算到11:30中
    由于对于时点的划分,不同的用户可能有不同的理解,有的用户可能不认同把13:00:00这一时点的数据划分到11:30:00中去,这种是从实际数据接收到的信息出发,会有取到未来数据的嫌疑,这个时候可以用下面的方式进行相关处理,见如下范例
    例1 取指定时间点11:30:00的收盘,不取13:00:00点的数据,只支持收盘价等截面数据:
    endt:=20190103.1130T;
    setsysparam(pn_cycle(),cy_30m());//这里周期可以任意变换
       setsysparam(pn_stock(),'SH601211');
       setsysparam(pn_date(),endt);
       setsysparam(pn_viewpoint(),endt);
       return close();

    返回: 15.8
    例2 取一天内30分钟线的时间序列数据,不取未来数据,只支持收盘价等截面数据:
    endt:=20190103T;
       setsysparam(pn_cycle(),cy_30m());//这里高频周期可以任意变换
       setsysparam(pn_stock(),'SH601211');
       tarr:= StockTradeDayQk(endt,endt+16/24);//取交易时间点
       ret:=array();
       for i:=0 to length(tarr)-1 do
       begin
        setsysparam(pn_date(),tarr[i]);    
        setsysparam(pn_viewpoint(),tarr[i]);
        ret[i,'date']:=tarr[i];
        ret[i,'close']:=close();
       end
       return ret;

    例3 取一段时间内的周期线数据,包括价格,成交量等统计字段数据(11:30:00过后的数据划到下午重整的markettable),可使用函数附件:StockMarketDataby13Min.fun