技术指标总览
辅助类指标
ALIGN()
- 按指定的参考日期对齐CVAL()
- 创建指定长度的固定数值指标CONTEXT()
- 独立上下文DROPNA()
- 删除 nan 值ISNA()
- 判断是否为 nan 值ISINF()
- 判断是否为 +inf 值ISINFA()
- 判断是否为 -inf 值PRICELIST()
- 将PriceList或Indicator的结果集包装为Indicator,同名 VALUEREPLACE()
- 替换指标中指定值,默认为替换 nan 值为 0.0RESULT()
- 以指标公式的方式返回指定指标中相应的结果集WEAVE()
- 将两个ind的结果合并到一个ind中ZSCORE()
- ZScore 标准化
行情指标
KDATA()
- 包装KData成Indicator,用于其他指标计算KDATA_PART()
- 根据字符串选择返回指标KDATA/OPEN/HIGH/LOW/CLOSE/AMO/VOLOPEN()
- 包装KData的开盘价成IndicatorHIGH()
- 包装KData的最高价成IndicatorLOW()
- 包装KData的最低价成IndicatorCLOSE()
- 包装KData的收盘价成IndicatorAMO()
- 包装KData的成交金额成IndicatorVOL()
- 包装KData的成交量成IndicatorRECOVER_FORWARD()
- 前向复权RECOVER_BACKWARD()
- 后向复权RECOVER_EQUAL_FORWARD()
- 等比前向复权RECOVER_EQUAL_BACKWARD()
- 等比后向复权FINANCE()
- 历史财务信息HSL()
- 换手率CAPITAL()
- 流通盘,同名:LIUTONGPANTIMELINE()
- 分时价格TIMELINEVOL()
- 分时成交量ZHBOND10()
- 10年期中国国债收益率ZONGGUBEN()
- 总股本
大盘指标
逻辑算术函数
指标本身直接支持 “+”、”-”、”*” 、”/”、”&”(与)、”|”(或)、”<”、”>”、”<=”、”>=”、”==”、”!=” 操作。
BETWEEN()
- 介于(介于两个数之间)CEILING()
- 向上舍入(向数值增大方向舍入)取整CROSS()
- 交叉函数DOWNNDAY()
- 连跌周期数EVERY()
- 一直存在EXIST()
- 存在, EXIST(X,N) 表示条件X在N周期有存在FLOOR()
- 向下舍入(向数值减小方向舍入)取整IF()
- 根据条件求不同的值INTPART()
- 取整(绝对值减小取整,即取得数据的整数部分)LAST()
- 区间存在LONGCROSS()
- 两条线维持一定周期后交叉NOT()
- 求逻辑非UPNDAY()
- 连涨周期数NDAY()
- 连大
数学指标
ABS()
- 求绝对值ACOS()
- 反余弦值ASIN()
- 反正弦值ATAN()
- 反正切值COS()
- 余弦值EXP()
- e的X次幂LN()
- 求自然对数, LN(X)以e为底的对数LOG()
- 以10为底的对数MAX()
- 最大值MIN()
- 最小值MOD()
- 取整后求模。该函数仅为兼容通达信。实际上,指标求模可直接使用 % 操作符。POW()
- 乘幂REVERSE()
- 求相反数ROUND()
- 四舍五入ROUNDUP()
- 向上截取,如10.1截取后为11ROUNDDOWN()
- 向下截取,如10.1截取后为10SIN()
- 正弦值SGN()
- 求符号值SLOPE()
- 计算线性回归斜率SQRT()
- 开平方TAN()
- 正切值
统计指标
AVEDEV()
- 平均绝对偏差DEVSQ()
- 数据偏差平方和STD()
- 估算标准差,同 STDEVSTDEV()
- 计算N周期内样本标准差STDP()
- 总体标准差VAR()
- 估算样本方差VARP()
- 总体样本方差CORR()
- 样本相关系数与协方差SPEARMAN()
- Spearman相关系数
横向统计
BLOCKSETNUM()
- 返回板块股个数INSUM()
- 返回板块各成分该指标相应输出按计算类型得到的计算值.计算类型:0-累加,1-平均数,2-最大值,3-最小值.
技术指标
AD()
- 累积/派发线BACKSET()
- 向前赋值将当前位置到若干周期前的数据设为1BARSCOUNT()
- 有效值周期数, 求总的周期数。BARSLAST()
- 上一次条件成立位置, 上一次条件成立到当前的周期数BARSSINCE()
- 第一个条件成立位置到当前的周期数COUNT()
- 统计满足条件的周期数COST()
- 成本分布DIFF()
- 差分指标,即data[i] - data[i-1]DMA()
- 动态移动平均FILTER()
- 信号过滤, 过滤连续出现的信号HHV()
- N日内最高价HHVBARS()
- 上一高点位置 求上一高点到当前的周期数KDJ()
- 经典随机指标LLV()
- N日内最低价LLVBARS()
- 上一低点位置 求上一低点到当前的周期数MA()
- 简单移动平均数MACD()
- 平滑异同移动平均线EMA()
- 指数移动平均线(Exponential Moving Average)REF()
- 向前引用 (即右移),引用若干周期前的数据ROC()
- 变动率指标: ((price / prevPrice)-1)*100ROCP()
- 变动率指标: (price - prevPrice) / prevPriceROCR()
- 变动率指标: (price / prevPrice)ROCR100()
- 变动率指标: (price / prevPrice) * 100RSI()
- 相对强弱指标SMA()
- 移动平均线SAFTYLOSS()
- 亚历山大 艾尔德安全地带止损线SUM()
- 求总和SUMBARS()
- 累加到指定周期数, 向前累加到指定值到现在的周期数VIGOR()
- 亚历山大.艾尔德力度指数
时间指标
DATE()
- 取得该周期从1900以来的年月日TIME()
- 取得该周期的时分秒YEAR()
- 取得该周期的年份MONTH()
- 取得该周期的月份WEEK()
- 取得该周期的星期数,函数返回有效值范围为(0-6),0表示星期天DAY()
- 取得该周期的日期HOUR()
- 取得该周期的小时数MINUTE()
- 取得该周期的分钟数
因子类指标
其他转换辅助
concat_to_df()
- 合并指标列表为 DateFramedf_to_ind()
- 将 DataFrame 指定列转为指标
- 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
- df_to_ind(df, col_name, col_date=None):
将 pandas.DataFrame 指定列转化为 Indicator
- 参数:
df – pandas.DataFrame
col_name – 指定列名
col_date – 指定日期列名 (为None时忽略, 否则该列为对应参考日期)
- 返回:
Indicator
示例, 从 akshare 获取美国国债10年期收益率:
import akshare as ak
df = ak.bond_zh_us_rate("19901219")
x = df_to_ind(df, '美国国债收益率10年', '日期')