hikyuu技术指标
Indicator

class hikyuu.indicator.Indicator(name) Indicator 指标定义 name 名称 long_name 名称 discard 需抛弃的点数 get_param(self, name) 获取指定的参数 参数: name (str) – 参数名称 返回: 参数值 引发: out_of_range – 无此参数 set_param(self, name, value) 设置参数 参数: name (str) – 参数名称 value (int | bool | float | string) – 参数值 引发: logic_error – Unsupported type! 不支持的参数类型 clone(self) 克隆操作 empty(self) 是否为空 返回类型: bool formula(self) 打印指标公式 返回类型: str get_result_num(self) 获取结果集数量 返回类型: int get(self, result_index[, num=0]) 获取指定位置的值 参数: pos (int) – 指定的位置索引 num (int) – 指定的结果集 get_datetime(self, pos) 获取指定位置的日期 参数: pos (int) – 指定的位置索引 get_by_datetime(self, datetime[, result_index=0]) 获取指定日期数值。如果对应日期无结果,返回 constant.null_price 参数: datetime (Datetime) – 指定日期 num (int) – 指定的结果集 返回类型: float get_result(self, result_index) 获取指定结果集 参数: result_index (int) – 指定的结果集 返回类型: Indicator get_result_as_price_list(self, result_index) 获取指定结果集 参数: result_index (int) – 指定的结果集 返回类型: PriceList get_datetime_list(self) 返回对应的日期列表 返回类型: DatetimeList get_context(self) 获取上下文 返回类型: KData set_context(self, kdata) 设置上下文 参数: kdata (KData) – 关联的上下文K线 set_context(self, stock, query) 设置上下文 参数: stock (Stock) – 指定的 Stock query (Query) – 指定的查询条件
技术指标总览

ALIGN() - 按指定的参考日期对齐 CVAL() - 创建指定长度的固定数值指标 DROPNA() - 删除 nan 值 PRICELIST() - 将PriceList或Indicator的结果集包装为Indicator,同名 VALUE WEAVE() - 将两个ind的结果合并到一个ind中

KDATA() - 包装KData成Indicator,用于其他指标计算 KDATA_PART() - 根据字符串选择返回指标KDATA/OPEN/HIGH/LOW/CLOSE/AMO/VOL OPEN() - 包装KData的开盘价成Indicator HIGH() - 包装KData的最高价成Indicator LOW() - 包装KData的最低价成Indicator CLOSE() - 包装KData的收盘价成Indicator AMO() - 包装KData的成交金额成Indicator VOL() - 包装KData的成交量成Indicator HSL() - 换手率 CAPITAL() - 流通盘,同名:LIUTONGPAN TIMELINE() - 分时价格 TIMELINEVOL() - 分时成交量

ADVANCE() - 上涨家数 DECLINE() - 下跌家数

指标本身直接支持 “+”、”-“、”*” 、”/”、”&”(与)、”|”(或)、”<”、”>”、”<=”、”>=”、”==”、”!=” 操作。 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截取后为11 ROUNDDOWN() - 向下截取,如10.1截取后为10 SIN() - 正弦值 SGN() - 求符号值 SQRT() - 开平方 TAN() - 正切值

AVEDEV() - 平均绝对偏差 DEVSQ() - 数据偏差平方和 STD() - 估算标准差,同 STDEV STDEV() - 计算N周期内样本标准差 STDP() - 总体标准差 VAR() - 估算样本方差 VARP() - 总体样本方差

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() - 亚历山大.艾尔德力度指数

以下指标计算方法同 Ta-lib AD() - 累积/派发线 ROC() - 变动率指标: ((price / prevPrice)-1)*100 ROCP() - 变动率指标: (price - prevPrice) / prevPrice ROCR() - 变动率指标: (price / prevPrice) ROCR100() - 变动率指标: (price / prevPrice) * 100
内建技术指标

hikyuu.indicator.ABS([data]) 求绝对值 参数: data (Indicator) – 输入数据 返回类型: Indicator

hikyuu.indicator.ACOS([data]) 反余弦值 参数: data (Indicator) – 输入数据 返回类型: Indicator

hikyuu.indicator.AD(kdata) 累积/派发线 参数: kdata (KData) – k线数据 返回类型: Indicator

