内建技术指标¶
-
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 参数。
返回类型:
-
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值
返回类型: - result(0): AMA
- result(1): ER
-
hikyuu.indicator.
AMO
([data])¶ 获取成交金额,包装KData的成交金额成Indicator
参数: data – 输入数据(KData 或 Indicator) 返回类型: Indicator
-
hikyuu.indicator.
ATR
([data, n=14])¶ 平均真实波幅(Average True Range)
:param Indicator data 待计算的源数据 :param int n: 计算均值的周期窗口,必须为大于1的整数 :rtype: Indicator
-
hikyuu.indicator.
AVEDEV
(data[, n=22])¶ 平均绝对偏差,求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|Indicator|IndParam (int) – N周期
返回类型:
-
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日均线之间
参数: 返回类型:
-
hikyuu.indicator.
CLOSE
([data])¶ 获取收盘价,包装KData的收盘价成Indicator
参数: data – 输入数据(KData 或 Indicator) 返回类型: Indicator
-
hikyuu.indicator.
CEILING
([data])¶ 向上舍入(向数值增大方向舍入)取整
用法:CEILING(A)返回沿A数值增大方向最接近的整数
例如:CEILING(12.3)求得13;CEILING(-3.5)求得-3
参数: data – 输入数据 返回类型: 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
返回类型:
-
hikyuu.indicator.
COUNT
([data, n=20])¶ 统计满足条件的周期数。
用法:COUNT(X,N),统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。
例如:COUNT(CLOSE>OPEN,20)表示统计20周期内收阳的周期数
参数: - data (Indicator) – 条件
- n (int|Indicator|IndParam) – 周期
返回类型:
-
hikyuu.indicator.
CVAL
([data, value=0.0, discard=0])¶ data 为 Indicator 实例,创建和 data 等长的常量指标,其值和为value,抛弃长度discard和data一样
参数: - data (Indicator) – Indicator实例
- value (float) – 常数值
- discard (int) – 抛弃数量
返回类型:
-
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 参数。
返回类型:
-
hikyuu.indicator.
DEVSQ
([data, n=10])¶ 数据偏差平方和,求X的N日数据偏差平方和
参数: - data (Indicator) – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
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)表示求以换手率作平滑因子的平均价
参数: 返回类型:
-
hikyuu.indicator.
DOWNNDAY
(data[, n=3])¶ 连跌周期数, DOWNNDAY(CLOSE,M)表示连涨M个周期
参数: - data (Indicator) – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
EMA
([data, n=22])¶ 指数移动平均线(Exponential Moving Average)
参数: - data – 输入数据
- n (int|Indciator|IndParam) – 计算均值的周期窗口,必须为大于0的整数
返回类型:
-
hikyuu.indicator.
EVERY
([data, n=20])¶ 一直存在
用法:EVERY (X,N) 表示条件X在N周期一直存在
例如:EVERY(CLOSE>OPEN,10) 表示前10日内一直是阳线
参数: - data – 输入数据
- n (int|Indicator|IndParam) – 计算均值的周期窗口,必须为大于0的整数
返回类型:
-
hikyuu.indicator.
EXIST
([data, n=20])¶ 存在, EXIST(X,N) 表示条件X在N周期有存在
参数: - data – 输入数据
- n (int|Indicator|IndParam) – 计算均值的周期窗口,必须为大于0的整数
返回类型:
-
hikyuu.indicator.
FILTER
([data, n=5])¶ 信号过滤, 过滤连续出现的信号。
用法:FILTER(X,N): X 满足条件后,删除其后 N 周期内的数据置为 0。
例如:FILTER(CLOSE>OPEN,5) 查找阳线,5 天内再次出现的阳线不被记录在内。
参数: - data (Indicator) – 输入数据
- n (int|Indicator|IndParam) – 过滤周期
返回类型:
-
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|Indicator|IndParam) – N日时间窗口
返回类型:
-
hikyuu.indicator.
HHVBARS
([data, n=20])¶ 上一高点位置 求上一高点到当前的周期数。
用法:HHVBARS(X,N):求N周期内X最高值到当前周期数N=0表示从第一个有效值开始统计
例如:HHVBARS(HIGH,0)求得历史新高到到当前的周期数
参数: - data (Indicator) – 输入数据
- n (int|Indicator|IndParam) – N日时间窗口
返回类型:
-
hikyuu.indicator.
HIGH
([data])¶ 获取最高价,包装KData的最高价成Indicator
参数: data – 输入数据(KData 或 Indicator) 返回类型: Indicator
-
hikyuu.indicator.
IF
(x, a, b)¶ 条件函数, 根据条件求不同的值。
用法:IF(X,A,B)若X不为0则返回A,否则返回B
例如:IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值
参数: 返回类型:
-
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
返回类型:
-
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.
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周期
返回类型:
-
hikyuu.indicator.
LLV
([data, n=20])¶ N日内最低价,N=0则从第一个有效值开始。
参数: - data – 输入数据
- n (int|Indicator|IndParam) – N日时间窗口
返回类型:
-
hikyuu.indicator.
LLVBARS
([data, n=20])¶ 上一低点位置 求上一低点到当前的周期数。
用法:LLVBARS(X,N):求N周期内X最低值到当前周期数N=0表示从第一个有效值开始统计
例如:LLVBARS(HIGH,20)求得20日最低点到当前的周期数
参数: - data – 输入数据
- n (int|Indicator|IndParam) – N日时间窗口
返回类型:
-
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日均线交金叉
参数: 返回类型:
-
hikyuu.indicator.
LOW
([data])¶ 获取最低价,包装KData的最低价成Indicator
参数: data – 输入数据(KData 或 Indicator) 返回类型: Indicator
-
hikyuu.indicator.
MA
([data, n=22])¶ 简单移动平均
参数: - data (Indicator) – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
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中的较大值。
参数: 返回类型:
-
hikyuu.indicator.
MIN
(ind1, ind2)¶ 求最小值, MIN(A,B)返回A和B中的较小值。
参数: 返回类型:
-
hikyuu.indicator.
MOD
(ind1, ind2)¶ 取整后求模。该函数仅为兼容通达信。实际上,指标求模可直接使用 % 操作符
用法:MOD(A,B)返回A对B求模
例如:MOD(26,10) 返回 6
参数: 返回类型:
-
hikyuu.indicator.
NDAY
(x, y[, n=3])¶ 连大, NDAY(X,Y,N)表示条件X>Y持续存在N个周期
参数: 返回类型:
-
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|IndParam) – 幂
返回类型:
-
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 填充
返回类型:
-
hikyuu.indicator.
REF
([data, n])¶ 向前引用 (即右移),引用若干周期前的数据。
用法:REF(X,A) 引用A周期前的X值。
参数: - data (Indicator) – 输入数据
- n (int) – 引用n周期前的值,即右移n位
返回类型:
-
hikyuu.indicator.
ROC
([data, n=10])¶ 变动率指标: ((price / prevPrice)-1)*100
参数: - data – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
ROCP
([data, n=10])¶ 变动率指标: (price - prevPrice) / prevPrice
参数: - data – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
ROCR
([data, n=10])¶ 变动率指标: (price / prevPrice)
参数: - data – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
ROCR100
([data, n=10])¶ 变动率指标: (price / prevPrice) * 100
参数: - data – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
ROUND
([data, ndigits=2])¶ 四舍五入
参数: - data – 输入数据
- ndigits (int) – 保留的小数点后位数
返回类型:
-
hikyuu.indicator.
ROUNDDOWN
([data, ndigits=2])¶ 向下截取,如10.1截取后为10
参数: - data – 输入数据
- ndigits (int) – 保留的小数点后位数
返回类型:
-
hikyuu.indicator.
ROUNDUP
([data, ndigits=2])¶ 向上截取,如10.1截取后为11
参数: - data – 输入数据
- ndigits (int) – 保留的小数点后位数
返回类型:
-
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) – 噪音系数
返回类型:
-
hikyuu.indicator.
SGN
([data])¶ 求符号值, SGN(X),当 X>0, X=0, X<0分别返回 1, 0, -1。
参数: data (Indicator) – 输入数据 返回类型: Indicator
-
hikyuu.indicator.
SLICE
(data, start, end, result_index=0)¶ 获取某指标中指定范围 [start, end) 的数据,生成新的指标
参数: - data (Indicator|PriceList) – 输入数据
- start (int) – 起始位置
- end (int) – 终止位置(不包含本身)
- result_index (int) – 原输入数据中的结果集
-
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) – 系数
返回类型:
-
hikyuu.indicator.
SQRT
([data])¶ 开平方
用法:SQRT(X)为X的平方根
例如:SQRT(CLOSE)收盘价的平方根
参数: data – 输入数据 返回类型: Indicator
-
hikyuu.indicator.
STD
([data, n=10])¶ 计算N周期内样本标准差
参数: - data (Indicator) – 输入数据
- n|Indicator|IndParam (int) – 时间窗口
返回类型:
-
hikyuu.indicator.
STDEV
([data, n=10])¶ 计算N周期内样本标准差
参数: - data (Indicator) – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
STDP
([data, n=10])¶ 总体标准差,STDP(X,N)为X的N日总体标准差
参数: - data – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
SUM
([data, n=20])¶ 求总和。SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始。
参数: - data (Indicator) – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
SUMBARS
([data, ]a)¶ 累加到指定周期数, 向前累加到指定值到现在的周期数
用法:SUMBARS(X,A):将X向前累加直到大于等于A,返回这个区间的周期数
例如:SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数
参数: - data (Indicator) – 输入数据
- a (float|Indicator|IndParam) – 指定累加和
返回类型:
-
hikyuu.indicator.
UPNDAY
(data[, n=3])¶ 连涨周期数, UPNDAY(CLOSE,M)表示连涨M个周期
参数: - data (Indicator) – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
VAR
([data, n=10])¶ 估算样本方差, VAR(X,N)为X的N日估算样本方差
参数: - data (Indicator) – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
VARP
([data, n=10])¶ 总体样本方差, VARP(X,N)为X的N日总体样本方差
参数: - data (Indicator) – 输入数据
- n (int|Indicator|IndParam) – 时间窗口
返回类型:
-
hikyuu.indicator.
VIGOR
([kdata, n=2])¶ 亚历山大.艾尔德力度指数 [BOOK2]
计算公式:(收盘价今-收盘价昨)*成交量今
参数: - data (KData) – 输入数据
- n (int) – EMA平滑窗口
返回类型: