用Excel实现自动获取期货、期权、股票行情及下载历史数据

news/2024/11/17 18:47:58/

距离上次发这个贴子已经过去了半年了,期间又在之前的基础上完善细化了多版,可能比下面介绍的又多了些功能,如果要看新的成品的演示和获取软件程序,这里就总结在开头,如果想看细节,请直接下滑:

股票行情、基本面、财报、历史数据批量下载器:https://www.bilibili.com/video/BV12T4y1h7Fd/

股票资金流向历史分时资金下载器:https://www.bilibili.com/video/BV1ma411v7FM/

股票国家队持股下载器:https://www.bilibili.com/video/BV1E541117ei/

股票历史分价表下载器:https://www.bilibili.com/video/BV1cu411r7qp/

股票高频Tick历史数据下载器:https://www.bilibili.com/video/BV16g411S7nU/

股票历史市盈率下载器:https://www.bilibili.com/video/BV1fr4y1u7kY/

期货期权行情及历史数据下载器:https://www.bilibili.com/video/BV1sS4y1C7GU/

期货成交持仓龙虎榜下载器:https://www.bilibili.com/video/BV1ES4y1h7mk/

——————分割线20220917——————

最初诞生VBA网抓的想法,还是因为自己炒股想要更快速获取信息,又不想买费用高昂的券商软件。后来调查发现,其实Python才是最出名的爬虫制作工具,但是要安装环境,最后做出来又只能在自己电脑上用,通用性不太强,所以就把目光对准了使用Excel或者VBA网抓。

(一)使用Excel自带的Power Query获取网页表格

