☰
大智慧新一代函数手册精读:从基础函数到Level2避坑指南
2026/10/21 17:59:20 网站建设 项目流程

简介:大智慧新一代函数手册是一份面向大智慧软件用户与股票量化爱好者的函数参考文档,系统性梳理了行情、时间、引用、逻辑、算术、统计、指标、常数、绘图、专业财务、协方差、交易系统和输出修饰符等十五类函数,帮助读者理解并编写个性化分析指标与交易系统。压缩包内含单个PDF文件,容量约1.27MB,已有209人学习浏览,内容结构按章编排,便于检索查阅。手册对Level2行情相关函数尤其详尽,如委托卖出总量(ALLASKVOL)、委托买入总量(ALLBIDVOL)、全部委托单量(ALLORDERVOL)等,同时给出上涨家数、成交额、委卖价量、委托均价和单笔平均委托量等实用函数的用法,适用于大盘研判、盘口分析和订单结构研究。通过对照函数说明与示例,投资者可以快速掌握大智慧公式编写方法,构建自己的选股模型与交易策略。

1. 大智慧新一代函数手册:这份PDF到底能帮你省多少事

如果你手上有一套大智慧新一代的行情数据,却写不出像样的选股公式、盘中预警或者自定义指标,那问题一般不在思路,而在你不清楚这个平台里到底有哪些函数可用。市面上流传的《大智慧新一代 函数手册》虽然只是文本版整理,但它把行情、时间、引用、逻辑、算术、统计、指标、财务、交易系统、绘图这些类别全部收在一个文件里,对于想自己搭分析脚本的人来说,比对着帮助菜单一页页翻效率高得多。

这份手册非常适合两类人:一类是刚接触公式编写、想找全函数清单的新手;另一类是做策略回测或盘中监控、需要确认真实参数边界的老手。我拆完这份PDF之后,最大的感受是:大智慧的函数体系和通达信有重叠但不等同,尤其是Level2委托单、专业财务、交易系统这三大块,不翻手册基本只能靠猜。接下来我把值得精读的部分拆开讲,顺带把容易翻车的坑标出来。

2. 行情函数与Level2委托单:把资金流向拆成可计算的数字

2.1 委托单函数族:先分清“委托”“成交”“逐笔”三个层次

大智慧新一代的Level2函数是这套手册里含金量最高的部分,但它也是最容易用错的地方。很多人在日线上直接调用BUYVOL、SELLVOL,发现返回的数值和自己软件里看到的主动买卖量对不上,原因就是没分清这几个层次。

手册里的函数从数据来源上可以分为三类:第一类是委托单统计,包括ALLASKVOL、ALLBIDVOL、ALLORDERVOL、AVGASKPRICE、AVGBIDPRICE、NEWORDER这类,它们反映的是盘口挂单的状态;第二类是成交统计,包括ORDERVOL、ORDERNUM、TRANSACT、TRANSACTVOL、TICKCOUNT,它们反映的是已经撮合成交的单子;第三类是逐笔主动买卖方向,比如BUYVOL、SELLVOL、ISBUYORDER,它们依赖分笔成交周期才有效。

这三类数据在计算思路上差别很大。举例来说,ALLORDERVOL(N,M)取的是分时线里某个区间新增的委托单量,N=1是买入委托,N=2是卖出委托,M=0到3分别对应小单、中单、大单、特大单。它的口径是“新增委托”,不是“累计委托”,所以做盘中动态监控时,要把它理解为一个增量指标。而ORDERVOL(N,M)则是“该分钟成交的按委托单大小划分的成交量”,这个指标适合用来估算不同体量的资金实际吃掉了多少货。

举个例子,你想看特大单主动买入在总成交量里的占比,可以这样写:

TRANSACTVOL(1,3) / TRANSACTVOL(1,0) * 100

