跳转至


课程  因子投资  机器学习  Python  Poetry  ppw  tools  programming  Numpy  Pandas  pandas  算法  hdbscan  聚类  选股  Algo  minimum  numpy  回测  数据标准化  algo  FFT  模式识别  配对交易  GBDT  LightGBM  XGBoost  statistics  CDF  KS-Test  monte-carlo  VaR  过拟合  algorithms  machine learning  strategy  python  sklearn  pdf  概率  数学  面试题  量化交易  策略分类  风险管理  Info  interview  career  quant  self-learning  probability  portfolio  risk-management  强化学习  监督学习  AI量化  复权  数据  tushare  akshare  xgboost  PCA  wavelet  时序事件归因  SHAP  alog  paper  multimodal  speech  volatility  深度学习  归一化  BN  LN  WN  machine-learning  quant-trading  dropout  kaggle  boosting  决策树  泰勒展开  deep-learning  tcn  time-series  causal-convolution  交易实战  避坑指南  Figures  Behavioral Economics  graduate  arma  garch  人物  职场  Quantopian  figure  Banz  金融行业  买方  卖方  story  量化传奇  rsi  zigzag  穹顶压力  因子  ESG  因子策略  投资  策略  pe  ORB  Xgboost  Alligator  Indicator  factor  alpha101  alpha  技术指标  wave  algorithm  pearson  spearman  套利  LOF  白银  因子分析  Alphalens  涨停板  herd-behaviour  momentum  因子评估  review  SMC  聪明钱  trade  history  indicators  zscore  波动率  lightgbm  顶背离  另类数据  freshman  resources  others  AI  DeepSeek  network  量子计算  金融交易  IBM  weekly  进化论  logic-factor  Agent Skills  Skills Marketplace  VS Code  Tushare  XtQuant  BaoStock  A股  量化  neutralization  basics  LLT  backtest  backtrader  研报  papers  UBL  金融阅读  免费资源  华尔街日报  WSJ  量化学习  quantlib  jupyter-notebook  scikit-learn  pypinyin  qmt  xtquant  blog  static-site  duckdb  工具  colors  free resources  barra  world quant  Alpha  openbb  llm  prompt  CANSLIM  Augment  arsenal  copilot  vscode  code  量化数据存储  hdf5  h5py  OpenClaw  Hermes Agent  Agent  cursor  augment  trae  Jupyter  jupysql  pyarrow  parquet  数据源  quantstats  几何收益  实盘  clickhouse  polars  滑动窗口  openclaw  notebook  sqlite  sqlite-utils  fastlite  大数据  PyArrow  UV  Pydantic  Engineering  redis  remote-agent  AI-tools  Moonshot  回测,研报,tushare  dividend 


---

最后更新: 2026-04-23


Table of Content

---

title: "量化最难的,可能根本不是代码" date: 2026-04-23 excerpt: 量化不仅考验写代码的能力,更考验把模糊判断拆解成可复现、可验证流程的能力。 category: strategy tags: [quant, deep-learning, tcn, time-series, causal-convolution] font: "阿里巴巴普惠体-Regular" addons: - quantide-palette - quantide-admonition - quantide-layout-xhs aspectRatio: 3/4 canvasWidth: 600 img: TODO layout: cover-photo-down htmlAttrs: class: dracula


量化最难的,可能根本不是代码

我前阵子发过一篇文章,叫《一个散户自学量化的20个月》。

发出去以后,有个朋友来找我聊。
他是排名很好的大学金融本科。
他说那篇文章里讲的那些东西,他其实都能看懂:

  • 理论能看懂
  • 概率思维也能理解
  • 量化的大框架也明白

但一到真正要做的时候,问题就出来了。

不是卡在“这个概念我不懂”,
而是卡在:

  • 数据怎么读进来
  • 这一列怎么处理
  • 为什么一跑就报错
  • 为什么脑子里知道逻辑,手上就是写不出来

他说到最后,其实就一句话:

道理我都懂,但代码不会。

我觉得这个反馈特别真实。

因为对很多学金融的人来说,量化最先卡住的,确实就是代码。
但代码难,往往不是难在语法本身。

如果只停在“代码不会”,其实还没有说到真正难的地方。

真正难的地方是,量化会逼你把脑子里那些本来觉得已经懂了的东西,一层一层拆开。

平时做金融分析,很多话说到一个大概,其实就够了。

你说“小市值长期有超额收益”,
你说“这个信号看起来有效”,
你说“这个策略风险收益比还不错”,

这些话在讨论里都成立。
因为讨论允许语境,也允许默认前提。

但量化不行。

量化最麻烦的地方就在这里。
它不接受“大概是这个意思”。

比如一句很自然的话:

小市值长期有超额收益。

