ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

同花顺分时图成交额公式:从盘口数据到可运行源码的完整落地

同花顺分时图成交额公式:从盘口数据到可运行源码的完整落地

简介:这份源码包面向同花顺软件的中高级用户与股票指标开发者,针对分时图无法直观显示昨日成交额这一常见痛点,提供了一套可直接运行的公式代码。资源共包含3个文件,以inscode公式脚本为核心,辅以html说明页面与gitignore配置文件,压缩包体积约5KB,轻量易部署,下载后即可导入同花顺进行验证与二次修改。目前已有658人学习下载,说明该需求在量化与看盘人群中具有普遍性。读者可借此省去从零摸索API接口与数据结构的时间,快速掌握在分时图上叠加历史成交额数据的实现思路,并以此为模板扩展其他自定义指标。代码经过实际测试,稳定性与可复用性较好,适合希望提升看盘效率、减少重复调试成本的投资者与开发者参考借鉴。

1. 同花顺分时图成交额公式:从盘口数据到可运行源码的完整落地

很多人第一次接触分时图成交额公式,都是被一个很具体的需求逼出来的:盘中想实时看到「当前这一分钟到底成交了多少钱」,而不是只看一根根红绿柱子猜量能。同花顺自带的成交额字段在日线级别很好取,但一旦下沉到分时,尤其是想把它做成指标公式叠加在分时图上,就会遇到数据粒度、函数可用性、刷新频率三座大山。这篇笔记讲的就是怎么用同花顺的公式系统,把分时级别的成交额算出来、画出来,并且给出一份可以直接粘贴运行的源码。适合两类人:一类是想在分时图上加自定义成交额曲线的散户进阶玩家,另一类是需要把成交额信号接入自己预警逻辑的量化初学者。核心难点不在公式语法,而在于搞清楚分时数据在同花顺里到底以什么形式暴露给你。

2. 分时成交额到底能不能算:先搞清数据源和函数边界

2.1 分时数据和日线数据的本质差异

日线成交额是一个已经结算好的确定值,当天收盘后就是死的,公式里直接引用AMOUNT就能拿到。分时不一样,分时是当天从开盘到当前时刻的连续切片,每一分钟(或每一笔)都在变。同花顺的公式引擎在分时周期下运行时,AMOUNT这个字段的含义会发生变化——它通常返回的是从开盘到当前时刻的累计成交额,而不是当前这一分钟的成交额。这是第一个容易翻车的地方:你以为拿到的是瞬时值,其实是累计值。

要把累计值变成每分钟增量,思路就是做差。当前时刻的累计成交额减去上一分钟的累计成交额,就是这一分钟的成交额。听起来简单,但同花顺公式里没有直接的「上一周期」引用语法像某些平台那样写REF(AMOUNT,1)就万事大吉,分时周期下REF的行为需要实测确认。常见做法是用REF(AMOUNT,1)配合IF做边界保护,因为开盘第一分钟没有上一周期,直接引用会返回无效值或零,导致第一根柱子异常。

2.2 同花顺公式系统里可用的成交额相关字段

在同花顺的公式编辑器里,和成交额直接相关的字段主要有这几个:

字段名含义分时周期下的行为
AMOUNT成交额通常为当日累计值
VOL成交量通常为当日累计值
NEW最新价当前时刻价格
OPI持仓量期货用,股票无效

这里要特别注意,不同版本的同花顺客户端对分时周期下AMOUNT的处理并不完全一致。有的版本返回累计,有的版本在某些周期设置下返回单周期值。所以第一步不是写公式,而是先做一个探测:在分时图上建一个最简单的指标,只输出AMOUNT,看看数值是从小到大递增的累计值,还是围绕某个区间波动的单周期值。这个探测步骤能帮你省掉后面大量调试时间。

2.3 为什么不能直接用 VOL 乘以均价

