通达信期货指标公式和股票侧最大的区别不在函数,而在基础数据本身:期货有主力合约切换,有成交量与持仓量的双轨,有夜盘与日盘的分段。这三点决定了同一段写法在股票上成立、在期货上未必成立。这篇按数据源、公式构成、口径校验三层来讲。
一、期货侧的三处数据差异
第一处是合约连续性。股票只有一个代码,期货每个品种有多个不同到期月的合约,行情是分段拼接的。拼接方式不同,同一时点的历史价格就不同,基于价格差值计算的指标自然跟着变。
第二处是双轨量能。股票只有成交量,期货还有持仓量,前者反映换手,后者反映资金留驻。只写成交量而不看持仓量,会丢掉一半信息。
第三处是交易时段。夜盘与日盘按品种不同,开收盘时间不一致。用固定的时段假设去筛选数据,会把不同品种的行情错位对齐。
| 差异点 | 股票侧 | 期货侧 |
|---|---|---|
| 标的唯一性 | 单一代碼 | 多合约按月份分段 |
| 量能字段 | 仅有成交量 | 成交量与持仓量并存 |
| 交易时段 | 统一日盘 | 夜盘加日盘,品种各异 |
写公式前先确认数据来源是主连、指数还是单个合约,这比改任何一个参数的影响都大。
二、价格类计算的写法
均线、区间高低点这些纯价格函数,在期货上可以直接沿用股票的写法,函数名与参数语义一致。
{ 均线组:与股票侧写法相同 }
短: MA(CLOSE, 5);
中: MA(CLOSE, 10);
长: MA(CLOSE, 20);
{ 区间高低点 }
区间高: HHV(HIGH, 20);
区间低: LLV(LOW, 20);
波幅: (区间高 - 区间低) / 区间低 * 100;
写通达信期货指标公式时,最后一句把波幅换算成相对值,这一步在期货上比在股票上更重要。不同品种的报价单位差别很大,同一个绝对波幅在不同品种上的意义完全不同,换算成百分比之后才有可比性。
三、双轨量能的写法
成交量与持仓量要分开放,不要合并在一条线里。它们各自表达的意思不同,合起来会互相抵消。
{ 两条线分列 }
量能比: VOL / MA(VOL, 20);
仓量比: OPENINTEREST / MA(OPENINTEREST, 20);
{ 量仓同增:两者都高于均量 }
量仓同增: 量能比 > 1 AND 仓量比 > 1;
{ 量增仓减 }
量增仓减: 量能比 > 1 AND 仓量比 < 1;
量仓组合的四种状态含义各不相同,写成一个单一的强度值会丢失方向信息。把它们拆成四个独立条件,各自命名,后续组合时更清楚。
| 状态 | 成交量 | 持仓量 | 常见解读方向 |
|---|---|---|---|
| 量仓同增 | 升 | 升 | 新资金进入 |
| 量增仓减 | 升 | 降 | 原有头寸离场 |
| 量减仓增 | 降 | 升 | 交投转淡但头寸沉淀 |
| 量仓同减 | 降 | 降 | 参与度整体回落 |
四、连续合约的口径问题
主力合约切换会在切换日造成价格断层。若直接对拼接后的序列做差值或均线计算,切换日本身会产生一个跳变,容易被误读成行情变化。
{ 检测相邻两根的跳变幅度 }
跳变: ABS(CLOSE - REF(CLOSE, 1)) / REF(CLOSE, 1) * 100;
异常跳变: 跳变 > 3;
这个阈值不是普适的,只是用来把异常点找出来人工看一眼。真正的处理方式是选择合适的数据源:有些数据源提供后向或前向的连续调整,切换日的断层已被抹平。
若拿不到调整后的连续序列,替代做法是在切换日附近断开计算,或者把统计区间限制在单一切换周期之内。两种做法都会损失一部分样本,但比让断层污染结果要好。
五、时段过滤的写法
需要把特定时段的行情排除在外时,可以用时间函数构造条件。
{ 按小时过滤:只保留某段时段 }
时段内: HOUR >= 9 AND HOUR < 15;
{ 组合进其他条件 }
条件: 时段内 AND 量能比 > 1;
这里只是示意时间过滤的写法。不同品种的夜盘时段不同,具体的小时区间要以实际交易时间为准,用参数封装起来比写死在公式里更好维护。
六、参数与边界
| 参数 | 作用 | 调大后的影响 |
|---|---|---|
| 均线周期 | 控制平滑程度 | 更平滑,信号更滞后 |
| 区间根数 | 决定高低点覆盖范围 | 极值更极端,突破条件更难满足 |
| 量能阈值 | 控制放量判定松紧 | 阈值提高,触发次数减少 |
三个参数的调节方向都是「调大则更严格或更滞后」,但作用的位置不同。均线周期影响的是趋势判断的灵敏度,区间根数影响的是边界的位置,量能阈值影响的是参与度判定。分清楚这一点,调参时才不会互相干扰。
七、验证顺序
第一步,先在小样本上确认字段都取得到值。持仓量为空、时段函数无输出这类问题,越早发现越省事。
第二步,把每个条件单独输出成一条线,观察各自的密度。合在一起不亮时,能快速定位是哪一个条件不成立。
第三步,用同一品种的不同合约跑一遍,比较结果是否一致。差异过大通常指向连续合约的处理问题。
第四步,把公式放到不同周期上验证。期货的夜盘在日线上被合并,在小时线上会单独成根,同一条件的触发位置可能不同。
相关的字段与函数说明见 指标原理与参数;跨平台移植时的差异对照见 跨平台对比与公式转换;基础语法见 公式编写教程。
期货指标公式能不能用,取决于数据口径有没有对齐,而不取决于函数写得复不复杂。把合约来源、复权方式、时段这三件事先说清楚,后面的计算才有意义。