如果一个方法能解决现有需求,说实话,我是没有动力去找第二个方法的。在使用VBA网抓之前,我就已经开始使用Excel的Poewr Query在做股票信息分析,最开始用的Power Query的“新建查询”功能,从网页获取表格数据(具体方法可以参考:https://finance.sina.com.cn/tech/2021-05-06/doc-ikmyaawc3588981.shtml),可以直接更新到Excel表格中。数据源当时选取的是中财网数据引擎(https://data.cfi.cn/cfidata.aspx),不得不说这个网站真的对使用Excel自动网页数据源获取真的非常友好,因为都是可以识别的表格形式数据。更新Excel后是这个样子。之后利用简单学习的Power Query操作就可以快速清洗并分析处理大量数据。

然而,后来其实发现了这个方法的局限性,就是对数据源要求太高了,很多网站的表格数据,用Excel导入网站数据源的形式识别不了,而且我想要的股票或者期货历史数据,也不在这个网站中。并且Power Query这个方法,WPS是不支持的。这样无奈最后放弃了这个思路,开始探索真正的VBA网抓实现方法。

(二)Excel VBA 实现期货行情获取及历史数据下载

第一步,选择数据源。如果是用Python网抓,其实数据源是非常好找的,网上很多都是为Python开放的接口,开发者甚至都不需要找源网页,直接用各种接口提供的现成的结构化数据就可以,连数据处理的步骤都省略了。然而,毕竟还有很多人像我一样,电脑上没有Python,电脑上更不会去安装Python库(这些现成的接口都需要在电脑上安装Python库),或者说不希望看到换了电脑软件就用不了的情况,所以数据源还是选择通用一点的。经过调研中国的期货市场情况后,发现其实获取数据只要从四大交易所(郑州、大连、上海、中国金融期货交易所)官网获取就可以了,这些网站都提供有下载链接和一键下载的功能。然而,在后续分析html请求和响应的时候,最让我这个强迫症患者接受不了的情况发生了,四个交易所里面,三个可以抓,一个有反爬虫抓不了。。。这样还得再找其余的接口,不行,接受不了!后来发现,新浪接口真是个宝贝,四个交易所都包括了,好的就决定分析这个网页,然后抓取,成功!附新浪接口链接(需要自行分析这个网页,找到适用的名称规则并简化):

实时行情:http://vip.stock.finance.sina.com.cn/quotes_service/view/qihuohangqing.html#titlePos_1

历史数据:https://vip.stock.finance.sina.com.cn/q/view/vFutures_History.php?jys=czce&pz=AP&hy=AP0&breed=AP0&type=inner&start=2021-11-23&end=2021-12-23

第二步,代码实现。VBA网抓入门可以参考B站的一位UP主发布的免费教程(链接https://www.bilibili.com/video/BV1uJ411t7hY/)在这次抓取期货时,先分析的新浪财经的网页,发现这个接口并不复杂,可以直接用Winhttp请求,然后用正则表达式处理返回数据即可。核心代码如下:

发送请求部分

正则表达式匹配及写入数组部分

需要注意的是,在更新产品行情时,产品的名称网抓返回的是unicode码,所以还需要额外将其转为汉字,这部分编写了一个自定义函数,代码如下:

网抓的部分还有一个需要注意的就是对返回json格式数据的处理。其实VBA可以引用script组件,实现对json数据的快捷方便的解析,而且引用此类组件解析json,自动会实现unicode转汉字。但是此类方法测试中wps运行正常,但是有的excel会报错,说是缺少ActiveX控件的429错误,这个就不好解决了。一般这类错误不是excel版本导致的,大概率是没有完整安装,或者同时安装wps及office导致某些系统组件注册失败。这种错误通过修改代码解决不了(除非更改代码逻辑,不调用其余组件),是系统的问题,例如注册表项受损、操作系统的文件被删除、安装了不完整的excel、系统文件受损等。所以最后为了增加兼容性,避免此类错误,又重新修改了代码,不用script组件解析json,而是用正则表达式。

网抓后,简单写一些数据处理的函数公式,以及设计了两种存储模式(存储到当前工作簿,或新建工作簿),这样软件功能就算是完整了。计算日期的时候,excel自带的workday函数非常好用。

第三步,交互窗体。最后设计了一个用于数据输入的交互窗体,代码的话主要就是用到了inputbox方法,核心代码及界面如下:

软件地址:https://item.taobao.com/item.htm?ft=t&id=664624608973

用类似的方法实现股票信息获取的教程,可以参考我的另一篇文章以股票历史数据抓取为例,浅谈踩过的VBA网抓的“坑” - 知乎


http://www.ppmy.cn/news/136147.html

相关文章

期货行情交易软件

阅读目录 开始整体结构服务端实现后台管理客户端交易 整套期货行情交易软件均由C#.NET平台实现,其中包括行情转发服务端、行情服务端、交易服务端、行情管理后台、交易管理后台以及转发管理后台。行情转发服务端负责实时行情数据的转发,交易服务端负责按…

文华财经指标公式博易大师软件指标公式指南针多空资金指标,最精准买卖点提示指标wh6赢顺云随身行指标

量创新高:V>HHV(V,0); 对昨日涨幅:(C/DYNAINFO(3)-1)*100<2.50;{涨幅控制2个点以内} 每日一点:量两步 AND 价两步 AND 价上岗量破5 AND 量起爆 AND 价创新高 AND 量创新高 AND 对昨日涨幅; TA:BArslAST(TIME100000); TC:REF(HHV(C,0),TA1); TV:REF(HHV(V,0),TA1); ZF:C/D…

国内十大白银期货APP最新排名

现在越来越多的人都有了一定的投资理财的意识&#xff0c;因此也会规划自己的资金&#xff0c;按照自己的实际情况进行理财。白银期货投资也是理财产品的一种&#xff0c;其与炒股颇为类似&#xff0c;白银期货理财的风险较高&#xff0c;比较适合爱冒险&#xff0c;激进类型的…

贵金属实时行情看盘软件排行榜(top 10)

贵金属实时行情看盘软件哪个好&#xff0c;还是得看MT4软件&#xff0c;MT4是俄罗斯软件公司MetaQuotes生产的一款以外汇和贵金属交易为主的软件&#xff0c;其功能十分全面&#xff0c;目前全球有超过100家贵金属公司和30个国家的银行选择MT4软件作为网络交易平台。MT4综合行情…

文华财经指标公式博易大师软件指标公式期货多空买卖指标图,文华加密破解二次加密

天:ma(CLOSE,25)MA(CLOSE,25)*20/100,COLORRED,LINETHICK2; 强势线:MA(CLOSE,25)MA(CLOSE,25)*6/100,COLORYELLOW,LINETHICK2; 天2:MA(CLOSE,18)MA(CLOSE,18)*20/100,COLORFFFFFF,LINETHICK1; stICKLINE(C>强势线,H,L,0,1),COLORFFFFFF; STICKLINE(C>强势线,C,O,2,1),COL…

个股解析软件排名推荐,股票行情分析软件排名

炒股软件排名前十强&#xff0c;那个好些&#xff1f; 第1名&#xff1a;同花顺。老牌付费炒股软件&#xff0c;凭借多年的积累具有一定数量的付费人群。第2名&#xff1a;经传多赢。7大经典盈利模式&#xff0c;一站式解决炒股难题。第3名&#xff1a;大智慧。拥有最大数量的…

前十名现货黄金价格行情分析软件

很多刚接触现货黄金投资的新人&#xff0c;也许都不太了解现货黄金价格行情分析软件&#xff0c;每个不同时段中的现货黄金价格行情分析图&#xff0c;反映的是该时段的多空角力情况&#xff0c;从而了解金价大致趋向&#xff0c;由此指引投资者作出合理的交易计划&#xff0c;…

什么是期货/股票分仓软件?

期货、股票分仓系统是将一个或多个真实账户&#xff08;主账户&#xff09;中的资金&#xff0c;虚拟地分配给任意个子账户&#xff0c;每个子账户使用分配给自己的资金额度进行投资。 本系统可为每个子账户设置不同的保证金率、手续费率&#xff0c;并在收盘后进行结算。 本…