这段公式里,TRANSACTVOL(1,3)表示主动买入的特大单成交量,TRANSACTVOL(1,0)表示所有主动买入的成交量。两者相除再乘100,得到的就是特大单买入占比。注意这里用的是TRANSACT前缀而不是ORDERVOL前缀,因为TRANSACT是从逐笔成交的角度切分,而ORDERVOL是从委托单的维度统计。做资金流监控时,逐笔口径比委托单口径更贴近实际成交。

2.2 大单比例计算:中单、大单、特大单的包含关系是最大的坑

手册在BIGORDER函数里专门加了注释:中单包含了大单,大单包含了特大单。这句话很多人一扫而过,但实际操作中它直接决定你的分母怎么选。

BIGORDER(1,1)

N=1表示买入委托,M=1表示中单。注意这里的返回是“中单、大单、特大占总的成交量比例”。也就是说,BIGORDER(1,1)拿到的是大于等于中单口径的合计占比,不是严格意义上的“中单占比”。如果你把BIGORDER(1,1)当作中单比例来用,会发现数值偏大,因为分母里已经塞进了大单和特大单。

如果你想把中单比例单独剥离出来,常见做法是这样:

BIGORDER(1,1) - BIGORDER(1,2)

拿包含关系更粗的口径减掉更细的口径,剩下的才是纯中单区间。如果不做这一步剥离,你画的资金结构曲线会把大单资金重复计算一次。

这张函数口径对照表对刚上手的人会有帮助:

函数数据维度周期限制常见误用
ALLORDERVOL新增委托量分时线当累计量用
ORDERVOL成交委托量分时线和TRANSACTVOL混用
TRANSACTVOL逐笔成交量分时线回传0时不判断数据源
BIGORDER日线大单比例日线忽略中单包含大单
BUYVOL/SELLVOL主动买卖量分笔周期在日线上直接调用

顺带提醒一下,BUYVOL、SELLVOL、ISBUYORDER这组函数手册里明确标注了“仅个股在分笔成交分析周期有效”。如果你在日线周期里跑选股公式,条件里写了BUYVOL>SELLVOL,返回的结果很多时候不是0就是全票通过,根本没法用。我一般会先在日线里用ORDERVOL或者BIGORDER判断大单方向,再去分笔周期里逐笔确认,两个口径搭着用才不容易踩空。

2.3 短线精灵与盘口异动:NOTICE函数的场景边界

手册中的NOTICE函数比较特殊,它对应的是大智慧软件里的“短线精灵”提示。NOTICE(N)的参数是从1到24,含义从火箭发射、快速反弹到机构买单、机构卖单、撤单、新单。这类函数适合做盘中预警,不适合做盘后选股,因为它是基于分时事件的快照型数据。

举一个实际用法:如果你想捕捉机构大单托盘的行为,可以把条件写成:

NOTICE(17) > 0

这里17对应机构吃货。需要注意的是,NOTICE的返回是数量,不是金额也不是比例。做预警公式时用它判断事件是否发生没问题,但别用它来衡量资金强度,强度判断还是回到ORDERVOL、TRANSACTVOL这类量函数上。

3. 时间函数与引用函数:周期对齐是策略脚本的命门

3.1 时间函数:拿到年、月、日、星期的方式没你想的那么简单

大智慧的时间函数体系里,最基础的是YEAR、MONTH、DAY、HOUR、MINUTE、WEEKDAY、DATE、TIME。但有几个细节如果不翻手册,写公式时会绕远路。

首先是DATE函数的返回格式。手册里写的是“从1900以来的年月日”,有效值范围700101到1341231,对应1970年1月1日到2034年12月31日。也就是说DATE返回的不是20250101这种直观数字,而是包装过的日期序列。如果你直接拿DATE和某个常量日期做比较,会得到一堆莫名其妙的结果。

其次,WEEKDAY返回的范围是0到6,0表示星期天。这和很多其他平台的返回值不一样。写周末过滤条件时,我一般会这样处理:

WEEKDAY >= 1 && WEEKDAY <= 5

这样就排除了周日为0的干扰。HOUR函数在日线及更长周期返回0,因为日线没有小时概念,这个在跨周期引用时容易让人困惑。

TIMETOT0和T0TOTIME这两个互逆函数比较实用。TIMETOT0把时分秒转换成当日0点以来的秒数,T0TOTIME反过来。做盘中时段过滤时,用秒数比较比用字符串比较更稳。比如你想限制只在上午9点30分到11点30分之间出信号:

TIMETOT0(TIME) >= TIMETOT0(093000) && TIMETOT0(TIME) <= TIMETOT0(113000)

注意093000在大智慧的TIME函数语境里会被当作数字处理,经过TIMETOT0转成秒数后比较才有意义,直接拿TIME和数字比较是出不了正确结果的。

3.2 引用函数:REF、BARSLAST、SUMBARS的组合思路

引用函数是写策略公式时使用频率最高的一类。REF(X,A)引用A周期前的X值,这个大家都会用。但真正能看出水平的是把BARSLAST、BARSSINCE、SUMBARS这些带“寻找历史位置”的函数叠加起来用。

拿“上一次涨停到现在的时间”举例,手册里的写法是BARSLAST(CLOSE/REF(CLOSE,1)>=1.1),这句在日线上表示上一个涨停板到当前的周期数。实际做短线策略时,我常常把它和涨停后的回调状态组合起来:

涨停距离 := BARSLAST(CLOSE / REF(CLOSE, 1) >= 1.1); 回调企稳 := COUNT(CLOSE < REF(CLOSE, 1), 涨停距离) >= 2 && CLOSE >= MA(CLOSE, 5); 回调企稳

这段公式的逻辑是:先计算上一次涨停到当前的距离,然后统计在这个区间内收阴的天数,如果至少有两天回调且股价站上5日线,就视为回调企稳。这里用BARSLAST定位涨停事件,用COUNT统计区间内的阴线数量,两个引用函数组合后,表达力比单独用REF强很多。

SUMBARS函数也值得单独提一下。它把X向前累加直到大于等于A,返回这个区间的周期数。手册里的例子是SUMBARS(VOL,CAPITAL),求完全换手到现在的周期数。这个函数在做筹码换手类策略时很有用,比如统计累计换手达到100%所需要的天数,可以辅助判断筹码的充分交换程度。

3.3 向前赋值与信号过滤:BACKSET和FILTER的控制逻辑

BACKSET(X,N)和FILTER(X,N)是公式编写里容易被忽视但很实用的控制类函数。BACKSET的作用是:如果X不为0,把当前位置到N周期前的数值都设为1。这个函数常用来做信号回溯标注,比如你想在涨停当天标记出前面几天的异动状态。

FILTER的作用正好相反,它在X满足条件后,把其后N周期内的数据都置为0。也就是说,FILTER可以帮助你过滤掉重复信号。做突破策略时,如果不加FILTER,价格连续几天站上压力位就会产生一串重复的买入信号,加个FILTER(信号,5)可以只保留第一个信号,后续5天内的重复触发全部忽略。

我在实际写公式时会把FILTER用在所有单次触发类信号上,尤其是突破、金叉、放量异动这类本身就带有“连续成立”属性的条件。否则回测出来的交易次数会虚高,胜率和盈亏比全部失真。

4. 统计函数与指标函数:用波动率、回归和成本分布给策略定参数

4.1 标准差与回归函数:别再用固定阈值硬切波动率

STD、STDDEV、STDP、VAR、VARP这组方差标准差函数,如果不区分“样本”和“总体”,算出来的风控阈值会有偏差。大智慧手册里STD是估算标准差,STDP是总体标准差,VAR是估算样本方差,VARP是总体样本方差。两者的差异在于分母是N还是N-1,数据量越大差异越小,但做短线策略时样本量常常只有二三十根K线,这个差异就不能忽略了。

