证券管理

构建K线查询条件

hikyuu.QueryByDate([start=None, end=None, kType=Query.DAY, recoverType=Query.NO_RECOVER])

构建按日期 [start, end) 方式获取K线数据条件

Parameters:
  • start (Datetime) – 起始日期
  • end (Datetime) – 结束日期
  • kType (KQuery.KType) – K线数据类型(如日线、分钟线等)
  • recoverType (KQuery.RecoverType) – 复权类型
Returns:

查询条件

Return type:

KQuery

class hikyuu.QueryByIndex([start=0, end=None, kType=KQuery.KType.DAT, recoverType=KQuery.RecoverType.NO_RECOVER])

构建按索引 [start, end) 方式获取K线数据条件,等同于直接使用 Query 构造

Parameters:
  • start (ind) – 起始日期
  • end (ind) – 结束日期
  • kType (KQuery.KType) – K线数据类型(如日线、分钟线等)
  • recoverType (KQuery.RecoverType) – 复权类型
Returns:

查询条件

Return type:

KQuery

class hikyuu.Query

对 KQuery 的简单包装,并简化定义相关常量,可视同为 KQuery

简化 KQuery.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分钟线类型

简化 KQuery.RecoverType 枚举值

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

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

start

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

end

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

startDatetime

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

endDatetime

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

queryType

查询方式

kType

查询的K线类型

recoverType

查询的复权类型

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 - 等比后向复权
static getQueryTypeName(queryType)

获取queryType名称,用于显示输出

Parameters:queryType (KQuery.QueryType) – 查询类型
Return type:str
static getKTypeName(kType)

获取KType名称,用于显示输出

Parameters:kType (KQuery.KType) – K线类型
Return type:str
static getRecoverTypeName(recoverType)

获取recoverType名称,用于显示输出

Parameters:recoverType (KQuery.RecoverType) – 复权类型
Return type:str
static getQueryTypeEnum(queryType)

根据字符串名称获取相应的queryType枚举值

Parameters:queryType (str) – 字符串名称,如“DATE”
Return type:KQuery.QueryType
static getKTypeEnum(ktype)

根据字符串名称,获取相应的枚举值

Parameters:ktype (str) – 字符串名称,如“DAY”
Return type:KQuery.KType
static getRecoverTypeEnum(recoverType)

根据字符串名称,获取相应的枚举值

Parameters:recoverType (str) – 字符串名称,如“NO_RECOVER”
Return type:KQuery.RecoverType

StockManager/Block/Stock

class hikyuu.StockManager

证券信息管理类

static instance()

获取StockManager单例实例

init(self, baseInfoParam, blockParam, kdataParam, preloadParam, hkuParam)

初始化

Parameters:
  • baseInfoParam (Parameter) – 基础信息数据驱动参数
  • blockParam (Parameter) – 板块信息数据驱动参数
  • kdataParam (Parameter) – K线数据驱动参数
  • preloadParam (Parameter) – 预加载参数
  • hkuParam (Parameter) – 其他hikyuu参数
getBaseInfoDriverParameter(self)
Returns:基础信息数据驱动参数
Return type:Parameter
getBlockDriverParameter(self)
Returns:板块信息数据驱动参数
Return type:Parameter
getKDataDriverParameter(self)
Returns:K线数据驱动参数
Return type:Parameter
getPreloadParameter(self)
Returns:预加载参数
Return type:Parameter
getHikyuuParameter(self)
Returns:其他hikyuu参数
Return type:Parameter
tmpdir(self)

获取用于保存零时变量等的临时目录,如未配置则为当前目录 由m_config中的“tmpdir”指定

getAllMarket(self)

获取市场简称列表

Return type:StringList
getMarketInfo(self, market)

获取相应的市场信息

Parameters:market (string) – 指定的市场标识(市场简称)
Returns:相应的市场信息,如果相应的市场信息不存在,则返回Null<MarketInfo>()
Return type:MarketInfo
getStockTypeInfo(self, stk_type)

获取相应的证券类型详细信息

Parameters:stk_type (int) – 证券类型,参见: constant
Returns:对应的证券类型信息,如果不存在,则返回Null<StockTypeInfo>()
Return type:StockTypeInfo
size(self)

获取证券数量

getStock(self, querystr)

根据”市场简称证券代码”获取对应的证券实例

Parameters:querystr (str) – 格式:“市场简称证券代码”,如”sh000001”
Returns:对应的证券实例,如果实例不存在,则Null<Stock>(),不抛出异常
Return type:Stock
__getitem__()

同 getStock

getBlock(self, category, name)

获取预定义的板块

Parameters:
  • category (str) – 板块分类
  • name (str) – 板块名称
Returns:

板块,如找不到返回空Block

Return type:

Block

getBlockList(self[, category])

获取指定分类的板块列表

Parameters:category (str) – 板块分类
Returns:板块列表
Return type:BlockList
getTradingCalendar(self, query[, market='SH'])

获取指定市场的交易日日历

Parameters:
  • query (KQuery) – Query查询条件
  • market (str) – 市场简称
Returns:

日期列表

Return type:

DatetimeList

