hikyuu 证券管理

构建K线数据查询条件

class hikyuu.Query
K线数据查询条件,一般在Python中使用 Query 即可,不用指明 Query。

简化 Query.KType 枚举值

Query.DAY - 日线类型
Query.WEEK - 周线类型
Query.MONTH - 月线类型
Query.QUARTER - 季线类型
Query.HALFYEAR - 半年线类型
Query.YEAR - 年线类型
Query.MIN - 1分钟线类型
Query.MIN5 - 5分钟线类型
Query.MIN15 - 15分钟线类型
Query.MIN30 - 30分钟线类型
Query.MIN60 - 60分钟线类型
简化 Query.RecoverType 枚举值

Query.NO_RECOVER - 不复权
Query.FORWARD - 前向复权
Query.BACKWARD - 后向复权
Query.EQUAL_FORWARD - 等比前向复权
Query.EQUAL_BACKWARD - 等比后向复权
start
起始索引,当按日期查询方式创建时无效,为 constant.null_int64

end
结束索引,当按日期查询方式创建时无效,为 constant.null_int64

start_datetime
起始日期,当按索引查询方式创建时无效,为 constant.null_datetime

end_datetime
结束日期,当按索引查询方式创建时无效,为 constant.null_datetime

query_type
查询方式

ktype
查询的K线类型

recover_type
查询的复权类型

QueryType
查询方式定义

DATE - 按日期方式查询
INDEX - 按索引方式查询
KType
K线类型枚举定义

DAY - 日线类型
WEEK - 周线类型
MONTH - 月线类型
QUARTER - 季线类型
HALFYEAR - 半年线类型
YEAR - 年线类型
MIN - 1分钟线类型
MIN5 - 5分钟线类型
MIN15 - 15分钟线类型
MIN30 - 30分钟线类型
MIN60 - 60分钟线类型
RecoverType
K线复权类别枚举定义

NO_RECOVER - 不复权
FORWARD - 前向复权
BACKWARD - 后向复权
EQUAL_FORWARD - 等比前向复权
EQUAL_BACKWARD - 等比后向复权
class hikyuu.Query

StockManager/Block/Stock

class hikyuu.StockManager
证券信息管理类

static instance()
获取StockManager单例实例

init(self, baseInfoParam, blockParam, kdataParam, preloadParam, hkuParam)
初始化

参数:	
baseInfoParam (Parameter) – 基础信息数据驱动参数
blockParam (Parameter) – 板块信息数据驱动参数
kdataParam (Parameter) – K线数据驱动参数
preloadParam (Parameter) – 预加载参数
hkuParam (Parameter) – 其他hikyuu参数
get_base_info_parameter(self)
返回:	基础信息数据驱动参数
返回类型:	Parameter
get_block_parameter(self)
返回:	板块信息数据驱动参数
返回类型:	Parameter
get_kdata_parameter(self)
返回:	K线数据驱动参数
返回类型:	Parameter
get_preload_parameter(self)
返回:	预加载参数
返回类型:	Parameter
get_hikyuu_parameter(self)
返回:	其他hikyuu参数
返回类型:	Parameter
tmpdir(self)
获取用于保存零时变量等的临时目录,如未配置则为当前目录 由m_config中的“tmpdir”指定

get_market_list(self)
获取市场简称列表

返回类型:	StringList
get_market_info(self, market)
获取相应的市场信息

参数:	market (string) – 指定的市场标识(市场简称)
返回:	相应的市场信息,如果相应的市场信息不存在,则返回Null<MarketInfo>()
返回类型:	MarketInfo
get_stock_type_info(self, stk_type)
获取相应的证券类型详细信息

参数:	stk_type (int) – 证券类型,参见: constant
返回:	对应的证券类型信息,如果不存在,则返回Null<StockTypeInfo>()
返回类型:	StockTypeInfo
get_stock(self, querystr)
根据”市场简称证券代码”获取对应的证券实例

参数:	querystr (str) – 格式:“市场简称证券代码”,如”sh000001”
返回:	对应的证券实例,如果实例不存在,则Null<Stock>(),不抛出异常
返回类型:	Stock
__getitem__()
同 get_stock

get_block(self, category, name)
获取预定义的板块

参数:	
category (str) – 板块分类
name (str) – 板块名称
返回:	
板块,如找不到返回空Block

返回类型:	
Block