有人会想,成交额等于成交量乘以成交均价,那我用VOL * NEW不就行了。这个思路在日线级别粗略估算可以,但在分时级别误差很大。原因有两个:一是NEW是最新价,不是这一分钟的平均成交价,盘中价格跳动剧烈时偏差可能超过百分之几;二是VOL在分时下如果也是累计值,乘出来的东西根本没有意义。所以只要公式系统提供了AMOUNT字段,就应该优先用它,而不是自己用量和价去凑。只有在AMOUNT确实不可用的极端情况下,才考虑用VOL和均价做近似,并且要在公式里注明这是估算值。

3. 写出可运行的分时成交额公式:从累计值到增量曲线

3.1 最小可用公式的完整源码

下面这份源码是我在实际使用中验证过能跑通的最小版本。它的逻辑是:取当前累计成交额,减去上一周期的累计成交额,得到本周期增量,并对开盘第一根做保护。

{分时成交额增量公式 - 最小可用版} {适用周期:1分钟线或分时图} {逻辑:累计值做差得到增量} 累计额:=AMOUNT; {AMOUNT在分时周期下通常返回当日累计成交额} 上一累计:=REF(累计额,1); {REF取上一周期的累计值,开盘第一根无上一周期} 增量额:=累计额-上一累计; {做差得到当前周期的成交额增量} 增量额:=IF(ISNULL(上一累计),累计额,增量额); {开盘第一根保护:上一周期为空时直接用累计值} 增量额; {输出增量额曲线}

这段代码的核心就三步:取累计、取上一周期累计、做差。ISNULL那个判断是血泪经验,不加的话开盘第一根会画出一根莫名其妙的巨大柱子或者直接断线。REF的第二个参数是周期数,写 1 就是上一根,如果你用的是 5 分钟周期,那得到的就是 5 分钟增量,逻辑一致。

3.2 参数说明和周期适配

上面公式里没有显式参数,但有两个隐含设定需要你根据实际情况调整。第一个是周期:同花顺分时图默认可能是 1 分钟,也可能你手动切到了 5 分钟。周期变了,增量的含义就变了,1 分钟增量是每分钟成交额,5 分钟增量是每 5 分钟成交额。如果你要做盘中预警,建议固定在 1 分钟周期,粒度最细。第二个是REF的边界处理:有的同花顺版本在分时第一根返回的不是NULL而是 0,这时候ISNULL判断会失效,增量额会等于累计额本身,看起来也正常,但逻辑上你要知道这个差异。稳妥做法是同时判断ISNULL和等于零两种情况,不过那样代码会变长,最小版本先保证能跑。

3.3 把增量曲线画到分时图上的操作步骤

公式写好了,怎么让它显示在分时图上,步骤不能错:

  1. 打开同花顺客户端,进入任意个股的分时图界面。
  2. 在分时图区域右键,选择「指标」或「公式管理」,进入公式编辑器。
  3. 新建一个指标公式,语言选同花顺公式语言,把上面的源码粘贴进去。
  4. 保存公式,命名比如「分时成交额增量」。
  5. 回到分时图,右键选择「叠加指标」,找到你刚保存的公式,确认叠加。
  6. 观察曲线形态:正常情况应该是围绕某个均值波动的柱子或曲线,开盘第一根不应该有异常尖峰。

如果叠加后看不到曲线,先检查公式有没有语法错误,再检查是不是叠加到了主图而不是副图。成交额量纲和价格量纲差很多,叠加在主图上会被压成一条直线,建议放在副图。

3.4 用均线平滑增量曲线减少噪音

原始增量曲线在 1 分钟周期下噪音很大,单根柱子忽高忽低,肉眼很难看出趋势。常见做法是加一条均线。在同花顺公式里可以用MA函数:

{在增量额基础上加5周期均线} 增量额:=...; {接上面的增量计算} 平滑线:=MA(增量额,5); 增量额; 平滑线;

MA的第二个参数是周期数,5 表示最近 5 根的算术平均。你可以改成 10 或 20,周期越大曲线越平滑但滞后越明显。我一般用 5 到 10 之间,盘中看趋势够用。注意MA在分时第一根到第四根会因为样本不足返回部分均值,这是正常行为,不用特殊处理。

4. 避坑与排查:分时成交额公式最常见的五个翻车点

4.1 现象:开盘第一根柱子异常巨大

