基础数据类型¶
日期时间¶
日期时间及其运算主要涉及 Datetime
,TimeDelta
。
两者及其相关运算规则可参考 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)
通过 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 形式的整数,精度只到分钟
- date(self)¶
转化生成 python 的 date
- datetime(self)¶
转化生成 python 的datetime
- is_null(self)¶
是否是Null值, 即是否等于 constant.null_datetime
- __add__(self, td)¶
加上指定时长,时长对象可为 TimeDelta 或 datetime.timedelta 类型
- __sub__(self, td)¶
减去指定的时长, 时长对象可为 TimeDelta 或 datetime.timedelta 类型
- day_of_week(self)¶
返回是一周中的第几天,周日为0,周一为1
- 返回类型:
int
- date_of_week(self, day)¶
返回指定的本周中第几天的日期,周日为0天,周六为第6天
- 参数:
day (int) – 指明本周的第几天,如小于则认为为第0天,如大于6则认为为第6天
- 返回类型:
- 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
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()¶
返回交易日期列表
- 返回类型:
- get_pos_in_stock(datetime)¶
获取指定时间对应原始 K 线中的索引位置
- 参数:
datetime (Datetime) – 指定的时间
- 返回:
对应的索引位置,如果不在数据范围内,则返回 None
- empty()¶
判断是否为空
- 返回类型:
bool
- tocsv(filename)¶
将数据保存至CSV文件
- 参数:
filename (str) – 指定保存的文件名称
- to_np()¶
转化为numpy结构数组
- 返回类型:
numpy.array
- to_df()¶
转化为pandas的DataFrame
- 返回类型:
pandas.DataFrame
分时线数据¶
- class hikyuu.TimeLineRecord¶
分时线记录,属性可读写。
- date : 日期时间
- price : 价格
- vol : 成交量
分笔历史数据¶
- class hikyuu.TransRecord¶
历史分笔数据记录
- date : 时间
- price : 价格
- vol : 成交量
- direct : 买卖盘性质