addTempCsvStock(self, code, day_filename, min_filename[, tick=0.01, tickValue=0.01, precision=2, minTradeNumber = 1, maxTradeNumber=1000000])

从CSV文件(K线数据)增加临时的Stock,可用于只有CSV格式的K线数据时,进行临时测试。

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

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

加入的Stock

Return type:

Stock

removeTempCsvStock(self, code)

移除增加的临时Stock

Parameters:code (str) – 创建时自定义的编码
class hikyuu.Stock

Stock基类

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

获取证券类型,参见:constant

valid : 该证券当前是否有效
startDatetime : 证券起始日期
lastDatetime : 证券最后日期
tick : 最小跳动量
tickValue : 最小跳动量价值
unit : 每单位价值 = tickValue / tick
precision : 价格精度
atom : 最小交易数量,同minTradeNumber
minTradeNumber : 最小交易数量
maxTradeNumber : 最大交易数量
isNull(self)

是否为Null

Return type:bool
getKData(self, query)

获取K线数据

Parameters:query (Query) – 查询条件
Returns:满足查询条件的K线数据
Return type:KData
getCount(self[, ktype=Query.DAY])

获取不同类型K线数据量

Parameters:ktype (KQuery.KType) – K线数据类别
Returns:K线记录数
Return type:int
getMarketValue(self, datetime, ktype)

获取指定时刻的市值,即小于等于指定时刻的最后一条记录的收盘价

Parameters:
  • datetime (Datetime) – 指定时刻
  • ktype (KQuery.KType) – K线数据类别
Returns:

指定时刻的市值

Return type:

float

getKRecord(self, pos[, ktype=Query.DAY])

获取指定索引的K线数据记录,未作越界检查

Parameters:
  • pos (int) – 指定的索引位置
  • ktype (KQuery.KType) – K线数据类别
Returns:

K线记录

Return type:

KRecord

getKRecordByDate(self, datetime[, ktype=Query.DAY])

根据数据类型(日线/周线等),获取指定时刻的KRecord

Parameters:
  • datetime (Datetime) – 指定时刻
  • ktype (KQuery.KType) – K线数据类别
Returns:

K线记录

Return type:

KRecord

getKRecordList(self, start, end, ktype)

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

Parameters:
  • start (int) – 起始位置
  • end (int) – 结束位置
  • ktype (KQuery.KType) – K线类别
Returns:

K线记录列表

Return type:

KRecordList

getDatetimeList(self, query)

获取日期列表

Parameters:query (Query) – 查询条件
Return type:DatetimeList
getDatetimeList(self, start, end, ktype)

获取日期列表

Parameters:
  • start (int) – 起始位置
  • end (ind) – 结束位置
  • ktype (KQuery.KType) – K线类型
Return type:

DatetimeList

getWeight(self[, start, end])

获取指定时间段[start,end)内的权息信息。未指定起始、结束时刻时,获取全部权息记录。

Parameters:
Return type:

StockWeightList

realtimeUpdate(self, krecord)

(临时函数)只用于更新内存缓存中的日线数据

Parameters:krecord (KRecord) – 新增的实时K线记录
loadKDataToBuffer(self, ktype)

将指定类别的K线数据加载至内存缓存

Parameters:ktype (KQuery.KType) – K线类型
releaseKDataBuffer(self, ktype)

释放指定类别的内存K线数据

Parameters:ktype (KQuery.KType) – K线类型
class hikyuu.Block

板块类,可视为证券的容器

category : 板块分类
name : 板块名称
size(self)

包含的证券数量

empty(self)

是否为空

get(self, market_code)

根据”市场简称证券代码”获取对应的证券实例

Parameters:querystr (str) – 格式:“市场简称证券代码”,如”sh000001”
Returns:对应的证券实例,如果实例不存在,则Null<Stock>(),不抛出异常
Return type:Stock
add(self, stock)

加入指定的证券

Parameters:stock (Stock) – 待加入的证券
Returns:是否成功加入
Return type:bool
add(self, market_code)

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

Parameters:market_code (str) – 市场简称证券代码
Returns:是否成功加入
Return type:bool
remove(self, stock)

移除指定证券

Parameters:stock (Stock) – 指定的证券
Returns:是否成功
Return type:bool
remove(self, market_code)

移除指定证券

Parameters:market_code (str) – 市场简称证券代码
Returns:是否成功
Return type:bool
clear(self)

移除包含的所有证券

__len__(self)

包含的证券数量

__getitem__(self, market_code)

根据”市场简称证券代码”获取对应的证券实例

Parameters:querystr (str) – 格式:“市场简称证券代码”,如”sh000001”
Returns:对应的证券实例,如果实例不存在,则Null<Stock>(),不抛出异常
Return type:Stock

其它证券信息定义

class hikyuu.StockTypeInfo

股票类型详情记录

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

权息记录

datetime : 权息日期
countAsGift : 每10股送X股
countForSell : 每10股配X股
priceForSell : 配股价
bonus : 每10股红利
increasement : 每10股转增X股
totalCount : 总股本(万股)
freeCount : 流通股(万股)
class hikyuu.StockWeightList

std::vector<StockWeight> 包装,见 StockWeight

class hikyuu.MarketInfo

市场信息记录

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