UNPKG

mm_maths

Version:

这是一个可以将数学公式推导变形,并转成js和计算的模块。

294 lines (290 loc) 15.6 kB
一,行情函数 1,HIGH 最高价 返回该周期最高价。 用法:HIGH 2,H 最高价 返回该周期最高价。 用法: H 3, LOW 最低价 返回该周期最低价。 用法: LOW 4, L 最低价 返回该周期最低价。 用法: L 5CLOSE 收盘价 返回该周期收盘价。 用法: CLOSE 6, C 收盘价 返回该周期收盘价。 用法: C 7, VOL 成交量 返回该周期成交量。 用法: VOL 8, V 成交量 返回该周期成交量。 用法: V 9OPEN 开盘价 返回该周期开盘价。 用法: OPEN 10,O:开盘价 返回该周期开盘价。 用法: O 11,ADVANCE 上涨家数 返回该周期上涨家数。 用法: ADVANCE (本函数仅对大盘有效) 12,DECLINE 下跌家数 返回该周期下跌家数。 用法: DECLINE (本函数仅对大盘有效) 13,AMOUNT 成交额 返回该周期成交额。 用法: AMOUNT 14,ASKPRICE 委卖价 返回委卖1--委卖3价格 用法:ASKPRICE(N) N取1—3。(本函数仅个股在分笔成交分析周期有效) 15,ASKVOL 委卖量 返回委卖1--委卖3量。 用法: ASKVOL(N) N取1—3。 (本函数仅个股在分笔成交分析周期有效) 16,BIDPRICE 委买价 返回委买1--委买3价格。 用法: BIDPRICE(N) N取1—3。(本函数仅个股在分笔成交分析周期有效) 17,BIDVOL 委买量 返回委买1--委买3量。 用法: BIDVOL(N) N取1—3。 (本函数仅个股在分笔成交分析周期有效) 18,BUYVOL 主动性买盘 返回主动性买单量。 用法:BUYVOL 当本笔成交为主动性买盘时,其数值等于成交量,否则为0。(本函数仅个股在分笔成交分析周期有效) 19,SELLVOL 主动性卖盘 返回主动性卖单量。 用法: SELLVOL 当本笔成交为主动性卖盘时,其数值等于成交量,否则为0。(本函数仅个股在分笔成交分析周期有效) 20,ISBUYORDER 主动性买单 返回该成交是否为主动性买单。 用法: ISBUYORDER 当本笔成交为主动性买盘时,返回1,否则为0。(本函数仅个股在分笔成交分析周期有效) 21,ISSELLORDER 主动性卖单 返回该成交是否为主动性卖单。 用法: ISSELLORDER 当本笔成交为主动性卖盘时,返回1,否则为0。(本函数仅个股在分笔成交分析周期有效) 22,成交额(元):AMOUNT 23,持仓量:VOLINSTK 24,外盘(手):BUYVOL 25,内盘(手):SELLVOL 26,主动性买单:ISBUYORDER 27,不定周期最高价:DHIGH 28,不定周期开盘价:DOPEN 29,不定周期最低价:DLOW 30,不定周期收盘价:DCLOSE 31,不定周期成交量:DVOL 时间函数 1DATE 日期 取得该周期从1900以来的年月日。 用法: DATE 例如函数返回1000101,表示200011日。 2TIME 时间 取得该周期的时分秒。 用法: TIME 函数返回有效值范围为(000000-235959)。 3YEAR 年份 取得该周期的年份。 用法:YEAR 4MONTH 月份 取得该周期的月份。 用法:MONTH 函数返回有效值范围为(1-12)。 5, WEEK 星期 取得该周期的星期数。 用法: WEEK 函数返回有效值范围为(0-6),0表示星期天。 6DAY 日期 取得该周期的日期。 用法: DAY 函数返回有效值范围为(1-31)。 7HOUR 小时 取得该周期的小时数。 用法: HOUR 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为08MINUTE 分钟 取得该周期的分钟数。 用法: MINUTE 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为09, FROMOPEN 分钟 求当前时刻距开盘有多长时间。 用法: FROMOPEN 返回当前时刻距开盘有多长时间,单位为分钟。 例如:  FROMOPEN 当前时刻为早上十点,则返回3110,TFILT 分钟 对指定时间段的数据进行过滤,该时间段以外的数据无效. 用法: TFILT(X,D1,M1,D2,M2) 例如TFILT(CLOSE,1040101,1025,1040101,1345)表示在200411日的10:25200411日的13:45的收盘价是有效的. 周期以日为基本单位的,分时为0有效. 11,周期:PERIOD 取得周期类型. 结果从011,依次分别是1/5/15/30/60分钟,日//月,多分钟,多日,季,年. 引用函数 1, DRAWNULL 无效数 返回无效数。 用法: DRAWNULL 例如: IF(CLOSE>REF(CLOSE1),CLOSE,DRAWNULL) 表示下跌时分析图上不画线。 2, BACKSET 向前赋值 将当前位置到若干周期前的数据设为1。 用法: BACKSET(X,N) 若X非0,则将当前位置到N周期前的数值设为1。 例如: BACKSET(CLOSE>OPEN2) 若收阳则将该周期及前一周期数值设为1,否则为03, BARSCOUNT 有效数据周期数 求总的周期数。 用法: BARSCOUNT(X) 第一个有效数据到当前的天数。 例如: BARSCOUNT(CLOSE) 对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数。 4, CURRBARSCOUNT 到最后交易日的周期数 求到最后交易日的周期数. 用法: CURRBARSCOUNT 求到最后交易日的周期数 5, TOTALBARSCOUNT 总的周期数 求总的周期数. 用法: TOTALBARSCOUNT 求总的周期数 6, BARSLAST 上一次条件成立位置 上一次条件成立到当前的周期数。 用法: BARSLAST(X) 上一次X不为0到现在的天数。 例如: BARSLAST(CLOSE/REF(CLOSE,1)>=1.1) 表示上一个涨停板到当前的周期数。 7, BARSSINCE 第一个条件成立位置 第一个条件成立到当前的周期数。 用法: BARSSINCE(X) 第一次X不为0到现在的天数。 例如: BARSSINCE(HIGH>10) 表示股价超过10元时到当前的周期数。 8, COUNT 统计 统计满足条件的周期数。 用法: COUNT(X,N) 统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。 例如: COUNT(CLOSE>OPEN20) 表示统计20周期内收阳的周期数。 9, HHV 最高值 求最高值。 用法: HHV(X,N) 求N周期内X最高值,N=0则从第一个有效值开始。 例如: HHV(HIGH,30) 表示求30日最高价。 10, HHVBARS 上一高点位置 求上一高点到当前的周期数。 用法: HHVBARS(X,N) 求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计。 例如: HHVBARS(HIGH,0) 求得历史新高到到当前的周期数。 11, LLV 最低值 求最低值。 用法: LLV(X,N) 求N周期内X最低值,N=0则从第一个有效值开始。 例如: LLV(LOW,0) 表示求历史最低价。 12, LLVBARS 上一低点位置 求上一低点到当前的周期数。 用法: LLVBARS(X,N) 求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计。 例如: LLVBARS(HIGH,20) 求得20日最低点到当前的周期数。 13, REVERSE 求相反数 求相反数。 用法: REVERSE(X) 返回-X。 例如: REVERSE(CLOSE) 返回-CLOSE14REF 向前引用 引用若干周期前的数据。 用法: REF(X,A) 引用A周期前的X值。 例如: REF(CLOSE1) 表示上一周期的收盘价,在日线上就是昨收。 15, REFDATE 指定引用 引用指定日期的数据。 用法: REFDATE(X,A) 引用A日期的X值。 例如: REF(CLOSE20011208) 表示20011208日的收盘价。 16, SUM 总和 求总和。 用法: SUM(X,N) 统计N周期中X的总和,N=0则从第一个有效值开始。 例如: SUM(VOL,0) 表示统计从上市第一天以来的成交量总和。 17FILTER 过滤 过滤连续出现的信号。 用法: FILTER(X,N) X满足条件后,删除其后N周期内的数据置为0。 例如: FILTER(CLOSE>OPEN5) 查找阳线,5天内再次出现的阳线不被记录在内。 18, SUMBARS 累加到指定值的周期数 向前累加到指定值到现在的周期数。 用法: SUMBARS(X,A) 将X向前累加直到大于等于A,返回这个区间的周期数。 例如: SUMBARS(VOL,CAPITAL) 求完全换手到现在的周期数。 19, SMA 移动平均 返回移动平均。 用法: SMA(X,N,M) X的M日移动平均,M为权重,如Y=(X*M+Y'*(N-M))/N 20, MA 简单移动平均 返回简单移动平均。 用法: MA(X,M) X的M日简单移动平均。 21, DMA 动态移动平均 求动态移动平均。 用法: DMA(X,A) 求X的动态移动平均。 算法: 若Y=DMA(X,A)则 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1。 例如: DMA(CLOSE,VOL/CAPITAL) 表示求以换手率作平滑因子的平均价。 22, EMA(或EXPMA) 指数移动平均 返回指数移动平均。 用法: EMA(X,M) X的M日指数移动平均。 23, MEMA 平滑移动平均 返回平滑移动平均 用法: MEMA(X,M) X的M日平滑移动平均。MEMA(X,N)与MA的差别在于起始值为一平滑值,而不是初始值 24, EXPMEMA 指数平滑移动平均 返回指数平滑移动平均。 用法: EXPMEMA(X,M) X的M日指数平滑移动平均。EXPMEMA同EMA(即EXPMA)的差别在于他的起始值为一平滑值 25, RANGE 介于某个范围之间 用法: RANGE(A,B,C) A在B和C。 例如: RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0 26, CONST 取值设为常数 用法:  CONST(A) 取A最后的值为常量. 例如: CONST(INDEXC)表示取大盘现价。 27, ISLASTBAR 判断是否为最后一个周期 28, BARSLASTCOUNT 统计条件连续成立次数 用法: BARSLASTCOUNT(X),统计连续满足X条件的周期数. 例如:BARSLASTCOUNT(CLOSE>OPEN)表示统计连续收阳的周期数 29, XMA 偏移移动平均 用法: XMA(X,M):X的M日偏移移动平均 30, TOPRANGE 当前值是近多少周期内的最大值 用法: TOPRANGE(X):X是近多少周期内X的最大值 例如:TOPRANGE(HIGH)表示当前最高价是近多少周期内的最高价 31, LOWRANGE 当前值是近多少个周期内的最小值 用法: LOWRANGE(X):X是近多少周期内X的最小值 例如:LOWRANGE(LOW)表示当前最高价是近多少周期内的最小价 逻辑函数 1, CROSS 上穿 两条线交叉。 用法: CROSS(A,B) 表示当A从下方向上穿过B时返回1,否则返回0。 例如: CROSS(MA(CLOSE,5),MA(CLOSE,10)) 表示5日均线与10日均线交金叉。 2, LONGCROSS 维持一定周期后上穿 两条线维持一定周期后交叉。 用法: LONGCROSS(A,B,N) 表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。 3, UPNDAY 连涨 返回是否连涨周期数。 用法: UPNDAY(CLOSE,M) 表示连涨M个周期。 4, DOWNNDAY 连跌 返回是否连跌周期。 用法: DOWNNDAY(CLOSE,M) 表示连跌M个周期。 5, NDAY 连大 返回是否持续存在X>Y。 用法: NDAY(CLOSE,OPEN,3) 表示连续3日收阳线。 6, EXIST 存在 是否存在。 用法: EXIST(CLOSE>OPEN,10) 表示前10日内存在着阳线。 7, EVERY 一直存在 一直存在。 用法: EVERY(CLOSE>OPEN,10) 表示前10日内一直阳线。 8, LAST 持续存在 用法: LAST(X,A,B)  A>B,表示从前A日到前B日一直满足X条件。若A为0,表示从第一天开始,B为0,表示到最后日止。 例如: LAST(CLOSE>OPEN,10,5) 表示从前10日到前5日内一直阳线。 9, TESTSKIP(A):不满足A则直接返回. 用法: TESTSKIP(A) 表示如果不满足条件A则改公式直接返回,不再计算接下来的表达式 算术函数 1, NOT 取反 求逻辑非。 用法: NOT(X) 返回非X,即当X=0时返回1,否则返回0。 例如: NOT(ISUP) 表示平盘或收阴。 2, IF 逻辑判断 根据条件求不同的值。 用法: IF(X,A,B) 若X不为0则返回A,否则返回B。 例如: IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值。 3, IFF 逻辑判断 根据条件求不同的值。 用法: IFF(X,A,B) 若X不为0则返回A,否则返回B。 例如: IFF(CLOSE>OPEN,HIGH,LOW) 表示该周期收阳则返回最高值,否则返回最低值。 4, IFN 逻辑判断 根据条件求不同的值。 用法: IFN(X,A,B) 若X不为0则返回B,否则返回A。 例如: IFN(CLOSE>OPEN,HIGH,LOW) 表示该周期收阴则返回最高值,否则返回最低值。 5, MAX 较大值 求最大值。 用法: MAX(A,B) 返回A和B中的较大值。 例如: MAX(CLOSE-OPEN,0) 表示若收盘价大于开盘价返回它们的差值,否则返回0。 6, MIN 较小值 求最小值。 用法: MIN(A,B) 返回A和B中的较小值。 例如: MIN(CLOSE,OPEN) 返回开盘价和收盘价中的较小值。 数学函数 1, ACOS 反余弦 反余弦值。 用法: ACOS(X) 返回X的反余弦值。 2, ASIN 反正弦 反正弦值。 用法: ASIN(X) 返回X的反正弦值。 3, ATAN 反正切 反正切值。 用法: ATAN(X) 返回X的反正切值。 4, COS 余弦 余弦值。 用法: COS(X) 返回X的余弦值。 5, SIN 正弦 正弦值。 用法: SIN(X) 返回X的正弦值。 6, TAN 正切 正切值。 用法: TAN(X) 返回X的正切值。 7, EXP 指数 指数。 用法: EXP(X) e的X次幂。 例如: EXP(CLOSE) 返回e的CLOSE次幂。 8, LN 自然对数 求自然对数。 用法: LN(X) 以e为底的对数。 例如: LN(CLOSE) 求收盘价的对数。 9, LOG 对数 求10为底的对数。 用法: LOG(X) 取得X的对数。 例如: LOG(100) 等于2。 10, SQRT 开方 开平方。 用法: SQRT(X)  求X的平方根。 例如: SQRT(CLOSE) 收盘价的平方根。 11, ABS 绝对值 求绝对值。 用法: ABS(X) 返回X的绝对值。 例如: ABS(-34) 返回34。 12, POW 乘幂 乘幂。 用法: POW(A,B) 返回A的B次幂。 例如: POW(CLOSE,3) 求得收盘价的3次方。 13, CEILING 向上舍入 向上舍入。 用法: CEILING(A) 返回沿A数值增大方向最接近的整数。 例如: CEILING(12.3) 求得13,CEILING(-3.5)求得-3。 14, FLOOR 向下舍入 向下舍入。 用法: FLOOR(A) 返回沿A数值减小方向最接近的整数。 例如: FLOOR(12.3) 求得12,FLOOR(-3.5)求得-4。 15, INTPART 取整 用法: INTPART(A) 返回沿A绝对值减小方向最接近的整数。 例如: INTPART(12.3) 求得12,INTPART(-3.5)求得-3。 16, BETWEEN:介于 介于。 用法: BETWEEN(A,B,C) 表示A处于B和C之间时返回1,否则返回0。 例如: BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间。 统计