1. 为什么说交易认知是指标发挥作用的前提
我先说一个做过多年测试之后得出的结论:大多数交易者亏钱,不是因为指标不够准,而是因为没有建立正确的交易认知。
很多人一开始接触交易,第一反应是找一套“好用”的指标。均线、MACD、KDJ、布林带、RSI,甚至各种自定义公式,装上之后马上盯着金叉死叉、超买超卖去看。结果呢?有时候准,有时候不准,连续错几次就开始怀疑指标,换下一套,再循环一次。几年下来,指标库装了几百个,账户却没见好转。
问题不在于指标本身,而在于使用者对“指标到底是什么”“它凭什么能赚钱”“它在什么条件下才有效”这些问题没有想清楚。
在构建系统这个系列里,前面两篇如果讲的是交易理念和交易规则,那么第三篇最该讨论的就是这个中间层:交易认知怎么决定你挑选和使用指标的方式。
简单说,交易认知决定了你如何看待市场、如何定义一笔交易、如何理解亏损与盈利。指标只是把你的认知翻译成可执行信号的工具。认知错了,指标越精确,错得越远。认知对了,哪怕只用一条简单的均线,也能构建出边界清晰的交易系统。
这篇文章适合谁看?适合已经开始接触技术指标,但不知道如何把它们变成一套可靠交易系统的交易者。也适合在回测和实盘中反复出现“指标失灵”现象,想搞清楚问题到底出在哪的人。
我不会教你某个神奇指标,也不会告诉你“跟着这个信号就能盈利”。我要做的是把指标放入构建交易系统的正确位置,然后给出可复现的步骤和判断标准。
2. 构建系统前先纠正这四类错误认知
2.1 指标不是预测工具,而是条件过滤器
这是最基本、也最容易出错的一点。很多人用指标的目的是“预测明天涨还是跌”,一旦指标发出买入信号,就默认接下来一定会涨。这种认知把指标当成了水晶球。
指标本质上是对历史价格、成交量等数据做计算后得到的统计结果。它描述的是“过去一段时间的市场状态”,不是“未来走势的保证”。均线走多头排列,只能说明当前趋势处于上行状态;MACD出现金叉,只能说明价格动能发生了一定变化。这些信号能不能延续、能延续多久,取决于市场环境、资金行为、外部因素,而不是指标本身。
把指标当成条件过滤器,用法就变了。过滤器的作用不是告诉你“一定涨”,而是帮你把市场状态归类:当前是趋势行情还是震荡行情?当前多头动能是否占优?当前价格是否接近极端区域?当市场状态符合你的交易逻辑时,才产生交易候选机会。
2.2 指标越多不代表信号越可靠
我见过很多人一个屏幕放六七个指标,就像在玩“信号共振”的拼图游戏。价格、成交量、均线、MACD、KDJ、布林带、RSI、ATR全部堆在一起。信号一致的时候,觉得这是绝佳机会;信号矛盾的时候,又开始犹豫。
这里有一个容易被忽略的事实:很多指标之间存在数学相关性。比如MACD由均线推导而来,KDJ和RSI都基于收盘价在某个区间内的位置,布林带也是均线加标准差。它们不是独立信息,而是同一份价格数据的不同变换方式。当它们“共振”时,可能只是同一个因素被重复计算了好几次,和信号的可靠性没有必然关系。
更实际的问题是,指标越多,规则越复杂,越容易陷入过拟合。你为了让历史回测好看,会不断调整参数、添加过滤条件,最终得到的不是“市场规律”,而是一套专门适配历史数据的拼图。这种系统在真实交易中很难稳定。
我的建议是:一个交易逻辑主线,配一到两个辅助确认指标就够了。比如趋势跟踪系统用均线判断趋势方向,用ATR控制仓位和止损;震荡系统用RSI或KDJ判断超买超卖,再用布林带确认边界。主线清晰,信号才有可解释性。
2.3 回测收益高不等于真实可执行
另一个常见误区是,把回测结果等同于真实交易结果。很多人写程序回测时,只看总收益率、胜率、盈亏比,忽略了交易成本、滑点、停牌、涨跌停、流动性、持仓过夜等现实条件。结果回测曲线非常漂亮,实盘一跑就变形。
正确认知是:回测只能证明“在这个历史数据切片上,这套规则存在盈利可能性”,不能证明“未来任何时刻都能盈利”。它只是一个抽样检验工具,不是赚钱保证。
更关键的是,回测会放大过拟合风险。如果你在同一个数据集上反复调整参数,直到历史表现非常理想,你得到的其实是一段“记忆”而不是一套“规律”。这些参数一旦应用到未来数据,很可能迅速失效。之后我会专门讲怎么做参数敏感性检查,这里先提醒一句:不要为了追求回测曲线好看而牺牲规则的简洁性和可解释性。
2.4 跟单和抄作业解决不了系统问题
还有一个经常被忽略的认知误区,就是觉得只要跟着某个高手、某个信号源、某个社区大V的信号操作,就能避开认知问题。实际上,跟单的本质是“复制别人的决策结果,却不复制别人的决策依据”。一旦出现连续亏损,你根本不知道是系统正常回撤,还是信号源失效,也不知道该不该继续跟,最终大概率在最低点放弃。
就算你复制了一套完整的交易规则,包括入场条件、止损设置、仓位管理,只要你的风险承受能力、资金规模、交易时间、性格特征和原作者不同,执行结果也会完全不同。
真正能帮你稳定下来的,不是别人的信号,而是你对市场、交易逻辑、风险控制的独立理解。这个理解过程,就是构建系统的过程。
3. 正确认知下,指标应该如何进入你的交易系统
3.1 先定义市场环境和交易任务
在挑选任何指标之前,先问三个问题:
- 我在哪个市场交易?股票、期货、外汇、加密?不同市场的运行规律和流动性不同。
- 我交易什么周期?日内、波段、趋势?周期决定了指标参数和信号频率。
- 我想捕捉什么样的行情?趋势延续、反转、突破还是震荡回归?
这三个问题构成了交易任务。任务不同,适用的指标完全不同。
趋势行情里,均线、MACD、唐奇安通道这类趋势跟踪指标更合适;震荡行情里,RSI、KDJ、布林带这类震荡指标更合适;对于突破交易,可能需要使用ATR设置阈值,结合价格创出N周期新高或新低来触发信号。
很多人犯的错误是:在不定义市场环境的情况下,直接用一套固定指标跑所有行情。趋势指标在震荡里反复止损,震荡指标在趋势里过早逆势,然后归咎于“指标不好用”。其实是指标没有匹配上交易任务。
3.2 再把指标拆成“入场条件、过滤条件、退出条件”
一套完整的交易信号,不是“金叉买入,死叉卖出”这么简单。你需要把指标放到系统流程里,明确它承担的角色。
以典型的趋势跟随系统为例:
- 入场条件:价格站上N周期均线,且均线方向向上。这一条用来确认趋势方向。
- 过滤条件:ATR处于正常范围,说明波动没有过度放大,避免在极端波动时追单。
- 退出条件:价格跌破M周期均线,或者价格回撤超过2倍ATR。
你看,同样是均线,既可以用作入场,也可以用作退出,关键是你赋予它什么任务。如果只有一个指标出现信号你就进场,不做方向过滤、不做波动过滤,那系统就是裸奔的。
我在实际搭建系统时,会把每个信号写成“如果……那么……”的规则。如果指标满足条件,则执行动作;否则不行动。这样写的好处是,出现亏损时你可以回看是哪一条规则导致的问题,而不是笼统地说“信号失灵”。
3.3 参数和周期要服务于交易逻辑,而不是反过来
许多人对参数的执念很深,总喜欢把均线周期调成8、13、21、34、55这类斐波那契数字,或者把RSI调成79、83。他们认为这些参数能“更精准地贴合市场”。
其实参数调整有一个基本原则:参数选择的依据应该是你的交易逻辑和持仓周期,而不是历史数据的最优值。
比如说,你想做一个波段交易,持仓周期大概3到10天,那你可以选择日线级别,均线周期选10或20作为趋势确认,ATR周期选14来体现波动水平。这些参数有逻辑支撑。如果你不断把参数调到历史数据上最赚钱的数值,那多半是在过拟合。
判断参数是否合理,有个简单办法:对参数做小幅偏移测试。比如把均线周期从20改成18或22,看系统表现是不是大幅度恶化。如果只是轻微变化,说明系统对参数不敏感,稳定性较好;如果稍微一改,曲线就从天上掉到地下,那说明系统不是靠逻辑在工作,而是靠“死记硬背”历史数据。
注意:参数优化要适可而止。优化的最终目标不是让历史收益最高,而是让系统在未来环境里依然稳定。
4. 从认知到系统:一个可复用的构建流程
4.1 第一步:用文字写出交易规则
构建系统真正麻烦的不是代码,而是把规则说清楚。哪怕你暂时不会编程,也建议先用自然语言把完整规则写出来。
规则里至少要包含六个部分:
- 市场环境定义:什么样的价格走势属于趋势行情?什么样的属于震荡行情?
- 入场条件:什么信号触发开仓?
- 止损条件:开仓后,在什么情况下无条件离场?
- 止盈或退出条件:什么情况下盈利平仓?
- 仓位管理:每笔交易投入多少资金?什么情况下加仓或减仓?
- 次数限制:每天或每周最多交易几次?连续亏损后是否暂停?
举个例子,一套简单的趋势系统可以写成:
“日线级别,当收盘价高于20日均线,并且20日均线向上时,次日开盘买入。买入后,若收盘价跌破20日均线,则次日开盘卖出。每次交易使用总资金的2%作为止损风险,并用ATR设定具体止损价位。”
这就是一套可以讨论和验证的规则。你会发现,它没有玄学,没有感觉,只有条件、动作和边界。
4.2 第二步:历史样本验证,先看逻辑再看收益
拿到规则之后,不要急着写复杂的回测程序。先找一段历史行情,手动回放几个信号,看规则是否按照预期工作。这一步能帮你发现很多逻辑漏洞,比如“信号过少导致无法交易”“频繁震荡导致反复止损”“大趋势行情中过早离场”。
手动验证通过之后,再进入程序化回测。回测时重点看几类指标:
- 总交易次数:太少说明机会不足,太多说明规则过于灵敏。
- 胜率:不等于越高越好,趋势跟踪系统胜率可能只有30%到40%,但盈亏比高。
- 盈亏比:平均盈利和平均亏损的比值,一般需要大于1.5才值得继续。
- 最大回撤:从最高点到最大低点的资金回撤幅度,直接关系你的心理承受能力。
- 连续亏损次数:要看你能否扛住最长的连续亏损而不变形。
这些指标要一起看,不能只看单一胜率或总利润。一个胜率70%却单笔亏损巨大的系统,可能不如胜率40%但严格控制亏损的系统。
4.3 第三步:样本外验证和参数敏感性检查
历史回测结果不错,只是第一步。接下去要做两件更重要的事:样本外验证和参数敏感性检查。
样本外验证,意思是把数据分成两段。比如前70%的数据用于“训练”或参数选择,后30%的数据完全不参与调参,只在最终评估时验证系统表现。如果系统在样本外也能保持稳定的收益回撤比,说明它的逻辑可能具有普适性;如果样本外表现远差于样本内,说明大概率过拟合了。
参数敏感性检查则更简单。选择一个核心参数,在基准值附近上下浮动10%到20%,跑一遍回测,观察各项指标的变化幅度。如果变化不大,系统具备稳定性。如果变化剧烈,说明你的系统对参数极其敏感,本质上是在拟合历史噪音。
我见过有人在策略里把均线周期设为15,理由仅仅是“回测下来15最好”。我把参数改成14和16跑一遍,结果差异巨大。这种系统我不会用,因为我不知道未来时期哪个参数会更好。
4.4 第四步:加入仓位管理和风险约束
指标只负责告诉你“在什么条件下交易”,而风控负责回答“该交易多少,最多亏多少”。没有仓位管理的系统,再好的指标也无法保证存活。
仓位管理有两种常见思路:
一是固定风险比例法。每笔交易只承担总资金的1%到2%风险。根据入场价、止损价和账户余额,可以反推交易数量。公式是:交易数量 = 可承受亏损金额 / (入场价 - 止损价)。这个方法的优点是,就算连续亏损20次,账户回撤也可能控制在30%以内,前提是每次风控一致。
二是波动率目标法。使用ATR或历史波动率来调整仓位,使得每笔交易的风险金额等于预设比例。这个方法适应市场波动变化,但计算稍复杂。
无论选哪种,都要设置单日或单周最大亏损限额。比如“当天亏损达到总资金3%,停止开仓;当周亏损达到总资金6%,暂停交易”。这类硬性约束能阻止你在情绪失控时继续操作。
4.5 第五步:用执行清单替代临场决策
即使规则全部写好了,到实盘执行时还是会遇到各种心理干扰。价格快速拉升时,你想提前追单;价格回调时,你担心止损被扫掉;连续亏损后,你怀疑规则失效。
应对方法不是靠意志力,而是把执行变成一个自动化或半自动化的清单。
你可以在交易软件里设置条件单、警报提醒,让系统自动执行符合规则的交易。如果没办法自动化,就把规则打印成一张清单,每次下单前逐项检查:当前市场环境是否符合?入场条件是否满足?止损位设置在哪?仓位是否按规则计算?如果哪一项不满足,就不下单。
执行清单最大的价值不是提高胜率,而是减少随意决策。它让你在盘中的每一个动作都有据可查。
5. 系统跑起来之后,常见问题怎么排查
5.1 信号频繁失效,先查认知偏差还是参数过拟合?
当系统上线一段时间后,信号开始频繁失效、连续亏损,很多人第一反应是“参数过期了”,赶紧去调参。我不建议这么做。
先按下面的顺序排查:
- 检查市场环境是否发生变化。如果当前处于震荡市,而你的系统是趋势跟踪系统,连续亏损是正常现象,不是指标失效。此时需要判断的是系统设计的适用环境,而不是盲目改参数。
- 检查交易成本是否被低估。回测中如果没有合理计入手续费和滑点,实盘利润会被明显侵蚀,出现“信号正确但钱少了”的情况。
- 检查执行是否偏离系统。有没有提前入场,有没有把止损放宽,有没有因为犹豫而撤单。这些执行偏差比参数变化更容易导致亏损。
- 最后才考虑参数问题。如果上述都排除了,再小幅调整参数,并且要做样本外验证。
5.2 回测结果和实盘差异大,重点看成本和滑点
差异大是常态,关键要区分差异来源。
最影响实盘结果的因素是交易成本和滑点。回测里经常用固定成本,比如每笔几块钱,但实盘可能因为流动性不足、大单冲击、行情突变而付出更高成本。对于高频交易,这个问题更严重;对于中低频波段交易,影响相对小,但也要计入。
另外要检查回测中的成交假设。比如你用的收盘价信号,实际上能不能在收盘那一刻成交?很多交易软件在收盘时有延迟,信号确认后只能次日开盘成交。回测中如果不一致,就会产生系统性偏差。
我的经验是:回测中把手续费设为实际成本的1.5到2倍,再把滑点按每笔固定点差加上去,用来做压力测试。如果压力测试结果仍然符合预期,系统质量才比较可信。
5.3 有系统却执行不下去,多半是信任度不够
一个很常见的现象是:系统能赚钱,但交易者执行不下去。原因往往是认知上没有真正信任系统。
信任是怎么建立的?不是靠每天默念“系统会赚钱”,而是靠两件事:
第一,你完整地参与了系统的构建和验证过程,知道它的每一个规则是怎么来的,知道它在什么环境下表现好,什么环境下表现差。你没有幻想它会毕胜,你知道它会回撤,但回撤是换取趋势利润的成本。
第二,你用小仓位或模拟盘跑了一段时间,用自己的资金和情绪去验证。如果在多个亏损样本之后,你仍然能坚持执行规则,并且没有因为一次大亏就推翻系统,信任才会慢慢建立。
如果你从一开始就不知道规则背后为什么这样设计,也没经历过完整回撤,那实盘中的每一次亏损都会变成怀疑的催化剂。
5.4 连续亏损时,如何区分系统问题还是正常回撤
这是整个构建系统中最难的问题之一。连亏六次,到底该继续执行还是停掉系统?
我建议把问题拆开看:
- 先看亏损是否在回测的连续亏损范围内。如果回测历史中最大连续亏损是8次,当前才亏5次,那大概率还在正常波动区间。
- 再看单笔亏损是否符合预期。如果每笔亏损都控制在预设风险内,说明系统按规则运行,只是胜率低;如果某笔亏损远大于预设,说明执行出了偏差,先处理执行问题。
- 再看当前市场环境是否偏离系统的适用条件。你可以设计一个简单指标来判断市场状态,比如均线斜率和波动率水平。如果系统明确要求“只做上升趋势”,但当前市场进入震荡,那就应该降低交易频率或暂停。
区分“系统失效”和“正常回撤”的最终标准,是你的规则是否还成立。只要市场背景没有本质变化,规则没有被打破,连亏就只是概率分布的一部分。
注意:不要在连亏期间去频繁修改规则。连亏时修改规则,通常不是优化,而是情绪化逃逸。真要修改,也要等到一段完整的交易周期结束后,基于统计证据再做决定。
6. 最后说几个交易认知的边界问题
6.1 交易系统是动态演化的,不是一成不变
很多初学者以为,只要找到一套系统就能一劳永逸。真实情况是,市场结构会变,流动性会变,参与者的行为模式也会变。同一套系统,在不同的市场阶段表现差异可能非常大。
动态演化不是说今天改一个参数、明天换一个指标,而是定期对系统做全面体检。我一般以季度或半年为周期,重新检查系统的各项统计指标,包括交易次数、胜率、盈亏比、最大回撤、连续亏损次数,和之前的基准数据做对比。如果关键指标出现明显漂移,再分析原因,决定是否调整规则。
调整规则时,一定要写清楚调整原因,并且做样本外验证。不能因为一次大亏就冲动修改,也不能因为短期盈利就加大杠杆。
6.2 技术指标和基本面信息并不对立
有一种观点认为,做技术分析就不要看基本面,做基本面就不要用指标。实际上,在构建系统时两者可以互补。
基本面信息可以帮助你过滤掉不符合大环境的交易标的,比如行业趋势、财报数据、政策方向。技术指标则帮助你在进场和出场上找到具体时点。很多成熟的交易系统会把基本面作为方向过滤,把技术指标作为择时工具。
关键在于,你要明确每个信息源在系统中的角色,不要让它们互相干扰。基本面提供背景,技术面提供执行信号。
6.3 真正难的部分不是找指标,而是执行纪律和风控
说实话,指标和策略代码都不难找,网上开源的一大堆。难的是你能不能在连续亏损时坚持按规则执行,能不能在盈利时不加仓过头,能不能在某一次大亏后依然理性复盘。
交易认知的最终体现,不是拥有多少知识,而是你愿不愿意在不确定环境中,接受系统的概率优势,同时承担它必然带来的亏损样本。
回到本篇标题:正确交易认知是用好指标做交易的前提。这句话想表达的是,指标永远不是孤立存在的工具。它必须嵌入到你的交易逻辑里,由你的市场认知提供方向,由你的交易系统提供规则,由你的风控提供约束。三者都到位了,一个普通指标也能发挥应有的作用。
如果你现在还在为“哪个指标更好”而纠结,我的建议是先停下来,把你脑海里对市场的理解和交易规则写出来。哪怕只有三句话,也比再装十个指标更有用。