基础数据类型

日期时间

日期时间及其运算主要涉及 DatetimeTimeDelta

两者及其相关运算规则可参考 python datetime 模块中的 datetime 和 timedelta 帮助, 并且两者可和 datetime、timedelta 相互转换,并直接进行运算操作。

TimeDelta 的运算规则基本与 datetime.timedelta 相同。

class hikyuu.Datetime

日期时间类(精确到微秒),通过以下方式构建:

  • 通过字符串:Datetime(“2010-1-1 10:00:00”)、Datetime(“2001-1-1”)、Datetime(“20010101”)、Datetime(“20010101T232359)

  • 通过 Python 的date:Datetime(date(2010,1,1))

  • 通过 Python 的datetime:Datetime(datetime(2010,1,1,10)

  • 通过 YYYYMMDDHHMMSS 或 YYYYMMDDHHMM 或 YYYYMMDD 形式的整数:Datetime(201001011000)、Datetime(20010101)

  • Datetime(year, month, day, hour=0, minute=0, second=0, millisecond=0, microsecond=0)

获取日期列表参见: getDateRange()

获取交易日日期参见: StockManager.getTradingCalendar()

year 年,如果是 Null 将抛出异常
month 月,如果是 Null 将抛出异常
day 日,如果是 Null 将抛出异常
hour 时,如果是 Null 将抛出异常
minute 分,如果是 Null 将抛出异常
second 秒,如果是 Null 将抛出异常
millisecond 毫秒,如果是 Null 将抛出异常
microsecond 微秒,如果是 Null 将抛出异常
number YYYYMMDDHHMM 形式的整数,精度只到分钟
ym YYYYMM 形式的整数
ymd YYYYMMDD 形式的整数
ymdh YYYYMMDDhh 形式的整数
ymdhm YYYYMMDDhhmm 形式的整数
ymdhms YYYYMMDDhhmmss 形式的整数
ticks 距离最小日期过去的微秒数
hex 兼容oracle datetime 表示, 返回用后7个字节表示世纪、世纪年、月、日、时、分、秒的64位整数
date(self)

转化生成 python 的 date

datetime(self)

转化生成 python 的datetime

is_null(self)

是否是Null值, 即是否等于 constant.null_datetime

__add__(self, td)

加上指定时长,时长对象可为 TimeDelta 或 datetime.timedelta 类型

参数:

td (TimeDelta) – 时长

返回类型:

Datetime

__sub__(self, td)

减去指定的时长, 时长对象可为 TimeDelta 或 datetime.timedelta 类型

参数:

td (TimeDelta) – 指定时长

返回类型:

Datetime

day_of_week(self)

返回是一周中的第几天,周日为0,周一为1

返回类型:

int

date_of_week(self, day)

返回指定的本周中第几天的日期,周日为0天,周六为第6天

参数:

day (int) – 指明本周的第几天,如小于则认为为第0天,如大于6则认为为第6天

返回类型:

Datetime

day_of_year(self)

返回一年中的第几天,1月1日为一年中的第1天

返回类型:

int

start_of_day(self)

返回当天 0点0分0秒

end_of_day(self)

返回当日 23点59分59秒

start_of_week(self)

返回周起始日期(周一)

end_of_week(self)

返回周结束日期(周日)

start_of_month(self)

返回月度起始日期

end_of_month(self)

返回月末最后一天日期

start_of_quarter(self)

返回季度起始日期

end_of_quarter(self)

返回季度结束日期

start_of_halfyear(self)

返回半年度起始日期

end_of_halfyear(self)

返回半年度结束日期

start_of_year(self)

返回年度起始日期

end_of_year(self)

返回年度结束日期

next_day(self)

返回下一自然日

next_week(self)

返回下周周一日期

next_month(self)

返回下月首日日期

next_quarter(self)

返回下一季度首日日期

next_halfyear(self)

返回下一半年度首日日期

next_year(self)

返回下一年度首日日期

pre_day(self)

返回前一自然日日期

pre_week(self)

返回上周周一日期

pre_month(self)

返回上月首日日期

pre_quarter(self)

返回上一季度首日日期

pre_halfyear(self)

返回上一半年度首日日期

pre_year(self)

返回上一年度首日日期

static max()

获取支持的最大日期时间

static min()

获取支持的最小日期时间

static now()

获取当前的日期时间

static today()

获取当前的日期

class hikyuu.TimeDelta

时间时长,用于时间计算。可通过以下方式构建:

  • 通过 datetime.timedelta 构建。TimdeDelta(timedelta实例)

  • TimeDelta(days=0, hours=0, minutes=0, seconds=0, milliseconds=0, microseconds=0)

    • -99999999 <= days <= 99999999

    • -100000 <= hours <= 100000

    • -100000 <= minutes <= 100000

    • -8639900 <= seconds <= 8639900

    • -86399000000 <= milliseconds <= 86399000000

    • -86399000000 <= microseconds <= 86399000000

以上参数限制,主要为防止求总微秒数时可能出现溢出的情况。如只使用一个参数不希望存在上述限制时,可使用快捷函数: Days(), Hours(), Minutes(), Seconds(), Milliseconds(), Microseconds()

days 天数 [-99999999, 99999999]
hours 小时数 [0, 23]
minutes 分钟数 [0, 59]
seconds 秒数 [0, 59]
milliseconds 毫秒数 [0, 999]
microseconds 微秒数 [0, 999]
ticks 同总微秒数
isNegative(self)

是否为负时长

返回类型:

bool

total_days(self)

获取带小数的总天数

返回类型:

float

total_hours(self)

获取带小数的总小时数

返回类型:

float

total_minutes(self)

获取带小数的总分钟数

返回类型:

float

total_seconds(self)

获取带小数的总秒数

返回类型:

float

total_milliseconds(self)

获取带小数的总毫秒数

返回类型:

float

static max()

支持的最大时长

返回:

TimeDelta(99999999, 23, 59, 59, 999, 999)

static min()

支持的最小时长

返回:

TimeDelta(-99999999, 0, 0, 0, 0, 0)

static resolution()

支持的最小精度

返回:

TimeDelta(0, 0, 0, 0, 0, 1)

static max_ticks()

支持的最大 ticks (即微秒数)

返回类型:

int

static min_ticks()

支持的最小 ticks (即微秒数)

返回类型:

int

static from_ticks(ticks)

使用 ticks(即微秒数) 值创建

参数:

ticks (int) – 微秒数

返回类型:

TimeDelta

hikyuu.Days(days)

以天数创建 TimeDelta

参数:

days (int) – 天数

返回类型:

TimeDelta

hikyuu.Hours(hours)

以小时数创建 TimeDelta

参数:

hours (int) – 小时数

返回类型:

TimeDelta

hikyuu.Minutes(minutes)

以分钟数创建 TimeDelta

参数:

minutes (int) – 分钟数

返回类型:

TimeDelta

hikyuu.Seconds(seconds)

以秒数创建 TimeDelta

参数:

seconds (int) – 秒数

返回类型:

TimeDelta

hikyuu.Milliseconds(milliseconds)

以毫秒数创建 TimeDelta

参数:

milliseconds (int) – 毫秒数

返回类型:

TimeDelta

hikyuu.Microseconds(microseconds)

以微秒数创建 TimeDelta

参数:

microseconds (int) – 微秒数

返回类型:

TimeDelta

K线数据

class hikyuu.KRecord

K线记录,组成K线数据,属性可读写。

datetime : 日期时间
open     : 开盘价
high     : 最高价
low      : 最低价
close    : 收盘价
amount   : 成交金额
volume   : 成交量
class hikyuu.KData

通过 Stock.get_kdata 获取的K线数据,由 KRecord 组成的数组,可象 list 一样进行遍历

start_pos

获取在原始K线记录中对应的起始位置,如果KData为空返回0

last_pos

获取在原始K线记录中对应的最后一条记录的位置,如果为空返回0,其他等于endPos - 1

end_pos

获取在原始K线记录中对应范围的下一条记录的位置,如果为空返回0,其他等于lastPos + 1

get_datetime_list()

返回交易日期列表

返回类型:

DatetimeList

get(pos)

获取指定索引位置的K线记录

参数:

pos (int) – 位置索引

返回类型:

KRecord

get_by_datetime(datetime)

获取指定时间的K线记录。

参数:

datetime (Datetime) – 指定的日期

返回类型:

KRecord

get_pos(datetime)

获取指定时间对应的索引位置

参数:

datetime (Datetime) – 指定的时间

返回:

对应的索引位置,如果不在数据范围内,则返回 None

get_pos_in_stock(datetime)

获取指定时间对应原始 K 线中的索引位置

参数:

datetime (Datetime) – 指定的时间

返回:

对应的索引位置,如果不在数据范围内,则返回 None

empty()

判断是否为空

返回类型:

bool

get_query()

获取关联的查询条件

返回类型:

Query

get_stock()

获取关联的Stock

返回类型:

Stock

get_kdata()

通过当前 KData 获取一个保持数据类型、复权类型不变的新的 KData(注意,不是原 KData 的子集)

参数:
返回类型:

KData

tocsv(filename)

将数据保存至CSV文件

参数:

filename (str) – 指定保存的文件名称

to_np()

转化为numpy结构数组

返回类型:

numpy.array

to_df()

转化为pandas的DataFrame

返回类型:

pandas.DataFrame

分时线数据

class hikyuu.TimeLineRecord

分时线记录,属性可读写。

date : 日期时间
price : 价格
vol : 成交量
class hikyuu.TimeLineList

通过 Stock.getTimeLineList 获取的分时线数据,由 TimeLineRecord 组成的数组,可象 list 一样进行遍历

to_np()

转化为numpy结构数组

返回类型:

numpy.array

to_df()

转化为pandas的DataFrame

返回类型:

pandas.DataFrame

分笔历史数据

class hikyuu.TransRecord

历史分笔数据记录

date : 时间
price : 价格
vol : 成交量
direct : 买卖盘性质
class hikyuu.TransList

分时线数据列表

to_np()

转化为numpy结构数组

返回类型:

numpy.array

to_df()

转化为pandas的DataFrame

返回类型:

pandas.DataFrame