欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python量化学习-获取证券数据的几种方式

程序员文章站 2022-06-28 17:17:57
I am not a designer nor a coder. I'm just a guy with a point-of-view and a computer. 翻译:俺不是码畜,俺只是一条对着电脑有点想法的图狗。 链接:https://zhuanlan.zhihu.com/p/35817328经验一旦遇到问题,请过滤掉专家的意见,只采纳跟你有类似经历的人的意见。做好最坏的打算,以最积极的心态去面对,而不是逃避。学不学编程,完全取决于是否想学,其他的别多想。种一棵树最好的时间是十...
I am not a designer nor a coder. I'm just a guy with a point-of-view and a computer. 翻译:俺不是码畜,俺只是一条对着电脑有点想法的图狗。 链接: https://zhuanlan.zhihu.com/p/35817328

经验

  • 一旦遇到问题,请过滤掉专家的意见,只采纳跟你有类似经历的人的意见。
  • 做好最坏的打算,以最积极的心态去面对,而不是逃避。
  • 学不学编程,完全取决于是否想学,其他的别多想。
  • 种一棵树最好的时间是十年前,其次是现在。

 

yeayee:Python数据分析及可视化实例目录​zhuanlan.zhihu.comPython量化学习-获取证券数据的几种方式

 

 

新浪财经API

from urllib import request
import json
import pandas as pd

股票

def get_stock_data(id, scale, data_len):
    '''
    symnol = 股票代码
    scale = 5,15,30,60
    datalen = 获取数据长度,最大1023
    '''
    # 拼接API的url
    url = 'http://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol={0}&scale={1}&datalen={2}'.format(id, scale, data_len)
    # 发起请求
    req = request.Request(url)
    # 获取响应
    rsp = request.urlopen(req)
    # 读取响应结果
    res = rsp.read()
    # 将json序列转换为Python对象
    res_json = json.loads(res)
    # bar列表
    bar_list = []
    # 将结果逆序
    res_json.reverse()
    # 遍历列表
    for dict in res_json:
        bar = {}
        bar['date'] = dict['day']
        bar['open'] = float(dict['open'])
        bar['high'] = float(dict['high'])
        bar['low'] = float(dict['low'])
        bar['close'] = float(dict['close'])
        bar['vol'] = int(dict['volume'])
        bar_list.append(bar)
    # 将结果转换为DataFrame对象
    df = pd.DataFrame(data=bar_list)
    return df
df = get_stock_data('sz002415', 30, 30)
df.head()

Python量化学习-获取证券数据的几种方式

期货

def get_future_data(id, scale):
    # 拼接API的url
    url = 'http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine{0}m?symbol={1}'.format(scale, id)
    # 发起请求
    req = request.Request(url)
    # 获取响应
    rsp = request.urlopen(req)
    # 读取响应结果
    res = rsp.read()
    # 将json序列转换为Python对象
    res_json = json.loads(res)
    # bar列表
#     print(res_json)
    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)
    # 将结果转换为DataFrame对象
    df = pd.DataFrame(data=bar_list)
    return df
df = get_future_data('rb1910', 5)
df.head()

Python量化学习-获取证券数据的几种方式

其他接口:https://blog.csdn.net/afgasdg/article/details/86071921

baostock获取沪深股票历史数据(开放)

http://baostock.com/baostock/index.php

import baostock as bs
import pandas as pd

#### 登陆系统 ####
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)
login success!
login respond error_code:0
login respond  error_msg:success
#### 获取历史K线数据 ####
# 详细指标参数,参见“历史行情指标参数”章节
rs = bs.query_history_k_data_plus("sz.002415",
    "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,peTTM,pbMRQ,psTTM,pcfNcfTTM,isST",
    start_date='2020-01-01', end_date='2020-12-28', 
    frequency="d", adjustflag="3") #frequency="d"取日k线,adjustflag="3"默认不复权
#### 打印结果集 ####
data_list = []
while (rs.error_code == '0') & rs.next():
    # 获取一条记录,将记录合并在一起
    data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
#### 结果集输出到csv文件 ####
# result.to_csv("D:/history_k_data.csv", encoding="gbk", index=False)
# print(result)
result.tail()

Python量化学习-获取证券数据的几种方式

tushare获取证券数据(高级权限需要积分)

https://tushare.pro/

import tushare as ts
pro = ts.pro_api('****************************')

历史行情

df = pro.daily(ts_code='002415.SZ', start_date='20200101', end_date='20201228')  # 海康威视
df.head()

Python量化学习-获取证券数据的几种方式

涨跌数据

df = pro.limit_list() # 获取涨跌数据,需要权限
df.head()

Python量化学习-获取证券数据的几种方式

 

 

 

本文地址:https://blog.csdn.net/baidu_22713341/article/details/111908268

相关标签: 08_量化分析