-
Notifications
You must be signed in to change notification settings - Fork 477
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
请问如何获取历史某一天的1分钟数据 #35
Comments
目前无法获取除了最新一个交易日外,历史上某一天的 1 分钟数据。 |
大佬有想法实现一下吗,想多搞点数据分析 |
实现是可以实现,不过不是基于东方财富,获取速度会比较慢,后续考虑加一下。 |
大佬有数据源么,目前只看到通达信有手动操作的获取方式,目前只能写了个按键精灵一天一天的拉 |
大佬给了另一个接口可以去调用,不知道会不会爬太多给他爬挂了 |
开盘啦 这个软件里面的源倒是可以获取。 |
好像是不行的,我前几天试过如果周期是一分钟,只会返回最近一个交易日的数据不管你传啥日期都没用 |
好像市面上除了通达信没有公开接口获取历史分时的 |
好像是的,尴尬了,他不理我这个传入的时间 |
主要是没有方便获取的数据源 |
我特地设置一个大的时间区间,以便能默认获取全部,不过东方财富服务器那边对稍高频数据不认可这样子的做法,所以没有返回需要的。 |
我试了一下,30min是可以获取每日,5min也可以,不行就先爬点每日五分钟的数据分析分析看看 |
可以接受 5 分钟的数据的话,试试 baostock,它能获取挺多的,好像是10 多年的。 |
baostock是某个接口么,我现在还是用你的get_quote_history接口爬5分钟的数据 |
需要一分钟的,暂时通过通达信取到了本地,需要的个股也就300来个每个天数也就十来天 |
不行就买点吧,这东西买了一次就够用了,后面的用这个一直爬取就好了 |
你这个按键精灵是怎么实现拉取数据的呢? |
通达信的历史分界面右下角有个操作选项里面有导出选项,我就录制了一个脚本,把要取的个股加好自选通过pagedown和pageup还有方向键切换个股和K线,然后重复运行录制的脚本,考虑到打开历史分时界面比较慢,我延时了个2s,大概取一次数据5s,我数据少可以这样搞,睡觉前运行一下,第二天早上就好了,你那边可能不太合适,如果实在没数据源那也只能这样了 |
对了,下载近3个月的1分钟数据,可以批量导出到本地txt |
好的,我试试能不能获取通达信的 1 分钟数据接口。 |
大佬要开始了吗?去淘宝逛了一圈,发现卖股票数据的还挺多,1分钟级的还挺贵,大佬都可以去卖数据了 |
这个就没必要卖了,毕竟数据源不是自己的,能免费用已经很棒了。 |
点赞 |
现在是4月11日,我也来爬了,也只能搞到一周内的,请问各位大佬最后解决了没 |
这是来自QQ邮箱的自动回复邮件。
您好,您的邮件我已收到。我将尽快给您回复。张伟
|
可以用下面的代码获取历史交易日分钟数据 import requests
from efinance.utils import search_quote
from datetime import datetime
import pandas as pd
from efinance.utils import to_numeric
@to_numeric
def get_quote_history_1_minute(stock_code: str,
date: str) -> pd.DataFrame:
"""
获取股票、债券的指定日期的 1 分钟 K 线数据
Parameters
----------
stock_code : str
股票代码 或者股票代码列表
date : str
日期
Returns
-------
DataFrame
Examples
--------
>>> stock_code = '600519'
>>> date = '20220304'
>>> get_quote_history_1_minute(stock_code,date)
股票名称 股票代码 日期 时间 最新价 均价 成交量 昨收 开盘
0 贵州茅台 600519 2022-03-04 09:30 1772.0 1772.0 571 1800 1772
1 贵州茅台 600519 2022-03-04 09:31 1770.0 1770.818 1039 1800 1772
2 贵州茅台 600519 2022-03-04 09:32 1773.53 1770.957 453 1800 1772
3 贵州茅台 600519 2022-03-04 09:33 1779.98 1772.293 496 1800 1772
4 贵州茅台 600519 2022-03-04 09:34 1773.0 1773.12 505 1800 1772
.. ... ... ... ... ... ... ... ... ...
236 贵州茅台 600519 2022-03-04 14:56 1779.23 1774.363 154 1800 1772
237 贵州茅台 600519 2022-03-04 14:57 1781.61 1774.401 181 1800 1772
238 贵州茅台 600519 2022-03-04 14:58 1781.88 1774.401 2 1800 1772
239 贵州茅台 600519 2022-03-04 14:59 1781.88 1774.401 0 1800 1772
240 贵州茅台 600519 2022-03-04 15:00 1780.5 1774.456 276 1800 1772
[241 rows x 9 columns]
"""
q = search_quote(stock_code)
df = pd.DataFrame(columns=['股票名称', '股票代码', '日期', '时间',
'最新价', '均价', '成交量', '昨收', '开盘'])
if not q:
return df
data = {
'Day': date,
'PhoneOSNew': '2',
'StockID': q.code,
'Token': '0',
'UserID': '0',
'VerSion': '5.2.1.0',
'a': 'GetStockTrend',
'apiv': 'w28',
'c': 'StockL2History'
}
url = 'https://apphis.longhuvip.com/w1/api/index.php'
response = requests.post(url, data=data)
try:
js = response.json()
except:
return df
if not js.get('trend'):
return df
trend = pd.DataFrame(js['trend'])
df[['时间', '最新价', '均价', '成交量']] = trend.values[:, :4]
df['日期'] = datetime.strptime(
js['day'], '%Y%m%d').strftime('%Y-%m-%d')
df['昨收'] = js['preclose_px']
df['开盘'] = js['begin_px']
df['股票代码'] = q.code
df['股票名称'] = q.name
return df
df = get_quote_history_1_minute('600519', '20220304')
df |
参考下面的评论可解决你的问题。 |
感谢大佬!,请问是chioce里的数据吗,美股的可以吗? |
大佬这是搞到数据源了啊 |
是 开盘啦 这个 app 里面的数据。好像只能是 A 股。 |
是的,来源于 开盘啦 这个 app。不过我感觉它的速度比较慢,所以没有集成到 efinance 里面。不过有需要的可以先用这个。 |
可以考虑下载到本地数据库 |
mark 一下 |
get_quote_history获取的1分钟数据只有最近一天的,5分钟可以历史数据,但是1分钟不行
The text was updated successfully, but these errors were encountered: