龙听期货论坛's Archiver

龙听 发表于 2024-3-6 19:13

东方财富(Python/C++量化) - 数据查询函数【history - 查询历史行情】

函数原型:[code]history(symbol, frequency, start_time, end_time, fields=None, skip_suspended=True,
        fill_missing=None, adjust=ADJUST_NONE, adjust_end_time='', df=True)[/code]参数:

[img]http://p.algo2.net/2024/0306/3aad4304f925b.png[/img]

返回值:参考Tick对象或者Bar对象。

当df = True时, 返回

[img]http://p.algo2.net/2024/0306/c28b4f70e1bc5.png[/img]

示例:[code]history_data = history(symbol='SHSE.000300', frequency='1d', start_time='2010-07-28',  end_time='2017-07-30', fields='open, close, low, high, eob', adjust=ADJUST_PREV, df= True)[/code]输出:[code]          open      close        low       high                       eob
0     2796.4829  2863.7241  2784.1550  2866.4041 2010-07-28 00:00:00+08:00
1     2866.7720  2877.9761  2851.9961  2888.5991 2010-07-29 00:00:00+08:00
2     2871.4810  2868.8459  2844.6819  2876.1360 2010-07-30 00:00:00+08:00
3     2868.2791  2917.2749  2867.4500  2922.6121 2010-08-02 00:00:00+08:00
4     2925.2539  2865.9709  2865.7610  2929.6140 2010-08-03 00:00:00+08:00[/code]当df = False时, 返回

[img]http://p.algo2.net/2024/0306/dacb7673fa19b.png[/img]

注意:[code]history_data = history(symbol='SHSE.000300', frequency='1d', start_time='2017-07-30',  end_time='2017-07-31', fields='open, close, low, high, eob', adjust=ADJUST_PREV, df=False)[/code]输出:[code][{'open': 3722.42822265625, 'close': 3737.873291015625, 'low': 3713.655029296875, 'high': 3746.520751953125, 'eob': datetime.datetime(2017, 7, 31, 0, 0, tzinfo=tzfile('PRC'))}][/code]1.返回的list/DataFrame是以参数eob/bob的升序来排序的,若要获取多标的的数据,通常需进一步的数据处理来分别提取出每只标的的历史数据

2.start_time和end_time中月,日,时,分,秒均可以只输入个位数,例:'2010-7-8 9:40:0'或'2017-7-30 12:3:0',但若对应位置为零,则0不可被省略,如不可输入'2017-7-30 12:3: '获取数据目前采用前后闭区间的方式,即会获取前后两个时间节点的数据,使用时务必注意这点

3.若输入无效标的代码,返回空列表/空DataFrame

4.若输入代码正确,但查询字段包含无效字段,返回的列表、DataFrame只包含eob、symbol和输入的其他有效字段

5. skip_suspended 和 fill_missing 参数暂不支持

6. 单次返回数据量最大返回33000, 超出部分不返回

7. start_time和end_time输入不存在日期时,会报错details = “failed to parse datetime”

页: [1]