我一般用STD动态计算波动率通道,替代固定百分比止损。一个常见做法是用收盘价加减两倍标准差作为通道边界:

中线 := MA(CLOSE, 20); 波动 := STD(CLOSE, 20); 上轨 := 中线 + 2 * 波动; 下轨 := 中线 - 2 * 波动;

这样算出来的上下轨会跟着波动率自动伸缩。行情冷清时通道收窄,行情剧烈时通道变宽,比直接写“涨幅超过5%就预警”要合理得多。

FORCAST和SLOPE是一对回归函数。FORCAST(X,N)是N周期线性回归预测值,SLOPE(X,N)是回归线的斜率。这两个函数在做趋势强度判断时很好用。比如你想过滤掉斜率太小的震荡行情:

趋势斜率 := SLOPE(CLOSE, 10); 趋势过滤 := 趋势斜率 > 0.05 AND 趋势斜率 < 0.5;

斜率太小说明趋势走平,斜率太大说明短期过热。这个思路能帮你过滤掉一部分假突破,比只看均线方向多了一层量化依据。

4.2 成本分布函数:COST的百分比参数值得反复体会

COST(10)的含义是“10%获利盘的价格是多少”,也就是有10%的持仓量在该价格以下,其余90%在该价格以上。这个函数仅对日线分析周期有效,如果你在分钟周期里调用COST,返回的结果基本没有参考价值。

实际使用时,我经常用COST函数来识别筹码密集区:

获利90 := COST(90); 获利10 := COST(10); 密集区上沿 := 获利90; 密集区下沿 := 获利10;

当股价运行到获利90上方时,上方套牢盘压力会比较大;当股价跌到获利10附近时,下方获利盘支撑会比较强。把这两个位置画到主图上,能明显看出股价在筹码密集区间边缘的反应。

COSTB是三角形分布版本,原理类似但加权方式不同。做精细筹码分析时可以把两个版本都算一遍,如果结果差异超过3%,说明筹码分布很不均匀,这时候用COSTB的结果做判断会更贴近真实情况。

4.3 之字转向与成本均线:PEAK、FLATZIG、CYC的组合应用

之字转向函数ZIG、PEAK、FLATZIG在手册里归在指标函数一类,它们在识别高低点方面非常有用。PEAK(K,N,M,ABS)返回前M个波峰值,K=1表示最高价,K=2表示最低价,N是转向幅度百分比,ABS决定是相对转向还是绝对转向。

我一般用PEAK来标记回踩位置。比如先找到最近一个5%级别的高点,然后观察股价回踩到该高点下方什么位置企稳。配合CYC成本均线使用,效果会更好。CYC(N)是N日市场平均建仓成本,它是一个量价同时发挥作用的均线。当股价回踩到CYC(20)附近并且PEAK标记的前高没有跌破,我会把这个位置视为一个相对有效的观察点。

5. 避坑指南:大智慧函数手册里最常见的六类翻车现场

5.1 在日线上调用仅限分笔周期的主动买卖函数

现象:BUYVOL、SELLVOL、ISBUYORDER在日线周期里写进选股公式,结果要么全部为0,要么所有股票都返回同一数值。

原因:这几个函数手册里明确标注“仅个股在分笔成交分析周期有效”。日线周期下没有逐笔成交数据,函数无法返回有意义的数值。

解决:改用ORDERVOL、BIGORDER这类日线可用的委托单函数。如果必须用主动买卖方向,需要先把分析周期切换到分笔成交,再用公式系统逐笔扫描,实盘中这种做法对数据量要求很高,不建议全市场跑。

5.2 忽略BIGORDER的包含关系导致大单比例虚高

现象:用BIGORDER(1,1)画大单流入曲线,发现数值长期在60%以上,和盘面观感明显不符。

