矩阵代数与线性方程组
深圳某券商衍生品做市团队周五下午收到一封 CFFEX 合规问询:47 套挂在沪深300 股指期货上的对冲策略,监管想知道是否存在两套策略相互冗余——也就是说某一套是其他几套的线性组合。问题背后是同一个矩阵 公式:列是各策略的盯市 P&L,秩决定了一切。若 公式 列满秩,47 个方向线性无关;若不满秩,过去几个月里有人在重复申报相同的风险敞口。本节给你回答这个...
打开 →GLOBAL SEARCH
搜索在服务端完成,题目解析与答案不会进入搜索结果。登录后可搜索自己的收藏题单。
找到 30 个结果
English questions深圳某券商衍生品做市团队周五下午收到一封 CFFEX 合规问询:47 套挂在沪深300 股指期货上的对冲策略,监管想知道是否存在两套策略相互冗余——也就是说某一套是其他几套的线性组合。问题背后是同一个矩阵 公式:列是各策略的盯市 P&L,秩决定了一切。若 公式 列满秩,47 个方向线性无关;若不满秩,过去几个月里有人在重复申报相同的风险敞口。本节给你回答这个...
打开 →周五午盘,某 私募 信用基金的固收组长把本周风险页签给投委会:三个数字定全局——平行 DV01 ¥1,340 万/bp、平行 SDV01 ¥480 万/bp、未来一年期望信用损失 ¥2,800 万。数字之上是评级分布:22% AAA、41% AA+、24% AA、11% AA / A+、2% 投机级。组长圈了一行:AA / A+ 占比从上季度 9% 爬到 1...
打开 →Hook:一条卡在鞍点上的优化器 某沪深300 增强组合的研究员发来一段日志:使用裸的梯度下降迭代 6000 次后,目标函数(一个带分段惩罚的跟踪误差)几乎不再变化——但梯度范数也没有逼近零,反而在 公式 量级上震荡。绘出参数空间上的曲面发现:当前点位于一个鞍点(saddle point),沿其中一个主轴是「碗」、沿另一个主轴是「山脊」,一阶信息把这两种几何...
打开 →Hook:一次梯度核对失败的复盘 上海某量化私募的小组复盘会上,工程师摊开一张 PnL 时序图:基于沪深300 成分股的因子神经网络回测里,梯度核对(gradient check)数值在第三层之后开始与解析梯度系统性偏离一个常数倍。CFFEX 主力合约的日线策略本来 7 月稳得像一块表,过完一个版本后突然走样——根因追下来是一行被写反的 transpose ...
打开 →周一上午,上海某私募的量化研究员同时开了三张表:30 只沪深300 成分股近三年的日收益矩阵、当前持仓的市值列向量、PM 便签上的一句话——「整个组合杠杆到 1.4 倍,新的暴露向量是多少?」屏幕上所有对象——收益序列、持仓清单、杠杆算子——本质都是向量或向量之间的线性映射。在按下回车之前,你必须先把「向量是什么、它住在什么空间、什么变换才算线性」这件事讲清...
打开 →上海某多策略私募的风控总监周一开盘前打开她的笔记本:一只新策略子账户即将上线,桌面上躺着一个 500×500 的样本协方差矩阵 公式,由沪深300 成分股日收益估出。CIO 只问她两件事:哪两个名义因子方向解释了组合方差的主要部分,以及这一结论对输入窗口的微小扰动有多敏感。这两个问题都由同一个对象回答——公式 的特征分解。前者由特征向量给出方向,后者由最大特...
打开 →北京某私募的量化研究员手头有 1,500 个交易日的沪深300 ETF(300ETF)收益序列,外加 12 个候选因子——动量、价值、低波、三个流动性代理、六个宏观贝塔。她想要的是这 12 个因子在 L2 意义下最接近 ETF 收益的线性组合。1,500 个方程对 12 个未知数,这是高度超定的方程组,根本不存在精确解,她只能挑出 最佳近似 。给出 ...
打开 →周二上午 9 点半,上证刚开盘。你坐在一家中型私募的研究台,手边是一段从 3.2.1 留下的 NumPy 代码:一个 (T, N) 的日对数收益矩阵, T = 244 , N = 3 ,列依次是 510300.SH、600519.SH、000001.SZ。你想把 600519.SH 在 2024 02 08(春节休市前最后一个交易日)这天的收益单独捞出来——...
打开 →周五晚上,某私募量化研究员要对一个 20 只股票的行业轮动策略做半年回测,需要一个 (T=252, N=20) 的日收益矩阵。问题是平台的合规决策写得很清楚:不接行情数据牌照,所有训练样例只能跑合成数据。CSV 里没有,卖方接口也没有,只能自己生成。这一课给出最小可复现的配方:一颗确定的随机种子、对数欧拉离散化的 GBM 一步、用 Cholesky 分解构造...
打开 →周一上午,你在某沪上私募基金的组合构建台,PM 把一个文件丢到你桌上:沪深300 成份股加上一篮子中证500 小盘票,共 500 只,每只都给了下一季度的预期收益 公式;另外附一张 500×500 的协方差矩阵 公式,是研究部用 60 个月滚动样本估出来的。PM 的指令只有一句:「按这个开个仓,目标年化波动 12%。」 你面前的问题就是单期(single p...
打开 →周二上午十点的滚动均值 某私募研究台周二上午十点。你刚把 3.2.2 收尾那条 8 步管道交给量化团队,篮子是沪深300 ETF(510300.SH)和三只 A 股票面 ,日收益矩阵 (252, 4) 。PM 把它拉到全市场场景版本——篮子扩到 100 只票、回溯 100 个交易日——结果纯 Python 嵌套循环算出来的 20 日滚动均值跑了 11 秒,下...
打开 →周五下午两点,你在上海某私募的因子研究组里收到一张 12,000 × 600 的设计矩阵——600 个候选 alpha 因子在沪深300 成分股上 18 个月日频的横截面暴露。组合经理希望你下班前给一组系数,明早接入回测。你写下普通最小二乘(ordinary least squares, OLS)的闭式解 beta = np.linalg.solve(X.T...
打开 →深圳某私募的多因子研究员手头有 60 个交易日的沪深300 成分股横截面收益,外加一份「因子动物园」(factor zoo)清单:动量、价值、质量、低波,再加上 70 多个另类与基本面因子,合计 公式 个候选预测变量、公式 个观测——一个典型的 公式 病态设计矩阵。她直接套用上一模块的普通最小二乘(ordinary least squares, OLS),解...
打开 →某沪深300指增私募的策略部署组组长周一早会带着三份交付物走进风控委员会。PM 刚审批通过一只新主动股票策略,研究组把 4.2 alpha 管线(截面动量 + 质量 + 价值的复合 alpha,样本内 IR 约 0.5)、4.3 因子暴露矩阵 B (Barra 风格 5 个 + 中信一级行业 10 个 + 国家因子)、4.4.2 Barra 风险模型 (Si...
打开 →周三上午十点,一家私募的研究员把上一课写好的 (252, 3) 沪深300 成分股日收益矩阵 returns 甩进 Jupyter,敲下 returns.mean() ,得到一个标量 0.00042 。他把这个数贴进周报,标题写「样本期内组合日均收益约 4 个基点」——这句话有问题。 returns.mean() 在没有 axis 参数时会把整个矩阵展平成一...
打开 →钩子:当一次完整梯度要四个小时 某上海百亿私募的研究员准备把一套基于沪深300 成分股的多因子神经网络 α 信号搬上生产。训练集是过去 5 年的日频面板:约 180 万行样本 × 300 只成分股 × 80 个特征。前两课的工具一一被排除——海森矩阵(Hessian matrix, 公式)装不进显存,L BFGS 一次方向计算也要把整批数据过一遍。退到最朴素...
打开 →周一上午十点,浦东一家中型私募的研究台。PM 把 3.2.2 L5 那张已经稳定跑通的 tear sheet 推过来,篮子是 、252 个交易日的 NumPy 收益矩阵 returns ,形状 公式。「我现在不要单只票的 alpha 也不要 Sharpe——给我四个数:第一,这只 3 票篮子的 最小方差 长仓权重;第二,顶端主成分占多少方差,看篮子风...
打开 →某私募(private fund)的风控会上,研究员甩出沪深300 日收益的实证表:日内收益序列本身的自相关系数 公式 在滞后 公式 时几乎全部落在 公式 的 Bartlett 带内;可一旦把同一条序列 平方 再画一次 ACF,从滞后 1 到滞后 60 全是正值、缓慢衰减。再算样本峰度:5.8——远大于正态分布(Gaussian distributi...
打开 →周一早盘,某私募的时间序列研究员把过去 200 个交易日的对冲组合超额收益丢进 statsmodels。她想确认这条曲线是不是一个干净的 ARMA 过程——若是,残差就是一组白噪声,可以挂上下一阶段的 GARCH;若不是,她得回去重做特征工程。问题是:用 AR(1)、MA(1)、ARMA(1, 1) 还是 ARMA(2, 1)?拟合完之后怎么知道这一支模型确...
打开 →周五午盘,一家 50 亿规模的 CN 私募把一份沪深300 alpha 数据甩到你工位:30 个特征、日频次日超额收益作标签。上一课那棵深度 15 的 CART 树样本内方向准确率 100%、样本外只有 51%——比抛硬币好不了多少,Sharpe 几乎为零。你把它换成 500 棵在 bootstrap 样本上独立训练的深树取平均,样本外跳到 57%。这一跳,...
打开 →某上海私募的多空策略台,周一早会上分析师汇报:某只白酒龙头跑赢沪深300 5.2 个百分点,「显著的 alpha」。基金经理把数据敲到 Bloomberg,跑了一遍 CAPM 回归,Jensen alpha 的 t 值 1.3——「不,这只是 beta 的 1.4 倍,加上沪深300 这一年涨了 4%,你看到的 5.2% 全在 beta 解释范围内,没有 a...
打开 →Hook 周一下午四点收盘后,私募研究服务器上挂着两份待跑的任务:先把 100 只沪深300 成分股最近 30 个交易日的日线从米筐风格接口同步下来,再用 100 万条蒙特卡洛路径给一张 510300.SH 看涨期权定价。一颗八核 CPU 跑了二十多分钟,T+1 风控报表迟迟出不来。问题不在算法,在于代码全程单线程。这两份任务该交给的并发原语其实不同:线程池...
打开 →某上海私募的初级量化:把 L2 的闭式 MV 直接套到 100 只 A 股、5 年月度数据上,优化器吐回的组合在三只票上占 90%(其中两只各做多 60%、一只做空 200%)。回测夏普 3.2,PM 拍板上线。半年后实盘亏 12%,同期沪深300 涨 8%。「教科书的东西在实盘上不工作」——但 不是 教科书错了,是 他没装收缩 (no sh...
打开 →周一早盘前,你接手了一笔策略回测:沪深300 ETF(510300.SH)一年的日线,要算每日对数收益率(daily log return)。上一课你已经能把 CSV 流过来、用生成器逐行解析、再用 dataclass 装好。可一旦真要算数,你写下的还是那段熟悉的循环: 十二行能写完,对一年 252 个交易日尚可。可同样一段逻辑会出现在每一份回测脚本里——一...
打开 →周二下午两点,某上海私募的股票池经理把你叫到工位前:要 600519.SH 对沪深300 ETF(510300.SH)的市场 β,日简单收益(daily simple return),近252个交易日窗口,今晚9点前要见。教科书答案一行就能解决: beta = Cov(r stock, r mkt) / Var(r mkt) 。工程答案稍长:把 [1, r ...
打开 →某私募的研究员把一个 Jupyter notebook 推过来:他们在沪深300成份股上扫了 500 万个 (S, K, σ, t) 参数组合,目标是给隐含波动率曲面拟合做敏感度分析。纯 Python + scipy.stats.norm.cdf 跑了 47 分钟,他要的是把这一步压到 5 分钟以内,但策略迭代仍然由他在 notebook 里驱动——研究员不...
打开 →Hook:两个看起来都「会优化」的求解器 上海某私募基金的两位研究员同时打开 Python,一位在跑一个标的为沪深300 成分股、目标为均值方差优化(mean variance optimization)的组合优化(portfolio optimization)问题,另一位在调一个三层的因子神经网络。两人用的迭代算法是同一份梯度下降代码,第一位 200 步就...
打开 →某 私募 事件驱动组的盘后会议。Q3 季报披露季刚开始,组里负责 沪深300 的研究员准备做一条 PEAD 信号:盈利惊喜后 60 个交易日的漂移。负责数据的同事翻出来一份 Wind 的盈利数据库,里面 actual eps、consensus eps、announcement date 三列齐全;研究员说,把 SUE 算出来,按 announcement ...
打开 →某上海公募的沪深300指增基金:基金经理周一早盘想加 3% 宁德时代,通过减 3% 招商银行融资。 90 秒之内 ,风控要回答三个问题——加完之后(1)对沪深300的事前跟踪误差是不是还在 4% 预算之内?(2)哪个因子吃掉了最多的跟踪误差预算?(3)哪几只股票贡献了最多的组合风险?这堂课讲的就是这套 事前组合风险归因 (ex ante po...
打开 →某沪深300指增私募的中级量化研究员,用 L1 的「无成本」约束 MV 优化器跑 30 只 CSI 300 行业龙头基础上的 12 1 截面动量信号,样本内纸面 Sharpe(paper Sharpe)= 1.4。她把同样的换仓单丢进自家交易台的事后成本归因系统,扣掉佣金、印花税、半价差(half spread)和 Almgren Chriss 市场冲击之后...
打开 →