hikyuu.indicator.ADVANCE([query=Query(-100), market='SH', stk_type='constant.STOCKTYPE_A']) 上涨家数。当存在指定上下文且 ignore_context 为 false 时,将忽略 query, market, stk_type 参数。 参数: query (Query) – 查询条件 market (str) – 所属市场,等于 “” 时,获取所有市场 stk_type (int) – 证券类型, 大于 constant.STOCKTYPE_TMP 时,获取所有类型证券 ignore_context (bool) – 是否忽略上下文。忽略时,强制使用 query, market, stk_type 参数。 返回类型: Indicator

ALIGN(data, ref): 按指定的参考日期对齐 参数: data (Indicator) – 输入数据 ref – 指定做为日期参考的 DatetimeList、Indicator 或 KData Retype: Indicator

hikyuu.indicator.AMA([data, n=10, fast_n=2, slow_n=30]) 佩里.J 考夫曼(Perry J.Kaufman)自适应移动平均 [BOOK1] 参数: data (Indicator) – 输入数据 n (int) – 计算均值的周期窗口,必须为大于2的整数 fast_n (int) – 对应快速周期N slow_n (int) – 对应慢速EMA线的N值 返回类型: Indicator result(0): AMA result(1): ER

hikyuu.indicator.AMO([data]) 获取成交金额,包装KData的成交金额成Indicator 参数: data – 输入数据(KData 或 Indicator) 返回类型: Indicator

hikyuu.indicator.ASIN([data]) 反正弦值 参数: data (Indicator) – 输入数据 返回类型: Indicator

hikyuu.indicator.ATAN([data]) 反正切值 参数: data (Indicator) – 输入数据 返回类型: Indicator

hikyuu.indicator.ATR([data, n=14]) 平均真实波幅(Average True Range) :param Indicator data 待计算的源数据 :param int n: 计算均值的周期窗口,必须为大于1的整数 :rtype: Indicator

平均绝对偏差,求X的N日平均绝对偏差 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 返回类型: Indicator

hikyuu.indicator.BACKSET([data, n=2]) 向前赋值将当前位置到若干周期前的数据设为1。 用法:BACKSET(X,N),X非0,则将当前位置到N周期前的数值设为1。 例如:BACKSET(CLOSE>OPEN,2)若收阳则将该周期及前一周期数值设为1,否则为0 参数: data (Indicator) – 输入数据 n (int) – N周期 返回类型: Indicator

hikyuu.indicator.BARSCOUNT([data]) 有效值周期数, 求总的周期数。 用法:BARSCOUNT(X)第一个有效数据到当前的天数。 例如:BARSCOUNT(CLOSE)对于日线数据取得上市以来总交易日数,对于1分钟线取得当日交易分钟数。 参数: data (Indicator) – 输入数据 返回类型: Indicator

hikyuu.indicator.BARSLAST([data]) 上一次条件成立位置 上一次条件成立到当前的周期数。 用法:BARSLAST(X): 上一次 X 不为 0 到现在的天数。 例如:BARSLAST(CLOSE/REF(CLOSE,1)>=1.1) 表示上一个涨停板到当前的周期数 参数: data (Indicator) – 输入数据 返回类型: Indicator

hikyuu.indicator.BARSSINCE([data]) 第一个条件成立位置到当前的周期数。 用法:BARSSINCE(X):第一次X不为0到现在的天数。 例如:BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数 参数: data (Indicator) – 输入数据 返回类型: Indicator

hikyuu.indicator.BETWEEN(a, b, c) 介于(介于两个数之间) 用法:BETWEEN(A,B,C)表示A处于B和C之间时返回1,否则返回0 例如:BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间 参数: a (Indicator) – A b (Indicator) – B c (Indicator) – C 返回类型: Indicator

hikyuu.indicator.CLOSE([data]) 获取收盘价,包装KData的收盘价成Indicator 参数: data – 输入数据(KData 或 Indicator) 返回类型: Indicator

hikyuu.indicator.CAPITAL(kdata) 获取流通盘(单位:万股),同 LIUTONGPAN 参数: kdata (KData) – k线数据 返回类型: Indicator

