配置文件
DataAPI通过配置文件来连接上层方法与底层数据源。一般地,配置文件是一个满足了以下条件的python脚本:
- 声明了全局变量candle,其指向的对象的类继承自
fxdayu_data.data_api.basic.candle.BasicCandle
- 声明了全局变量factor,其指向的对象的类继承自
fxdayu_data.data_api.basic.factor.BasicFactor
- 声明了全局变量info,其指向的对象的类继承自
fxdayu_data.data_api.basic.info.BasicInfo
配置文件模板
为了简化配置文件编写,DataAPI提供了配置文件模板,对于已知的数据源,可以直接导出模板再在模板上做相应修改以匹配数据源。可通过以下命令导出配置文件模板。
DataAPI export [OPTIONS] [PATH]
PATH: 要导出文件的路径,如果缺省则导出为当前目录的config.py文件。 OPTIONS: -t, --type: 指定导出的配置文件相关的数据源,目前支持以mongo或bundle作为数据源。缺省默认为mongo。 -n, --name: 将该配置文件以指定的名字添加进DataAPI,缺省则不添加。
目前提供了mongodb模板和bundle模板。
- mongodb模板
# encoding:utf-8
from pymongo import MongoClient
from fxdayu_data.data_api import mongo
# client用于与mongodb连接,MongoClient是由mongodb官方提供的python连接mongodb客户端。
client = MongoClient()
# candle指向DataAPI内部实现的从mongodb读取指定数据的对象。
# 其中复权数据来自db: adjust, 小时数据来自db: Stock_H, 日线数据来自db: Stock_D。
candle = mongo.candle(client, "adjust", H="Stock_H", D="Stock_D")
# factor指向DataAPI内部实现的从mongodb读取指定数据的对象,数据来自db: factor。
factor = mongo.factor(client, "factor")
# info指向DataAPI内部实现的从mongodb读取指定数据的对象,数据来自db: info。
info = mongo.info(client, "info")
可通过以下命令导出:
DataAPI export -t mongo
- bundle模板
# encoding:utf-8
from fxdayu_data.data_api import bundle
import os
# 获取主目录,主目录为FILE(配置文件路径)所在的目录。
home = os.path.split(FILE)[0]
# candle指向DataAPI内部实现的从bundle读取指定数据的对象。
candle = bundle.candle(
# 复权数据来自主目录下名为ex_cum_factor.bcolz的bundle数据。
os.path.join(home, "ex_cum_factor.bcolz"),
# 日线数据来自主目录下名为Stock_D.bcolz的bundle数据。
D=os.path.join(home, "Stock_D.bcolz"),
# 小时数据来自主目录下名为Stock_H1.bcolz的bundle数据。
H=os.path.join(home, "Stock_H1.bcolz")
)
# factor指向DataAPI内部实现的从bundle读取指定数据的对象,因子数据来自主目录下名为factors.bcolz的bundle数据。
factor = bundle.factor(os.path.join(home, "factors.bcolz"))
# info指向DataAPI内部实现的读取指定数据的对象,数据来自主目录下名为info的数据集。
info = bundle.info(os.path.join(home, "info"))
可通过以下命令导出:
DataAPI export -t bundle