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

Q:高频、超高频数据说明    

  • A:天软平台通过两张表marketable、tradetable即可访问高频、超高频数据,股票、ETF、期货等都可以以此种方式访问。
    tradetable中存储的是交易明细(LV1)的数据,marketTable中存储的是分时(1分钟、5分钟等)数据、日线数据。
    tradetable交易明细数据频率(LV1)、tradetable和markettable表中的各字段的含义、交易明细数据衍生到分钟数据的规则 参考附件中的“高频、超高频数据详解.pdf
    附件:2024-03-06-深圳天软科技-高频、超高频数据详解.pdf

    天软行情数说明
    1、关于各品种行情数据的交易时间及行情源等说明,可参考:
    FAQ:天软行情数据及处理机制说明

    取数范例
    1、行情数据相关函数函数:FAQ:盘后相关(在当日可用于盘中)
    2、盘口数据相关接口:FAQ:Rd
    3、取时间序列:FAQ:NDay
    4、取交易明细表格数据:FAQ:TRADETABLE
    5、取高频、超高频、低频表格数据:FAQ:MARKETTABLE
    6、以下列举了多种应用场景的取数范例供参考,当不能满足时,比如多段时间,多个票等,用户可套用for循环进行实现,效率也不会慢。
    7、行情还与复权等相关,下面范例中都是取的默认不复权的情况下的数据,若需要复权,可设置复权方式及复权基准日即可。即比如设置比例复权下后复权的方式:
    setsysparam(pn_rate(),1);
    setsysparam(pn_rateday(),-1);
    复权相关说明可参考:FAQ:Q:天软的复权方式

    范例01:取指定时间点的行情
    比如:提取万科A在2020-08-25日10点半时的价格及分钟线成交量

    setsysparam(pn_stock(),'SZ000002'); //证券代码
    setsysparam(pn_cycle(),cy_1m()); //周期-分钟线
    setsysparam(pn_date(),20200825.1030T); //当前时间-当高频时需要注意添加时间
    c:=close(); //收盘价
    v:=vol();//分钟线成交量
    return array('收盘价':c,'成交量':v);

    返回结果:

    范例02:取时间序列的行情
    比如:提取万科A截止2020-08-25日时最近10个交易日的收盘价及成交量

    setsysparam(pn_stock(),'SZ000002'); //证券代码
    setsysparam(pn_cycle(),cy_day()); //周期-日线
    setsysparam(pn_date(),20200825T); //当前时间-nday中的截止时间
    return nday(10,'date',datetostr(sp_time()),'close',close(),'vol',vol());

    返回结果:
    dateclosevol
    2020-08-1228.710000124977408.000000
    2020-08-1328.60000079090289.000000
    2020-08-1427.68000094094734.000000
    2020-08-1728.210000134781783.000000
    2020-08-1827.70000084839264.000000
    2020-08-1927.44000073057697.000000
    2020-08-2027.48000056897597.000000
    2020-08-2127.36000051555108.000000
    2020-08-2427.13000056626920.000000
    2020-08-2527.19000048963532.000000

    范例03:盘中实时行情盘口数据的提取

       stocks:=array('SZ000001','SZ000002','SH600000');
       ret:=array();
       for i:=0 to length(stocks)-1 do
       begin
         setsysparam(pn_stock(),stocks[i]); //证券代码
         ret[i,'StockID']:=rd(0);
         ret[i,'StockName']:=rd(1);
         ret[i,'time']:=datetimetostr(rd(-1));
         ret[i,'price']:=rd(6);
         ret[i,'vol']:=rd(8);
         ret[i,'amount']:=rd(7);
       end;
       return ret;

    返回结果:(执行时间:)
    StockIDStockNametimepricevolamount
    SZ000001平安银行2020-08-26 15:00:0314.37000073411772.0000001057274169.740000
    SZ000002万 科A2020-08-26 15:00:0327.08000052089356.0000001414456519.970000
    SH600000浦发银行2020-08-26 15:00:0010.37000039278732.000000408174292.000000



    范例04:取交易明细数据
    比如:提取万科A在2020-08-25日10点到10点10分内的交易明细数据

    return select ['StockID'],['StockName'],datetimetostr(['date']) as 'date',['close'],
        ['vol'],['amount'],['buy1'],['bc1'],['sale1'],['sc1']
      from tradetable datekey 20200825.10T to 20200825.1010T of 'SZ000002' end;

    返回结果:(部分数据结果展示)
    StockIDStockNamedateclosevolamountbuy1bc1sale1sc1
    SZ000002万 科A2020-08-25 10:00:0027.31000019100.000000521639.00000027.310000590027.3200004000
    SZ000002万 科A2020-08-25 10:00:0327.32000010100.000000275902.00000027.3100002960027.3200005700
    SZ000002万 科A2020-08-25 10:00:0627.32000024100.000000658279.00000027.320000140027.33000012400
    SZ000002万 科A2020-08-25 10:00:0927.36000053000.0000001449151.00000027.320000410027.36000066800
    SZ000002万 科A2020-08-25 10:00:1227.36000034500.000000942641.00000027.32000050027.36000059900
    SZ000002万 科A2020-08-25 10:00:1527.3100003100.00000084668.00000027.310000120027.3300001800
    SZ000002万 科A2020-08-25 10:00:1827.31000020500.000000560026.00000027.33000010027.3500001200
    SZ000002万 科A2020-08-25 10:00:2127.32000011600.000000316813.00000027.320000380027.340000900
    SZ000002万 科A2020-08-25 10:00:2427.31000031600.000000863286.00000027.310000200027.3500001300
    SZ000002万 科A2020-08-25 10:00:2727.36000019600.000000535415.00000027.32000030027.36000060500
    SZ000002万 科A2020-08-25 10:00:3027.31000056500.0000001545395.00000027.3100001220027.36000014800
    SZ000002万 科A2020-08-25 10:00:3327.3600005600.000000153169.00000027.3100001800027.36000017800
    SZ000002万 科A2020-08-25 10:00:3627.36000024300.000000663858.00000027.310000880027.36000014200
    ......


    范例05:取日线行情
    比如:提取万科A与平安银行在2020-08-21日至2020-08-26日的日线行情

    setsysparam(pn_cycle(),cy_day());//设置为日线
    t:= select ['StockID'],['StockName'],datetostr(['date']) as 'date',['close'],
       ['vol'],['amount'],['buy1'],['bc1'],['sale1'],['sc1']
      from Markettable datekey 20200821T to 20200826T of array('SZ000001','SZ000002') end;
    return t;

    返回结果:
    StockIDStockNamedateclosevolamountbuy1bc1sale1sc1
    SZ000001平安银行2020-08-2114.450000123451733.0000001787278581.34000014.44000014140014.450000859674
    SZ000001平安银行2020-08-2414.46000091944886.0000001338031969.40000014.46000016832214.470000149240
    SZ000001平安银行2020-08-2514.60000074832022.0000001090756854.22000014.60000016903914.610000186800
    SZ000001平安银行2020-08-2614.37000073411772.0000001057274169.74000014.3600006770014.370000103519
    SZ000002万 科A2020-08-2127.36000051555108.0000001412631491.62000027.36000018021927.37000032837
    SZ000002万 科A2020-08-2427.13000056626920.0000001549031069.92000027.13000018437427.1400001000
    SZ000002万 科A2020-08-2527.19000048963532.0000001334277356.83000027.19000025252427.200000326861
    SZ000002万 科A2020-08-2627.08000052089356.0000001414456519.97000027.0800002713727.09000026700


    范例06:取分钟线行情
    如:提取万科A在2020-08-26日10点25分到10点30分内的分钟线行情数据

    setsysparam(pn_cycle(),cy_1m());//设置为分钟线
    t:= select ['StockID'],['StockName'],datetimetostr(['date']) as 'date',['close'],
      ['vol'],['amount'],['buy1'],['bc1'],['sale1'],['sc1']
      from Markettable datekey 20200825.1025T to 20200825.1030T of 'SZ000002' end;
    return t;

    返回结果:
    StockIDStockNamedateclosevolamountbuy1bc1sale1sc1
    SZ000002万 科A2020-08-25 10:25:0027.200000200000.0000005439489.00000027.200000430027.21000035300
    SZ000002万 科A2020-08-25 10:26:0027.200000196700.0000005350462.00000027.2000006570027.21000018700
    SZ000002万 科A2020-08-25 10:27:0027.240000120900.0000003291033.00000027.2400001640027.25000015200
    SZ000002万 科A2020-08-25 10:28:0027.220000254700.0000006936857.00000027.2200001490027.24000016900
    SZ000002万 科A2020-08-25 10:29:0027.250000234200.0000006382757.00000027.24000090027.25000018300
    SZ000002万 科A2020-08-25 10:30:0027.270000189500.0000005163407.00000027.270000450027.28000021800