原因:BIGORDER(1,1)返回的是中单、大单、特大单合并占比,中单口径包含了大单,大单包含了特大单,算出来天然偏大。

解决:想做严格的分层统计,用BIGORDER(1,1)-BIGORDER(1,2)剥离出纯中单区间,用BIGORDER(1,2)-BIGORDER(1,3)剥离出纯大单区间,剩下的BIGORDER(1,3)才是特大单。

5.3 日期和时间函数返回值格式搞错

现象:写DATE>20250101想筛选近期上市股票,结果选出来一堆莫名其妙的标的,或者干脆选不出任何股票。

原因:DATE返回的是“从1900以来的年月日”,有效值范围是700101到1341231,它本身是一个经过编码的日期数字,直接和自然日期常量比较会失真。

解决:使用日期时先用DATETOD1970或D1970TODATE做一次换算,或者把DATE和YEAR、MONTH、DAY拆开使用。时间判断用TIMETOT0统一转为秒数再比较,不要直接用TIME和数字比大小。

5.4 COST函数在非日线周期上静默失效

现象:在30分钟K线图上调用COST(10),公式能通过编译,但画出来的曲线是一条直线或者全为0。

原因:COST、COSTB、LWINNER这组成本分布函数仅对日线分析周期有效。分钟周期下筹码分布模型不参与计算,函数返回空值。

解决:使用成本类函数前先确认当前分析周期是日线。如果是分钟级策略,可以考虑直接用CYC成本均线近似替代,它能适应不同周期下的成本估计。

5.5 字符串条件函数IFS的使用误区

现象:IFS(CLOSE>OPEN, '上涨', '下跌')在副图指标里显示不出字符串内容,或者提示语法错误。

原因:IFS返回的是字符串,但大智慧的绘图函数默认不直接输出字符串到指标线。字符串函数更适合用在公式计算中做标记,而不是作为绘图输出。

解决:需要显示文字时,用DRAWTEXT这类绘图函数配合条件判断,而不是直接让IFS作为输出表达式的终点。

5.6 循环和分支结构中使用可视范围函数导致信号漂移

现象:HHVALL、LLVALL在循环语句中计算结果不准确,有时信号会整体错位。

原因:手册明确标注“该函数用于循环或分支中将不准确”。可视范围值依赖于当前图形显示区域,循环中每次引用的可视范围可能动态变化。

解决:在循环或分支中使用HHV、LLV配合固定周期参数N,避免调用HHVALL、LLVALL这类依赖显示范围的函数。

6. 最后一步:把手册里的函数清单变成自己的策略工具库

拿到一份函数手册PDF,最好的使用方式不是从头到尾通读一遍,而是把它当成API参考,按自己的策略需求反查。我整理这份手册时做了一个索引表,把每个函数按类别、周期限制、返回类型、常用误用四个维度记录下来。这个索引表比手册本身更值钱,因为它是从实际踩坑中长出来的。

操作上,我建议你先把第十一章字符串函数、第十二章协方差函数这些冷门章节粗读一遍,了解有哪些能力可用,然后在实际遇到需求时再回到对应章节精读。比如写交易系统时,去第十三章查交易系统函数的参数约束;写绘图指标时,去第十四章查输出修饰符的用法。冷门函数往往能解决其他平台不好处理的特殊问题,比如UNISTRING、SWOT这类函数在选股逻辑里可以作为数据源补充。

验证策略时,我习惯把新写的公式先在副图里跑一遍历史K线,手动核对最近十个信号对应的市场状态。如果信号位置和K线形态逻辑对不上,先检查周期限制,再检查引用函数的返回值类型,最后看是不是因为循环结构里的可视范围函数导致的漂移。这三步排查能解决大部分疑难杂症。

从那以后,我每次拿到新的函数手册类资料,都会先花半小时把周期限制和返回类型标出来,再动手写公式,这个习惯帮我省掉了大半的排错时间。希望这份拆解对你的实际使用有帮助。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询