一、解决的痛点:
1、自动抓取股票行情,避免手工跟踪股票价格、市值的麻烦。
2、避免股票行情软件花花绿绿的界面(懂得)
3、自定义各种公式
二、主要功能:
1、可获取A股指数、个股、转债、基金、港股(港股有可能是延时的) 行情
2、定时(30秒,可修改)刷新功能
3、增加修改需要关心的个股非常方便(不需要编程能力)
三、应用场景举例
1、持仓市值跟踪:手工在本Excel中输入持仓数量,借助实时行情刷新,可创建自己的实时市值、仓位管理功能。
2、转债溢价率跟踪:抓取转债价格、正股价格,可利用excel功能实时跟踪转债溢价率。
3、分级基金合并溢价跟踪:以上海分级为例,抓取A、B和母鸡价格,可跟踪分级基金合并溢价。
四、安全性
1、VBA代码经本人逐句编写,不含恶意代码。
五、运行条件:
1、Excel上要开放“宏”运行权限(一般性Excel会有提示)
2、版本问题申明:在本人Office家庭和学生版Excel上运行正常,本人WPS版本上运行正常。
六、免责声明
1、本excel免费使用,本人不承担因使用、复制、传播此excel及其相关功能造成的任何损失
2、由于使用者电脑设置及excel软件版本,可能造成运行不正常,此问题我无法控制,只能用户自行解决。从实际大约50+用户反馈来看,反映无法正常运行的用户极少(少于5%)
七、(关闭下载)下载链接(目前关闭下载,敬请期待)
**1、本人提供的模板仅为个人之间学习使用,不允许用于商业用途,交付后不承诺任何后续技术支持服务,也不接受退款,不对后续使用赴任何责任。 2、目前关闭下载,正在计划对抓取模板进行升级,增加更多功能和场景,敬请期待。
-------------------------
历史变更记录:
20220121新浪接口变更,紧急消缺更新到4.0版本
20230730 取消免费分享
20230812公告 。感谢各位的关注,由于收到jisilu后台提醒“请不要在社区做任何形式的营销推广”,出于对jisilu的尊重,即日起停止在本贴分享行情抓取模板的下载链接。各位朋友若确有需要,可以pm联系沟通
自己用的,所以比较简陋。如有不明,可回帖或私信联系。
致谢:
1、这个方法参考了jisilu里面很多同学的帖子,特别感谢islq同学在https://www.jisilu.cn/question/2230帖子里面提供的excel样例.
2、致谢20220121 欣财富自由之路@jisilu网友提供的新浪接口修复代码
公告,自即日起,取消免费分享,改为需要打赏8金币,打赏后我会发送提取码。已经答谢,我学习一下,求楼主多指教。
百度网盘链接: https://pan.baidu.com/s/1q93DWGzDBQK1f8SToPSyWA 提取码:(需打赏8金币后私信发送)
darksage
- α比β重要。投资者要做的是选择一只正确的股票,至于股市自己会照顾自己的。
我用WEBSERVICE函数+腾讯的简化接口,获取股票当前市值。两个单元格填公式就可以用,不用VBA。修复了一下对停牌股票报错的问题:
第一个单元格 =WEBSERVICE("http://qt.gtimg.cn/q=s_"&LOWER(A2))&T(NOW())
第二个单元格 =VALUE(MID(C2,FIND("~~",C2)+2,FIND("~GP-A",C2)-2-FIND("~~",C2)))
PS1:不能自动刷...
第二个单元格 =VALUE(MID(C2,IFERROR(FIND("~~",C2),FIND("S~",C2))+2,FIND("~GP-A",C2)-2-IFERROR(FIND("~~",C2),FIND("S~",C2))))
我用WEBSERVICE函数+腾讯的简化接口,获取股票当前市值。两个单元格填公式就可以用,不用VBA。试了下,把公式填入黄格里,出来个#NAME, 求大神指点。
第一个单元格 =WEBSERVICE("http://qt.gtimg.cn/q=s_"&LOWER(A2))
第二个单元格 =VALUE(MID(C2,FIND("~~",C2)+2,FIND("~GP-A",C2)-2-FIND("~~",C2)))
PS1:不能自动刷新,需要按F9或者...
darksage
- α比β重要。投资者要做的是选择一只正确的股票,至于股市自己会照顾自己的。
赞同来自: Restone 、star 、zhjienc 、mysun 、夜慕光临Alex 、更多 »
第一个单元格 =WEBSERVICE("http://qt.gtimg.cn/q=s_"&LOWER(A2))&T(NOW())
第二个单元格 =VALUE(MID(C2,FIND("~~",C2)+2,FIND("~GP-A",C2)-2-FIND("~~",C2)))
PS1:不能自动刷新,需要按F9或者修改表格才会刷新,如果需要自动刷新还是得加VBA https://zhidao.baidu.com/question/1834774969243331020.html
PS2:因为我只需要总市值,所以其他的就没管了,腾讯接口详细 http://www.hzhcontrols.com/new-97869.html
请问调用函数的时候,如何自动填入代码?难道大家都是手工录入代码?
=getStockPrice("sh000001")
我用了indirect,但似乎不行,请教一下哪位告诉我调用方法。
赞同来自: wuyuan1900
=getStockPrice("sh000001")
我用了indirect,但似乎不行,请教一下哪位告诉我调用方法。
新鲜嫩韭菜 - 长期空仓,偶尔打游击
试了下SGXcha50cfd,不行.........
1)能不能用证券或者基金代码直接抓取其名称?
2)基金净值中的T-1净值是不是就是最新净值?例如在晚上净值公布后运行程序,这一栏是不是就是当天的净值了?T-2那栏其实是前一天的净值?
@kongzhaolei
很简单,换腾讯接口,下边有人说了
腾讯接口
0: 未知
1: 名字
2: 代码
3: 当前价格
4: 昨收
5: 今开
6: 成交量(手)
7: 外盘
8: 内盘
9: 买一
10: 买一量(手)
11-18: 买二 买五
19: 卖一
20: 卖一量
21-28: 卖二 卖五
29: 最近逐笔成交
30: 时间
31: 涨跌
32: 涨跌%
33: 最高
34: 最低
35: 价格/成交量(手)...
赞同来自: muyeshancai 、wjeep 、葱花饼 、nchyswx 、一口跳跳糖 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、更多 »
1、打开excel的VBA编辑模式(这个自行百度,WPS版本在 菜单上 开发工具->VBA编辑器中)
2、修改代码,具体如下
第一步:VBA编辑器 左侧树状条上,双击“模块1”,右边会跳出一堆代码
第二歩:找到函数 Function GetHttp(Url) 。可以使用搜索,或者直接找到大约400行左右的位置。
第三歩:修改代码(一共需要动2条,改1条代码,增加1条代码)
(1)401行代码进行修改
原为:Set objXML = CreateObject("Microsoft.XMLHTTP")
修改为:Set objXML = CreateObject("WinHttp.WinHttpRequest.5.1")
(2)404行插入一行 .setRequestHeader "Referer", "http://finance.sina.com.cn"
备注: 如果实在不会编辑代码,可以从我刚才发布的4.0版本里面找到 Function GetHttp(Url)的代码,整段复制到你现在使用的文件的代码中。
祝各位周末愉快,股市发财!
腾讯接口
0: 未知
1: 名字
2: 代码
3: 当前价格
4: 昨收
5: 今开
6: 成交量(手)
7: 外盘
8: 内盘
9: 买一
10: 买一量(手)
11-18: 买二 买五
19: 卖一
20: 卖一量
21-28: 卖二 卖五
29: 最近逐笔成交
30: 时间
31: 涨跌
32: 涨跌%
33: 最高
34: 最低
35: 价格/成交量(手)/成交额
36: 成交量(手)
37: 成交额(万)
38: 换手率
39: 市盈率
40:
41: 最高
42: 最低
43: 振幅
44: 流通市值
45: 总市值
46: 市净率
47: 涨停价
48: 跌停价
Sub 市价_Click()Sub 市价_Click()
Dim rowCount As Integer
Dim url As String
Dim sTemp As String
Dim sCode As String
rowCount = ActiveSheet.Range("A65535").End(xlUp).Row '获取行数
url = "http://hq.sin...
Dim rowCount As Integer
Dim url As String
Dim sTemp As String
Dim sCode As String
rowCount = ActiveSheet.Range("A65535").End(xlUp).Row '获取行数
url = "http://hq.sinajs.cn/list="
For i = 2 To rowCount
sCode = ActiveSheet.Range("B" & i).Text
If i = 2 Then
url = url & sCode
Else
url = url & "," & sCode
End If
Next i
'获取新浪股票行情数据,放入sTemp变量
Set objXML = CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "GET", url, False
.setRequestHeader "Referer", "finance.sina.com.cn"
.Send
sTemp = .responseText
End With
Dim rowCount As Integer
Dim url As String
Dim sTemp As String
Dim sCode As String
rowCount = ActiveSheet.Range("A65535").End(xlUp).Row '获取行数
url = "http://hq.sinajs.cn/list="
For i = 2 To rowCount
sCode = ActiveSheet.Range("B" & i).Text
If i = 2 Then
url = url & sCode
Else
url = url & "," & sCode
End If
Next i
'获取新浪股票行情数据,放入sTemp变量
With CreateObject("Microsoft.XMLHTTP")
.Open "GET", url, False
.Send
sTemp = .responseText
End With
有没有大神用这个版本的excel行情表格?这个应该怎么修改?
With CreateObject("WinHttp.WinHttpRequest.5.1")不好意思, 这个问题不是出现在楼主的excel表格里, 回帖错误, 抱歉
.Open "GET", url, False
.setRequestHeader "Referer", "http://finance.sina.com.cn"
.Send
sTemp = .responseText
End With
替换后可以使用,
但是到第32行排序就变了,第32行是空白,并...
Set objXML = CreateObject("WinHttp.WinHttpRequest.5.1")
404行插入一行
.setRequestHeader "Referer", "finance.sina.com.cn"
最终是这样子的
Set objXML = CreateObject("WinHttp.WinHttpRequest.5.1")
With objXML
.Open "Get", Url, False, "", ""
.setRequestHeader "Referer", "finance.sina.com.cn"
.Send
GetHttp = .ResponseBody
End With
刚才简单调试了下,通不过。编程三脚猫水平,今天中午解决不了,只能双休日再试试With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "GET", url, False
.setRequestHeader "Referer", "http://finance.sina.com.cn"
.Send
sTemp = .responseText
End With
替换后可以使用,
但是到第32行排序就变了,第32行是空白,并且第33行市价会排到下一行
修改这个获取行数可将错误行向下延续
但没有彻底解决问题, 希望高手解决.非常感谢
赞同来自: 小野猪BD7KWO
Error downloading URL. Your network connection may be down or your proxy settings improperly configured.
Error in urlread (line 36)
[s,status] = urlreadwrite(mfilename,catchErrors,url,varargin{:});
Error in karin_getsinadata (line 37)
s=urlread(url2Read);
今早新浪挂了
Edge
Chrome
Firefox



京公网安备 11010802031449号