ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

通达信复合信号主图指标源码解析与期货优化实践

通达信复合信号主图指标源码解析与期货优化实践 简介这是为期货市场交易者准备的通达信指标公式主图指标文档由多种经典与自定义技术指标构成适合在盘中或复盘时辅助判断行情方向。文档基于移动平均、相对强弱RSI、布林带等经典指标组合BBI、UPR、DWN等自定义判断形成买入、卖出、止损减仓等信号帮助用户快速识别趋势强弱与买卖时机。资源压缩包仅含1个doc格式文档大小44KB内容紧凑适合直接在通达信软件中使用或按需修改。截至目前已有2906人浏览学习适合有一定技术分析基础、希望优化交易系统的期货投资者参考。文档给出完整的主图指标源码涵盖SMA均线交叉提示“全仓买”“清仓”、RSI超买提示“减仓”以及量价配合的“买进”“抄底”等信号并附带相应公式逻辑说明可辅助用户理解指标构成、扩展个人策略也便于按自身习惯调整参数。1. 通达信指标公式源码里藏着一套复合信号系统先看清再复制通达信指标公式源码里同时出现SMA均线、BBI、布林带、RSI和一组量价条件时别急着粘贴到公式管理器。这份主图指标源码大约两百行真正承担买卖决策的是四个DRAWTEXT文字信号全仓买、买进、清仓、减仓外加一个抄底。它们分散在不同的技术系统里触发频率、适用周期和参数敏感度完全不一样直接整段复制往往只能看到满屏文字。我建议先从算法构成入手把每条信号对应的计算链条拆开再决定保留哪些、过滤哪些。下文按源码执行顺序逐段分析并给出期货主图下可复现的调整方法和排错思路适合已经在用通达信复盘又不满足于默认指标的人。2. 拆解指标公式双SMA带状区、BBI布林通道、RSI减仓与量价买入条件的协作方式2.1 双SMA快慢线如何构成主图“带状区域”上线:SMA(C,6.5,1); 下线:SMA(C,13.5,1); 上线1:SMA(C,3,1); 下线1:SMA(C,8,1); STICKLINE(上线下线,上线,下线,2.5,0),COLORRED,LINETHICK2; STICKLINE(下线上线,上线,下线,2.5,0),COLORYELLOW,LINETHICK2;第一眼看上去有“上线1”和“下线1”两个变量名但通达信的变量名不允许包含空格。文档里“上线 1”和“下线 1”是复制时混入的空格实际导入前要替换成“上线1”“下线1”否则公式会报错。这两组SMA采用通达信递归移动平均算法是 Y(XM Y(N-M))/NM1时表现为对最新价放大权重N越小跟踪越快。因此“上线”比“下线”更贴近价格红柱代表快线在上黄柱代表快线在下。STICKLINE的第四个参数2.5是柱体宽度第五个参数0表示实心柱若改为1会变成空心柱画面上会更清淡。这段代码把两个均线之间的区域变成主图背景色类似把MACD柱搬到K线下方或价格区域。实际操作中红黄交替越频繁说明周期越短越容易缠绕。如果用在5分钟期货K线上我会把 6.5/13.5 改成 10/21或者直接用参数N1/N2代替方便不同品种调试。相比EMASMA的递归权重是线性分配的对突变价格的响应更钝所以“上线”和“下线”交叉形成的信号天然滞后适合看趋势不适合抓拐点。2.2 BBI 3倍STD通道与MA60安全线BBI:(MA(CLOSE,3)MA(CLOSE,6)MA(CLOSE,12)MA(CLOSE,24))/4; UPR:BBI3*STD(BBI,13),LINETHICK2; DWN:BBI-3*STD(BBI,13); 安全:MA(CLOSE,60),LINETHICK2;BBI是一条四均线均线相当于把3、6、12、24日四条均线做算术平均本身已经比单条均线平滑。源码没有把BBI画成独立曲线而是用BBI当布林轨的中轨上下3倍STD(BBI,13)构成通道。与经典BOLL比较指标中轨标准差周期倍数适用场景经典BOLLMA(CLOSE,20)202波动收敛本指标通道BBI133趋势扩展3倍标准差更容易把短期噪音排除在外但通道会显得宽K线多数时间在通道内运行只有强烈趋势时才触碰UPR或DWN。实践中我会把UPR和DWN画成虚线浅色否则会和K线争夺视觉重心。安全线MA60则承担“牛熊分界”的职责上方运行偏多下方偏空。源码没有基于安全线生成信号但主图观察时安全线和BBI之间的位置关系能辅助判断全仓买信号的质量——如果“全仓买”出现在60日安全线下方成功率会明显下降我在盘中一般不理会这种位置。2.3 RSI超买信号与“清仓/减仓”的触发逻辑LC:REF(CLOSE,1); RSI:SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100; DRAWTEXT(CROSS(82,RSI),HIGH*1.02,减仓),COLORFF9966,LINETHICK2;这里的清仓信号来自CROSS(下线1,上线1)也就是3周期与8周期SMA的死叉触发比RSI更早。而“减仓”用的是6日RSI下穿82位置挂在最高价上方。这个RSI用6日SMA涨跌比率比通达信默认RSI更灵敏。当RSI从上方下穿82时给出“减仓”本质上描述的是超买回落不适合作为唯一卖点最好与2.1中的均线状态配合只有“下线上线”黄柱出现时出现CROSS(82,RSI)才认为趋势转弱如果红柱状态下RSI从高位回落可能是上升中继此时减仓容易踏空。两档卖出设计对应不同持仓管理清仓信号出来先降到半仓减仓信号出来再清剩余仓位。如果同一根K线同时出现清仓和减仓以清仓为准因为短均线死叉对趋势结束更直接。实际使用中RSI在强势期货品种上可能连续多日在80以上钝化因此“减仓”文字不会频繁出现但如果行情在一天内完成冲高回落分钟级别会看到CROSS反复触发这时需要按收盘价确认后再操作。2.4 多条件买进信号SK/SD随机指标与量价组合A7:(2*CHL)/4; 操作:MA(A7,5),LINETHICK2; 操作1:MA(A7,5)*1.03,LINETHICK2; 操作2:MA(A7,5)*0.97,LINETHICK2; VAR1:LLV(A7,21); VAR2:HHV(A7,21); SK:EMA((A7-VAR1)/(VAR2-VAR1)*100,7); SD:EMA(0.667*REF(SK,1)0.333*SK,5);A7是(2收盘高低)/4收盘占一半比典型价格更偏收盘价。VAR1和VAR2取21周期最低/最高A7SK是把当前A7在21周期内的分位数变成0-100的随机值再EMA平滑。SD不是直接对SK做EMA而是对“0.667昨日SK0.333*今日SK”做5周期EMA等价于给SK再套一层低通滤波只有SK持续向上时SD才会上弯。第一组买入条件COUNT(CLOSEREF(CLOSE,1),8)/86/10 AND VOL1.5*MA(VOL,5) AND COUNT(SKSD,3) AND REF(LOW,1)LLV(LOW,120)意思是近8根K线里有6天下跌同时放量到5日均量的1.5倍SK已经连续3天不低于SD并且昨日低点创120周期新低。这是典型的超跌转强组合触发频率低。第二组买入条件更长近13天有超过60%天数下跌SKSD持续6天5天前创120日新低随后4天逐步收阳第5天低开今天高开。这个形态捕捉的是“底部抬高后的第一次放量高开”虽然源码用REF(CLOSEOPEN,4)、REF(CLOSEOPEN,3)等逐日描述但它对阴线阳线的顺序非常依赖参数容错性差。抄底信号还要求CLOSEREF(CLOSE,1)*1.08即当日涨幅超过8%这在股票接近涨停在期货螺纹、原油上却是日常波动后面第4章会专门讲适配问题。信号文字坐标位置核心计算触发性质全仓买LOW*0.98SMA快慢线金叉趋势买入清仓H*1.02SMA3/8死叉趋势卖出减仓H*1.02RSI下穿82波动卖出买进LOW*0.98SK/SD超跌放量条件买入抄底LOW*0.9880日线放量涨幅左侧买入“全仓买”和“买进”都用LOW*0.98作为文字位置信号重叠时会互相覆盖这也是第三章要处理的问题。3. 从源码到可用主图公式导入、画线优化与信号噪音过滤3.1 复制到通达信公式管理器前必须先清理变量名通达信公式编辑器打开方式CtrlF打开公式管理器选择“新建”公式类型选“主图叠加”然后把源码粘贴进去。直接粘贴往往报错原因有三个源码中“上线 1”“下线 1”的变量名空格文档里中文全角逗号缺少分号或网络断行的不可见字符。我会用编辑器的查找替换先把“上线 1”替换为“上线1”把“下线 1”替换为“下线1”再把所有全角逗号“”替换为半角“,”。一个简单的检查方法是点击“测试公式”报错会停留在第一个非法字符位置从该行向上找大多数是变量名或标点问题。报错来源典型表现处理方式变量名空格“上线 1”替换成“上线1”全角标点中文逗号、冒号统一替换为半角断行丢分号下一行报未知字符按原源码结构补全分号如果要在多个周期使用可以把敏感周期直接提到公式开头N1:6.5; N2:13.5; N3:3; N4:8; 上线:SMA(C,N1,1); 下线:SMA(C,N2,1); 上线1:SMA(C,N3,1); 下线1:SMA(C,N4,1);这一步先把数字从公式体里提取出来后续切周期时只改N1到N4即可。真正要让通达信在“调整指标参数”面板里可调可以在公式编辑器左侧参数页签中增加N1、N2、N3、N4然后代码里不要再对这四个名字做:赋值。3.2 主图叠加、线宽与坐标画风优化建议源码中UPR、DWN、安全线都是直接叠加在K线上的价格量级UPR偏离BBI较远默认线宽为2会让通道看起来像一条粗大的压力带K线细节被遮挡。常见做法是把上轨改为DOTLINE并降低颜色亮度UPR:BBI3*STD(BBI,13),COLORC0C0C0,DOTLINE; DWN:BBI-3*STD(BBI,13),COLORC0C0C0,DOTLINE; 安全:MA(CLOSE,60),COLOR888888,LINETHICK1;STICKLINE的柱体宽度2.5在低价品种上显得很宽如果觉得遮挡可以改成1.8或1.5。DRAWTEXT文字位置用LOW0.98和H1.02遇到连续涨停或大幅跳空时会顶到上下边框我一般把文字改用DRAWICON配合小图标DRAWICON(CROSS(上线,下线),LOW*0.98,1);DRAWICON的图标编号1代表通用买入图标但它不带文字如果还要保留“全仓买”字样可以把文字垂直偏移分开比如“买进”放在LOW0.95“抄底”放在LOW0.92不同信号错开0.02个价格单位就不会叠成一团。这个技巧在信号密集的主图上比任何颜色调整都有效。3.3 未来函数与信号闪烁排查REF/LLV的位置有讲究很多人担心这份源码里有未来函数。逐条看“REF(LOW,1)LLV(LOW,120)”是取已经发生的昨日最低价与之前119根K线比较结论在收盘后固定CROSS(82,RSI)在日线收盘后也固定因此日线级别不存在未来数据。但在分钟线盘中LLV(A7,21)会随着当前未收盘K线一起变动SK、SD以及“买进”信号会在盘中反复出现和消失这不是未来函数而是信号闪烁。要减少闪烁可以让所有引用当前BAR的A7、CLOSE都改用前一周期确认值A7X:(2*REF(C,1)REF(H,1)REF(L,1))/4; VAR1:LLV(A7X,21);这样当根K线没有走完时指标使用上一根K线数据计算信号只在每根K线收线后更新一次。代价是信号滞后一根K线但盘中稳定性明显提高。对比实时值和确认值你会发现大量的“买进”文字出现在当日最高点附近那其实是盘中波动造成的幻觉收盘后大多消失。提示分钟级别上HHV、LLV和EMA都包含当前未收盘K线盘中看到信号后最好等当前K线收线再确认“REF”多不代表没有未来问题关键看有没有引用当根BAR的收盘价。3.4 信号过滤连续出现“买进”文字只保留第一次“买进”条件在超跌反弹阶段往往连续两三天触发主图上会出现一串黄色“买进”。为了避免重复提示定义一个布尔变量再用COUNT做延续过滤BUY1:COUNT(CLOSEREF(CLOSE,1),8)/86/10 AND VOL1.5*MA(VOL,5) AND COUNT(SKSD,3) AND REF(LOW,1)LLV(LOW,120); SIGNAL:BUY1 AND COUNT(BUY1,5)1; DRAWTEXT(SIGNAL,LOW*0.98,买进),COLOR0099FF;COUNT(BUY1,5)1表示5根K线内BUY1只出现这一次所以连续信号只在第一天显示。如果希望信号间隔至少3根K线写成COUNT(BUY1,3)1。另一个常用函数是BARSSINCEN(BUY1,5)0含义是当前BAR距最近一次BUY1之间相隔0根K线效果相同。如果做选股应该使用BUY1本身而不是SIGNAL否则会丢掉第二次启动机会。4. 期货品种与周期适配哪些参数可以调哪些边界不能碰4.1 不同周期下SMA权重与BBI周期的调整建议通达信指标公式源码通常按日线设计直接用到期货分钟线会过于敏感。SMA的N值决定均线衰减速度N越小最新价格权重越大。5分钟K线的噪音幅度远小于日线但数量多、反复大6.5和13.5的组合会在一天内制造很多红黄切换。我一般按周期放大概率K线周期上线SMA下线SMA短线SMA组BBI周期组5分钟12266/145/10/20/6015分钟10215/133/6/12/2460分钟8174/103/6/12/24日线6.513.53/83/6/12/24这组数不是公式的唯一答案是以不改变原公式结构为前提的“先验证后调整”初值。BBI周期组在分钟线上如果仍用3/6/12/24通道会很窄可以改成5/10/20/60相当于用更大周期过滤分钟噪音。改动后要重新观察STICKLINE的红黄占比如果一条K线内反复变色超过两次说明参数仍然太短。如果要在多个品种间切换顺手在公式参数页里把N1、N2、N3、N4设成参数默认值分别为6.5、13.5、3、8代码里已经出现N1的地方不再重新赋值。4.2 量能与涨跌幅条件在期货环境下的失效与替代“买进”信号里有VOL1.5*MA(VOL,5)这个量能条件在股票里很有意义在期货上却有两个坑主力合约换月当天成交量剧烈放大5日均量被旧合约数据拉低新合约很容易触发放量夜盘和日盘的成交量分布不均某些品种夜盘占全天成交60%以上白天VOL低于均值导致信号集中在夜盘。常见做法是把5日均量换成20日均量并且只取近10根K线vol_ma:MA(VOL,20); BUY2:COUNT(CLOSEREF(CLOSE,1),8)/86/10 AND VOL1.2*vol_ma AND COUNT(SKSD,3) AND REF(LOW,1)LLV(LOW,120);把倍率从1.5降到1.2是因为20日均量更平滑1.5倍很难触发。另一个更贴合期货的替代是持仓量变化期货放量不等于资金进场持仓量增加才是新资金入场。不同通达信期货版本持仓量变量名不完全一致建议先打开公式管理器右侧的“插入函数”列表确认当前软件的字段名再写入否则公式在股票和期货间切换时会报错。“抄底”信号里的CLOSEREF(CLOSE,1)*1.08是针对股票接近涨停设计的。螺纹、原油、焦炭在趋势行情中单日涨跌8%并不罕见甚至能到10%以上直接用会导致“抄底”经常出现在加速段而不是低点。如果只想保留这个信号的形态可以把区间放到CLOSEREF(CLOSE,1)*1.03或者去掉涨幅条件只看收盘价低于D且放量。D:MA(CLOSE,80)-MA(CLOSE,10)/3本身是一个和60日线类似的长期位置判断保留它的意义比涨幅条件更大。4.3 常见误用把股票脚本逻辑直接套到期货主图上接下来是边界问题。第一个误用是在主力连续合约上直接算LLV(LOW,120)。股票除权除息有复权机制期货主力连续合约是不同合约拼接换月跳空会把120周期最低价定位到前一个到期合约的极端价格信号完全失真。我一般把指标加载到具体合约月份上做历史回看或者使用通达信的主连数据但只统计最近一个主力合约时间段如果要分析整个主连最好先把价格做后复权或等比复权再跑指标。第二个误用是忽略交易时间差异。股票日K每天固定15:00收盘期货夜盘品种的日K在凌晨收盘盘中实时计算信号时RSI和SK/SD都在动等到凌晨收盘又会变一次。如果想按日线稳定决策应该在日K收线后再看信号不要盘中加载在主连上做即时反应。第三个误用是把“全仓买”当成一把梭信号。原文只是一个主图指标没有资金管理模型全仓两个字只是文案。期货有杠杆2.5手宽度画出的红黄区间也不代表合约波动边界把这个“全仓”映射到实际仓位前至少要乘以一个自适应波动率系数。涨跌停与高波动品种上CROSS(82,RSI)可能一天内多次穿越最好加入过滤减仓:CROSS(82,RSI); DRAWTEXT(减仓 AND COUNT(减仓,3)1,HIGH*1.02,减仓),COLORFF9966;这样三天内只出现一次避免在V形反转中被反复提示。以上调整都能在通达信公式编辑器里直接改改完用“测试公式”确认语法再按周期切换观察红黄柱面积和信号数量变化。5. 把主图信号变成可回测的选股公式信号质量统计的进阶技巧5.1 主图DRAWTEXT与选股公式XG的语法差异通达信的选股公式和主图指标共用一套语法但输出方式不同。主图用DRAWTEXT把文字画在某个价格坐标上选股公式只允许一个输出变量XG它会返回1或0。直接把源码粘到选股公式里会报错因为STICKLINE、DRAWTEXT这些绘图函数在选股公式中不可用。转换思路很简单把DRAWTEXT里的条件抽出来赋值给XG。例如“全仓买”的条件是CROSS(上线,下线)在选股公式里写作上线:SMA(C,6.5,1); 下线:SMA(C,13.5,1); XG:CROSS(上线,下线);不需要LOW*0.98也不需要COLOR。清仓同理上线1:SMA(C,3,1); 下线1:SMA(C,8,1); XG:CROSS(下线1,上线1);5.2 将“全仓买”和“清仓”转成两个独立选股条件更完整的做法是把原公式中用到的BBI和SK/SD都保留只输出你要的信号BBI:(MA(CLOSE,3)MA(CLOSE,6)MA(CLOSE,12)MA(CLOSE,24))/4; 上线:SMA(C,6.5,1); 下线:SMA(C,13.5,1); 全仓买:CROSS(上线,下线); 选股:全仓买 AND CLOSEBBI;加CLOSEBBI是为了过滤均线下方的弱势金叉。清仓信号可以加CLOSEBBI作为确认避免在强势上涨中过早离场。选股公式还可以用“AND”叠加量能条件比如把“放量”写进去XG:全仓买 AND VOL1.5*MA(VOL,5);但4.2节提醒过期货换月期间VOL会失真回测时如果发现大量信号集中在每月第一个交易日就要把量能条件去掉或改用20日均量。5.3 用程序交易评测统计信号在指定周期的胜率把选股公式保存后可以用“功能”菜单下的“程序交易评测”进一步回测。先打开程序交易评测选“指标公式”模式设置初始资金、手续费率和交易品种。通达信的回测引擎默认按信号产生后的第一个开盘价成交这对期货非常重要——你要在参数设置里把“成交价格”选为“次日开盘价”因为主图上的LOW价格不保证能真正买到。评测结果里有信号数量、胜率、平均盈利、平均亏损、最大回撤。把胜率按年份拆分观察是否集中在某一波行情里。如果信号数量少得可怜说明REF(LOW,1)LLV(LOW,120)这一条卡得太死可以把120降到60看看信号数量与胜率的平衡点。把评测得到的成交记录导出逐笔对照主图信号那些亏损单大多出现在换月跳空附近再次验证为什么不要直接在主连合约上做信号统计。本文还有配套的精品资源点击获取
返回列表