【python量化】python通过新浪财经获取金融衍生品历史数据

写在前面

量化回测必不可少的就是历史数据了,一般要求数据精度比较高的方式就是从数据服务商处购买数据服务,它们一般会将历史数据进行整理,免去了我们需要数据清洗的过程,提供数据服务的机构有很多,如RQdata、Wind等。如果对数据的精度要求不高,周期也没有什么要求的话,可以通过一些免费的Api接口来获取,如tushare、yahoo以及新浪财经。由于之前用过新浪财经进行爬取历史数据,所以本文先整理和总结一下新浪财经获取历史数据的方式。

获取股票历史数据

股票支持的周期有5m、15m、30m、60m以及日线,新浪股票数据API接口如下:

5分钟:
https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=5&datalen=1023
15分钟:
https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=15&datalen=1023
30分钟:
https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=30&datalen=1023
60分钟:
https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=60&datalen=1023

其中symbol参数就是我们需要的品种的代码,scale是周期,datalen是获取数据的长度,最大就是1023。

获取期货历史数据
商品期货

商品期货支持的周期有5m、15m、30m、60m以及日线,先贴一下新浪期货的商品期货API接口:

5分钟:
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine5m?symbol=rb1910

15分钟:
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine15m?symbol=rb1910

30分钟:
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine30m?symbol=rb1910

60分钟:
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine60m?symbol=rb1910

日K线:
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=rb1910

在使用时,只需要把其中的rb1910换成需要的合约即可。得到的数据是以当前时刻为基准,往前推移一段时间的历史数据。

股指期货

股指期货支持的周期有5m、15m、30m、60m以及日线,先贴一下新浪财经的股指期货API接口:

5分钟:
http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine5m?symbol=IF1908

15分钟:
http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine15m?symbol=IF1908

30分钟:
http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine30m?symbol=IF1908


60分钟:
http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine60m?symbol=IF1908

日线:
http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesDailyKLine?symbol=IF1908

通过上面的股票、商品期货和股指期货接口得到的是json格式的数据,所以需要对得到的json数据进行解析,下面是获取历史数据的代码,如需要不同周期或者不同品种的数据只需要更改一下url即可,下面的代码以获取期货数据为例:

from urllib import request
import json


def get_data(id):
    url_60m = 'http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine5m?symbol='
    url = url_60m + id
    req = request.Request(url)
    rsp = request.urlopen(req)
    res = rsp.read()
    res_json = json.loads(res)


    bar_list = []

    res_json.reverse()
    for line in res_json:
        bar = {}
        bar['date'] = line[0]
        bar['open'] = float(line[1])
        bar['high'] = float(line[2])
        bar['low'] = float(line[3])
        bar['close'] = float(line[4])
        bar['vol'] = int(line[5])
        bar_list.append(bar)

    print(bar_list)

if __name__ == '__main__':
    get_data('rb1910')
  • 7
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python量化金融领域有广泛的应用,有很多三方库可供选择。其中一些库包括: 1. Numpy:用于数值计算和数据处理的Python库。 2. Pandas:提供了高效的数据结构和数据分析工具,用于处理和分析大规模数据集。 3. Seaborn:基于Matplotlib的数据可视化库,可以帮助用户创建漂亮且具有吸引力的统计图表。 4. backtrader:一个开源的量化交易框架,可用于开发和回测交易策略。 5. algorithmic-trading-with-python:该库是《Python算法交易》一书的源码和数据,提供了实现算法交易的示例代码。 6. pymc3:一个用Python实现的概率编程库,可用于贝叶斯建模和用Theano实现概率机器学习。 这些库可以帮助量化金融从业者进行数值运算、衍生品定价、回溯检验、风险管理、数据爬取和可视化等方面的工作。通过使用这些库,Python程序员可以更加高效地解决量化金融领域的问题。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [史上最全的Python定量金融三方库汇总](https://blog.csdn.net/weixin_42731853/article/details/108832458)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值