efinance icon indicating copy to clipboard operation
efinance copied to clipboard

请问如何获取指数行情,如标普500指数、恒生指数、上证指数、上证50等等,感谢

Open pmgO12Y opened this issue 3 years ago • 14 comments
trafficstars

pmgO12Y avatar Jan 10 '22 07:01 pmgO12Y

例子如下

import efinance as ef
name = '上证指数'
ef.stock.get_quote_history(name)

image

Micro-sheep avatar Jan 10 '22 08:01 Micro-sheep

上证指数、恒生指数已经可以实现,但是如标普500、纳斯达克尚不知具体的代码或中文名,请问哪里可以查询到所有指数的中文名或者代码? image image

pmgO12Y avatar Jan 10 '22 09:01 pmgO12Y

上证指数、恒生指数已经可以实现,但是如标普500、纳斯达克尚不知具体的代码或中文名,请问哪里可以查询到所有指数的中文名或者代码?

image

image

上东方财富可以查看,比如纳斯达克的代码是 NADQ,你可以用指数代码或者比较精确的名称来获取。

Micro-sheep avatar Jan 10 '22 09:01 Micro-sheep

上证指数、恒生指数已经可以实现,但是如标普500、纳斯达克尚不知具体的代码或中文名,请问哪里可以查询到所有指数的中文名或者代码?

image

image

上东方财富可以查看,比如纳斯达克的代码是 NADQ,你可以用指数代码或者比较精确的名称来获取。

如果代码是 NDX 则是指数,具体怎么识别,东方财富里面会指明。对于股票代码和名称两者有冲突的情况,一般可以选择能区别它们两个的那一点作为参数。比如纳斯达克股票名称和指数名称冲突,但代码不同,则可以提供代码来区分它们。

Micro-sheep avatar Jan 10 '22 09:01 Micro-sheep

收到收到,感谢大神指点

pmgO12Y avatar Jan 10 '22 09:01 pmgO12Y

反馈一下,对于标普500指数,无论是基金还是代码都无法获得正确的净值 Xnip2022-06-23_20-05-35

wabbaf avatar Jun 23 '22 12:06 wabbaf

反馈一下,对于标普500指数,无论是基金还是代码都无法获得正确的净值 Xnip2022-06-23_20-05-35

更新到至少 v0.4.6 然后使用下面的方案

from efinance.common import get_latest_quote
get_latest_quote('100.SPX')

image

其中 100.SPX 可通过下面的方法找到

from efinance.utils import search_quote
search_quote(keyword = 'SPX',count = 2)

image

Micro-sheep avatar Jun 23 '22 12:06 Micro-sheep

非常感谢大佬的付出和解答,是不是像100.SPX这样的代码是不支持多代码(用列表的形式)获取的呢?我试着传入到ef.stock.get_realtime_quotes模块里会报错,无论如何再一次表示感谢。 另外,我在这里再反馈 3个发现的有错误代码:'100032' , '162412' , '000369',当它们被传入 ef.fund.get_realtime_increase_rate 这个模块,出来的最新净值是错误的;但是当传入到 ef.fund.get_quote_history 以及ef.stock.get_latest_quote 模块的时候,最新净值又是正确的。 Xnip2022-06-24_18-25-32

wabbaf avatar Jun 24 '22 11:06 wabbaf

非常感谢大佬的付出和解答,是不是像100.SPX这样的代码是不支持多代码(用列表的形式)获取的呢?我试着传入到ef.stock.get_realtime_quotes模块里会报错,无论如何再一次表示感谢。 另外,我在这里再反馈 3个发现的有错误代码:'100032' , '162412' , '000369',当它们被传入 ef.fund.get_realtime_increase_rate 这个模块,出来的最新净值是错误的;但是当传入到 ef.fund.get_quote_history 以及ef.stock.get_latest_quote 模块的时候,最新净值又是正确的。 Xnip2022-06-24_18-25-32

ef.stock.get_realtime_quotes 是用于获取某个市场或者板块的行情数据 不能用于获取指定的个股行情数据 get_latest_quote 支持传入字符串或者列表

Micro-sheep avatar Jun 24 '22 11:06 Micro-sheep

非常感谢大佬的付出和解答,是不是像100.SPX这样的代码是不支持多代码(用列表的形式)获取的呢?我试着传入到ef.stock.get_realtime_quotes模块里会报错,无论如何再一次表示感谢。 另外,我在这里再反馈 3个发现的有错误代码:'100032' , '162412' , '000369',当它们被传入 ef.fund.get_realtime_increase_rate 这个模块,出来的最新净值是错误的;但是当传入到 ef.fund.get_quote_history 以及ef.stock.get_latest_quote 模块的时候,最新净值又是正确的。 Xnip2022-06-24_18-25-32

如果更新到 v0.4.7 则可以像下面这样子做 image image

Micro-sheep avatar Jun 24 '22 11:06 Micro-sheep

收到收到,感谢解答,等v0.4.7出来更新研究一下。上面说的100.SPX传入的模块说错了,应该更正为传入ef.stock.get_latest_quote会报错,如图: Xnip2022-06-24_21-25-00

另外我想问一下历史行情查询ef.stock.get_quote_history,时间跨度比较长的情况下,输出的内容中间部分是省略不可见的,请问这是正常的输出结果吗?比如我想通过得到全部数据来获取5年的历史最高价,可以获得这段时间的全部数据吗? Xnip2022-06-24_21-31-50

wabbaf avatar Jun 24 '22 13:06 wabbaf

收到收到,感谢解答,等v0.4.7出来更新研究一下。上面说的100.SPX传入的模块说错了,应该更正为传入ef.stock.get_latest_quote会报错,如图:

Xnip2022-06-24_21-25-00

另外我想问一下历史行情查询ef.stock.get_quote_history,时间跨度比较长的情况下,输出的内容中间部分是省略不可见的,请问这是正常的输出结果吗?比如我想通过得到全部数据来获取5年的历史最高价,可以获得这段时间的全部数据吗?

Xnip2022-06-24_21-31-50

返回的数据类型是 pandas.DataFrame,你可以看一下 pandas 的文档,省略那部分只是它输出的一个简略结果,能取到的数据不会少。然后你既然用 vscode,不妨在里面装个叫 jupyter 的扩展,这个体验很棒,比网页版的好很多,我给你截图的就是其中的使用效果。

Micro-sheep avatar Jun 24 '22 22:06 Micro-sheep

收到收到,感谢解答,等v0.4.7出来更新研究一下。上面说的100.SPX传入的模块说错了,应该更正为传入ef.stock.get_latest_quote会报错,如图:

Xnip2022-06-24_21-25-00

另外我想问一下历史行情查询ef.stock.get_quote_history,时间跨度比较长的情况下,输出的内容中间部分是省略不可见的,请问这是正常的输出结果吗?比如我想通过得到全部数据来获取5年的历史最高价,可以获得这段时间的全部数据吗?

Xnip2022-06-24_21-31-50

v0.4.7 昨天已经更新发布了。

Micro-sheep avatar Jun 24 '22 22:06 Micro-sheep

为啥我输入标普500,出来的是标普500ETF? 100.SPX 就报 “券代码 "100.SPX" 可能有误”。如何获取标普500值?另外创业板指有一样的问题,通过search_quote 能查出来标普500 和创业板指。但是用 get_quote_history 搜索出来就变成创业板增强ETF了。用的最新的 V0.5.0 版本

创业板指,我通过 ‘399006’ 拿到了。但是仍然感觉get_quote_history的字符串匹配会存在bug

image

image

h3clikejava avatar Jun 26 '23 08:06 h3clikejava