
简介面向博易大师期货软件用户的顶底指标公式源码文档适合参与期货交易、希望借助技术工具识别行情顶底拐点的投资者也适合对指标编写逻辑感兴趣的学习者。文档以EMA、RSI、MA等指标的组合为基础逐条拆解了公式变量含义与计算方法并系统展示了上升通道、反转通道的构建过程以及如何通过二者比较判断当前趋势。还包含图表绘制说明和实际应用指引。压缩包共1个DOC文档大小约39KB内容精炼便于快速查阅和复制源码。目前已有354人学习文档不仅给出了可直接加载的顶底指标源码还附带了变量解释与信号逻辑实用性强读者可据此在博易大师软件中验证效果并根据自身交易风格对参数或画线方式做进一步优化。1. 博易大师指标公式在说什么期货软件里的指标公式很多是“涨了说涨、跌了说跌”的马后炮但这个“真正顶底指标”不太一样。它没有去猜最高最低点而是用 EMA 嵌套和周期状态切换把行情切成“上升通道”和“反转通道”两个区域通道相交时给出趋势切换信号再用柱状图填充两个通道之间的空间。实际使用时你看到的不是一条金叉死叉线而是一段红色或绿色的区域在滚动配合“多”“空”文字提示决策点非常明确。这段源码里没有未来函数适合日内和短线波段可以在博易大师、信管家等支持文华风格语法的期货软件里直接新建公式使用。下面先拆前半段公式再看画图逻辑和实战参数怎么调。2. 读懂公式骨架EMA 嵌套与 A1D/A1E 的状态换手2.1 EMA 周期选 9 和 5 的含义源码第一行是A1A:EMA(CLOSE, 9);后面马上比较A1A和EMA(CLOSE, 5)。这里用了两个不同周期的指数移动平均线9 期偏慢5 期偏快。在期货的 1 分钟、3 分钟、5 分钟周期里5 和 9 分别对应约 25 分钟和 45 分钟的均值能很好地过滤掉单根 K 线的噪音又不至于太滞后。之所以用 EMA 而不是 MA是因为 EMA 对近期价格变化更敏感且不会像 MA 那样在震荡区间里频繁拐头。可以用下面这段简化代码验证// 博易大师指标公式语法 FAST:EMA(CLOSE,5); SLOW:EMA(CLOSE,9); DIFF:FAST-SLOW;DIFF 的符号变化就代表短期动能的方向。原文里的A1B:((A1A - EMA(CLOSE, 5)) 0);和A1C:((A1A - EMA(CLOSE, 5)) 0);本质上是把 DIFF 变成布尔值A1B 为真表示慢线在快线之上价格处于回调状态A1C 为真表示快线在慢线之上价格处于抬升状态。2.2 用 BARSLAST 做状态切换标记接下来是这段公式最精髓的地方A1D:BARSLAST(A1B); A1E:BARSLAST(A1C);BARSLAST(条件)返回上一次条件成立到当前的周期数。如果当前 A1B 为真A1D 等于 0如果 A1B 刚刚变成假A1D 等于 1依此类推。A1D 和 A1E 分别记录“慢线在上”和“快线在上”这两个状态持续了多久。这里有个容易踩坑的点A1D 和 A1E 是互斥的换手变量。当 A1B 为真时A1D0A1E 则是一个不断增大的数表示距离上一次 A1C 成立已经过去了多少根 K 线。两个变量交替增长就形成了一组“上一次上涨/下跌状态距今”的时间轴。后面的 A21、A22、A23 都依赖这两个时间轴来计算阶段涨跌幅而不是用全局累积。2.3 A1F 到 A23 的涨跌幅累计逻辑A1F:IF((A1E 0),(CLOSE - REF(CLOSE, 1)) / REF(CLOSE, 1) * 100,0); A20:SUM(A1F,0); A21:IF((A1D 0),(0 - 2),0); A22:IF((A1E 0),SUM((CLOSE - REF(CLOSE, 1)) / REF(CLOSE, 1) * 100,A1E),0); A23:A22 / A1E;A1F 只在 A1E 大于 0 时计算单根 K 线的涨跌幅百分比否则取 0。A20 是对全部 A1F 的累计求和等价于从开始到当前的累计涨跌幅。注意这里用的是百分比计算而不是价格差所以不同价位的品种可以直接对比这是比普通 MACD 柱体更通用的一点。A22 的SUM(..., A1E)是向前回溯 A1E 根 K 线求和这一整段上涨周期内的百分比涨幅。A23 则是这段上涨周期的平均每周期涨幅。A21 的意思更直接当 A1D 大于 0也就是当前处于下跌状态恢复期时输出 -2用来在后面的绘制中作为“空”信号的参考。这套写法的好处是不依赖固定的回溯窗口周期长度由市场本身的换手节奏决定震荡市里 A1E 较小趋势市里 A1E 较大天然自适应。3. 信管家与博易大师平台下的公式输入与参数调整3.1 新建指标公式的步骤博易大师和信管家在公式编辑上共用一套语法主图指标和副图指标都可以直接粘贴源码。一般流程是打开博易大师软件在菜单栏找到“指标公式”或“公式管理器”不同版本位置略有不同通常在“功能”或“工具”菜单下。新建一个技术指标选择“主图”或“副图”这个公式画的是通道和柱体推荐放在主图。把源码完整粘贴到编辑区注意不要在开头加号每行以分号结尾。编译通过后在 K 线图空白处右键选择“技术指标”找到新建的指标名添加到当前窗口。如果你用的是信管家或其他白标期货软件菜单名可能是“系统工具 - 公式管理器”。核心语法一致只是入口不同。3.2 从源码到可用逐行粘贴注意点下面是把原文公式整理成可直接粘贴的版本并且补全了颜色和线型控制A1A:EMA(CLOSE, 9); A1B:((A1A - EMA(CLOSE, 5)) 0); A1C:((A1A - EMA(CLOSE, 5)) 0); A1D:BARSLAST(A1B); A1E:BARSLAST(A1C); A1F:IF((A1E 0),(CLOSE - REF(CLOSE, 1)) / REF(CLOSE, 1) * 100,0); A20:SUM(A1F,0); A21:IF((A1D 0),(0 - 2),0); A22:IF((A1E 0),SUM((CLOSE - REF(CLOSE, 1)) / REF(CLOSE, 1) * 100,A1E),0); A23:A22 / A1E; A25:EMA(EMA(EMA(CLOSE, 3), 3), 3); 上升通道:((A25 - REF(A25, 1)) A25),COLORRED; 反转通道:MA(上升通道, 15),COLORGREEN; IF(上升通道REF(上升通道,1),上升通道,DRAWNULL),COLORRED,LINETHICK4,POINTDOT; IF(反转通道REF(反转通道,1),反转通道,DRAWNULL),COLORGREEN,LINETHICK4,POINTDOT; STICKLINE((上升通道 反转通道),反转通道,上升通道, 2, 0),COLORRED; STICKLINE((反转通道 上升通道),上升通道,反转通道, 2, 0),COLORGREEN; DRAWTEXT(CROSS(反转通道,上升通道),上升通道 * 1.08,下降趋势),COLOR00FF00; DRAWTEXT(CROSS(上升通道,反转通道),反转通道 * 0.97,上升趋势),COLOR0000FF; DRAWTEXT(((REF(A21, 1) (0 - 2)) AND (A21 0)),LOW,多),COLORYELLOW,FONTSIZE25; DRAWTEXT(((REF(A1E, 1) 0) AND (A1E 0)),HIGH,空),COLORGREEN,VALIGN0,FONTSIZE25;粘贴注意三点第一DRAWTEXT后面的FONTSIZE25和VALIGN0有些版本不支持如果编译报错可以删去这两个参数第二COLOR00FF00是绿色、COLOR0000FF是蓝色不同版本颜色名称可能冲突建议用十六进制色值第三输出行不要加:否则不会显示在图表上前面带冒号等号的都是中间变量。3.3 参数周期与商品适配不同期货品种的波动节奏差异很大螺纹、甲醇、黄金的 A1E 换手周期完全不同。下表是常见场景下的建议参数设置品种类型推荐K线周期EMA快线EMA慢线反转通道均线周期螺纹/热卷波动大5分钟5915甲醇/PTA中等波动15分钟61118黄金/白银夜盘连续30分钟5920股指期货IF/IC1分钟3712修改方式很简单把公式里的EMA(CLOSE, 9)和EMA(CLOSE, 5)替换成你想要的数字或者直接把 9 和 5 定义成参数变量N1:9; N2:5;方便在“参数调整”面板里动态修改。要注意的是MA(上升通道, 15) 的周期建议与快慢线的差值保持比例关系快慢线差值越大这个均线周期也应该相应加大否则通道交叉信号会过于频繁。4. 顶底判定与绘制三重 EMA、通道交叉与多空文字4.1 三重 EMA 的平滑作用与 A25A25:EMA(EMA(EMA(CLOSE, 3), 3), 3);这行代码常见于分形指标和量能饱和度类公式里作用是把价格连续做三次周期为 3 的指数平滑。经过三次嵌套后单根 K 线的随机波动基本被抹平曲线在趋势行情里非常光滑。你可以把 A25 理解为“价格的加速度修正值”它比 MA(C,5) 更能反映当前的真实重心。上升通道的定义((A25 - REF(A25, 1)) A25)其实就是“今天的 A25 加上今天相对昨天的变化量”当 A25 上涨时上升通道的数值会放大这种变化形成一个比 A25 本身更陡峭的动态支撑线。换句话说它不是单纯的均线而是带有动量加权的均线变体英文里这类结构常叫 Momentum MA。4.2 通道交叉与 STICKLINE 柱体反转通道是上升通道的 15 周期简单移动平均相当于给动量线再做一次平滑。两者之间的关系形成了一套完整的趋势判断逻辑STICKLINE((上升通道 反转通道),反转通道,上升通道, 2, 0),COLORRED; STICKLINE((反转通道 上升通道),上升通道,反转通道, 2, 0),COLORGREEN;STICKLINE 的五个参数分别是条件、起点、终点、宽度、空心0 为实心。当上升通道在上方时从反转通道向上画红色柱体填满两者之间的空间反转通道在上方时从上升通道向上画绿色柱体。这样图上一眼就能看出当前的“主导方”是谁。红色区域扩张说明多头动量在加强绿色区域扩张说明空头动量在加强。这里要注意生效顺序先画两行 IF 输出的红绿点线再画 STICKLINE 填充最后画 DRAWTEXT 文字。如果你觉得柱体太粗压住 K 线把宽度参数从 2 改成 1如果你希望柱体只在通道扩张时显示可以像前面那两行一样加REF(上升通道,1)的条件判断。4.3 DRAWTEXT 多空信号的触发条件源码里有四组文字提示前两组是趋势切换后两组是短周期的多空反转DRAWTEXT(CROSS(反转通道,上升通道),上升通道 * 1.08,下降趋势),COLOR00FF00; DRAWTEXT(CROSS(上升通道,反转通道),反转通道 * 0.97,上升趋势),COLOR0000FF; DRAWTEXT(((REF(A21, 1) (0 - 2)) AND (A21 0)),LOW,多),COLORYELLOW,FONTSIZE25; DRAWTEXT(((REF(A1E, 1) 0) AND (A1E 0)),HIGH,空),COLORGREEN,VALIGN0,FONTSIZE25;CROSS(反转通道,上升通道) 表示反转通道上穿上升通道这是“下降趋势”的开始文字画在上升通道的 1.08 倍位置。反过来就是“上升趋势”开始。比较绕的是“多”和“空”的触发条件“多”信号需要REF(A21, 1) -2 AND A21 0意思是前一周期 A21 还处于下跌状态输出 -2本周期 A21 变成 0也就是价格刚刚完成了从下跌状态到非下跌状态的切换。这个切换点通常出现在急跌后的第一根反弹 K 线。“空”信号需要REF(A1E, 1) 0 AND A1E 0即前一波上涨周期的结束点A1E 从大于 0 变成 0代表上涨趋势刚被否定。这个信号和“多”信号是对称的。所以这个指标实际给了两类信号通道交叉是慢信号适合判断大方向多空文字是快信号适合找短线切入点。两者同时出现时胜率通常更高。5. 实战验证与埋坑排查把信号变成可执行决策5.1 先用复盘模式验证信号质量在博易大师里按CtrlR进入历史回放模式用键盘左右键逐根 K 线移动观察指标信号出现的位置。重点检查两类情况一是“多”信号是否出现在下跌末期二是通道交叉后是否立刻被打回。建议随机抽取 30 个出现过信号的交易日统计信号后 5 根 K 线内最大盈利幅度和最大亏损幅度用表格记录信号类型信号数量5根K线内胜率平均盈利平均亏损多次数百分比数值数值空次数百分比数值数值如果“空”信号的胜率明显低于“多”信号说明该品种空头动能释放不充分这时候需要过滤掉逆势信号。常见的过滤做法是只在 60 周期均线之下做空、在 60 周期均线之上做多代码可以这样加MA60:MA(CLOSE,60); 做多条件:A21切换 AND CLOSE MA60; 做空条件:A1E归零 AND CLOSE MA60;5.2 信号漂移与未来函数排查这个源码里没有ZIG、PEAK、TROUGH一类未来函数可以放心使用。但要注意BARSLAST和SUM(..., A1E)的组合在盘中会随 K 线未走完而变化最后一根 K 线未收盘时信号可能闪烁。实战中建议等 K 线收盘后确认信号再执行或者用ISLASTBAR屏蔽未走完的 K 线。另一个常见的坑是REF(A21, 1) (0 - 2)这种写法有些用户在移植到通达信时把0 - 2直接写成-2语法没问题但要注意博易大师里DRAWTEXT的FONTSIZE参数在通达信中不兼容需要改成DRAWTEXT(...),COLORYELLOW;并去掉字号参数。如果你要在同一套代码上兼容多平台建议把所有颜色和字体参数统一放在末尾不要穿插在条件里。5.3 参数微调与组合过滤当信号连续亏损达到 3 次时把EMA的慢线周期从 9 上调到 13会减少小级别震荡的干扰如果你做的是大波段可以把反转通道的周期从 15 改成 25让通道交叉信号更晚出现虽然会错过一部分起涨点但单笔盈利空间更大。最后建议在副图叠加一个 20 周期量能饱和度指标当柱体收缩且通道变色时往往就是一波新行情启动的共振点。指标是辅助把多空文字当作“候选名单”再用你自己的止损规则去执行它才能变成真正可用的决策工具。本文还有配套的精品资源点击获取