Python量化交易实战-10实时获取股票的数据函数封装

auto-trade xuhss 1069℃ 0评论

实时获取股票的数据函数封装

实现股票数据获取的模块及方法

从这节课开始 我们就开始构建所谓的量化交易系统,量化交易平台功能模块。

202106051034020 - Python量化交易实战-10实时获取股票的数据函数封装

上面是量化交易系统的功能模块图,主要分为3块,第一块是行情数据,

  • 行情记录与历史数据:主要是股票的标的信息,财务数据,估值数据,存储的历史记录,将数据导出到csv中存储起来。

  • 交易策略和回归测试模块:主要包含择时策略和选股策略,针对这些策略,为了保证数据的有效性和准确性,还需要对数据进行回测。

  • 交易数据管理与查询:主要是自动交易,以及数据管理和查询,比如说递交委托,持仓信息和收益信息。

总的来说 量化交易系统以后端的功能为主,图表可视化部分相对来说比较粗糙一点,我们可以利用matplotlib或者echart这样的可视化库去结合Python后端代码来实现数据的可视化,方便大家理解交易逻辑是什么样子的,如果在加上前端的功能实现的话,就会牵扯很多的功能模块,比如说我要设计页面框架,是选flask还是django。所以我们把前端尽量做的简单一点。

一、代码实操

这节课主要做2件事情。

第一个我们会在项目的根目录创建README.md

表示对这个项目的说明,如果你是程序员,就应该很熟悉,这个文档的作用就是告诉来使用我们这个项目的人,我这个源代码是干什么的,有哪些模块,调用关系有哪些。

第二个我们会在stock.py这个文件当中,定义一些常用的数据获取方法。

def 获取所有A股股票列表
def 获取单个股票行情数据
def 导出股票行情数据
def 转换股票行情周期
def 获取单个股票财务指标
def 获取单个股票估值指标

1.1创建README.md

在项目的根目录创建一个叫做”README.md“文件:

# XuhssQuant

## 功能模块

### 行情记录(Data)

#### stock
- 获取所有A股股票列表
- 获取单个股票行情数据
- 导出股票相关的数据
- 将数据转换股票行情指定周期
- 获取单个股票财务指标 
- 获取单个股票估值指标

1.2定义常用的数据获取方法

然后在stock.py中创建所有的函数

# 获取所有A股股票列表
def get_stock_list():
    stock_list = list(get_all_securities(['stock']).index)
    return stock_list
# 获取单个股票行情数据
def get_single_price(stock_code, timefrequency, startdate, enddate):
    data = get_price(stock_code, start_date=startdate, end_date=enddate,count=5, frequency=timefrequency)
    return data

导出股票行情数据 需要创建一个文件夹 用于存储行情数据:

20210605103426356 - Python量化交易实战-10实时获取股票的数据函数封装

# 导出股票相关的数据(type:存储的文件夹的名称[Finace/Price])
def export_data(data, filename, type):
    fileroot = 'D:/software/00/01推广/XuhssQuant/Data/' + type +'/' + filename + '.csv'
    data.to_csv(fileroot)
    print('已经存储成功,存储路径为', fileroot)
# 将数据转换股票行情指定周期
def transfer_price_freq(data, timefrequency):
    df_trans = pd.DataFrame()
    df_trans["open"] = data["open"].resample(timefrequency).first()
    df_trans['close'] = data['close'].resample(timefrequency).last()
    df_trans['high'] = data['high'].resample(timefrequency).max()
    df_trans['low'] = data['low'].resample(timefrequency).min()
    df_trans['volume(sum)'] = data['volume'].resample(timefrequency).sum()
    df_trans['money(sum)'] = data['money'].resample(timefrequency).sum()
    return df_trans
# 获取单个股票财务指标 
def get_single_finance(code, date, statDate):
    data = get_fundamentals(query(indicator).filter(indicator.code == code), date = date, statDate=statDate)
    return data
# 获取单个股票估值指标
def get_single_valuation(code, date, statDate):
    data = get_fundamentals(query(valuation).filter(valuation.code == code), date = date, statDate=statDate)
    return data

转载请注明:xuhss » Python量化交易实战-10实时获取股票的数据函数封装

喜欢 (1)

您必须 登录 才能发表评论!