技术指标总览

辅助类指标

  • ALIGN() - 按指定的参考日期对齐

  • CVAL() - 创建指定长度的固定数值指标

  • DROPNA() - 删除 nan 值

  • PRICELIST() - 将PriceList或Indicator的结果集包装为Indicator,同名 VALUE

  • WEAVE() - 将两个ind的结果合并到一个ind中

  • ZSCORE() - ZScore 标准化

行情指标

大盘指标

逻辑算术函数

指标本身直接支持 “+”、”-”、”*” 、”/”、”&”(与)、”|”(或)、”<”、”>”、”<=”、”>=”、”==”、”!=” 操作。

  • BETWEEN() - 介于(介于两个数之间)

  • CEILING() - 向上舍入(向数值增大方向舍入)取整

  • CROSS() - 交叉函数

  • DOWNNDAY() - 连跌周期数

  • EVERY() - 一直存在

  • EXIST() - 存在, EXIST(X,N) 表示条件X在N周期有存在

  • FLOOR() - 向下舍入(向数值减小方向舍入)取整

  • IF() - 根据条件求不同的值

  • INTPART() - 取整(绝对值减小取整,即取得数据的整数部分)

  • LAST() - 区间存在

  • LONGCROSS() - 两条线维持一定周期后交叉

  • NOT() - 求逻辑非

  • UPNDAY() - 连涨周期数

  • NDAY() - 连大

数学指标

统计指标

技术指标

  • BACKSET() - 向前赋值将当前位置到若干周期前的数据设为1

  • BARSCOUNT() - 有效值周期数, 求总的周期数。

  • BARSLAST() - 上一次条件成立位置, 上一次条件成立到当前的周期数

  • BARSSINCE() - 第一个条件成立位置到当前的周期数

  • COUNT() - 统计满足条件的周期数

  • COST() - 成本分布

  • DIFF() - 差分指标,即data[i] - data[i-1]

  • DMA() - 动态移动平均

  • FILTER() - 信号过滤, 过滤连续出现的信号

  • HHV() - N日内最高价

  • HHVBARS() - 上一高点位置 求上一高点到当前的周期数

  • KDJ() - 经典随机指标

  • LLV() - N日内最低价

  • LLVBARS() - 上一低点位置 求上一低点到当前的周期数

  • MA() - 简单移动平均数

  • MACD() - 平滑异同移动平均线

  • AMA() - 佩里.J 考夫曼(Perry J.Kaufman)自适应移动平均 [BOOK1]

  • EMA() - 指数移动平均线(Exponential Moving Average)

  • REF() - 向前引用 (即右移),引用若干周期前的数据

  • RSI() - 相对强弱指标

  • SMA() - 移动平均线

  • SAFTYLOSS() - 亚历山大 艾尔德安全地带止损线

  • SUM() - 求总和

  • SUMBARS() - 累加到指定周期数, 向前累加到指定值到现在的周期数

  • VIGOR() - 亚历山大.艾尔德力度指数

时间指标

  • DATE() - 取得该周期从1900以来的年月日

  • TIME() - 取得该周期的时分秒

  • YEAR() - 取得该周期的年份

  • MONTH() - 取得该周期的月份

  • WEEK() - 取得该周期的星期数,函数返回有效值范围为(0-6),0表示星期天

  • DAY() - 取得该周期的日期

  • HOUR() - 取得该周期的小时数

  • MINUTE() - 取得该周期的分钟数

因子类指标

  • IC() - 计算因子 IC 值

  • IR() - 用于计算账户收益与参照收益的IR

  • ICIR() - 计算因子 IC 的 IR 值

Ta-lib指标

以下指标计算方法同 Ta-lib

  • AD() - 累积/派发线

  • ROC() - 变动率指标: ((price / prevPrice)-1)*100

  • ROCP() - 变动率指标: (price - prevPrice) / prevPrice

  • ROCR() - 变动率指标: (price / prevPrice)

  • ROCR100() - 变动率指标: (price / prevPrice) * 100

其他转换辅助

hikyuu.indicator.concat_to_df(dates, ind_list[, head_stock_code=True, head_ind_name=False])
将列表中的指标至合并在一张 pandas DataFrame
参数:
  • dates (DatetimeList) – 指定的日期列表

  • ind_list (sequence) – 已计算的指标列表

  • head_ind_name (bool) – 表标题是否使用指标名称

  • head_stock_code (bool) – 表标题是否使用证券代码

返回:

合并后的 DataFrame, 以 dates 为 index(注: dates列 为 Datetime 类型)

示例:
    query = Query(-200)
    k_list = [stk.get_kdata(query) for stk in [sm['sz000001'], sm['sz000002']]]
    ma_list = [MA(k) for k in k_list]
    concat_to_df(sm.get_trading_calendar(query), ma_list, head_stock_code=True, head_ind_name=False)
    df

            date    SZ000001        SZ000002
    0       2023-05-12 00:00:00     12.620000       15.060000
    1       2023-05-15 00:00:00     12.725000       15.060000
    2       2023-05-16 00:00:00     12.690000       15.010000
    3       2023-05-17 00:00:00     12.640000       14.952500
    4       2023-05-18 00:00:00     12.610000       14.886000
    ...     ...     ...     ...
    195     2024-03-01 00:00:00     9.950455        9.837273
    196     2024-03-04 00:00:00     9.995909        9.838182
    197     2024-03-05 00:00:00     10.038182       9.816364
    198     2024-03-06 00:00:00     10.070455       9.776818
    199     2024-03-07 00:00:00     10.101364       9.738182