原因:REF在第一个周期没有上一周期数据,返回空值或零,做差时累计额减零等于累计额本身,画出来就是一根巨柱。解决:在公式里加ISNULL判断,如上面源码所示,把第一根的增量直接设为累计额或者设为零。如果你希望第一根不显示,可以用IF把它置为空值。

4.2 现象:曲线数值量级明显不对,像是累计值没做差

原因:REF函数在你当前的同花顺版本或周期设置下没有按预期返回上一周期值,可能返回了当前值本身,导致做差结果为零或累计值。解决:先单独输出REF(AMOUNT,1)看看它到底返回什么,确认REF行为正常后再做差。如果REF不可用,考虑用AMOUNT - REF(AMOUNT,1)的替代写法,或者换周期测试。

4.3 现象:公式保存时报语法错误

原因:同花顺公式语言对中文标点和英文标点敏感,冒号、分号、括号必须是英文半角。另外变量名不能用保留字。解决:把公式里所有标点检查一遍,尤其是从网页复制粘贴时容易带入全角符号。变量名用「累计额」「增量额」这类中文没问题,但不要用AMOUNT当变量名,那是保留字段。

4.4 现象:叠加到分时图后曲线不刷新

原因:同花顺的指标叠加有时不会自动跟随分时刷新,尤其是非交易时段或者数据源延迟时。解决:手动按 F5 刷新,或者切换到其他周期再切回来。如果长期不刷新,检查公式是不是被设置成了「仅日线可用」,在公式属性里把适用周期改成「分时」或「全部」。

4.5 现象:不同个股上曲线形态差异极大

原因:成交额本身就和个股的流通盘、活跃度强相关,小盘股和权重股的分时成交额量级可能差几个数量级。解决:这不是公式的问题,是数据本身的特性。如果你要做跨个股比较,建议对增量额做归一化,比如除以当日累计成交额得到一个比例值,或者除以流通股本。归一化后的曲线才具备横向可比性。

5. 进阶技巧:用成交额增量做盘中异动预警

5.1 从曲线到信号:设定阈值触发

光看曲线还不够,盘中你不可能一直盯着。把增量额和一个动态阈值比较,超过就输出信号,这是最实用的进阶用法。阈值可以设为过去 N 根增量均值的倍数:

{成交额增量异动预警} 增量额:=...; {接前面的增量计算} 均值:=MA(增量额,20); 阈值:=均值*3; {超过20周期均值3倍视为异动} 异动:IF(增量额>阈值,1,0); {输出1表示触发,0表示未触发}

MA的 20 是回看周期,3是倍数。这两个参数需要根据个股活跃度调,活跃股可以调到 5 倍以上减少误报,冷门股 2 倍就可能频繁触发。IF输出 1 和 0 是为了方便后续做条件选股或者预警弹窗。

5.2 验证公式是否算对了:手工对账方法

公式跑起来之后,怎么知道它算得对不对。最可靠的方法是在收盘后做手工对账。找一只个股,记下它在某个分钟节点的累计成交额,再记下上一分钟的累计成交额,两者相减,和你公式输出的增量值对比。如果一致,说明逻辑正确。如果不一致,检查周期设置是不是和你对账用的分钟数匹配。这个验证步骤花不了几分钟,但能帮你确认公式没有系统性偏差。

5.3 把公式移植到条件选股和预警系统

同花顺的公式系统里,指标公式和条件选股公式是两套东西,但语法相通。你可以把上面的异动判断逻辑改写成条件选股公式,在盘中定时运行,筛出当前触发异动的个股。改写的关键是把输出从曲线变成布尔条件,并且注意选股公式里不能有绘图相关的函数。预警系统里则可以设置当异动等于 1 时弹窗或声音提醒。这部分的具体操作路径在不同版本客户端里位置不一样,但核心就是把公式挂到预警条件上。

我自己的习惯是每天开盘前把公式检查一遍,确认周期设置没被改掉,然后盘中只看异动信号,不盯原始曲线。这个习惯帮我省了很多精力,也避免了不少因为看错周期导致的误判。希望帮到你。

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

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进