1. 资金流向指标到底在看什么
很多人一打开通达信或者同花顺,看到“资金流向”四个字就兴奋,觉得找到了看穿主力的水晶球。结果用了一段时间发现,明明显示主力净流入,股价却跌了;明明显示净流出,股价反而拉起来了。于是得出结论:这玩意儿是骗人的。
问题出在哪儿?出在你根本没搞清楚这些函数在算什么。
资金流向指标的核心逻辑,是把每一笔成交按照某种规则分类,然后统计不同类别的净额。通达信和同花顺在这件事上的处理方式有差异,但底层思路是一致的:用成交金额和价格变动方向,反推这笔交易是主动性买入还是主动性卖出。
举个简单的例子。当前卖一价是10.00元,有人直接以10.00元买入100手,这笔成交就被归为主动买入,计入资金流入。反过来,有人直接以买一价9.99元卖出100手,就被归为主动卖出,计入资金流出。然后把一段时间内的主动买入总额减去主动卖出总额,就得到了净流入。
听起来很简单对吧?但魔鬼藏在细节里。
1.1 通达信和同花顺的资金函数差异
通达信里常用的资金流向函数有AMOUNT、VOL、BUYVOL、SELLVOL这些基础量价函数,也有MFI(资金流量指标)、OBV(能量潮)这类经典指标。但真正做主力追踪的时候,大家用得最多的是通达信特有的L2系列函数,比如L2_AMO、L2_BUYVOL、L2_SELLVOL,这些需要开通Level-2行情才能用。
同花顺这边,资金流向函数体系稍微不同。同花顺公式系统里有ZJLR(资金流入)、ZJLC(资金流出)、JLR(净流入)等函数,还有ZLJZ(主力净值)这种直接给你算好主力资金动向的函数。同花顺的资金博弈指标源码在网上流传很广,核心就是用了这些函数做组合。
我个人的经验是:通达信的函数更底层、更灵活,适合自己搭逻辑;同花顺的函数更封装、更直接,适合快速出结果。但不管用哪个,你都得知道它背后的计算规则,否则就是瞎猜。
1.2 为什么同一只票两个软件显示不一样
这是被问得最多的问题之一。同一只股票,同一天,通达信显示主力净流入5000万,同花顺显示净流出2000万。到底谁对?
答案是:都对,也都不对。
差异来源主要有三个:
- 单笔成交分类阈值不同。通达信默认把单笔成交额大于10万的算大单,同花顺可能用的是20万或者50万。阈值一变,分类结果就变了。
- 逐笔成交数据的处理方式不同。有些软件用逐笔还原,有些用分时快照推算。数据源不一样,结果自然不一样。
- 集合竞价的处理不同。9:25那笔集合竞价成交,有的软件算入主力,有的算散户,有的直接不计入。
所以,不要跨软件比较资金流向数据,没有意义。你选定一个软件,就用它的规则,持续观察同一套标准下的变化趋势,这才是正确用法。
注意:资金流向指标看的是“变化趋势”和“背离关系”,不是绝对数值。今天净流入5000万还是8000万不重要,重要的是连续三天净流入且一天比一天大,这个趋势才有参考价值。
2. 主力动向的核心判断逻辑
搞清楚函数在算什么之后,接下来要解决的是:怎么用这些数据判断主力在干什么。
市面上讲主力追踪的内容很多,但大部分都在堆指标、堆公式,很少有人把底层逻辑讲透。我自己的理解是,主力动向的判断可以归结为三个核心维度:资金维度、价格维度、时间维度。三个维度共振的时候,信号才可靠。
2.1 资金维度:净流入的持续性与加速度
单日的资金净流入说明不了太多问题。主力完全可以今天买5000万,明天卖6000万,来回折腾。真正有意义的,是连续净流入的天数和净流入的加速度。
我一般会看三个数据:
- 连续净流入天数。连续3天以上净流入,且每天净流入额不低于前一天的70%,说明主力在持续吸筹。
- 净流入占成交额比例。这个比例比绝对金额更重要。一只日成交额2亿的票净流入2000万,占比10%,比一只日成交额20亿的票净流入5000万(占比2.5%)更有意义。
- 大单净流入与小单净流入的背离。如果大单持续净流入,小单持续净流出,这是典型的机构吸筹、散户割肉形态。
在通达信里,你可以用L2_AMO和L2_VOL配合IF条件判断来构建这些逻辑。同花顺里直接用ZLJZ函数加上MA和REF做趋势判断就行。
2.2 价格维度:量价配合与背离
资金流向必须和价格走势结合起来看,单独看资金数据就是耍流氓。
健康的量价配合是这样的:股价温和上涨,资金持续净流入,回调时资金流出量明显小于上涨时的流入量。这说明主力在控盘,涨的时候买得多,跌的时候卖得少。
危险的背离有两种:
- 顶背离:股价创新高,但资金净流入没有创新高,甚至开始净流出。这说明拉升用的是散户跟风盘,主力已经在悄悄出货。
- 底背离:股价创新低,但资金净流出量在缩小,甚至开始出现净流入。这说明抛压枯竭,主力可能在试探性建仓。
我在实战中会用一个简单的公式来量化这个背离关系:把股价的MA5斜率和资金的MA5斜率做比较,如果两者方向相反,就标记为背离信号。
2.3 时间维度:不同周期的信号验证
日线级别的资金流向信号,需要用周线级别来验证。如果日线显示主力连续净流入,但周线级别资金还是净流出状态,那这个日线信号很可能只是短期反弹,不是趋势反转。
我的习惯是:日线找买点,周线定方向,月线看格局。三个周期的资金流向方向一致时,信号的可靠性最高。如果日线和周线矛盾,以周线为准;周线和月线矛盾,以月线为准。
这个逻辑在通达信里可以用MULTI周期函数实现,同花顺里用#WEEK和#MONTH后缀来引用不同周期数据。
3. 实战公式拆解与编写
前面讲了逻辑,这一部分直接上干货。我会给出几个我自己在用的公式,从简到繁,每个都解释清楚每一行代码在干什么。
3.1 基础版:主力资金风向副图指标
先来看一个最基础的主力资金风向指标,适合刚接触公式编写的人。
{主力资金风向 - 副图} {适用:通达信} ZJLR:=L2_AMO(0,0); {主力买入金额} ZJLC:=L2_AMO(1,0); {主力卖出金额} JLR:=ZJLR-ZJLC; {主力净流入} JLR_MA5:=MA(JLR,5); {5日均线} JLR_MA10:=MA(JLR,10);{10日均线} STICKLINE(JLR>0,0,JLR,2,0),COLORRED; STICKLINE(JLR<0,0,JLR,2,0),COLORGREEN; DRAWLINE(JLR_MA5,JLR_MA5),COLORYELLOW; DRAWLINE(JLR_MA10,JLR_MA10),COLORWHITE;这段代码的逻辑很直白:用L2_AMO函数分别取主力买入和卖出的金额,相减得到净流入。然后用红绿柱状线显示每日净流入的正负,再用两条均线看趋势。
关键点说明:
L2_AMO(0,0)里的第一个参数0代表买入方向,1代表卖出方向。第二个参数0代表主力单,1代表散户单。这个参数顺序不能搞错,搞错了整个指标就反了。STICKLINE的第四个参数2是线宽,第五个参数0是实心填充。如果你想要空心柱,把0改成1。- 均线周期用5和10,是因为A股一周有5个交易日,5日均线代表一周的资金趋势,10日代表两周。这个设置比用默认的5和20更贴合A股的交易节奏。
提示:这个公式需要Level-2行情支持。如果你没有L2数据,可以用
AMOUNT和VOL配合价格判断来近似,但精度会差很多。
3.2 进阶版:主力增仓指标
基础版只能看净流入,但主力增仓和净流入是两回事。净流入可能是主力对倒做出来的,但增仓意味着主力真的在增加持仓。
{主力增仓指标 - 副图} {适用:通达信} {思路:用大单净流入占流通市值的比例来衡量增仓力度} ZJLR:=L2_AMO(0,0)-L2_AMO(1,0); LTSZ:=FINANCE(40); {流通市值} ZC:=ZJLR/LTSZ*100; {增仓比例,单位%} ZC_MA3:=MA(ZC,3); {绘制} STICKLINE(ZC>0,0,ZC,2,0),COLORRED; STICKLINE(ZC<0,0,ZC,2,0),COLORGREEN; DRAWLINE(ZC_MA3,ZC_MA3),COLORYELLOW; {信号提示} DRAWTEXT(CROSS(ZC_MA3,0),0,'增仓'),COLORRED; DRAWTEXT(CROSS(0,ZC_MA3),0,'减仓'),COLORGREEN;这个公式的核心改进在于:用流通市值做归一化处理。不同市值的股票,净流入5000万的意义完全不同。一只50亿流通市值的票净流入5000万,增仓比例是1%;一只500亿流通市值的票净流入5000万,增仓比例只有0.1%。归一化之后,不同股票之间就可以横向比较了。
FINANCE(40)是通达信里取流通市值的函数,返回单位是元。如果你用的是同花顺,对应的函数是CAPITAL,但返回单位是股,需要乘以股价才是市值。
实操心得:增仓比例超过0.5%就是比较强的信号了。如果连续三天增仓比例都在0.3%以上,基本可以确认主力在主动建仓。但要注意,这个指标在除权除息日附近会失真,因为流通市值变了,需要手动跳过那几天。
3.3 高阶版:资金博弈综合判断
这个公式把资金、价格、时间三个维度整合在一起,输出一个综合评分。
{资金博弈综合评分 - 副图} {适用:通达信} {维度1:资金净流入趋势} JLR:=L2_AMO(0,0)-L2_AMO(1,0); JLR_SCORE:=IF(JLR>0 AND JLR>REF(JLR,1),20, IF(JLR>0 AND JLR<REF(JLR,1),10, IF(JLR<0 AND JLR>REF(JLR,1),-10,-20))); {维度2:价格趋势} PRICE_SCORE:=IF(C>MA(C,5) AND MA(C,5)>MA(C,10),20, IF(C>MA(C,5),10, IF(C<MA(C,5) AND MA(C,5)<MA(C,10),-20,-10))); {维度3:量能配合} VOL_SCORE:=IF(V>MA(V,5) AND C>REF(C,1),20, IF(V<MA(V,5) AND C<REF(C,1),10, IF(V>MA(V,5) AND C<REF(C,1),-20,-10))); {维度4:大单占比} DDZB:=L2_AMO(0,0)/(L2_AMO(0,0)+L2_AMO(1,0))*100; DD_SCORE:=IF(DDZB>60,20,IF(DDZB>50,10,IF(DDZB>40,-10,-20))); {综合评分} TOTAL:=JLR_SCORE+PRICE_SCORE+VOL_SCORE+DD_SCORE; {绘制} STICKLINE(TOTAL>0,0,TOTAL,3,0),COLORRED; STICKLINE(TOTAL<0,0,TOTAL,3,0),COLORGREEN; DRAWLINE(TOTAL,TOTAL),COLORYELLOW; {信号} DRAWTEXT(CROSS(TOTAL,60),60,'强'),COLORRED; DRAWTEXT(CROSS(TOTAL,-60),-60,'弱'),COLORGREEN;这个公式的四个维度分别打分,每个维度满分20分,总分范围是-80到80。超过60分是强势信号,低于-60分是弱势信号。
参数选择的理由:
- 资金维度用“净流入且比昨天多”给最高分,是因为持续加速流入是最强信号。
- 价格维度用均线多头排列给最高分,这是趋势跟踪的基本逻辑。
- 量能维度用“放量上涨”给最高分,缩量下跌给正分(说明抛压小),放量下跌给最低分。
- 大单占比用60%作为强势阈值,是因为经验上大单占比超过60%说明主力控盘度较高。
注意:这个公式里的
L2_AMO需要Level-2数据。如果你没有L2,可以把L2_AMO(0,0)替换成IF(C>REF(C,1),AMOUNT,0),把L2_AMO(1,0)替换成IF(C<REF(C,1),AMOUNT,0),用价格方向来近似判断主动买卖。精度会下降,但逻辑框架不变。
4. 公式安装与调试实操
公式写好了,怎么装到软件里,怎么调试,这里面也有不少坑。
4.1 通达信公式安装步骤
通达信的公式管理器是公式管理器6.06版本之后比较稳定。安装步骤:
- 打开通达信,按
Ctrl+F调出公式管理器。 - 在左侧树形菜单里选择“技术指标公式”下的“其他类型”。
- 点击“新建”按钮。
- 在弹出的对话框里填写公式名称(比如“主力风向”),选择画线方法为“副图”。
- 把公式代码粘贴到编辑框里。
- 点击“测试公式”按钮,看有没有语法错误。
- 测试通过后点击“确定”保存。
常见坑点:
- 公式名称不能有空格和特殊字符,只能用中文、英文和数字。
- 如果公式里用了
L2_开头的函数,必须确保你的通达信版本支持Level-2,否则测试会报错。 - 粘贴代码时注意不要带入多余的空格和换行,通达信对格式比较敏感。
4.2 同花顺公式安装步骤
同花顺的公式系统入口在“工具”菜单下的“公式管理”。步骤:
- 打开同花顺,点击“工具”->“公式管理”。
- 选择“技术指标”->“新建”。
- 填写公式名称和描述。
- 粘贴代码,注意同花顺的函数名和通达信不完全一样。
- 点击“测试”按钮验证语法。
- 保存后,在K线图副图区域右键选择该指标即可显示。
同花顺和通达信的函数对应关系:
| 功能 | 通达信函数 | 同花顺函数 |
|---|---|---|
| 主力买入金额 | L2_AMO(0,0) | ZJLR |
| 主力卖出金额 | L2_AMO(1,0) | ZJLC |
| 流通市值 | FINANCE(40) | CAPITAL*C |
| 画柱线 | STICKLINE | STICKLINE |
| 画线 | DRAWLINE | DRAWLINE |
| 文字提示 | DRAWTEXT | DRAWTEXT |
注意同花顺的DRAWLINE和通达信的DRAWLINE拼写不同,通达信少一个E。这个细节很容易搞错,我当初就因为这个调试了半天。
4.3 调试技巧与验证方法
公式装好之后,怎么验证它算得对不对?
我的方法是用已知案例反推。找一只你非常熟悉的股票,比如你长期跟踪的票,打开它的历史K线,看看公式输出的信号和实际走势是否吻合。
具体操作:
- 选一只2023年有过明显主力运作的票。
- 在公式里加一行
DEBUG输出,把中间变量打印出来。 - 对照当时的龙虎榜数据(如果有)和北向资金数据,看方向是否一致。
- 如果偏差很大,检查函数参数是否用错。
通达信里可以用MSGOUT函数在消息窗口输出调试信息,同花顺里用DRAWTEXT在图上直接标注。
提示:调试的时候建议先用小样本数据,比如只看最近20个交易日。数据量太大反而看不清问题。
5. 常见问题与避坑指南
这一部分是我这些年踩过的坑和总结的经验,网上大部分教程不会讲这些。
5.1 为什么我的公式信号总是滞后
这是最常被问到的问题。答案很简单:因为你用的函数本身就是滞后的。
L2_AMO这类函数取的是已经发生的成交数据,它天然就是滞后的。你看到净流入的时候,主力已经买完了。你看到净流出的时候,主力已经卖完了。
那怎么办?两个思路:
思路一:用盘中实时数据做预判。通达信的L2函数在盘中是实时更新的,你可以用DYNAINFO系列函数取实时数据,结合分时图的资金流向做盘中判断。但这对电脑性能有要求,通达信同时跑20路以上行情需要改connect.cfg里的max参数。
思路二:用背离做提前量。当价格还在跌但资金流出量在缩小的时候,就是提前信号。这个逻辑在前面讲过了,核心是看二阶导数(变化率的变化率),不是看绝对值。
5.2 未来函数检测与规避
网上流传的很多“国宝级指标源码”都含有未来函数。未来函数的意思是:在计算当前K线指标值时,用到了未来K线的数据。这会导致历史回测很漂亮,但实盘完全没法用。
检测方法:
- 在公式里搜索
ZIG、PEAK、TROUGH、BACKSET这些函数,它们都是典型的未来函数。 - 用通达信的“公式检测”功能,勾选“检测未来函数”。
- 手动验证:把K线图缩到最小,看指标信号是否在K线走完之后才出现。如果信号在K线还没走完就出现了,大概率有未来函数。
规避方法:用REF函数取历史数据,用IF做条件判断,避免任何形式的“回头看”。
5.3 数据精度问题排查
有时候公式算出来的结果和软件自带的资金流向指标对不上,排查思路:
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 数值差一个数量级 | 单位不统一 | 检查是元还是万元 |
| 正负号相反 | 参数顺序搞反 | 检查L2_AMO的参数 |
| 部分股票无数据 | 停牌或新股 | 加ISNULL判断 |
| 盘中数据跳动大 | 数据刷新频率 | 改用分钟级数据 |
| 历史数据缺失 | 本地数据不全 | 下载完整历史数据 |
独家技巧:通达信的本地数据文件在安装目录的T0002文件夹下,vipdoc子文件夹里是各市场的日线数据。如果发现数据异常,可以删除对应文件重新下载。同花顺的数据文件在userdata文件夹下,结构类似。
5.4 公式加密与分享
自己写的公式想分享给别人但又不想暴露源码,可以用通达信的公式加密功能。加密后的文件是tn6格式,别人只能使用不能查看源码。
但要注意:tn6格式的加密强度不高,网上有解密工具。如果你真的想保护源码,建议用更专业的加密方式,或者只分享编译后的ex4文件。
反过来,如果你拿到一个tn6文件想查看源码,可以尝试用十六进制编辑器打开,但成功率不高。网上流传的“通达信指标和谐器”大部分已经失效,不建议浪费时间。
6. 多周期共振的实战应用
单独看日线级别的资金流向,很容易被主力的对倒行为欺骗。把周期拉长,用周线和月线来验证,信号的可靠性会大幅提升。
6.1 日线、周线、月线的信号优先级
我的实战原则是:月线定方向,周线定策略,日线定买卖点。
具体来说:
- 月线级别资金持续净流入,说明大资金在战略性建仓,这时候任何日线级别的回调都是买入机会。
- 周线级别资金转为净流入,说明中期趋势可能反转,可以开始建仓。
- 日线级别资金净流入且价格突破关键位,是具体的买入时机。
如果三个周期的信号矛盾,比如月线净流出但日线净流入,那这个日线信号大概率是反弹而不是反转,参与的时候要快进快出,不能恋战。
6.2 跨周期公式的编写方法
在通达信里实现跨周期引用,用CALCSTOCKINDEX函数或者#WEEK、#MONTH后缀。
{跨周期资金流向验证} {日线数据} JLR_D:=L2_AMO(0,0)-L2_AMO(1,0); {周线数据引用} JLR_W:=CALCSTOCKINDEX('','JLR',1); {引用周线} {月线数据引用} JLR_M:=CALCSTOCKINDEX('','JLR',2); {引用月线} {共振判断} GONGZHEN:=IF(JLR_D>0 AND JLR_W>0 AND JLR_M>0,1,0); DRAWTEXT(GONGZHEN=1,0,'三周期共振'),COLORRED;同花顺里用#WEEK和#MONTH后缀更简单:
JLR_D:=ZJLR-ZJLC; JLR_W:="ZJLR#WEEK"-"ZJLC#WEEK"; JLR_M:="ZJLR#MONTH"-"ZJLC#MONTH";注意事项:跨周期引用会消耗更多计算资源,如果同时跑多个跨周期公式,电脑配置要跟上。另外,周线和月线的数据在盘中是动态变化的,未收盘前的信号可能失真,建议在收盘后确认。
6.3 共振信号的过滤与确认
三周期共振的信号虽然可靠,但出现的频率很低。为了提高资金利用率,我会加一些过滤条件:
- 价格位置过滤:只在大盘指数位于20日均线上方时参与,避免系统性风险。
- 波动率过滤:只选近20日波动率在合理区间的票,太死的票没弹性,太疯的票风险大。
- 流动性过滤:日成交额低于5000万的票直接跳过,流动性太差进出困难。
这些过滤条件可以用通达信的IF和AND组合实现,也可以在同花顺里用选股公式批量筛选。
7. 从公式到交易系统的落地
公式写得再好,不能落地到交易就是白搭。这一部分讲怎么把资金流向公式整合成一个完整的交易系统。
7.1 信号触发与仓位管理
我的做法是:资金流向信号决定方向,价格信号决定时机,仓位管理决定盈亏。
具体规则:
- 三周期共振且日线出现买点时,建仓30%。
- 建仓后如果资金持续净流入且价格创新高,加仓到60%。
- 如果资金转为净流出且价格跌破10日均线,减仓到20%。
- 如果资金连续三天净流出且价格跌破20日均线,清仓。
这套规则的核心是:让利润奔跑,把亏损截断。资金流向信号帮你判断主力还在不在,价格信号帮你判断市场认不认。
7.2 回测验证与参数优化
公式上线之前,一定要做回测。通达信自带的回测功能比较基础,可以用交易系统功能做简单回测。同花顺的回测功能更完善一些,支持多因子回测。
回测的时候注意几点:
- 样本要足够大:至少覆盖一轮完整的牛熊周期,A股大概3-5年。
- 手续费要算进去:A股买卖双边手续费加印花税大概0.1%左右,别忽略。
- 滑点要模拟:实盘成交价和信号价之间会有滑点,回测时加0.2%的滑点更接近真实。
- 避免过拟合:参数不要调得太精细,均线周期用5、10、20这种整数,不要用7、13、21这种。
我自己的经验是:回测年化收益超过30%的策略,实盘大概率达不到。回测年化15-20%的策略,实盘能做到10-15%就不错了。预期要合理。
7.3 实盘中的动态调整
实盘和回测最大的区别是:实盘会遇到回测中不存在的极端情况。比如突发利好导致一字板,资金流向数据完全失真;比如大盘暴跌导致所有股票资金净流出,个股信号被淹没。
我的应对方法是:
- 大盘极端行情时暂停信号:大盘单日跌幅超过3%时,所有买入信号作废。
- 个股突发消息时人工干预:如果持仓股出现重大公告,暂停公式信号,人工判断。
- 定期检查公式有效性:每季度做一次回测,看策略是否失效。如果连续两个月跑输基准,就要考虑调整参数或更换逻辑。
提示:资金流向指标不是万能的,它只是你工具箱里的一把螺丝刀。真正赚钱的交易者,靠的是对市场的理解、对风险的控制、对纪律的执行。公式只是辅助,不是圣杯。
8. 我个人的几点实操体会
写了这么多,最后分享几个我自己的真实体会,可能和主流观点不太一样,但都是真金白银换来的。
第一,不要迷信任何单一指标。资金流向函数再厉害,也只是从成交数据里挖信息。主力的真实意图,有时候连交易所的Level-2数据都看不透。多指标交叉验证,多周期共振确认,才是正道。
第二,公式越简单越可靠。我见过太多人把公式写得无比复杂,几十行代码,十几个变量,最后自己都说不清逻辑。真正好用的公式,核心逻辑往往就三五句话。复杂不等于有效。
第三,参数不要频繁优化。有些人今天用5日均线,明天改成7日,后天改成3日,总想找到最优参数。实际上,参数优化到极致就是过拟合,实盘必死。选定一套参数,坚持用,比反复优化强。
第四,资金流向数据要结合基本面看。一只业绩持续下滑的票,资金净流入再多也是反弹,不是反转。一只业绩持续增长的票,资金短期净流出可能是洗盘。基本面是锚,资金面是帆,缺一不可。
第五,保持学习但不要迷失。通达信和同花顺的公式系统每年都在更新,新函数层出不穷。保持学习是好事,但不要为了学新函数而学。先把基础函数用熟,把核心逻辑吃透,新函数只是锦上添花。
最后说一个我经常用的小技巧:把资金流向公式和换手率结合起来看。资金净流入且换手率在3%-8%之间,说明主力在吸筹且没有引起太多跟风;资金净流入但换手率超过15%,说明市场关注度过高,主力可能借机出货。这个组合判断,比单看资金流向准确得多。