真要往下做,这句话立刻就会变得一点也不自然。

  • 小市值用什么表示
  • “小”是固定阈值还是分位数
  • “长期”到底是多长
  • “超额收益”是相对谁来算

走到这一步,你会发现自己卡住的根本不是 Python
你真正卡住的是,原来那句自己以为已经懂了的话,突然不够用了。

比如最后你可能得先把超额收益写成:

\[ R_{t+1}^{excess} = R_{t+1}^{portfolio} - R_{t+1}^{benchmark} \]

再把组合口径写成:

\[ portfolio_t = \{ i \mid \text{cap}_{i,t} \le q_{20\%}(cap_t) \} \]

这一步表面上是在写代码,
其实是在逼你承认一件事:

你原来以为自己懂的,很多时候只是懂了一个意思。

这也是为什么量化会让很多金融背景的人特别难受。

因为他们往往不是完全不懂。
恰恰相反,他们通常是懂很多,也能聊很多。

可量化偏偏不看你能不能聊。
它看的是,你能不能把一个判断讲到别人照着同样的口径,也能得到同样的东西。

这有点像雅思口语。

很多东西放在中文语境里,你自己觉得完全明白。
可真让你对着一个陌生考官,从头到尾解释清楚,你很快就会发现,自己会的往往不是表达,而是一种熟悉感。

量化也是一样。
只不过这里的“考官”不是人,是机器。
它不会替你补全语境,也不会替你脑补你没说出来的那一半。

但就算你把一件事讲清楚了,也还没完。

因为市场不是一张静止的图。
市场是在时间里往前走的。

所以量化接下来还会继续追问:

  • 你在什么时候看到这个信号
  • 你在什么时候调仓
  • 你用什么价格成交
  • 收益到底记在哪一段时间里
  • 成本到底在什么地方扣掉

这时候难点就又往前走了一步。

前面卡的是“你说的是不是清楚”。
到了这里,卡的是“这件事是不是按市场真实发生的顺序在跑”。

比如一句“均线信号有效”,最后往往得写成:

\[ signal_t = \begin{cases} 1, & \text{if } MA_5(t) > MA_{20}(t) \\ 0, & \text{otherwise} \end{cases} \]

再往后,收益和成本还得接上:

\[ R_t^{net} = w_{t-1}^\top r_t - c_t \]

这里真正麻烦的,不是公式本身。
而是你要对里面每一个符号负责。

\(w_{t-1}\) 到底是什么时候定下来的,
\(r_t\) 对应的是哪一段收益,
\(c_t\) 里有没有把手续费和滑点算进去。

这也是为什么很多人会出现那种很别扭的感觉:

我明明知道自己想表达什么,可我做不出来。

因为他缺的未必是聪明,也未必是理解力。
他真正缺的,是把一个想法说到机器也没法误解的训练。

从认知心理学看,这里面其实很像一种“解释深度错觉”。

人很容易把“我听过这个词”“我大概知道它是什么意思”“我能接着把这个话题聊下去”,
误以为自己已经真正掌握了它。

可一旦你要把它拆开,很多原来被熟悉感盖住的空白,就会一下子露出来。

而量化最磨人的地方还不只在这里。

它最磨人的地方是,你好不容易把一套东西写出来、跑起来,
最后还不一定知道自己算得对不对。

量化里最难受的错误,往往不是报错,
而是程序能跑,结果也有,但你不知道它到底是不是你想要的那个东西。

比如净收益这个式子,看起来很普通:

\[ R_t^{net} = w_{t-1}^\top r_t - c_t \]

但现实里最容易出问题的,往往就是这些看起来最普通的地方:

  • 你用的是开盘价还是收盘价
  • 换仓是在今天收盘后还是明天开盘前
  • 成本有没有算全
  • 权重里有没有混进未来信息

很多时候,真正让人崩溃的,不是程序报错。
而是程序没报错,但你最后发现,这条路不成立。

这也是为什么量化的学习体验,和很多人以前熟悉的学习体验很不一样。
你不是学完一个知识点,立刻就知道自己会不会。

你常常是花了两三天,把它写完、跑完、改完,
最后才发现:

这条路不行。

很多人扛不住的这种负反馈。

所以如果回到最开始那个问题:

对很多金融背景的人来说,量化最先卡住他的,确实是代码。
但代码只是表面。

再往下,真正卡人的,其实是三层更深的东西:

  • 你懂的,到底经不经得起拆
  • 你的想法,到底能不能跑起来
  • 你跑出的结果,到底能不能信

所以某种意义上,量化确实像一面镜子。
它不会替你增加理解,但会把一件事照得很清楚:哪些地方你是真的懂了,哪些地方你只是觉得自己懂了。

所以量化最难的,可能根本不是代码本身。
真正难的,是它第一次逼你离开熟悉感,逼你为自己的理解负责。