hikyuu.indicator.CEIL([data]) 同 CEILING() hikyuu.indicator.CEILING([data]) 向上舍入(向数值增大方向舍入)取整 用法:CEILING(A)返回沿A数值增大方向最接近的整数 例如:CEILING(12.3)求得13;CEILING(-3.5)求得-3 参数: data – 输入数据 返回类型: Indicator hikyuu.indicator.COS([data]) 余弦值 参数: data (Indicator) – 输入数据 返回类型: Indicator hikyuu.indicator.COST(k[, x=10.0]) 成本分布 用法:COST(k, X) 表示X%获利盘的价格是多少 例如:COST(k, 10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上,为套牢盘 该函数仅对日线分析周期有效 参数: k (KData) – 关联的K线数据 x (float) – x%获利价格, 0~100 返回类型: Indicator hikyuu.indicator.COUNT([data, n=20]) 统计满足条件的周期数。 用法:COUNT(X,N),统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。 例如:COUNT(CLOSE>OPEN,20)表示统计20周期内收阳的周期数 参数: data (Indicator) – 条件 n (int) – 周期 返回类型: Indicator hikyuu.indicator.CROSS(x, y) 交叉函数 参数: x – 变量或常量,判断交叉的第一条线 y – 变量或常量,判断交叉的第二条线 返回类型: Indicator hikyuu.indicator.CVAL([data, value=0.0, discard=0]) data 为 Indicator 实例,创建和 data 等长的常量指标,其值和为value,抛弃长度discard和data一样 参数: data (Indicator) – Indicator实例 value (float) – 常数值 discard (int) – 抛弃数量 返回类型: Indicator hikyuu.indicator.DECLINE([query=Query(-100), market='SH', stk_type='constant.STOCKTYPE_A']) 下跌家数。当存在指定上下文且 ignore_context 为 false 时,将忽略 query, market, stk_type 参数。 参数: query (Query) – 查询条件 market (str) – 所属市场,等于 “” 时,获取所有市场 stk_type (int) – 证券类型, 大于 constant.STOCKTYPE_TMP 时,获取所有类型证券 ignore_context (bool) – 是否忽略上下文。忽略时,强制使用 query, market, stk_type 参数。 返回类型: Indicator hikyuu.indicator.DEVSQ([data, n=10]) 数据偏差平方和,求X的N日数据偏差平方和 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.DIFF([data]) 差分指标,即data[i] - data[i-1] 参数: data (Indicator) – 输入数据 返回类型: Indicator hikyuu.indicator.DMA(ind, a) 动态移动平均 用法:DMA(X,A),求X的动态移动平均。 算法:若Y=DMA(X,A) 则 Y=A*X+(1-A)*Y’,其中Y’表示上一周期Y值。 例如:DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价 参数: ind (Indicator) – 输入数据 a (Indicator) – 动态系数 返回类型: Indicator hikyuu.indicator.DROPNA([data]) 删除 nan 值 参数: data (Indicator) – 输入数据 返回类型: Indicator hikyuu.indicator.DOWNNDAY(data[, n=3]) 连跌周期数, DOWNNDAY(CLOSE,M)表示连涨M个周期 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.EMA([data, n=22]) 指数移动平均线(Exponential Moving Average) 参数: data – 输入数据 n (int) – 计算均值的周期窗口,必须为大于0的整数 返回类型: Indicator hikyuu.indicator.EVERY([data, n=20]) 一直存在 用法:EVERY (X,N) 表示条件X在N周期一直存在 例如:EVERY(CLOSE>OPEN,10) 表示前10日内一直是阳线 参数: data – 输入数据 n (int) – 计算均值的周期窗口,必须为大于0的整数 返回类型: Indicator hikyuu.indicator.EXIST([data, n=20]) 存在, EXIST(X,N) 表示条件X在N周期有存在 参数: data – 输入数据 n (int) – 计算均值的周期窗口,必须为大于0的整数 返回类型: Indicator hikyuu.indicator.EXP([data]) EXP(X)为e的X次幂 参数: data (Indicator) – 输入数据 返回类型: Indicator hikyuu.indicator.FILTER([data, n=5]) 信号过滤, 过滤连续出现的信号。 用法:FILTER(X,N): X 满足条件后,删除其后 N 周期内的数据置为 0。 例如:FILTER(CLOSE>OPEN,5) 查找阳线,5 天内再次出现的阳线不被记录在内。 参数: data (Indicator) – 输入数据 n (int) – 过滤周期 返回类型: Indicator hikyuu.indicator.FLOOR([data]) 向下舍入(向数值减小方向舍入)取整 用法:FLOOR(A)返回沿A数值减小方向最接近的整数 例如:FLOOR(12.3)求得12 参数: data – 输入数据 返回类型: Indicator hikyuu.indicator.HHV([data, n=20]) N日内最高价,N=0则从第一个有效值开始。 参数: data (Indicator) – 输入数据 n (int) – N日时间窗口 返回类型: Indicator hikyuu.indicator.HHVBARS([data, n=20]) 上一高点位置 求上一高点到当前的周期数。 用法:HHVBARS(X,N):求N周期内X最高值到当前周期数N=0表示从第一个有效值开始统计 例如:HHVBARS(HIGH,0)求得历史新高到到当前的周期数 参数: data (Indicator) – 输入数据 n (int) – N日时间窗口 返回类型: Indicator hikyuu.indicator.HIGH([data]) 获取最高价,包装KData的最高价成Indicator 参数: data – 输入数据(KData 或 Indicator) 返回类型: Indicator hikyuu.indicator.HSL(kdata) 获取换手率,等于 VOL(k) / CAPITAL(k) 参数: kdata (KData) – k线数据 返回类型: Indicator hikyuu.indicator.IF(x, a, b) 条件函数, 根据条件求不同的值。 用法:IF(X,A,B)若X不为0则返回A,否则返回B 例如:IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值 参数: x (Indicator) – 条件指标 a (Indicator) – 待选指标 a b (Indicator) – 待选指标 b 返回类型: Indicator hikyuu.indicator.INTPART([data]) 取整(绝对值减小取整,即取得数据的整数部分) 参数: data – 输入数据 返回类型: Indicator hikyuu.indicator.KDATA([data]) 包装KData成Indicator,用于其他指标计算 参数: data – KData 或 具有6个返回结果的Indicator(如KDATA生成的Indicator) 返回类型: Indicator hikyuu.indicator.KDATA_PART([data, kpart]) 根据字符串选择返回指标KDATA/OPEN/HIGH/LOW/CLOSE/AMO/VOL,如:KDATA_PART(“CLOSE”)等同于CLOSE() 参数: data – 输入数据(KData 或 Indicator) kpart (string) – KDATA|OPEN|HIGH|LOW|CLOSE|AMO|VOL 返回类型: Indicator hikyuu.indicator.KDJ(kdata[, n=9, m12=3, m2=3]) 经典 KDJ 随机指标 参数: kdata (KData) – 关联的K线数据 n (int) – m1 (int) – m2 (int) – 返回: k, d, j hikyuu.indicator.LIUTONGPAN(kdata) 获取流通盘(单位:万股),同 CAPITAL 参数: kdata (KData) – k线数据 返回类型: Indicator hikyuu.indicator.LAST([data, m=10, n=5]) 区间存在。 用法:LAST (X,M,N) 表示条件 X 在前 M 周期到前 N 周期存在。 例如:LAST(CLOSE>OPEN,10,5) 表示从前10日到前5日内一直阳线。 参数: data – 输入数据 m (int) – m周期 n (int) – n周期 返回类型: Indicator hikyuu.indicator.LLV([data, n=20]) N日内最低价,N=0则从第一个有效值开始。 参数: data – 输入数据 n (int) – N日时间窗口 返回类型: Indicator hikyuu.indicator.LLVBARS([data, n=20]) 上一低点位置 求上一低点到当前的周期数。 用法:LLVBARS(X,N):求N周期内X最低值到当前周期数N=0表示从第一个有效值开始统计 例如:LLVBARS(HIGH,20)求得20日最低点到当前的周期数 参数: data – 输入数据 n (int) – N日时间窗口 返回类型: Indicator hikyuu.indicator.LN([data]) 求自然对数, LN(X)以e为底的对数 参数: data – 输入数据 返回类型: Indicator hikyuu.indicator.LOG([data]) 以10为底的对数 参数: data – 输入数据 返回类型: Indicator hikyuu.indicator.LONGCROSS(a, b[, n=3]) 两条线维持一定周期后交叉 用法:LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返 回1,否则返回0 例如:LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5)表示5日均线维持5周期后与10日均线交金叉 参数: a (Indicator) – b (Indicator) – n (int) – 返回类型: Indicator hikyuu.indicator.LOW([data]) 获取最低价,包装KData的最低价成Indicator 参数: data – 输入数据(KData 或 Indicator) 返回类型: Indicator hikyuu.indicator.MA([data, n=22]) 简单移动平均 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.MACD([data, n1=12, n2=26, n3=9]) 平滑异同移动平均线 参数: data (Indicator) – 输入数据 n1 (int) – 短期EMA时间窗 n2 (int) – 长期EMA时间窗 n3 (int) – (短期EMA-长期EMA)EMA平滑时间窗 返回类型: 具有三个结果集的 Indicator result(0): MACD_BAR:MACD直柱,即MACD快线-MACD慢线 result(1): DIFF: 快线,即(短期EMA-长期EMA) result(2): DEA: 慢线,即快线的n3周期EMA平滑 hikyuu.indicator.MAX(ind1, ind2) 求最大值, MAX(A,B)返回A和B中的较大值。 参数: ind1 (Indicator) – A ind2 (Indicator) – B 返回类型: Indicator hikyuu.indicator.MIN(ind1, ind2) 求最小值, MIN(A,B)返回A和B中的较小值。 参数: ind1 (Indicator) – A ind2 (Indicator) – B 返回类型: Indicator hikyuu.indicator.MOD(ind1, ind2) 取整后求模。该函数仅为兼容通达信。实际上,指标求模可直接使用 % 操作符 用法:MOD(A,B)返回A对B求模 例如:MOD(26,10) 返回 6 参数: ind1 (Indicator) – ind2 (Indicator) – 返回类型: Indicator hikyuu.indicator.NDAY(x, y[, n=3]) 连大, NDAY(X,Y,N)表示条件X>Y持续存在N个周期 参数: x (Indicator) – y (Indicator) – n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.NOT([data]) 求逻辑非。NOT(X)返回非X,即当X=0时返回1,否则返回0。 参数: data (Indicator) – 输入数据 返回类型: Indicator hikyuu.indicator.OPEN([data]) 获取开盘价,包装KData的开盘价成Indicator 参数: data – 输入数据(KData 或 Indicator) 返回类型: Indicator hikyuu.indicator.POW(data, n) 乘幂 用法:POW(A,B)返回A的B次幂 例如:POW(CLOSE,3)求得收盘价的3次方 参数: data – 输入数据 n (int) – 幂 返回类型: Indicator hikyuu.indicator.PRICELIST(data[, result_index=0, discard=0]) 将 list、tuple、Indicator 转化为普通的 Indicator 参数: data – 输入数据,可以为 list、tuple、Indicator result_index (int) – 当data为Indicator实例时,指示Indicator的第几个结果集 discard (int) – 在 data 为 Indicator类型时无效。表示前端抛弃的数据点数,抛弃的值使用 constant.null_price 填充 返回类型: Indicator hikyuu.indicator.REF([data, n]) 向前引用 (即右移),引用若干周期前的数据。 用法:REF(X,A) 引用A周期前的X值。 参数: data (Indicator) – 输入数据 n (int) – 引用n周期前的值,即右移n位 返回类型: Indicator hikyuu.indicator.REVERSE([data]) 求相反数,REVERSE(X)返回-X 参数: data (Indicator) – 输入数据 返回类型: Indicator hikyuu.indicator.ROC([data, n=10]) 变动率指标: ((price / prevPrice)-1)*100 参数: data – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.ROCP([data, n=10]) 变动率指标: (price - prevPrice) / prevPrice 参数: data – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.ROCR([data, n=10]) 变动率指标: (price / prevPrice) 参数: data – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.ROCR100([data, n=10]) 变动率指标: (price / prevPrice) * 100 参数: data – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.ROUND([data, ndigits=2]) 四舍五入 参数: data – 输入数据 ndigits (int) – 保留的小数点后位数 返回类型: Indicator hikyuu.indicator.ROUNDDOWN([data, ndigits=2]) 向下截取,如10.1截取后为10 参数: data – 输入数据 ndigits (int) – 保留的小数点后位数 返回类型: Indicator hikyuu.indicator.ROUNDUP([data, ndigits=2]) 向上截取,如10.1截取后为11 参数: data – 输入数据 ndigits (int) – 保留的小数点后位数 返回类型: Indicator hikyuu.indicator.RSI(kdata=None, N1=6, N2=12, N3=24) 相对强弱指标 参数: kdata (KData) – 关联的K线数据 N1 (int) – 参数N1 N2 (int) – 参数N1 N3 (int) – 参数N1 返回: rsi1, rsi2, rsi3 hikyuu.indicator.SAFTYLOSS([data, n1=10, n2=3, p=2.0]) 亚历山大 艾尔德安全地带止损线,参见 [BOOK2] 计算说明:在回溯周期内(一般为10到20天),将所有向下穿越的长度相加除以向下穿越的次数,得到噪音均值(即回溯期内所有最低价低于前一日最低价的长度除以次数),并用今日最低价减去(前日噪音均值乘以一个倍数)得到该止损线。为了抵消波动并且保证止损线的上移,在上述结果的基础上再取起N日(一般为3天)内的最高值 参数: data (Indicator) – 输入数据 n1 (int) – 计算平均噪音的回溯时间窗口 n2 (int) – 对初步止损线去n2日内的最高值 p (float) – 噪音系数 返回类型: Indicator hikyuu.indicator.SIN([data]) 正弦值 参数: data (Indicator) – 输入数据 返回类型: Indicator hikyuu.indicator.SGN([data]) 求符号值, SGN(X),当 X>0, X=0, X<0分别返回 1, 0, -1。 参数: data (Indicator) – 输入数据 返回类型: Indicator hikyuu.indicator.SMA([data, n=22, m=2]) 求移动平均 用法:若Y=SMA(X,N,M) 则 Y=[M*X+(N-M)*Y’)/N,其中Y’表示上一周期Y值 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 m (float) – 系数 返回类型: Indicator hikyuu.indicator.SQRT([data]) 开平方 用法:SQRT(X)为X的平方根 例如:SQRT(CLOSE)收盘价的平方根 参数: data – 输入数据 返回类型: Indicator hikyuu.indicator.STD([data, n=10]) 计算N周期内样本标准差 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.STDEV([data, n=10]) 计算N周期内样本标准差 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.STDP([data, n=10]) 总体标准差,STDP(X,N)为X的N日总体标准差 参数: data – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.SUM([data, n=20]) 求总和。SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始。 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.SUMBARS([data, ]a) 累加到指定周期数, 向前累加到指定值到现在的周期数 用法:SUMBARS(X,A):将X向前累加直到大于等于A,返回这个区间的周期数 例如:SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数 参数: data (Indicator) – 输入数据 a (float) – 指定累加和 返回类型: Indicator hikyuu.indicator.TAN([data]) 正切值 参数: data (Indicator) – 输入数据 返回类型: Indicator hikyuu.indicator.TIMELINE([k]) 分时价格数据 参数: k (KData) – 上下文 返回类型: Indicator hikyuu.indicator.TIMELINEVOL([k]) 分时成交量数据 参数: k (KData) – 上下文 返回类型: Indicator hikyuu.indicator.UPNDAY(data[, n=3]) 连涨周期数, UPNDAY(CLOSE,M)表示连涨M个周期 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.VAR([data, n=10]) 估算样本方差, VAR(X,N)为X的N日估算样本方差 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.VARP([data, n=10]) 总体样本方差, VARP(X,N)为X的N日总体样本方差 参数: data (Indicator) – 输入数据 n (int) – 时间窗口 返回类型: Indicator hikyuu.indicator.VIGOR([kdata, n=2]) 亚历山大.艾尔德力度指数 [BOOK2] 计算公式:(收盘价今-收盘价昨)*成交量今 参数: data (KData) – 输入数据 n (int) – EMA平滑窗口 返回类型: Indicator hikyuu.indicator.VOL([data]) 获取成交量,包装KData的成交量成Indicator 参数: data – 输入数据(KData 或 Indicator) 返回类型: Indicator hikyuu.indicator.WEAVE(ind1, ind2) 将ind1和ind2的结果组合在一起放在一个Indicator中。如ind = WEAVE(ind1, ind2), 则此时ind包含多个结果,按ind1、ind2的顺序存放。 参数: ind1 (Indicator) – 指标1 ind2 (Indicator) – 指标2 返回类型: Indicator
TA-Lib包装
由于内建指标还不完整,在交互工具里对TA-Lib进行了包装,命名方式统一为 TA_FUNC名称。其中,ta-lib指标的lookback属性,用discard属性代替。
x = TA_SMA(CLOSE(k))
print(x)
x.plot()
print(x.discard)
个别的Ta-Lib函数需要两个数组参数,比如BETA、CORREL。此时需要利用特殊的 Indicator WEAVE 将两个数组包装到一个 ind 对象中。
query = Query(-200)
k1 = sm['sh000001'].getKData(query)
k2 = sm['sz000001'].getKData(query)
w = WEAVE(CLOSE(k1))
w = w(CLOSE(k2))
print(w.getResultNumber())
cr = TA_CORREL(w)
cr.plot()