PyO3 与 Python 互操作
某私募的研究员把一个 Jupyter notebook 推过来:他们在沪深300成份股上扫了 500 万个 (S, K, σ, t) 参数组合,目标是给隐含波动率曲面拟合做敏感度分析。纯 Python + scipy.stats.norm.cdf 跑了 47 分钟,他要的是把这一步压到 5 分钟以内,但策略迭代仍然由他在 notebook 里驱动——研究员不...
打开 →GLOBAL SEARCH
搜索在服务端完成,题目解析与答案不会进入搜索结果。登录后可搜索自己的收藏题单。
找到 30 个结果
English questions某私募的研究员把一个 Jupyter notebook 推过来:他们在沪深300成份股上扫了 500 万个 (S, K, σ, t) 参数组合,目标是给隐含波动率曲面拟合做敏感度分析。纯 Python + scipy.stats.norm.cdf 跑了 47 分钟,他要的是把这一步压到 5 分钟以内,但策略迭代仍然由他在 notebook 里驱动——研究员不...
打开 →开场 某私募周四下午,团队为沪深300 ETF 期权准备了四个定价器口味——Black Scholes 看涨、Black Scholes 看跌、二叉树、蒙特卡洛。研究主管开了一次代码评审,发现生产代码里有一个 StrategyFactoryAbstract 抽象类、两个 AbstractPricerBuilder 子类、Confluence 上一张 60 行...
打开 →字节火山引擎的某 TiKV 同事在你刚加入沪深300量化团队的第二周走过来。他抱着一台戴尔笔记本,屏幕上是 3.5.2 L3 你亲手写的那个 SPSC 环形缓冲——给 510300.SH (沪深300 ETF) 行情事件用的,生产者一个核心、消费者一个核心,中间两个 AtomicUsize 当下标。"我们要把这段代码搬进 CFFEX 张江 COLO 的 pr...
打开 →把 2014 年到 2026 年的 CN 量化私募行业摆在一张时间轴上。最左端是 2014 年二月 AMAC 私募基金管理人登记系统正式上线,再加同年八月 CSRC 颁布的《私募投资基金监督管理暂行办法》——这两件事把 CN 私募从「信托通道+投顾」的阳光私募时代推进了「AMAC 备案直营管理」的新时代。接下来是 2013 2017 的创始浪、2017 20...
打开 →国内一家头部 quant 在 CFFEX 张家湾数据中心 colo 部署的低延迟工程负责人,正在 review 自家 IF 股指做市路径的 tick to trade 延迟报告。中位数 4.8 μs;MarketMakerTier1 桌内预算是 5 μs,正好达标。P99.9 是 47 μs,超过了 OperationalRiskCommittee 公开的 ...
打开 →开场 某私募周五下午。研究团队内部的「自动研究 UI」——一个小网页,列出库里每个定价器并渲染一个表单可以调它的参数——挂了。一位初级开发上周新加了一个 GARCH 波动率定价器,可这个定价器的表单从未出现在页面上。这页本来不需要维护,注册表应该是在 import 时被填好的。资深开发打开定价器模块一看,发现忘了注册:新类从未进 PRICERS 。半年前同一...
打开 →周三晚上,某 私募 宏观对冲基金的策略会议上,研究员摔出一张图:「2Y CGB 收益率比 10Y 还高了 8bp,曲线倒挂了。要不要做平 2 10 利差?」要回答这个问题,你得先把「2Y vs 10Y」这两个点背后的曲线讲清楚——它是怎么画出来的、上面的点对应的是哪种「率」、不同形状对应什么宏观状态。本课把这条曲线建起来。 曲线是什么 收益率曲线(yield...
打开 →国内一家私募在 CFFEX 数据中心 colo 部署的资深系统工程师,正在用回放数据 profile 那条新搭起来的 IF/IH 股指期货做市路径。热点循环是这样的:接收线程从组播 UDP 包中 mmap 解出报文,先解析 CTP 行情字段,把一个 TickEvent 推到由 std::mutex 保护的 std::queue 上;策略线程 pop、更新本地...
打开 →一位 五十亿 规模 私募 多 策略 基金 的 初级 研究员 周四 下午 走 进 代码 评审 室,端 着 一 个 看 起来 像 大 胜 的 信号 —— 中证 500 上 的 5 日 反转 策略,夏普 2.8,最 大 回撤 4%,2014 2023 年 区间 上 的 净 值 曲线 漂亮 得 不 像 话。资深 研究员 翻 着 notebook,问 了 一 个 问题...
打开 →周一上午十点,深圳一家私募的量化研究员盯着一份十年期回测:她构造的多空对冲组合(long short hedge)净值在零附近来回游走,最大回撤不到 3%,平均年化收益接近零。同事质疑「这条线随机得不像策略」。她想用一个数学对象精确刻画「下一步的期望就是当前位置」这种公平博弈(fair game)的特性——而不只是把它当噪声打发掉。这正是本节的主角:离散时间...
打开 →开场 某私募周二上午九点四十二,一位实习研究员把自写的 PriceQuote 类提交进团队研究包,基金经理顺手抓了一千个想往 set 里塞,做当天 510300.SH 早盘 tick 的去重。 TypeError: unhashable type: 'PriceQuote' 。十分钟后他想按时间戳排序,调用又换了一种方式挂掉。类能编译,对单个 quote 的...
打开 →风控线触发的那一秒 某私募量化部门给挂在沪深300 ETF 上的 50ETF 期权做市账户加了一条风控规则:当标的价格相对当日开盘价漂出 公式 这条区间任意一边,立即砍平整套 Delta 头寸。研究员被风控负责人追问的第一个数字不是收益,也不是 IV,而是「以波动率 公式 计,价格先触上沿的概率是多少?平均要经过多少秒触出?」这两个量都不是布朗运动(Brow...
打开 →某 HFT 私募的低延迟负责人在周五下午走进工程间,对写出 L1 / L2 / L3 这套交易二进制的团队问一个问题:"开发机上跑得对。现在要把它放到 CFFEX 张江 COLO 撮合引擎旁边的机柜里,并对交易桌承诺端到端 P99.9 在 3 µs 以下,还要做哪些事?"这段从「能编译」到「桌子敢用」的差距,就是部署故事。四层一起出力:编译标志(PGO + ...
打开 →中信建投自营 IT 团队的同事把一份 C 的期权定价库 libquant pricer.so 扔到你桌上。"我们这套是十几年前用 C 写的,封装了 Abramowitz Stegun 7.1.26 标准正态 CDF 近似;你的 Rust 引擎要在中证 510300 期权上调它,先别想着重写。"——这就是 2026 年量化 Rust 开发者面对的现实: 没...
打开 →某上海私募 200 亿规模的多空基金,研究主管周二下午把一份每年 280 万人民币的供应商材料推到你桌上:「沪深300 全部零售消费股的卫星停车场计数。raw IC = 0.06。先做一个季度试用,年合同 280 万。周五之前给 Go / No Go。」你的因子库已经有一个 Wind / 通联 集成的「盈利预期修正」因子,同一标的池 raw IC = 0.0...
打开 →开场 某私募周二上午九点三十一,沪深300 ETF(510300.SH)刚收完集合竞价,团队的 tick 处理器跑了九十秒。两个生产者线程在排空一个 Tushare 风格的行情 websocket——一个分片走 SSE(上海)回报,一个分片走 SZSE(深圳)回报——四个消费者线程各跑一个下游策略。九十三秒时,四个策略共写的盈亏累计器显示 1400000 元...
打开 →一位 头部 量化 私募 基金 经理 周五 走 进 研究 总监 的 办公室 端 着 一 张 幻灯片 —— 五 年 评估 窗口 上 沪深 300 横截面 净 扣 成本 后 夏普 比率 2.0,t 统计量 4.5,样本外 净 值 曲线 漂亮 至极。研究 总监 翻 到 方法 学 那 页。"你 的 N 是 多少?" "我 在 相同 窗口 上 筛 了 大约 100 个 ...
打开 →3.5.3 L4 你交付了一个测得过 tick to trade 延迟的撮合引擎,内部跑 SPSC 环、SIMD、 core affinity CPU 绑核, hdrhistogram 报分位。现在中信建投自营 IT 跟你坐下来,屏幕上是上线检查清单: "它会和我们的会话网关讲 FIX 4.4 吗?TCP 断了能续上吗?对接的同事问你要 NewOrder...
打开 →周五下午,你在一家以沪深300股指期货(CFFEX 主力 IF 合约)为底层的私募(private fund)结构化产品桌上,把一份新发产品交给定价引擎。模型里标的的年化预期收益率 公式 没有出现在最终定价里——程序读到的是无风险利率 公式。隔壁桌的一个同事在白板上写下 公式,说「Girsanov 把 公式 换成了 公式」。这一节要把这条变换从测度论开始拆开...
打开 →某 CFFEX 张江 COLO 机房里,一位延迟工程师在 SSE Level 2 行情上跑 tcpdump ,问你:一个 09:30:00.000001234 时刻穿过交换机的报文,为什么 09:30:00.000004718 才到达策略线程?这 3.5 µs 就是 L1 委托簿能消费的预算上限——而其中大部分都付给了线路到委托簿之间这一层:行情处理器。本课...
打开 →周一早盘的两张价表 周一早上九点二十,一家做股指增强的私募衍生品桌。前四节课你已经把测度从 公式 换到了 公式,把沪深300股指期货(CFFEX IF 主力合约)的无套利价格写成了 公式。现在风控来催价表:上证 50ETF 期权的平值合约要在十分钟后挂出做市报价。第 4 课的风险中性(risk neutral)公式告诉了你期望的形式,却留下两个未结清的缺口:...
打开 →风险中性测度不是世界,它是估价工具 周四收盘前的最后一小时,你在某私募衍生品桌上挂着一份内嵌结构化产品,挂钩沪深300 股指期货 (CFFEX 主力合约 IF) 与上证50ETF 期权 (SSE 50ETF) 的组合敞口。基金经理跑过来问:「这张内嵌期权,我们今晚要不要按交易对手报的价格出货?他们的价格合理吗?」第三课里你已经看过 Girsanov 怎么把真...
打开 →国内某 SSE 接入团队接到任务: 把老 C++ + Boost.Asio 写的行情接入网关重构成 Rust, 单台机器要同时维持 8000 条 TCP 长连接, 把 510300.SH (沪深300 ETF) 等几百只标的的 tick 流落到内部撮合面板。架构师扫一眼说: 上 tokio——别想着每条连接派一个 OS 线程, 8000 个 OS 线程在调度...
打开 →凌晨四点四十五,上海集合竞价开盘前两小时,你坐在 CFFEX 张江 COLO 机房旁的运维室。你是国内一家头部私募 Rust 团队的负责人,沪深300 ETF (510300.SH) 做市策略;L1、L2、L3 三课合并的成果是一个名为 trading engine 的可跑二进制,策略组的研究员要昨晚通宵回归的直方图报告。终端上滚出来的一行: tick to...
打开 →凌晨四点零一,你坐在 CFFEX 张江 COLO 机房楼上的值班室。你是国内一家头部私募的 Rust 工程师,负责沪深300 ETF (510300.SH) 的行情接入;早盘脚本 03:58 跑完,集合竞价 9:15 开始;此刻你的 tokio::net::UdpSocket 订阅器跑合成行情回归时报了一个序列号缺口 —— 序号 142,367,189 与 ...
打开 →周四下午,你在 SZSE 福田 COLO 机房的运维终端前盯着沪深300 ETF 行情接入面板。3.5.2 L3 你亲手写了一个 SPSC 环,目的是让你之后读生产无锁代码时心里有底;但到了生产代码,你 99% 的场合会直接去用 crossbeam queue 。今早的事故复盘把原因摆得明明白白:兄弟基金的策略组自己搓了一个 MPMC 队列,在高竞争下漏掉了...
打开 →周二上午,你坐在 CFFEX 张江 COLO 机房旁边的运维台前。你是一家头部私募 Rust 团队的开发,负责沪深300 ETF (510300.SH) 的做市策略,代码已经过编译、单元测试通过、回测看起来正常,但 profiler 显示热点循环把 70% 的周期花在了两个 AtomicU64::fetch add 调用上 —— 这两个调用按理每次只应消耗一...
打开 →2024 年 4 月 3 日上午 10 点 05 分,灵均投资几个账户在一分钟内集中向 SSE 提交了约 25 亿人民币的沪深300 ETF 套利申报,触发 SSE「短时间大额集中申报」类异常交易监控。当天下午,SSE 发出公开监管措施公告,对灵均实施 30 天交易限制——这是首次有头部量化私募被以此种方式公开点名。之后是数周的倒查审计,跨越多个季度的交易日...
打开 →上海一家 私募 的电子交易主管把一名资深工程师拉到一边:「期权做市新策略要求 沪深300 ETF 的 top of book 在策略线程内到达延迟不超过 50 微秒。我们现在跑 Kafka 是 3 毫秒——差了三个数量级。怎么办?」诚实的答案是「先量,再按 rung 一级一级往下挪」。L2 把你留在 Kafka 这一级—— acks='all' 端到端毫秒级...
打开 →上海某 保险资管 固收交易台周二开盘,5 年期国债(CGB)二级买盘报「估值 2bp」,卖盘挂「估值 +1bp」。所谓「估值」,是 中债估值中心 当日发布的官方到期收益率(yield to maturity, YTM)。同事问你:「估值 2bp 是贵还是便宜?」要回答这个问题,你得先把现金流折现到价格、再从价格反解出 YTM——这两步是本课的全部内容。 把现...
打开 →