第 29 章
持仓管理、复盘与规则验证
第29章 持仓管理、复盘与规则验证正文
29.1
入场后的价格预期与时间预期
入场以后,账户开始承受价格不利变化、滑点和费用造成的损失。每个管理时点的核心问题是:根据此刻可得信息,从现在继续持有这份剩余暴露是否仍优于减仓或退出。过去的成交价和已经发生的费用必须进入整笔绩效,却不会因为已经付出就证明继续承担风险合理;若当前没有仓位,是否愿意按现有价格、边界和成本建立同等暴露,是检验继续持有理由的一种方法,但已有仓位还须计入退出成本、税费和无法瞬时成交的限制。持仓前应具体说明价格预期怎样变化、这种变化应发生在什么位置、可以等待多长时间,以及哪些表现说明判断正在变弱。
价格预期描述结构发展的顺序。Spring测试多头可以预期测试低点附近的卖压不再造成相同跌幅,价格随后越过局部高点并向区间内部推进;突破回测多头可以预期价格守在原阻力附近,不重新在旧区间内获得接受,并在回测结束后恢复净上涨。预期不要求每根K线同向,却要规定可容许的回撤区域、应越过的确认点、第一阻碍和目标。观察尺度必须与入场模型一致,不能用一分钟噪声否定日线结构,也不能用周线方向判断替代日内交易的失效。
时间预期说明这些变化应在何时出现。它可以用完成的K线、交易时段、波段或事件窗口表达,而不是凭焦虑决定。突破后的不平衡通常应在合理时间内继续;若价格在边界附近反复停留并重新形成平衡,原先认为突破会迅速延续的判断便受到削弱。区间反转则可能需要价格在区间内多次往返,不能套用同一时限。时间规则应来自模型历史观察并在交易前固定,例如“触发后若在N个本尺度完成柱内仍未越过确认摆动,则重新判断或退出”;其中N是待验证参数,不是普遍常数。
价格和时间必须结合判断。价格尚未触及止损但连续多次未能越过计划中的确认点,可以按预设的累计条件执行时间退出;时间很短但已出现明确反对结构,也可以主动退出,无需等待期限届满。相反,持仓暂时没有浮盈却仍在允许区域、卖方也没有进一步压低价格,不能仅因等待不适而改变计划。
29.2
符合预期、不及预期与相反证据
走势符合预期,指事先列出的关键行为按顺序出现:计划支撑或阻力发挥作用,价格沿交易方向推进,回撤受控,并在规定时间内接近确认点或目标。此时可以继续持有、按原目标减仓,或根据新形成的结构把保护位置向有利方向调整。浮盈本身不等于符合预期;一次随机跳升若立刻完全回吐,可能并未建立预期中的接受。
不及预期是证据不足或质量下降,但尚未出现决定性反证。例如突破后推进距离小、反复回到边界、成交努力增加却没有同等结果,或在计划时间内没有越过确认摆动。处理可以是停止加仓、减小头寸、收紧到新形成的有效边界或执行时间退出。应预先规定动作与阈值,防止把任何缓慢走势都解释为“再等等”。
相反证据指与交易逻辑直接冲突的可观察事实。多头Spring测试后重新跌破冲击低点并在下方接受,LPS失守且供应扩大,或有效突破假设变为失败突破并返回区间,均比普通回撤更强。此时可以主动平仓;若保护订单先被触发,则按实际成交结束风险。相反证据不必等于更大结构最终反转,它只需使当前这笔交易的条件不再成立。
三种情况要在同一时点判断,并分别规定相应动作。新柱完成、关键成交发生或事件窗口结束时再判断一次,不因盘中每个跳动频繁改变计划。若行情仍有多种解释,操作应受风险约束,例如不增加仓位、维持原保护或减仓,而不能只选择最有利于继续持仓的解释。
29.3
动态加减仓后的持仓、成本与风险变化
每笔成交都改变净头寸。设第i笔带方向的成交数量为Δqᵢ,买入为正、卖出为负,则第k笔成交后的净头寸Qₖ=Σ(i=1至k)Δqᵢ。
同方向加仓后的持仓平均成本,应以仍未平仓批次的成交金额和数量计算,佣金及其他费用是否计入平均成本则另行说明。减仓会实现部分盈亏,但通常不应把剩余持仓的经济成本任意改成“零成本”或负成本;用于交易绩效的已实现损益和剩余头寸账面成本应分开保存。若由多头减到零再反向做空,平多与开空要分成两项经济事件,避免平均价跨方向混合。
在先进先出、后进先出或移动平均成本法下,分批盈亏会在不同时间被列为已实现或未实现。只要成交记录、费用处理和汇率换算相同,并且不考虑税务差异,全部平仓后的总净损益应当一致;成本法主要改变持仓期间两类损益的划分。交易记录至少包括成交时间、方向、数量、成交价、费用、净头寸、剩余平均价、已实现损益,以及按可成交报价估算的浮动损益。
加仓后的整体风险不能用“新平均价更好”替代。应把所有未平仓数量放到各自有效的保护价或共同压力退出价,计算若立即走到该情景时,已实现损益、未实现损益、预计退出费用和滑点合计后的账户损失。对线性同币种头寸,可逐批计算方向数量乘以退出价与成交价之差再乘合约乘数;非线性或跨币种产品使用其合约盈亏函数。从交易起点计算的压力情景净损失,应与固定的本笔风险预算B比较。若从当前净清算权益出发计算未来新增回撤,才把该新增回撤与当前剩余风险额度比较;不能先用已实现盈亏调整剩余额度,又把包含同一已实现盈亏的整笔损益重复代入。两种计算方法均须另服从组合上限。
减仓实现利润后,剩余头寸的市场风险下降,但初始风险基准不会被事后改小。加仓只有在新证据满足、保护边界明确、加入后的最大计划损失合格时允许;浮亏摊低成本会在证据恶化时增加同向暴露,不能作为加仓理由。多个分批使用不同止损时,系统要确保各保护单数量之和与实际净头寸匹配,部分成交后及时更新,避免超额反向。
期货记账不能把“保证金现金流加上q乘名义价格”当作账户权益。期货头寸按合约规格产生逐日或实时损益,同时占用保证金并产生费用。名义价值只表示合约代表的规模,保证金用于履约,两者都不是持仓资产市值。账户权益应按经纪商或清算规则,从现金余额、适用的未结算损益和尚未扣除的费用等账户项目计算;已经计入现金余额的结算损益不得再次相加。
29.4
结构退出、时间退出与移动止损
结构退出在价格破坏预先定义的局部交易结构时发生。它可以由保护止损自动执行,也可以在完成柱确认“越界并接受”后主动执行。前者反应快但更易受影线和跳动触发,后者等待更多信息却可能扩大损失。规则必须预先确定采用盘中触价、收盘确认还是连续停留,以及触发后以何种订单退出;不能在成交后才选择对当前结果最有利的一种。
时间退出处理的是预期没有在有效窗口内实现。适用场景包括突破应当延续却迟迟不走、事件驱动机会的窗口结束,或短周期模型进入流动性不同的时段。期限到达时可以全退、减仓或要求下一项价格确认;动作须固定。时间退出不是“持有几天都不涨就卖”的随意规则,其时限、观察尺度和例外必须能在历史样本中重建。
移动止损是把保护边界随有利发展上移或下移。可依据已确认的摆动低点或高点、结构回测边界、波动尺度或固定追踪距离。结构式移动只有在新摆动完成后更新,避免把未完成的低点当支撑;波动式移动需要固定波动指标、窗口和计算时点;平台追踪止损则必须核对参考价与更新机制。移动以后通常不得向风险更大的方向放宽,否则原风险上限失去约束。
三种退出可以并存,但要规定优先级。价格快速触及保护时由止损先执行;结构仍完好但时间届满时按时间规则;趋势发展后用移动止损保护剩余头寸。目标限价、止损和人工减仓同时存在时,应按实际剩余数量联动,避免一边成交后另一边仍按原数量挂单。
结构退出由交易理由失效触发,时间退出由预期行为在允许期限内未出现触发,移动止损则随着新结构形成改变保护指令的触发位置。本课程的交易规则只允许把保护价朝减少风险的方向移动,并按剩余数量重新计算;这是一项明确的规则选择,不表示所有交易方法只能如此。把止损放到刚形成但尚未确认的小转折后面,容易被正常波动扫出。止盈目标到达不等于必须全部退出,若计划允许分批,应说明每部分数量和剩余保护方式。反过来,价格尚未到目标但出现明确相反证据,也不应为等待理论目标而拒绝退出。所有退出都以实际成交为准,触发价不能当作成交价,也不保证最差成交价。
29.5
临时改变计划与有依据的规则修正
持仓中允许响应新信息,但修改必须有预先定义的依据。合理修正包括:新结构形成后把止损移到更近的有效边界;部分目标成交后按原规则降低剩余数量;交易所临时改变交易状态或流动性显著恶化时执行异常预案;原数据源被确认错误后停止依赖该信号。这些变化都能指出新事实、适用规则、计算结果和生效时点。
临时改变计划通常没有新的可验证证据,只是在价格不利时移动标准。典型表现包括:下跌后把多头止损移得更低,错过触发价后追高,目标接近时因贪求更远位置而撤掉原止盈,或把短期交易重新称为长期持有。本课程不允许放宽当前头寸的保护边界。扩大保护边界同时不减仓,会增加正常成交条件下的预计止损损失;跳空、停牌、涨跌停或止损未成交时,实际亏损还可能超过这个数额。后来出现的更大结构只能用于研究下一笔交易或下一版规则,不能用来放宽当前头寸的止损。
所有修改应保留旧值、新值、时间、触发证据、风险变化和执行人。若规则允许某类调整,却没有定义数据、阈值和动作,它仍给事后解释留下过大空间。实盘中的新想法可以记录为待研究规则,但不能立即拿当前持仓试用并把有利结果归为系统能力。
持仓期间发现规则定义含糊,可以从下一笔或下一版本修正;当前交易临时移动边界,则必须由开仓前允许的新事实触发。区别在于修正依据是否可在当时独立观察,并能否对有利和不利情况一致执行。价格靠近止损后扩大风险、靠近目标后抬高目标,通常是在结果压力下改变规则。若市场制度、合约规格或数据源突然改变,使原订单确实不可执行,可以采取风险最小化处置,并把它记录为异常,而不是把结果归入原策略表现。
29.6
执行偏差及其技术后果
追单发生在计划触发已经离开、实际入场价超出允许区间时仍提交订单。其技术后果是入场至保护边界距离增加、到目标的剩余空间减少,原仓位数量和报酬风险比失效。处理规则应是重新以当前可成交价计算;若仍合格才形成新计划,否则等待新的回测或结构,而不是沿用旧数量。
扩大止损,是在价格接近原保护位置时把边界移向更不利的方向。本课程不允许这样处理当前头寸,因为它会增大单位计划风险;数量不变时,整笔计划损失也会增加,还可能使组合压力超标。跳空、停牌、涨跌停或止损未成交时,实际亏损仍可能超过计划数额。新形成的更大结构若有分析价值,只能用于研究下一笔机会。单纯为了避免确认亏损而移动止损,不构成有效依据。其他方法若允许事先规定扩大止损并同步减仓,应作为独立规则介绍,不能与本课程规则混用。
报复性交易是前一笔损失后,在缺少独立机会或违反风险间隔的情况下迅速增加频率、方向反转或仓位。它可从订单记录识别:触发条件缺失、下单间隔异常缩短、数量超过计划,或在同一价格噪声中连续翻向。规则可要求每笔交易有独立计划编号、亏损后重新通过背景—位置—触发检查,以及日内损失或订单次数达到上限后停止新增风险。
过度交易指订单数量和风险暴露超过模型产生的合格机会,而不只是交易次数多。高频模型可以有大量合规订单,低频结构模型在区间中央反复进出则可能过度。识别字段包括同时持仓数、同风险源累计预算、单位时间订单数、无触发成交比例、费用占毛利润比例和取消改单次数。心理标签不能代替技术诊断;复盘应指出哪条订单规则被违反、风险增加多少以及需要怎样的系统约束。
执行偏差包括晚入、追价、数量错误、漏设保护单、止损滑点超过预期,以及分批数量不同步。每一种偏差都会改变实际风险,不能只备注“没有完全按计划”。沿原方向追价而仍使用原止损,会扩大入场价与止损价之间的距离,漏设保护单会让仓位失去预定退出机制,提前退出可能减少盈利,延迟退出则可能扩大亏损。复盘时应分别计算按原计划可能得到的损益和按实际成交得到的损益,用差额估计执行损耗;同时要承认,原计划订单也未必能在理想价位成交。
29.7
观察、解释、决策与执行的四层复盘
观察层只记录当时可获得的事实:价格、成交量、结构边界、市场状态、报价、订单和成交。不得用后来形成的高低点回填,也不把“主力诱多”这类推断当成事实。解释层说明这些事实为何支持Spring、LPSY、有效突破或其他假设,同时列出竞争解释和反对证据。观察准确而解释错误,与原始数据记录错误是两类问题。
决策层检查在当时信息下选择交易、等待、取消或退出是否符合规则。交易后来亏损,不自动说明决策错误;一个满足全部条件且风险合格的交易可以正常失败。相反,未按规则追入后偶然盈利,仍是决策偏差。执行层核对报单时间、类型、数量、成交价、滑点、部分成交、止损联动和人工改动,区分策略边际与执行损耗。
还应把事件成败、结构判断、交易盈亏和执行偏差分开。Spring事件可能真实成立,但选择的局部入场被噪声止损;结构判断可能错误,却因意外跳空获利;交易亏损可能完全来自滑点超预期;执行违规也可能暂时盈利。四个结果分别编码,才能知道应改模型、改风险参数、改订单流程,还是不做任何修改。
复盘应使用原始计划版本、当时的截图或数据副本、订单与成交日志、费用账单,以及持仓期间每次仓位和损益的变化。若缺少当时的信息,应标记为无法判断,不能看着完整历史图把结论说成当时“显而易见”。
29.8
初始风险金额R₀与费用后R值
R₀是交易建立时固定的初始计划风险金额,包含从计划成交到初始保护退出的价格损失、预计开平仓费用和合理滑点,并折算为账户统一币种。R₀必须大于零;若为零、负值或缺失,则不计算R值,并核查价格、数量、乘数、费用和币种转换。若分批是原计划的一部分,R₀应按整个初始计划允许的最大损失定义;若后来新增独立风险,可同时保存原始R₀与加仓决策的增量风险,不能事后改变基准来改善绩效。
损益(Profit and Loss,PnL)表示交易的盈利或亏损。交易全部平仓后的费用后R值为:R_final=NetPnL_final÷R₀。
其中净损益包括所有分批的已实现盈亏,减去实际佣金、交易费、借贷或资金成本,计入适用的汇率变化。R₀只用于归一化不同规模交易,不代表实际损失必定等于1R,也不应在赢家减仓或止损上移后缩小分母。把赢家的分母事后改为“当时剩余风险”会系统性夸大R倍数。
计划R、过程R和最终R要区分。计划报酬风险依据预计入场、止损、目标和成本;过程净损益可除以固定R₀形成实时R值曲线;最终R只在整个交易周期结束后确定。不同市场比较时,要采用相同的费用处理、汇率来源与换算时点、成交时点和交易周期定义,否则相同的R标签并不代表可比结果。
初始风险金额与费用后R值
R0必须大于零;减仓或上移保护后也不改变R0。
图29-1 初始风险金额与费用后R值(据本课程29.8节)
29.9
MAE、MFE与整笔连续净损益曲线
本课程从入场前的零损益基线开始,按整笔交易在各时点的净清算损益序列计算最大不利变动(MAE)和最大有利变动(MFE)。令N(t)表示在时点t按当时可成交报价平掉全部剩余头寸后,整笔交易截至该时点的累计净损益,则MAE=max[0,−minₜN(t)],MFE=max[0,maxₜN(t)]。平台报告也可能采用“入场价到持仓期间最不利或最有利价格”的定义。比较结果前必须先确认公式,两种定义不得混用。
净损益按N(t)=已实现毛PnL+剩余头寸按可成交报价平仓的毛PnL−已付费用−预计退出费+持有期间尚未列入费用的带符号净收支计算。已经作为费用扣除的融资费、借券费或资金费,不得再次列入净收支。各项损益先按未扣费用的数值计算,再统一扣费;若实际成交价或Bid、Ask估值已经反映点差,就不得另扣同一笔点差。多头按可卖出的Bid估值,空头按可回补的Ask估值,也可采用市场规定的其他可执行价格。已结算并完成换汇的损益采用实际结果;只有仍以外币持有的余额,才按选定来源在时点t的汇率折算。首次开仓费用会让净损益序列立即略低于零,这是正常的成本影响。
动态加仓和减仓时,必须按每笔成交的先后重建各时点的仓位和净损益。不能把全程最高价或最低价与某个单一持仓均价的差额,直接用于整笔动态加减仓交易,因为各时点持有数量不同,部分损益也可能已经实现,费用发生时间也不相同。还要注明数据频率。若只有OHLC,不知道同一柱内先到高点还是低点,就不能虚构先后;可以使用更细数据,也可以分别给出两种先后假设下的保守范围。
净额MAE和MFE可以分别除以固定R₀,得到MAE_R=MAE÷R₀与MFE_R=MFE÷R₀。若研究需要另列“价格从入场后最大逆向多少点”或百分比指标,必须明确其单位和计算对象,不能与包含费用、分批和汇率的净R混用。MAE用于研究止损与正常波动,MFE用于研究利润回吐和目标,但二者都不能单独证明某个新参数更优。
图29-2 整笔净损益曲线与MAE/MFE(示意图)
29.10
交易规则的操作定义
可验证规则必须包含时点、数据、观察尺度、触发、取消、动作和成本。以“突破后回测做多”为例,需要规定使用哪个市场与交易时段、区间边界如何在当时确定、何种价格越界算突破、回测允许进入多深、触发在盘中还是收盘确认、多少时间未发生则取消、以何种订单进入、滑点和费用怎样计入。缺少任一关键项,研究者都可能在样本之间改变解释。
“放量”“快速”“守住”“强势”必须转成可计算且能稳定判断的条件。量能可以相对过去固定窗口、同一交易时段或前一同向波段定义;快速可以用本尺度柱数或持续时间;守住可以定义为没有收盘回到边界内,或回到后在规定柱数内收复。参数不必假装普遍正确,但要固定、保存并接受检验。
结构型主观规则也可以操作化。可由两名分析者使用同一标注手册独立判断,记录一致率和争议原因;标注手册应说明摆动确认、边界调整、非典型结构和数据缺口处理。规则还要定义多次信号如何去重、同时持仓如何分配风险、未成交和部分成交如何模拟,以及缺失数据时跳过还是采用保守值。
成本是规则的一部分。应在入场与退出时使用可成交侧报价或一致的滑点模型,加入佣金、税费、资金和借券成本,并说明随数量、波动和流动性变化的方式。只有完整操作定义,历史检验、实盘执行和复盘才能讨论同一件事。
29.11
样本、未来信息、样本外检验与成本
样本选择要先定义市场范围、时间范围、流动性条件和纳入规则。只保留当前仍上市或后来表现好的标的会产生幸存偏差;只挑肉眼最标准的Spring会遗漏模糊但实盘必然遇到的候选。退市、合约换月、停牌、公司行动和数据缺失要按研究对象合理处理并留下记录。
前视偏差发生在使用当时尚不可知的信息。用未来高低点确认摆动、用当日收盘后才能得到的指标在收盘价成交、用后来修订的数据回填,都会高估表现。同一根OHLC柱中,止损和目标都被覆盖时,若没有更细数据就不知道先后顺序;应采用保守规则、明确的成交假设或更细数据,不能总选择盈利顺序。
训练样本用于提出和估计规则,验证样本用于筛选,最终样本外区间用于评估未见数据。时间序列不能随意随机打散。滚动前推(walk-forward)是在较早窗口估计参数,在紧随其后的窗口测试,再向前滚动;每次只能使用当时可得数据。参数频繁重估会增加实现复杂度和过拟合风险,也必须计入真实换仓与执行成本。
反复尝试大量指标、窗口、止损和目标后只报告最佳组合,会产生多重尝试偏差。应保存所有尝试、限制研究自由度,比较简单邻近参数是否稳定,并使用未参与选择的数据。信号重叠、同一趋势中的多次入场和相关标的使样本并非独立;有效信息量小于交易笔数,不能用普通独立样本公式夸大确定性。可按事件、时间块或共同风险源分组评估。
样本外恶化不应立即用新参数追逐最近行情。先检查数据、成本、市场结构、执行实现和暴露构成是否改变,再判断是随机波动、边际衰减还是规则失效。若恶化超过预设容忍范围,可降低风险或暂停新增交易,随后用不污染原样本外记录的新版本重新研究。
29.12
胜率、盈亏分布、期望与回撤
胜率为盈利交易数除以全部已结束交易数,但必须规定零收益、部分未平仓和同一计划多次成交如何计数。平均盈利和平均亏损应使用费用后结果,并同时查看中位数、分位数和尾部,因为少数极端盈利可能抬高均值。各笔交易按各自固定的初始R₀归一化后,样本平均R可以作为单笔已完成交易期望的经验估计:E[R]=p_盈利×平均盈利R+p_亏损×平均亏损R+p_保本×0,其中三类比例都以全部已结束交易为分母,平均亏损保留负号。每一笔已完成交易都落入三类之一,经验估计必须按全体样本中的实际出现频率加权;删去零损益交易或只在各类内部取均值,会改变这些频率,得到的不再是每笔已完成交易的样本平均结果。若样本中没有某一类交易,该类均值记为不适用、对应贡献项直接记为0,避免用0乘以未定义均值。经验平均也可直接对所有最终R求和再除以笔数,两者在分类一致时等价;它能否代表未来分布,仍受29.11所述样本选择、相关性和市场变化约束。
高胜率不代表正期望,高胜率策略可能偶尔遭受巨大损失;低胜率策略可能依靠右尾盈利,但更容易经历长连亏。应联合报告交易数、胜率、平均与中位盈亏、盈亏分位数、期望、费用占比、持有时间、MAE/MFE和不同市场状态下的结果。若策略存在分批或重叠交易,还要报告资本同时占用和组合层面的损益。
回撤根据按时间排列的账户权益曲线计算。设时点t的权益为Eₜ,此前峰值Hₜ=max(Eₛ,s≤t),金额回撤Dₜ=Hₜ−Eₜ;只有Hₜ>0时,百分比回撤才定义为Dₜ÷Hₜ。最大回撤是样本中观察到的最大值,不是未来损失上限。回撤持续时间、恢复时间和最差滚动窗口与幅度同样重要。账户权益曲线应使用单位净值,或按事先确定的方法排除外部入金和出金的影响,不能把取款记成交易亏损,也不能把入金记成策略收益。期货账户应按适用规则,根据现金余额、未结算损益和尚未扣除的费用等项目计算权益;已经计入现金余额的结算损益不得再次相加,保证金和名义合约价值也不能当作资产。
有限样本中的期望和回撤都有显著不确定性。可以报告均值的区间估计、按时间块或事件簇重采样的分布,以及不同成本和滑点压力下的结果;重叠相关样本不能当完全独立笔数。评价规则时还要看参数附近是否稳定、不同年份和状态是否一致、样本外是否保持方向相同。单一最高收益、最高胜率或最小回撤都不足以选择规则。
29.13
规则修改与版本管理
每套规则应有唯一版本号、采用日期、适用市场、数据与时区、参数、订单假设、成本模型和风险限制。原始版本应予保留;新版本注明具体变化、所依据的样本、预期影响的机制,以及从何时开始采用。历史交易仍按交易发生时使用的规则评价,不能套用新规则重新解释旧交易。
修改触发可以来自持续样本外恶化、执行环境变化、合约规格或费用变化、明确的数据错误,或复盘反复发现同一种操作歧义。每次修改先定位问题属于信号、退出、仓位、成本还是执行,再做最小可解释变化。一次同时改变入场、止损、目标和过滤器,即使绩效改善,也难以判断来源。
候选版本应重新经过训练、验证和新的前推样本,并把研究期间的所有尝试纳入记录。旧样本外数据一旦被用来选择新参数,就成为训练信息,不能再次充当未见检验。新版本上线可先用较小风险或影子执行比较预期成交与真实成交;达到预设标准后再按风险制度扩大,而不是依据几笔盈利立即替换。
版本档案还应保留代码或公式、配置、数据快照标识、随机种子、生成结果、审阅意见和实盘偏差。若样本外表现恶化,先比较当前版本与预设容忍区间;暂停、回退或继续观察的条件应预先确定。版本管理的目的不是冻结规则,而是使每次改变都能追溯到当时证据,使研究收益、实盘收益和执行偏差能够诚实对应。
规则修改的四要素与版本管理
不合格修改包括:亏损后放宽止损、踏空后取消确认、为了改善历史曲线而反复调整参数。
图29-4 规则修改的四要素与版本管理(据本课程29.5、29.13节)