![量化研究体系:以7大模块为核心](https://wfqqreader-1252317822.image.myqcloud.com/cover/955/43737955/b_43737955.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2 期货成交持仓排名数据下载脚本
1.1节中的代码是调用WSD类型的数据的案例,在万得量化接口中还有一种数据集类型的数据是通过WSET函数来下载的。我们以下载期货的成交持仓排名数据为案例来讲解。整个程序的逻辑是:首先从数据库查询最后更新日期,在万得量化接口获取未下载数据的日期列表,然后遍历三大商品期货交易所的板块、调用WSET函数获取商品期货合约列表,并遍历下载每个商品期货品种的成交持仓排名数据,之后整理数据的结构,最后上传到数据库。对于金融期货模块也是一样的,只是只下载中金所金融期货板块而已。具体代码如下。
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_33_1.jpg?sign=1738925219-9HMkRPCmiVPDSEf3wXp0OvRkZgb2VUeD-0-cf0a106adfc183dd1da59080f0a8c617)
首先需要做更新数据之前的准备工作,包括清空上一程序遗留在workspace的变量、启动量化接口、发送提示邮件等。
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_33_2.jpg?sign=1738925219-Y3hBbfHOxDDMdemNKl4XpyF17BpOMN2G-0-0368c50250f380e8da5df7fbd47e96c3)
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_34_1.jpg?sign=1738925219-NZzzDgUdIJ7ML98SIHVp9VR7HtaAqJN0-0-9645e443e0edd2101790e9d82211ee84)
接下来开始具体的数据下载,包括下载日期、期货合约代码的获取、合约列表的初始化、参数的设定、合约代码的处理、品种名称的处理。
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_34_2.jpg?sign=1738925219-Yti9dq5VDfjdUrH8ZLxWR1edvrtOup8q-0-342146cfc12aa4fe00fc21434da32c97)
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_35_1.jpg?sign=1738925219-RftMoEUJr43tRURIqSoeEF7ts1ZVM5JZ-0-78bcd362fe55f06863524c9d8f761835)
在以上两步准备工作完成之后,下面正式开始数据的下载和保存。
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_35_2.jpg?sign=1738925219-iXra0Rvk2BlGx7hwIKXK2x1Y95zzOdfk-0-fb37ec1c1f06e9b9b31724a487da4b9b)
在下载完数据后,将所获得的数据上传到数据库。在上传之前,同样需要做一些准备工作,包括获得品种名称、初始化上传变量、清洗数据等。
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_35_3.jpg?sign=1738925219-KBVlRP8BObT8EhxYHtMbyaDmJiNhft0L-0-d82acc37a68713ac7985fdf522aa4837)
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_36_1.jpg?sign=1738925219-LjhkDdO9Pe4XhMueT5WVZLNLCTIdt6xa-0-d2dc2f5537aa05be8b6e953ce9d459fb)
下面进行数据的上传,首先将数据库中的日期序列和交易所的日期序列做差集,获得未更新的日期序列,可以通过下面的代码实现。
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_36_2.jpg?sign=1738925219-sDObfieGC33IoEB01zpk6GSu4hWMBqEz-0-4e984b4b41d4d7a3de89aac02b03aeb9)
在获取未更新的日期序列后,接下来通过遍历对应日期,对未更新的日期进行数据更新,并保存数据。
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_36_3.jpg?sign=1738925219-BYW2GLiK1Efvq0vRk6NIKBYOxIsHaEW0-0-c0c7561224475a312096b9fcdb6a1e8f)
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_37_1.jpg?sign=1738925219-Rz0rTM4zVqXd2kdwwGr6GzYcFOJp4YTa-0-b4ea1791a565abb459230432d672bc82)
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_38_1.jpg?sign=1738925219-NhIUxp7F9sWkKQscW7aE0XzAVvJDkOvd-0-a120771ccd2acced9afe8f224057f23c)
数据上传完毕后,可以再进行一些收尾的工作,比如发送数据更新完毕的通知,最后不要忘记关闭万得量化接口。
![](https://epubservercos.yuewen.com/6BD6CE/23020635709727606/epubprivate/OEBPS/Images/42052_38_2.jpg?sign=1738925219-HJ4AlklKJrfhfGY2vIrZ63myMBbL93JT-0-b4d1a8b49df9bbf88ea56d0df1241cb4)