Skip to content

从信号到执行的交易系统拆解

交易系统失败的常见原因,不是信号本身太差,而是系统链路不完整:研究层看起来有效,执行层无法稳定复现。完整链路至少包括五个环节:市场假设、信号生成、仓位管理、订单执行、绩效归因。任何一个环节缺失,收益曲线都会出现“回测好、实盘弱”的断层。

第一环节是市场假设。假设不是一句“趋势会延续”,而是明确在什么市场状态下成立、在什么状态下失效。比如趋势信号在中高波动扩散阶段表现更好,在低波动震荡阶段更容易被反复打脸。vectorbt 适合先做状态切片,把假设写成可检验条件,而不是凭经验判断。vectorbt

第二环节是信号生成。信号应当尽量简单、可解释,避免把噪声当信息。很多策略在研究阶段堆叠过多因子,结果是参数对样本外数据极度敏感。backtesting.py 适合验证“少参数模型”是否已有稳定边际,再决定是否增加复杂度。backtesting.py

第三环节是仓位管理。仓位不是附属功能,而是收益分布的主导变量。即使信号胜率一般,只要仓位能在高把握度阶段放大、在不确定阶段收缩,系统仍可能保持稳定。常用方法包括波动率目标仓位、回撤触发降杠杆、相关性约束下的组合限额。仓位规则应优先于观点强弱。

第四环节是订单执行。真实市场里,执行质量经常决定最终盈亏。信号给出后,订单类型、下单时段、盘口深度、撮合规则都会改变成交结果。Lean 的事件驱动与多市场日历能力可把“信号产生时刻”和“可执行时刻”区分开,减少时区与交易时段错配。Lean 对加密市场,ccxt 和执行框架结合能更直接处理多交易所差异。CCXT

第五环节是绩效归因。若只看累计收益,很难知道系统真正赚了什么。quantstatspyfolio 可把收益拆成暴露收益、择时收益、成本拖累、回撤结构,帮助判断系统是靠持续优势还是靠短期运气。quantstats pyfolio

结合市场规律,系统设计应当承认“不同阶段不同目标”。趋势清晰期追求效率,震荡期优先保护资本,风险事件期优先降低杠杆与提高成交确定性。2018、2020、2022、2023 这几段典型年份都显示,单一参数长期不变很难适应完整周期。系统并不需要频繁换策略,但需要有状态感知与风险开关。

落地时可用一套固定检查清单:

  • 假设是否可证伪,失效条件是否明确。
  • 信号是否依赖难以稳定获取的数据。
  • 仓位上限是否与波动状态绑定。
  • 执行是否考虑交易时段、深度和成本。
  • 绩效报告是否能解释回撤来源。

把这五步固化后,交易系统会从“观点驱动”转向“流程驱动”。观点可以错,但流程必须稳。长期结果往往来自流程的可重复性,而不是单次判断的精彩程度。

交易时段和规则核验建议直接查官方页面,例如 NYSENasdaqHKEX

市场切片补充

把规则放进具体时间段更容易检验。例如 2020 年一季度的风险冲击阶段、2022 年的全球紧缩阶段、2023 年的结构修复阶段,价格反应、成交深度和风险偏好都不相同。若把这三个阶段混在一起求平均,很多结论会被稀释;若分阶段评估,同一套方法在不同环境中的边界会更清楚。

在执行层面,可以把“阶段识别”写入日常流程:先确认当前处于扩张、收缩还是修复,再决定仓位上限、下单时段和止损阈值。这样做不是为了追求完美预测,而是为了避免在不适配环境里重仓。跨市场核验时,建议直接对照 NYSE 时段Nasdaq 日历HKEX 时段CFTC 术语 做参数确认。

复盘框架

每篇笔记都可落到同一套复盘问题:第一,当前结论依赖的前提是否仍成立;第二,若波动率提升一个等级,仓位和执行规则是否需要同步调整;第三,若成交成本抬升,策略是否仍具备正期望。把复盘问题固定下来,知识会从“记住观点”转为“可持续迭代的决策系统”。