十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

同花顺红绿趋势幅图指标:源码逐行拆解与调试实战

同花顺红绿趋势幅图指标:源码逐行拆解与调试实战 写这个“红绿趋势”幅图指标起因是我在复盘软件里翻自选股的时候总觉得主图上的K线红绿看着不够直观——价格一波动眼睛得不停地在收盘价和均线之间来回扫。后来就开始琢磨能不能把“趋势方向”这件事单独拎出来放到副图里用最简单粗暴的红绿两种颜色一眼就能看出手里这只票到底处在什么状态。于是就有了这套“红绿趋势”幅图指标。今天我不光把现成的源码贴出来更重要的是拆开揉碎讲讲每一行到底干了什么为什么这么写以及你在同花顺里自己调试时会踩到哪些坑。1. 这个指标到底在解决什么问题做交易的人每天盯盘最累的不是看错方向而是信息太杂。主图上K线、均线、成交量、各种画线工具堆在一起新手容易看花眼老手也难免要来回切换周期确认。副图指标存在的意义就是把某一个维度的判断单独提取出来用最直观的视觉语言呈现。红绿趋势幅图做的就是“趋势方向”这一件事。1.1 为什么是红绿而不是别的颜色红绿两种颜色在国内的看盘软件里已经成为肌肉记忆红色代表涨、强势、多头绿色代表跌、弱势、空头。这比用金叉死叉、数值大小、文字提示都来得直接。你不需要去记忆“DIF大于DEA代表什么”只需要看副图里眼下是红柱还是绿柱、红柱是变长还是变短就能在零点几秒内形成一个方向感。红绿趋势指标的核心设计逻辑就是把“价格相对强弱”转换成一串红绿柱子。柱子本身没有量纲它只是一个视觉编码器把连续的价格波动离散化成两个状态强或者弱。剩下的工作就是如何定义“强”和“弱”的边界。1.2 副图比主图更适合做趋势观察主图有K线和均线信息密度已经很高了再往里面塞东西往往会干扰对价格本身的判断。幅图指标放在下方的独立窗口里天然适合放“状态类”的信号比如趋势方向、超买超卖、动量强弱。红绿趋势走的就是这条路线——不预测价格只帮你确认当前处于哪个状态。这套指标特别适合两类人日内和波段交易者需要快速判断当前多空氛围辅助择时和持有/离场的决策。刚开始接触公式编程的学习者因为这个源码结构清晰、逻辑简单是入门同花顺公式语言的一个很好的练手样本。2. 源码逐段拆解从变量定义到画柱逻辑看指标源码不要从头到尾一通读要按逻辑块拆。红绿趋势幅图的源码不算复杂核心可以分成三块趋势判断的原始数据计算、平滑与信号确认、视觉输出。2.1 源码原文基于同花顺常用函数我用的是同花顺公式语言中比较稳健的一套写法没有引用未来函数也没有使用过于复杂的循环适合直接复制到软件里运行{红绿趋势幅图指标 - 源码分析示例} T1:MA(CLOSE,5); T2:MA(CLOSE,10); T3:MA(CLOSE,20); TREND:T1T2 AND T2T3; HOLD:T1REF(T2,1) AND T2REF(CLOSE,1); STRONG:CLOSEOPEN AND T1T2; WEAK:CLOSEOPEN AND T1T2; STICKLINE(TREND AND STRONG,0,3,3,1),COLORRED; STICKLINE(TREND AND HOLD,3,6,3,1),COLORRED; STICKLINE(WEAK,0,-3,3,1),COLORGREEN; STICKLINE(NOT TREND AND NOT WEAK,0,-1,3,1),COLORGRAY; DRAWICON(CROSS(T1,T2),-4,1); DRAWICON(CROSS(T2,T1),-4,2);这是一份我在实际调试中调整出的精简版。核心判断是均线排列加上K线实体方向做二次过滤。下面一行一行说。2.2 均线组与趋势方向判断T1:MA(CLOSE,5); T2:MA(CLOSE,10); T3:MA(CLOSE,20);这三行定义了三条均线周期分别是5、10、20。这个周期组合我是参考了很多短线指标后定了下来5日代表短期情绪10日代表短期趋势的确认20日代表中期趋势的底线。你可以根据自己的交易周期调整比如做中线的可以把5、10、20改成10、20、60。TREND:T1T2 AND T2T3;这句是整个指标的方向总开关。意思很直白当短期均线在中期均线之上、中期均线又在长期均线之上形成标准的多头排列时TREND为真值为1否则为假值为0。这个写法比单纯看“价格在均线上方”要稳得多因为均线排列已经过滤掉了不少短促的毛刺波动。2.3 强度分层HOLD与STRONG在这一版指标里我没有把“红色”一概而论而是通过两个变量把多头状态又分成了两层HOLD:T1REF(T2,1) AND T2REF(CLOSE,1);HOLD表示“持仓状态”。它的含义是5日线高于昨天的10日线且10日线高于昨天的收盘价。言下之意短期趋势仍然在上行通道里但强度不一定很强。这种状态一般出现在趋势中段不是最猛烈的连续大阳线阶段但均线系统还没有破坏。STRONG:CLOSEOPEN AND T1T2;STRONG表示“强势状态”需要同时满足两个条件当前K线收阳收盘价大于开盘价且5日线在10日线上方。这个条件过滤掉了“均线刚拐头但当天实际在跌”的假突破只有阳线加均线多头同时确认才定义为强。之所以要把红色拆成两层是因为实操中你会发现同样一根红K线在趋势初期的含义和在趋势末期的含义完全不同。如果不分层你在副图上看到一片红却不知道这个红是“正在加速”还是“已经走了很久可能随时结束”。有了STRONG和HOLD的分层你可以通过柱子的高度变化观察强度衰减。2.4 弱势状态与空头响应WEAK:CLOSEOPEN AND T1T2;WEAK的定义和STRONG正好镜像——收阴且短期均线在中期均线下方。这是空头状态的核心判断。实际走势里非多即空但并非每根K线都能同时满足TREND或WEAK的条件。比如震荡行情中K线实体很小均线纠缠在一起用TREND和WEAK两个条件去套会出现很多“都不成立”的情况。这时就需要一个兜底的状态我给它画了灰色柱子。2.5 画柱与视觉输出的细节STICKLINE(TREND AND STRONG,0,3,3,1),COLORRED; STICKLINE(TREND AND HOLD,3,6,3,1),COLORRED; STICKLINE(WEAK,0,-3,3,1),COLORGREEN; STICKLINE(NOT TREND AND NOT WEAK,0,-1,3,1),COLORGRAY;STICKLINE函数是同花顺画柱子的核心工具参数分别是画柱条件、起始位置、结束位置、宽度、是否空心。这里我从0开始向上下延伸红色向上画绿色向下画灰色的特殊情况画得很矮。这里有一个细节值得注意我把红色柱子分成了两段第一段从0到3条件是TREND AND STRONG即“多头排列中叠加了当天的阳线确认”这是最强的状态。第二段从3到6条件是TREND AND HOLD即“多头排列中维持着均线向上的惯性”代表趋势还在但强度有所衰减。为什么要分两段画因为这样可以在副图上实现“高度递增”的视觉效果你可以把它理解为同步显示了两档强度第一档是启动信号第二档是确认延续。任何一档消失你就会看到柱子缩短提示你可能需要关注强度变化。2.6 图标画笔与金叉死叉补充DRAWICON(CROSS(T1,T2),-4,1); DRAWICON(CROSS(T2,T1),-4,2);最后两行用DRAWICON在-4位置画小图标5日线金叉10日线时画图标1一般是向上箭头死叉时画图标2一般是向下箭头。这算是一个辅助信号当你不太确定当前趋势是否刚刚转折时可以回到这个位置做参考。需要注意的是DRAWICON的图标编号在部分版本里可能略有差异如果你复制过去后不显示可以试着改图标编号或者直接删掉这两行不影响主要红绿逻辑。3. 安装与调试从复制到跑通的完整流程源码本身不算复杂但很多新手在同花顺里加指标时会在一些莫名其妙的环节卡住。这里把从零开始安装、调试的完整流程过一遍。3.1 新建公式的三种入口同花顺里新建指标公式常用的入口有三个任选其一都可以在K线图界面的副图窗口点右键选择“修改指标公式”或“新建副图指标”。通过菜单工具 → 公式管理 → 新建。直接敲快捷键CtrlF打开公式管理器然后在“技术指标”分类下点新建。我更习惯用第三种方式因为可以顺手把指标放进一个自己建的分类里方便后续统一管理。3.2 编译报错的常见原因复制源码过去以后第一件事是点“测试公式”看看有没有语法错误。这个公式我在同花顺的标准语言环境下测过正常情况可以直接通过。如果你遇到报错大概率是以下几个原因标点符号问题最常见的是全角冒号、分号被复制成了中文符号。同花顺公式语言里用的都是英文半角符号尤其是分号和逗号。函数名称不匹配如果你用的不是同花顺、而是其他软件STICKLINE和DRAWICON这类函数写法可能存在差异。这个源码是适配同花顺的拿到通达信或通达信类软件里需要微调。颜色关键字不支持COLORRED、COLORGREEN、COLORGRAY绝大多数软件都支持但COLORGRAY在一些版本里写作COLORGRAY也有写 COLORLIGRAY 的。如果报错改成COLORLIGRAY试一下。3.3 参数调优的基本原则这套源码里5、10、20三个均线参数是直接写死在代码里的。如果你想更灵活地适配不同周期、不同品种可以改成参数定义模式N1:5; N2:10; N3:20; T1:MA(CLOSE,N1); T2:MA(CLOSE,N2); T3:MA(CLOSE,N3);更进阶的写法是把N1、N2、N3放进“参数管理”里这样就可以直接在指标设置界面拖动调整不需要每次改代码。这个操作在公式管理器的参数选项卡里完成设置好参数名、默认值、最小值和最大值即可。3.4 在K线图上应用和常用技巧公式建好并测试通过之后点击确定然后回到K线图界面输入指标名称的首字母就能在副图调出来。比如我这个指标名叫“红绿趋势”输入“HLQS”或者拼音首字母都能找到。调出来以后有几个常用小技巧副图高度不够的时候把鼠标移到副图窗口上沿直接拖动调整高度。指标默认叠加在0轴上下你可以修改Y轴最大值、最小值让柱子显得更紧凑或更舒展。如果觉得红绿柱子不够醒目可以把STICKLINE的宽度从3改成4或5加大柱子的面积。4. 这套源码的技术亮点与潜在局限任何指标都不是万能的源码也一样。在讲完“怎么用”之后得从技术角度客观评价一下这套红绿趋势源码知道它的强项也清楚它的软肋用起来心里才有底。4.1 没有未来函数是底线我在写这套指标时刻意避开了所有引用未来数据的函数。什么是未来函数简单说就是“当根K线还没有走完就提前使用了这根K线最终数据来画图”的写法。常见的有CONST、ZIG、PEAK、TROUGH等函数它们会导致信号在盘中反复变化、回测结果虚高。红绿趋势里用的MA、REF、CLOSE、OPEN全部都是已经确定的历史数据所以盘中出来的信号和盘后复盘看到的信号是一致的不会出现“收盘看是红柱盘中看却是绿柱”的尴尬。这一点非常关键。如果你在其他地方下载指标源码第一件事就是检查有没有未来函数。最简单的办法盘中盯住某根未走完的K线看指标信号是否会随着价格变动出现跳变式的自我修正。4.2 均线族指标的滞后性代价这套指标本质上还是均线均线类的趋势跟随系统所以它的滞后性是结构性缺陷无法完全消除。均线本身就是对过去价格的平均化处理价格见顶回落时均线体系要等价格在下方运行若干周期之后才会发出死叉信号。滞后带来的实际问题是你会经常遇到“红柱还没有完全消失价格已经跌了一段”的情况。这不是指标写错了而是所有趋势类指标都无法回避的通病——让子弹飞一会儿。4.3 条件是串联还是并联影响信号密度在这套源码里红色柱条件是 TREND AND STRONG、TREND AND HOLD即“趋势多头”和“当日强度”两个条件需要同时满足。这是一个串联逻辑条件严格信号密度自然就少。如果你希望信号多一些、敏感度高一些可以把 AND 改成 OR。比如STICKLINE(TREND OR STRONG,0,3,3,1),COLORRED;这样只要满足其中一个条件就会出红柱。但副作用是在均线反复缠绕的震荡行情里红绿信号会来回切换视觉噪声明显增加容易让人拿不住单子。我个人建议维持原版的AND写法。宁可信号少一点也要保证每一个柱子的可靠性更高。4.4 红绿柱子与成交量配合观察红绿趋势是纯价格类指标完全不涉及成交量。很多人刚开始用的时候会发现一个现象价格创新高红柱却不再创新高甚至出现顶背离。这是正常的因为红柱的“高低”由均线关系决定均线关系不一定会在价格新高时同步走强。我通常的使用方法是在主图下方叠加一个成交量副图再把这个红绿趋势指标放在第三个窗口。只有当红柱出现、同时成交量温和放大时才认为趋势动能是健康的。如果红柱出现但成交量持续萎缩说明这个红可能持续不了多久。5. 常见问题速查与排查实录用了这套指标一段时间后我陆陆续续遇到了一些问题也收到过不少反馈。挑几个高频的整理成速查表方便直接对照排查。5.1 指标不显示红绿柱子这是最常碰到的问题。如果你确认已经正确复制了源码并测试通过但副图里没有任何柱子先检查下面几项副图窗口指标是否被隐藏或覆盖点击副图窗口确认当前选中的是指标不是“分时走势”。检查是否在“复权”模式下使用指标不要用“等比复权”等特殊方式。确认当前K线的数量如果打开的是刚上市的新股均线连20日都没凑满很多条件自然不成立。5.2 红柱绿柱频繁切换看起来没规律这个问题多出现在震荡市。均线系统在价格横盘时5日、10日、20日三条线会反复缠绕TREND的赋值结果会在0和1之间频繁跳变。遇到这种情况我建议不要只看日线切换到30分钟或60分钟级别用更长周期的均线搭配使用比如把周期改成10、20、60降低切换频率。5.3 和主图K线的红绿方向不一致有时候你会看到主图收阳、副图却出现绿柱。这不是指标出bug而是定义差异。主图的K线颜色只取决于当根K线收盘价和开盘价的关系而红绿趋势的绿柱条件是“收阴且5日线在10日线下方”。这两套判断标准不同出现不一致是正常现象。换句话说主图反映了“单日多空结果”副图反映的是“趋势结构状态”。当两者背离时往往意味着短期反弹无法改变中期弱势这时绿柱的价值反而更高。5.4 从别的软件移植后信号对不上如果你之前用的是其他看盘软件把源码移植到同花顺后发现信号位置略有不同这是正常的。不同软件的复权算法、除权处理、停牌处理方式存在细微差异日线收盘价在复权处理后会有误差连带着均线数值也略有出入。建议在同花顺里关闭复权或使用“不复权”模式对比信号差异会缩小。6. 改造思路从“看懂”到“按需定制”红绿趋势幅图其实是一个很好的底板你可以根据交易习惯做二次开发让它更贴合自己的体系。这里分享三个低成本、高收益的改造方向。6.1 增加涨跌停过滤A股市场里涨停和跌停时的价格信号容易失真尤其是涨停时股票很多情况下会一字板开盘价、收盘价都差不多K线实体很小但实际非常强势。这时单纯用K线实体强弱判断会失真。可以加一个条件把涨跌停板剔除LIMITUP:CLOSEZTPRICE(REF(CLOSE,1),0.1);在STICKLINE中限制AND NOT LIMITUP这样极端行情就不会干扰趋势判断。6.2 增加零轴强弱分界现在红柱都从0向上画绿柱都从0向下画视觉上比较清晰。如果你希望更精细地划分强弱可以再加一个中间的强弱分界参考线比如MID:0;画一条虚线作为零轴参考更容易看出柱子的伸缩方向。6.3 增加预警提示指标画出来是为了看的但如果能自动预警会更方便。可以把TREND由0变1、WEAK由0变1做成条件预警在同花顺的“条件预警”功能里关联这个公式当信号出现时自动弹出提示。这对盯盘时间有限的人特别有用。6.4 加入不同周期的共振如果你同时做日线和周线可以在日线指标里引用周线的均线状态当周线多头且日线出现红柱时柱子的高度画得更高表示多周期共振。这在同花顺里可以用跨周期引用函数实现但会增加复杂度适合有一定编程基础的人去尝试。7. 实操心得怎么让这个指标真正帮到你指标写出来、调试好、装上去了这只是第一步。真正让指标发挥作用靠的是一套完整的使用纪律。分享几点我个人的心得体会。7.1 不要指望单一指标解决所有问题红绿趋势本质上是趋势状态的可视化它的工作是告诉你“现在是什么”而不是“接下来会怎样”。任何试图用单一指标预测顶底的想法都是危险的。我自己的用法是把它当成一个“状态显示屏”先看大盘环境是否允许做多再看板块内有没有强势标的最后用红绿趋势辅助判断个股当下的趋势状态。它只是一个环节不承担全部决策。7.2 周期选择决定指标性格同一个源码放在15分钟图和放在日线图里完全是两个性格。15分钟图的红绿切换非常频繁适合短线波段和日内T0日线图的信号稳定很多适合持股周期在几天到几周的趋势交易周线级别则极度迟钝但一旦出信号往往是中期行情的中段确认。建议先用日线跑一段时间熟悉了指标的各种形态之后再逐步扩展到分钟级别。7.3 复盘比盯盘重要指标这类东西一定要在盘后做大量复盘才能形成肌肉记忆。你可以通过同花顺的“历史行情”来回放历史K线用指标逐根K线检查每一根红柱、绿柱出现的位置并在图上标注当时的实际走势结果。复盘200根K线之后你对信号可靠性的判断会比盯一周盘更准确。7.4 写指标是一种思维训练最后说点题外的。对我来说写指标的最大收获不是得到了一个可以用的工具而是逼着自己把原本模糊的交易想法拆解成一行行具体的、可验证的逻辑。比如“趋势好的时候做多”这句话落到代码里就需要回答什么叫趋势好均线排列MACD状态价格与N日高点之间的关系这些具体化的问题往往比你从别人那里拿一个成品指标更有价值。红绿趋势这个指标技术含量不算高逻辑也算不上复杂但用它来练手、打底、理解同花顺公式语言的工作方式确实够用。如果你也想在副图里有一套自己的“趋势指示器”建议从这份源码开始改参数、加逻辑、调颜色把它慢慢变成你自己的形状。
返回列表