转载:利用Python脚本来获取期货行情数据

因为自己最近在学习做期货交易,想要下载期货的行情数据来做分析。有一些交易软件是可以导出数据的,但是导出的过程还是需要很多的手工操作,自己在想能不能通过Python程序来实现呢。

新浪期货数据接口介绍

通过在网上搜索找到了新浪财经的期货数据API用法,详细可以参考这个链接:

利用Python脚本来获取期货行情数据

 http://blog.sina.com.cn/s/blog_7ed3ed3d0101gphj.html

我主要使用的是日线图周期的历史数据接口: http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=C0

上面的例子是请求玉米连续(代码为C0)的所有日线图的行情数据。

利用Python来获取数据

下面是详细的代码:

import requests
import sys

future_code = sys.argv[1]
url_str = ('http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=' + future_code)
r = requests.get(url_str)
r_json = r.json()
r_lists = list(r_json)
print('date,open,high,low,close,vol,code')
for r_list in r_lists:
    for v in r_list:
        print(v + ',',end='')
    print(future_code)

代码说明:使用python的第三方模块requests可以很方便的对api发送请求,将返回的json格式数据转换为列表格式,并且通过for循环来打印出来。 脚本的使用方法,将上面的代码保存为get_sina_api_data.py。在命令行中通过下面命令来调用程序。

#参数中输入期货代码C0
$ python3 get_sina_api_data.py C0 > C0.csv  # 将程序输出的数据保存到C0.csv文件中

程序执行成功后可以通过下面命令来查看结果:

#查看文件的前10行
$ head C0.csv
date,open,high,low,close,vol,code
2005-01-04,1150.000,1154.000,1143.000,1145.000,101322,C0
2005-01-05,1141.000,1152.000,1141.犀利士
000,1151.000,115404,C0
2005-01-06,1151.000,1157.000,1151.000,1154.000,116530,C0
2005-01-07,1162.000,1164.000,1156.000,1158.000,142096,C0
2005-01-10,1158.000,1159.000,1152.000,1155.000,125086,C0
2005-01-11,1156.000,1158.000,1154.000,1155.000,126812,C0
2005-01-12,1153.000,1158.000,1153.000,1157.000,153368,C0
2005-01-13,1150.000,1156.000,1149.000,1155.000,139970,C0
2005-01-14,1155.000,1157.000,1154.000,1156.000,130966,C0

#先将文件转换为csv表格格式再查看文件的前10行
$ csvlook C0.csv | head
|-------------+----------+----------+----------+----------+---------+-------|
|  date       | open     | high     | low      | close    | vol     | code  |
|-------------+----------+----------+----------+----------+---------+-------|
|  2005-01-04 | 1150.000 | 1154.000 | 1143.000 | 1145.000 | 101322  | C0    |
|  2005-01-05 | 1141.000 | 1152.000 | 1141.000 | 1151.000 | 115404  | C0    |
|  2005-01-06 | 1151.000 | 1157.000 | 1151.000 | 1154.000 | 116530  | C0    |
|  2005-01-07 | 1162.000 | 1164.000 | 1156.000 | 1158.000 | 142096  | C0    |
|  2005-01-10 | 1158.000 | 1159.000 | 1152.000 | 1155.000 | 125086  | C0    |
|  2005-01-11 | 1156.000 | 1158.000 | 1154.000 | 1155.000 | 126812  | C0    |
|  2005-01-12 | 1153.000 | 1158.000 | 1153.000 | 1157.000 | 153368  | C0    |

参考文献:

http://blog.sina.com.cn/s/blog_7ed3ed3d0101gphj.html

发表评论