我们发现有很多用户对通达信的公式比较熟悉,但是想把通达信的公式直接搬到果仁的自定义指标中往往行不通。这里我将通达信中常用函数在果仁中的对应函数以及用法列举了出来供大家参考,希望能对大家有所帮助。当然,如果大家有什么希望能实现的通达信函数公式,也可以在本贴下面回复,我们会尽可能地提供替代的方法。(见附件)
功能 | 通达信 | 果仁 | ||
函数 | 用法 | 函数 | 用法 | |
行情函数 | ||||
返回当日最高价 | HIGH/H | -- | (后复权)最高价 | -- |
返回当日最低价 | LOW/L | -- | (后复权)最低价 | -- |
返回当日收盘价 | CLOSE/C | -- | (后复权)收盘价 | -- |
返回当日开盘价 | OPEN/O | -- | (后复权)开盘价 | -- |
返回当日成交量 | VOL/V | -- | 当日成交量 | -- |
返回当日成交额 | AMOUNT | -- | 当日成交额 | -- |
引用函数 | ||||
上一次条件成立到当前的天数 | BARSLAST | BARSLAST(C>O) | Dayslast | Dayslast(收盘价>开盘价) |
统计满足条件的天数 | COUNT | COUNT(C>O,20) | CountDays | CountDays(收盘价>开盘价,20) |
求最高值 | HHV | HHV(H,30) | Max | Max(最高价,30) |
求最低值 | LLV | LLV(L,30) | Min | Min(最低价,30) |
引用若干天前的数据 | REF | REF(C,1) | REF | Ref(收盘价,1) |
求总和 | SUM | SUM(V,5) | SUM | SUM(当日成交量,5) |
返回移动平均 | SMA | SMA(C,5,1.2) | SMA | SMA(收盘价,5,1.2) |
返回简单移动平均 | MA | MA(C,5) | MA | MA(收盘价,5) |
返回指数移动平均 | EMA | EMA(C,5) | EMA | EMA(收盘价,5) |
逻辑函数 | ||||
返回是否连续上涨 | UPNDAY | UPNDAY(C,5) | Dayslast | Dayslast(1日涨幅<0)>=5 |
返回是否连续下跌 | DOWNNDAY | DOWNNDAY(C,5) | Dayslast | Dayslast(1日涨幅>0)>=5 |
返回是否持续存在X>Y | NDAY | NDAY(C,O,10) | Dayslast | Dayslast(收盘价<开盘价)>=10 |
上穿 | CROSS | CROSS(C,MA(C,5)) | crossover | crossover(收盘价,MA(收盘价,5)) |
求逻辑非 | NOT | NOT(C>O) | NOT | NOT(收盘价>开盘价) |
求逻辑与 | AND | O>ref(C,1) AND C>O | And | And(开盘价>ref(收盘价,1),收盘价>开盘价) |
求逻辑或 | OR | O>ref(C,1) OR C>O | Or | Or(开盘价>ref(收盘价,1),收盘价>开盘价) |
根据条件求不同的值 | IF | IF(C>O,C,O) | IF | IF(收盘价>开盘价,收盘价,开盘价) |
求较大值 | MAX | MAX(C,O) | Greater | Greater(收盘价,开盘价) |
求较小值 | MIN | MIN(C,O) | Less | Less(收盘价,开盘价) |
数学函数 | ||||
求绝对值 | ABS | ABS(-34) | abs | abs(-34) |
求以10为底的对数 | LOG | LOG(100) | log | log(100) |
求开方 | SQRT | SQRT(16) | sqrt | sqrt(16) |
乘幂 | POW | POW(C,0.5) | power | Power(收盘价,0.5) |
向下舍入 | FLOOR | FLOOR(C) | floor | floor(收盘价) |
取余 | -- | -- | Mod | Mod(13,10) |
统计函数 | ||||
返回估算样本标准差 | STD | STD(C,20) | stdev | Stdev(收盘价,20) |
返回估算样本方差 | VAR | VAR(C,20) | var | Var(收盘价,20) |
返回线性回归斜率 | SLOPE | SLOPE(C,20) | Slope | Slope(收盘价,20) |
返回线性回归预测值 | FORCAST | FORCAST(C,20) | Forcast | Forcast(收盘价,20) |
返回过去几天的相关系数 | -- | -- | corr | corr(市盈率,60日涨幅,20) |
返回过去几天的协方差 | -- | -- | covar | covar(市盈率,60日涨幅,20) |
大盘函数 | ||||
返回大盘成交额 | INDEXA | MA(INDEXA,5) | 指数成交额 | MA2(指数成交额(000001),5) |
返回上涨家数(比例) | INDEXADV | INDEXADV | 指数成分股上涨比例 | 指数成分股上涨比例(000001) |
返回下跌家数(比例) | INDEXDEC | INDEXDEC | 指数成分股下跌比例 | 指数成分股下跌比例(000001) |
返回大盘收盘价 | INDEXC | MA(INDEXC,5) | 指数收盘 | MA2(指数收盘(000001) ,5) |
返回大盘最高价 | INDEXH | HHV(INDEXH,30) | 指数最高 | Max2(指数最高(000001),30) |
返回大盘最低价 | INDEXL | LLV(INDEXL,30) | 指数最低 | Min2(指数最低(000001),30) |
返回大盘开盘价 | INDEXO | REF(INDEXO,2) | 指数开盘 | ref(指数开盘(000001),2) |
返回大盘成交量 | INDEXV | MA(INDEXV,5) | 指数成交量 | MA2(指数成交量(000001),5) |
沙夫趋势周期指标
N1:=23;
N2:=50;
N:=10;
DIF:=EMA(C,N1)-EMA(C,N2);
HH:=HHV(DIF,N);
LL:=LLV(DIF,N);
K:=(DIF-LL)/(HH-LL)*100;
D:=SMA(K,2,1);
STC:SMA(D,2,1),COLORGREEN,LINETHICK2;
NOTEXT:IF(STC>REF(STC,1),STC,DRAWNULL),COLORRED,LINETHICK2;
NOTEXT1:25,COLORYELLOW,DOTLINE;
NOTEXT2:75,COLORGRAY,DOTLINE;
能否帮我把这个公式按照果仁公式写一下,谢谢
求助,谢谢管理员
B1:=(CLOSE/REF(CLOSE,3)<=0.86 && REF(B5,1)>=9)*SWITCH;
B2:=(CLOSE/REF(CLOSE,1)<=0.916 && REF(B5,1)>=9)*SWITCH;
B3:=(CLOSE/HIGH<=0.93 && VOL>=REF(HHV(VOL,21),1)*1.5 && REF(B5,1)>=9)*SWITCH;
B4:=COUNT(B1>=1 OR B2>=1 OR B3>=1,17);
A1:=CLOSE>=HHV(CLOSE,22) && CLOSE>=MA(CLOSE,63) && B4<=0;
A2:=(CLOSE<MA(CLOSE,22) && CLOSE<REF(CLOSE,22) && CLOSE<MA(CLOSE,63)) OR B1>=1 OR B3>=1;
A5:=(CLOSE<MA(CLOSE,10) && CLOSE<REF(CLOSE,10) && CLOSE<MA(CLOSE,10)) OR B1>=1 OR B2>=1 OR B3>=1;
A3:=BARSLAST(A1>=1);
A7:=BARSLAST(CLOSE<MA(CLOSE,63));
A8:=BARSLAST(A5>=1 && REF(A5,1)<1);
A9:=MIN(A7,REF(A8,1));
A6:=IF(COUNT(CLOSE/MA(CLOSE,63)>=1.4,MAX(A3,A9)+1)>=1,A5,A2);
A4:=BARSLAST(A6>=1);
DT:=IF(A3<A4,1,-1);
DT>=1 && REF(DT,1)<>1;
通达信里,RANGE这个功能咋实现啊?统计当前收盘价位于什么区间?
额 我仔细看了一下是支持的,之前看另一份文档去了哈 不好意思
主要问题是你的LR算出来的部分有些会是空值,而在sum里面如果有空值的话,则返回的也是空值
所以需要调整一下 LL:=SUM(IFNULL(LR,0),0)
整个公式串如下:
sum(ifnull((收盘价-Ref(收盘价,1))*SUM(当日成交量,2)/(((MAX(最高价,2)-MIN(最低价,2)))*100),0),0)
有个建议,我们用到的收盘价数据是没有复权的,因为可以将其改成后复权价格,也就是:
sum(ifnull((后复权收盘价-Ref(后复权收盘价,1))*SUM(当日成交量,2)/(((MAX(最高价,2)-MIN(最低价,2)))*100),0),0)
自定义指标帮助里还有0的例子...
如果不支持的话,有没有可以代替的?
求助:
LC:=Ref(收盘价,1)
LD:=SUM(当日成交量,2)/(((MAX(最高价,2)-MIN(最低价,2)))*100)
LR:=(收盘价-LC)*LD
LL:=SUM(LR,0)
然后LL没有输出,哪里出问题了?谢谢
我没有找到特别明确的insum函数的说明,如果这个函数是一种股票池求和函数的话,你可以参考ssum()函数
https://guorn.com/forum/post/p.3.32886171385419 这里的第六章部分
通达信里面 INSUM 果仁怎么写啊
有提供模板功能:https://guorn.com/forum/post/p.265.111770943679828 建议先熟悉自定义指标以后,然后尝试去做做模板
M1:=MA(C,5);
M2:=MA(C,20
M3:=MA(C,42;
D1:=BARSLAST(CROSS(M1,M2));
D2:=BARSLAST(CROSS(M1,M3));
D3:=BARSLAST(CROSS(M2,M3));
果仁编程里面赋值都不行啊?m1 m2 m3 d1 d2 d3这样的赋值怎么弄?总不能每次都写一大堆函数吧?后面条件要写好多组合呢,没有赋值也太不方便了吧?
dayslast或者barslast感觉会比较符合你的需求
请问如何在果仁实现BARSCOUNT(CLOSE)?即从某一条件成立起开始计算天数。我要用于线性回归的X轴,天数作为X轴,谢谢
filter函数没有吗
用这个 返回值大于0则条件为真
请问一下通达信的 exist 函数,果仁怎么自定义实现?我的通达信选股条件里面经常要用到这个函数,请指教。谢谢!
比如: EXIST(CROSS(K,D),5) {5日内KDJ金叉} ,对应果仁里面怎么实现?