get_block_list(self[, category])
获取指定分类的板块列表

参数:	category (str) – 板块分类
返回:	板块列表
返回类型:	BlockList
get_trading_calendar(self, query[, market='SH'])
获取指定市场的交易日日历

参数:	
query (Query) – Query查询条件
market (str) – 市场简称
返回:	
日期列表

返回类型:	
DatetimeList

is_holiday(self, d)
判断日期是否为节假日

参数:	d (Datetime) – 待判定的日期
add_temp_csv_stock(self, code, day_filename, min_filename[, tick=0.01, tick_value=0.01, precision=2, min_trade_num = 1, max_trade_num=1000000])
从CSV文件(K线数据)增加临时的Stock,可用于只有CSV格式的K线数据时,进行临时测试。

CSV文件第一行为标题,需含有 Datetime(或Date、日期)、OPEN(或开盘价)、HIGH(或最高价)、LOW(或最低价)、CLOSE(或收盘价)、AMOUNT(或成交金额)、VOLUME(或VOL、COUNT、成交量)。

参数:	
code (str) – 自行编号的证券代码,不能和已有的Stock相同,否则将返回Null<Stock>
day_filename (str) – 日线CSV文件名
min_filename (str) – 分钟线CSV文件名
tick (float) – 最小跳动量,默认0.01
tick_value (float) – 最小跳动量价值,默认0.01
precision (int) – 价格精度,默认2
min_trade_num (int) – 单笔最小交易量,默认1
min_trade_num – 单笔最大交易量,默认1000000
返回:	
加入的Stock

返回类型:	
Stock

remove_temp_csv_stock(self, code)
移除增加的临时Stock

参数:	code (str) – 创建时自定义的编码
class hikyuu.StockManager
class hikyuu.Stock
证券对象

id : 内部id,一般用于作为map的键值使用
market : 获取所属市场简称,市场简称是市场的唯一标识
code : 获取证券代码
market_code : 市场简称+证券代码,如: sh000001
name : 获取证券名称
type
获取证券类型,参见:constant

valid : 该证券当前是否有效
start_datetime : 证券起始日期
last_datetime : 证券最后日期
tick : 最小跳动量
tick_value : 最小跳动量价值
unit : 每单位价值 = tickValue / tick
precision : 价格精度
atom : 最小交易数量,同minTradeNumber
min_trade_number : 最小交易数量
max_trade_number : 最大交易数量
is_null(self)
是否为Null

返回类型:	bool
get_kdata(self, query)
获取K线数据

参数:	query (Query) – 查询条件
返回:	满足查询条件的K线数据
返回类型:	KData
get_count(self[, ktype=Query.DAY])
获取不同类型K线数据量

参数:	ktype (Query.KType) – K线数据类别
返回:	K线记录数
返回类型:	int
get_market_value(self, date, ktype)
获取指定时刻的市值,即小于等于指定时刻的最后一条记录的收盘价

参数:	
date (Datetime) – 指定时刻
ktype (Query.KType) – K线数据类别
返回:	
指定时刻的市值

返回类型:	
float

get_krecord(self, pos[, ktype=Query.DAY])
获取指定索引的K线数据记录,未作越界检查

参数:	
pos (int) – 指定的索引位置
ktype (Query.KType) – K线数据类别
返回:	
K线记录

返回类型:	
KRecord

get_krecord_by_datetime(self, datetime[, ktype=Query.DAY])
根据数据类型(日线/周线等),获取指定时刻的KRecord

参数:	
datetime (Datetime) – 指定时刻
ktype (Query.KType) – K线数据类别
返回:	
K线记录

返回类型:	
KRecord

get_krecord_list(self, start, end, ktype)
获取K线记录 [start, end),一般不直接使用,用getKData替代

参数:	
start (int) – 起始位置
end (int) – 结束位置
ktype (Query.KType) – K线类别
返回:	
K线记录列表

返回类型:	
KRecordList

get_datetime_list(self, query)
获取日期列表

参数:	query (Query) – 查询条件
返回类型:	DatetimeList
get_datetime_list(self, start, end, ktype)

获取日期列表

参数:	
start (int) – 起始位置
end (ind) – 结束位置
ktype (Query.KType) – K线类型
返回类型:	
DatetimeList

get_timeline_list(self, query)
获取分时线数据

