Micro-sheep / efinance

efinance 是一个可以快速获取基金、股票、债券、期货数据的 Python 库,回测以及量化交易的好帮手!🚀🚀🚀
MIT License
1.75k stars 453 forks source link

期货数据缺少广州期货交易所 #105

Closed lededev closed 1 year ago

lededev commented 1 year ago

目前模块还不支持广州期货交易所吧,希望能够增加支持

>>> import efinance as ef
>>> G_info = ef.futures.get_futures_base_info()
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('上')])
286
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('郑')])
244
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('大')])
262
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('中')])
73
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('广')])
0
Micro-sheep commented 1 year ago

这个目前可以通过下面的代码来实现

import efinance.common.config as config
import efinance as ef

def add_futures_market(market_number: str, market_name: str):
    config.MARKET_NUMBER_DICT[market_number] = market_name
    old = config.FS_DICT['futures']
    config.FS_DICT['futures'] = ','.join(
        (old, f'm:{market_number}'))
    config.FS_DICT['futures'] = ','.join(
        set(config.FS_DICT['futures'].split(',')))

add_futures_market('225', '广期所')
df = ef.futures.get_realtime_quotes()

print(len([i for i, v in enumerate(df['市场类型']) if v.startswith('广')]))
Micro-sheep commented 1 year ago

目前模块还不支持广州期货交易所吧,希望能够增加支持

>>> import efinance as ef
>>> G_info = ef.futures.get_futures_base_info()
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('上')])
286
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('郑')])
244
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('大')])
262
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('中')])
73
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('广')])
0

大概在今天下午,会更新一个版本,增加你说的功能。

Micro-sheep commented 1 year ago

目前模块还不支持广州期货交易所吧,希望能够增加支持

>>> import efinance as ef
>>> G_info = ef.futures.get_futures_base_info()
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('上')])
286
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('郑')])
244
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('大')])
262
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('中')])
73
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('广')])
0

已更新,使用 pip 更新 efinancev0.5.0 即可。

或者通过下面的命令来更新

pip install git+https://github.com/Micro-sheep/efinance
lededev commented 1 year ago

更新到v0.5.0可以了,非常感谢!

>>> import efinance as ef
>>> G_info = ef.futures.get_futures_base_info()
>>> len([i for i, v in enumerate(G_info['市场类型']) if v.startswith('广')])
7