
1. 波段思维与公式化交易的底层逻辑做波段这件事说穿了就是在价格的中期起伏里找相对确定的进出位置不去猜顶也不去抄底只吃中间那段鱼身。我接触过的很多朋友一开始都想着抓涨停、抓主升浪结果折腾半年账户曲线比心电图还刺激。后来大家慢慢回归到一个共识与其追求每次都买在最低卖在最高不如用一套可量化、可复现的规则把“什么时候该动手”这件事固定下来。通达信的副图公式本质上就是把这种规则翻译成软件能识别的语言让指标在副图窗口里直观地告诉你当前处于什么状态。标题里提到的“波段买卖”和“买卖源码”核心诉求其实很明确用户想要一套能直接导入通达信、在副图上显示买卖信号的公式代码。这类需求在指标社区里长期存在原因也不复杂——主图看K线容易受情绪干扰副图用一个独立的量化视角做交叉验证能有效降低冲动交易的概率。副图公式的好处在于它不遮挡价格走势同时又能把超买超卖、趋势拐点这些抽象概念用曲线和标记画出来对刚入门的技术分析爱好者特别友好。这套东西适合谁我的判断是三类人。第一类是刚学会看均线、MACD想进一步把规则系统化的新手副图信号能帮他们建立纪律感第二类是有一定经验但手工盯盘效率低的老手公式可以自动扫描全市场省下大量翻图时间第三类是做策略回测的爱好者源码开放意味着可以自己改参数、加过滤条件做二次开发。需要提前说明的是任何公式都只是辅助工具它描述的是历史统计规律不构成对未来价格的承诺这一点在后面讲注意事项时我会反复强调。从技术实现角度看通达信的公式语言类似Pascal的简化脚本提供了丰富的行情函数比如收盘价、最高价、最低价、成交量以及各类均线、平滑、交叉判断函数。波段买卖公式的常见骨架无非是把“趋势方向判断”和“超买超卖判断”两个维度组合起来再用条件语句输出信号。听起来简单但真正决定公式好不好用的是参数怎么选、信号怎么过滤、假信号怎么压制。接下来的内容我会把这套逻辑拆开揉碎从设计思路一直讲到实操导入和问题排查尽量让不同基础的朋友都能照着做出来。2. 公式整体设计与核心思路拆解2.1 为什么选择副图而不是主图主图叠加指标最大的问题是视觉污染。均线、布林带、买卖箭头全挤在K线上价格稍微密集一点就糊成一团判断信号时反而容易看错。副图把指标曲线独立出来和主图形成上下对照眼睛扫一眼就能知道“价格在涨但指标在走弱”这类背离情况。我在实际使用中明显感觉到副图信号配合主图K线形态做双重确认误判率比单看主图低不少。另一个原因是副图公式的输出更灵活。主图公式通常只能画线和标记副图则可以同时输出多条曲线、柱状图、文字提示甚至用不同颜色区分强弱区间。波段买卖需要表达的信息量不小——趋势线、触发线、买卖点标记、超买超卖区域这些放在副图里层次分明放在主图里就会打架。所以标题里明确写“副图公式”这个定位是合理的也符合大多数波段类指标的惯例。2.2 波段判断的两个核心维度任何波段公式底层都绕不开两个问题现在趋势往哪走现在位置贵不贵。趋势维度回答“该不该做多”位置维度回答“现在进场划不划算”。我见过不少新手写的公式只用一个维度比如只看超卖就买结果在下跌趋势里越买越套。成熟的波段逻辑一定是双维度交叉验证趋势向上且位置偏低才给出买入信号趋势向下且位置偏高才给出卖出信号。趋势维度常用的实现方式有均线排列、MACD方向、价格通道斜率等。均线排列最直观短期均线在长期均线之上视为多头反之视为空头。位置维度常用的是相对强弱指标、随机指标、乖离率这类衡量价格偏离程度的量。把两者用逻辑与AND组合起来信号数量会明显减少但质量会提升。这个取舍很关键——信号太多等于没有信号交易者根本来不及执行也分不清哪个更可信。2.3 源码开放带来的可扩展性标题里“买卖源码”四个字价值在于可修改。封装成不可见的指标用户只能被动接受作者设定的参数遇到不适配的行情就束手无策。源码开放意味着你可以调整均线周期、修改超买超卖阈值、增加成交量过滤、甚至把信号改成只提示不自动标记。我在帮朋友调试公式时最常做的改动就是把默认参数按他的持仓周期重新校准——做短线的人用5日、10日均线做中线的人换成20日、60日同一套骨架能适配不同节奏。可扩展性还体现在信号过滤上。原始公式给出的买卖点往往比较密集加上“连续N周期内只提示一次”或者“信号出现后需次日确认”这类条件就能大幅减少重复信号。这些改动不需要从零写公式只要在源码里找到对应的条件语句加一行判断即可。对愿意动手的人来说源码就是一份可以反复打磨的草稿而不是一锤定音的成品。2.4 参数选型的取舍逻辑参数没有绝对的最优解只有和你的交易周期匹配不匹配。短线波段常用较短周期比如趋势判断用10日与30日均线位置判断用9周期或14周期的强弱指标中线波段则拉长到20日与60日均线位置指标周期也相应放大。周期越短信号越灵敏但假信号越多周期越长信号越稳但滞后越明显。这个矛盾没法消除只能根据自己能承受的等待时间来平衡。我个人的经验是先用一组中庸参数比如趋势12与26、位置14跑一段时间观察信号频率和实际走势的吻合度再决定往灵敏方向调还是往稳健方向调。切忌一上来就追求“完美参数”历史数据上拟合得越漂亮未来失效的风险往往越大。参数校准的目的是让信号节奏和你的操作节奏对得上而不是让回测曲线好看。3. 核心细节解析与实操要点3.1 趋势判断模块的写法与意图趋势模块我通常用两条指数移动平均线的相对位置来构建。指数移动平均比简单移动平均对近期价格更敏感拐点反应更快一些。源码里常见的写法是先定义快线和慢线再用条件判断输出趋势状态值。比如快线大于慢线时输出1否则输出0副图上用不同颜色的柱体表示多空状态。这样一眼就能看出当前处于多头区间还是空头区间。写这段代码时有个细节容易被忽略均线的起始计算位置。通达信在数据不足时均线会有空值如果直接拿空值做比较早期信号会失真。稳妥的做法是在公式开头加一个数据有效性判断或者用系统函数处理空值。另外快慢线的差值可以放大后作为柱状图高度差值越大说明趋势越强这样副图不仅显示方向还能显示力度信息密度更高。3.2 位置判断模块的构建方法位置模块我倾向于用随机指标或者相对强弱指标的变体。随机指标衡量的是当前收盘价在近期高低区间中的相对位置数值在0到100之间波动低于20视为偏低高于80视为偏高。这个区间划分不是铁律可以根据标的波动特性微调——波动大的标的可以把阈值放宽到15和85波动小的标的收紧到25和75。构建位置模块时要注意平滑处理。原始随机指标波动剧烈直接用来触发信号会非常频繁。常见的做法是对指标值再做一次移动平均平滑或者要求指标从低位向上穿越阈值时才确认信号而不是只要低于阈值就提示。前者减少毛刺后者增加确认环节两种手段可以叠加使用。我在实测中发现加一层平滑之后信号数量能减少三到四成而有效信号基本保留性价比很高。3.3 买卖信号的组合与过滤趋势和位置两个模块各自输出状态后用逻辑与组合成最终信号。买入信号的条件通常是趋势状态为多头且位置指标从低位向上穿越阈值。卖出信号反过来趋势状态为空头且位置指标从高位向下穿越阈值。这种“方向加拐点”的组合方式比单纯看超卖超买要可靠得多因为它要求趋势和位置同时配合。过滤环节是提升信号质量的关键。我常用的过滤有三类一是时间过滤信号出现后若干周期内不重复提示避免同一波行情反复报警二是幅度过滤要求价格偏离均线达到一定比例才确认剔除那些贴着均线磨蹭的无效信号三是成交量过滤要求信号出现时成交量高于近期均量说明有资金参与。三类过滤不必全上根据标的特性选一到两类即可上太多会把有效信号也滤掉。3.4 副图显示的视觉设计副图公式的输出不只是数字视觉呈现同样影响使用体验。我习惯把趋势柱状图和位置曲线放在同一副图里用颜色区分多头区间柱体偏暖色空头区间偏冷色位置曲线用中性色买卖点用明显的标记符号。这样扫一眼就能同时获取方向和位置两个信息不用来回切换指标。颜色设置上有个小技巧通达信支持条件颜色可以根据数值动态改变线条颜色。比如位置指标进入超买区变红、进入超卖区变绿比固定颜色直观得多。另外副图的坐标范围要设置合理位置指标固定在0到100趋势柱状图则根据差值范围自适应避免柱体过高把曲线压扁。这些细节不影响信号逻辑但直接影响你每天看盘的效率值得花时间调好。注意副图公式导入后如果显示异常先检查坐标设置和颜色条件语法多数显示问题出在这两处而不是信号逻辑本身有错。4. 实操过程与核心环节实现4.1 公式源码的完整结构与逐段说明下面给出一套可直接参考的副图公式骨架参数和阈值都做了注释方便按需修改。需要说明的是这是基于常见波段逻辑的合理构建不是某个特定成品你可以把它当作起点来调整。{波段买卖副图公式骨架} {参数区可按需调整} N1:12; {趋势快线周期} N2:26; {趋势慢线周期} M:14; {位置指标周期} LOW_TH:20; {低位阈值} HIGH_TH:80; {高位阈值} {趋势模块} FAST:EMA(CLOSE,N1); SLOW:EMA(CLOSE,N2); TREND:IF(FASTSLOW,1,0); TREND_BAR:(FAST-SLOW)/SLOW*100; {趋势强度百分比化} {位置模块} RSV:(CLOSE-LLV(LOW,M))/(HHV(HIGH,M)-LLV(LOW,M))*100; POS:SMA(RSV,3,1); {平滑后的位置指标} {信号组合} BUY_SIG:TREND1 AND CROSS(POS,LOW_TH); SELL_SIG:TREND0 AND CROSS(HIGH_TH,POS); {副图输出} STICKLINE(TREND1,0,TREND_BAR,3,0),COLORRED; STICKLINE(TREND0,0,TREND_BAR,3,0),COLORGREEN; 位置线:POS,COLORWHITE; 低位线:LOW_TH,COLORGRAY,DOTLINE; 高位线:HIGH_TH,COLORGRAY,DOTLINE; DRAWTEXT(BUY_SIG,POS,买),COLORRED; DRAWTEXT(SELL_SIG,POS,卖),COLORGREEN;逐段来看参数区把周期和阈值集中定义改起来不用满篇找数字。趋势模块用两条指数移动平均线判断方向同时把差值百分比化作为柱体高度这样不同价位的标的都能用同一套视觉标准。位置模块用随机指标的平滑版本CROSS函数负责捕捉穿越动作避免持续低于阈值时反复触发。输出部分用STICKLINE画趋势柱用DRAWTEXT标买卖点线条和标记各司其职。4.2 参数校准的计算过程参数不是拍脑袋定的可以用简单的方法做初步校准。以趋势周期为例先统计标的近一年的日均波动幅度再观察不同均线组合下信号与价格拐点的重合率。具体操作是在通达信里把公式加载到副图用历史数据回看记录每次买入信号出现后N个周期的价格变化统计上涨次数占比。这个占比不需要很高能稳定超过五成就说明参数方向大致正确再微调周期看占比是否提升。位置指标的阈值校准类似。统计位置指标在过去一年的分布看它低于20的时间占比是多少。如果低于20的时间太少说明阈值定得过低信号会稀缺如果占比过高说明阈值太宽松信号会泛滥。理想状态是低位区和高位区各占一成到两成时间中间大部分时间处于中性区。这个分布因标的而异所以校准必须针对你实际操作的标的来做不能照搬别人的参数。4.3 通达信导入与加载步骤导入公式的操作路径很固定打开通达信进入公式管理器快捷键通常是CtrlF选择“技术指标公式”下的“其他类型”点新建填入公式名称比如“波段买卖副图”把源码粘贴进编辑区画线方法选“副图”点测试公式确认语法无误再点确定保存。保存后在K线界面输入公式名称的拼音首字母副图就会加载出来。加载后如果副图没有显示先检查是否选错了画线方法——选成主图叠加就不会出现在下方。如果显示但买卖标记不出现检查DRAWTEXT的条件是否被过滤掉了可以临时把条件改成恒真来测试标记是否正常绘制。导入过程中最常见的报错是中文标点混入代码通达信只认英文标点从网页复制源码时特别容易带入全角符号粘贴后建议先扫一眼有没有异常字符。4.4 信号回看与记录方法公式加载好之后别急着按信号操作先做一段时间的信号回看。方法很简单把副图拉到历史区间逐段看买卖标记出现的位置对照后面的价格走势记录哪些信号有效、哪些是假信号。我习惯用截图加文字备注的方式做记录标注信号出现时的趋势状态、位置数值、成交量情况积累几十个样本后就能看出这套参数在你标的上的脾气。回看时重点关注两类情况一是信号出现后价格很快反向的分析当时是不是趋势和位置出现了矛盾二是明显该出信号却没出的分析是过滤条件太严还是参数周期不匹配。这两类情况比有效信号更有信息量因为它们直接指向公式的短板。记录不需要很正式一个表格或者几行笔记就够关键是坚持做做多了对信号的信任度自然就建立起来了。5. 常见问题与排查技巧实录5.1 信号频繁闪烁怎么处理信号闪烁是副图公式最常见的问题表现为同一段行情里买卖标记反复出现。根因通常是位置指标在阈值附近来回穿越而公式没有做去重处理。解决办法有两个方向一是加时间间隔限制用BARSLAST函数判断上次信号距今的周期数小于设定值就不再提示二是把穿越条件改成“穿越后需保持若干周期”才确认牺牲一点及时性换取稳定性。我一般优先用时间间隔限制因为它改动小、效果直接。比如要求两次买入信号至少间隔10个周期源码里加一行条件判断即可。间隔设多少要看你的操作周期短线可以设5到8中线设15到20。设得太长会漏掉连续两波的机会设得太短又起不到去重作用需要回看历史信号密度来定。5.2 趋势与位置矛盾时怎么取舍有时候趋势显示多头但位置指标已经很高这时候公式不会给买入信号但很多人会纠结要不要追。我的处理原则是尊重公式的组合逻辑趋势多头但位置偏高说明上涨可能已经走了一段此时进场性价比下降宁可等位置回落到中性区再考虑。反过来趋势空头但位置很低也不急着抄底等趋势转多再动手。这个原则的本质是承认自己无法判断顶部和底部的精确位置只做两个条件同时满足的时段。矛盾状态下的观望不是错过机会而是过滤掉胜率不高的机会。我在实际使用中统计过矛盾状态下强行进场的结果明显不如双条件满足时进场这个差距在震荡市里尤其明显。5.3 不同标的适配性差异同一套公式用在不同标的上表现可能天差地别。波动率高的标的信号更频繁假信号也更多波动率低的标的信号稀少但一旦出现往往比较可靠。这不是公式的问题是标的特性决定的。适配的方法是根据标的波动率调整阈值和过滤强度高波动标的收紧阈值、加强过滤低波动标的放宽阈值、减少过滤。还有一个容易被忽略的因素是标的的流动性。流动性差的标的价格容易被少量成交推动指标信号的可信度下降。这类标的即使公式给出信号也要结合盘口情况判断不能机械执行。我在筛选标的时会把流动性作为前置条件公式只用在流动性充足的标的上这样信号质量有基本保障。5.4 常见问题速查表问题现象可能原因排查与解决副图不显示画线方法选错公式属性改为副图买卖标记不出现条件被过滤或语法错误临时改恒真测试检查标点信号频繁闪烁阈值附近反复穿越加时间间隔或保持周期确认信号明显滞后周期参数过长缩短趋势与位置周期信号过多难执行过滤条件不足增加幅度或成交量过滤导入报错中文标点或函数名错误逐行检查替换为英文标点柱体过高压扁曲线坐标范围未设置调整副图坐标或缩放柱体这张表覆盖了我遇到的大部分情况实际排查时按现象对号入座多数问题几分钟内能定位。需要提醒的是改公式前先备份原始源码改坏了能随时还原这个习惯能省不少返工的麻烦。提示每次修改参数或过滤条件后都要重新做一段信号回看确认改动方向符合预期再投入使用不要改完直接用。6. 我在实战中沉淀的几条经验公式写得再漂亮最终还是要落到执行上。我见过太多人把指标调得眼花缭乱真到信号出现时又犹豫不决结果指标归指标、操作归操作两套系统各走各的。真正有用的做法是选定一套参数后强制自己按信号执行一段时间哪怕有几次不舒服也要坚持目的是让身体记住这套节奏。执行顺了之后再回头评估哪些信号该信、哪些该弃这时候的调整才有依据。另一个体会是副图公式的价值不在于预测而在于约束。它约束你不要在趋势不明时乱动约束你不要在位置极端时追高杀低。把公式当成一个提醒你保持纪律的伙伴而不是一个替你决策的军师心态会平稳很多。参数可以慢慢调源码可以慢慢改但纪律这件事从第一天就得立起来。最后分享一个我常用的小习惯每隔一段时间把公式的信号和实际走势做一次对照复盘不用很复杂翻几十个历史信号看看命中情况就行。这个动作花不了多少时间但能让你对当前参数的“手感”保持敏感行情风格切换时也能第一时间察觉并调整。公式是死的用公式的人是活的保持复盘习惯这套工具才能真正为你所用。