参数:	query (Query) – 查询条件(查询条件中的K线类型、复权类型参数此时无用)
返回类型:	TimeLineList
get_trans_list(self, query)
获取历史分笔数据

参数:	query (Query) – 查询条件(查询条件中的K线类型、复权类型参数此时无用)
返回类型:	TransList
get_weight(self[, start, end])
获取指定时间段[start,end)内的权息信息。未指定起始、结束时刻时,获取全部权息记录。

参数:	
start (Datetime) – 起始时刻
end (Datetime) – 结束时刻
返回类型:	
StockWeightList

get_finance_info(self)
获取当前财务信息

返回类型:	Parameter
get_history_finance_info(self, date)
获取历史财务信息, 字段含义参见:https://hikyuu.org/finance_fields.html

参数:	date (Datetime) – 指定日期必须是0331、0630、0930、1231,如 Datetime(201109300000)
返回类型:	PriceList
realtime_update(self, krecord)
(临时函数)只用于更新内存缓存中的日线数据

参数:	krecord (KRecord) – 新增的实时K线记录
load_kdata_to_buffer(self, ktype)
将指定类别的K线数据加载至内存缓存

参数:	ktype (Query.KType) – K线类型
release_kdata_buffer(self, ktype)
释放指定类别的内存K线数据

参数:	ktype (Query.KType) – K线类型
class hikyuu.Stock
class hikyuu.Block
板块类,可视为证券的容器

category : 板块分类
name : 板块名称
__init__(self, category, name):
构建一个新的板块实例,并指定其板块分类及板块名称

参数:	
category (str) – 板块分类
name (srt) – 板块名称
__init__(self, block):
通过其他板块实例构建新的板块实例

参数:	block (Block) – 板块实例
size(self)
包含的证券数量

empty(self)
是否为空

get(self, market_code)
根据”市场简称证券代码”获取对应的证券实例

参数:	querystr (str) – 格式:“市场简称证券代码”,如”sh000001”
返回:	对应的证券实例,如果实例不存在,则Null<Stock>(),不抛出异常
返回类型:	Stock
add(self, stock)
加入指定的证券

参数:	stock (Stock) – 待加入的证券
返回:	是否成功加入
返回类型:	bool
add(self, market_code)

根据”市场简称证券代码”加入指定的证券

参数:	market_code (str) – 市场简称证券代码
返回:	是否成功加入
返回类型:	bool
remove(self, stock)
移除指定证券

参数:	stock (Stock) – 指定的证券
返回:	是否成功
返回类型:	bool
remove(self, market_code)

移除指定证券

参数:	market_code (str) – 市场简称证券代码
返回:	是否成功
返回类型:	bool
clear(self)
移除包含的所有证券

__len__(self)
包含的证券数量

__getitem__(self, market_code)
根据”市场简称证券代码”获取对应的证券实例

参数:	querystr (str) – 格式:“市场简称证券代码”,如”sh000001”
返回:	对应的证券实例,如果实例不存在,则Null<Stock>(),不抛出异常
返回类型:	Stock
class hikyuu.Block

其他证券信息定义

class hikyuu.StockTypeInfo
股票类型详情记录

type : 证券类型
description : 描述信息
tick : 最小跳动量
tick_value : 每一个tick价格
unit : 每最小变动量价格,即单位价格 = tickValue/tick
precision : 价格精度
min_trade_num : 每笔最小交易量
max_trade_num : 每笔最大交易量
class hikyuu.StockTypeInfo
class hikyuu.StockWeight
权息记录

datetime : 权息日期
count_as_gift : 每10股送X股
count_for_sell : 每10股配X股
price_for_sell : 配股价
bonus : 每10股红利
increasement : 每10股转增X股
total_count : 总股本(万股)
free_count : 流通股(万股)
class hikyuu.StockWeight
class hikyuu.StockWeightList
std::vector<StockWeight> 包装,见 StockWeight
class hikyuu.StockWeightList
class hikyuu.MarketInfo
市场信息记录

market : 市场简称(如:沪市“SH”, 深市“SZ”)
name : 市场全称
description :描述说明
code : 该市场对应的主要指数,用于获取交易日历
last_datetime : 该市场K线数据最后交易日期
class hikyuu.MarketInfo

 

posted @ 2021-02-09 13:28  KnowledgePorter  阅读(75)  评论(0)    收藏  举报