函数与作用域
在台子上坐了三周,你接手的策略组发现一个尴尬场面:那段计算 stylized P&L 的代码 (p1 p0) shares fee 被复制粘贴到了七个文件里。今天 A 股印花税口径调整(卖出方向 0.03% 的一个示例性常数,真实税率以监管口径为准),你要在收盘前把这条修改打到七个地方。你改了六个,漏了第七个,周一对账时某条策略的 P&L 偏了三块钱。修法不...
打开 →GLOBAL SEARCH
搜索在服务端完成,题目解析与答案不会进入搜索结果。登录后可搜索自己的收藏题单。
找到 17 个结果
English questions在台子上坐了三周,你接手的策略组发现一个尴尬场面:那段计算 stylized P&L 的代码 (p1 p0) shares fee 被复制粘贴到了七个文件里。今天 A 股印花税口径调整(卖出方向 0.03% 的一个示例性常数,真实税率以监管口径为准),你要在收盘前把这条修改打到七个地方。你改了六个,漏了第七个,周一对账时某条策略的 P&L 偏了三块钱。修法不...
打开 →旁边那台的同事盯沪深300 ETF 的日内 tick 流。早上 10 点,她已经积了 8 万条 tick 行的 CSV;她的开盘脚本只是一段 Python:把每行读进来,过滤掉 volume 100] [364100.0, 4860.0, 546090.0, 3654.0] 二十行删到四行,懂语法的同事五秒就能审完——这是要追的标准。 练习 Given pr...
打开 →周五下午——日内流改完后第三周。风险口要你每天产出的同一个 P&L 数字,但要求改成「他们的收盘脚本能 import 进去用的函数」。所以那个一直被你贴到每个文件里的 pnl(p0, p1, ...) 得从「笔记本里的片段」升级成「另一个组按名导入的模块」。雪上加霜的是上午一条沪深300 ETF 的 tick 飞来一个 price = 0 ,你的除法直接抛 ...
打开 →早上 7:42,做市台。研究员在群里丢了一句:「把跳空分类脚本重跑一下,阈值改成 5%。」打开她的笔记本,屏幕上是十几行 Python——没有 import、没有类,只有一段 if/elif/else 在判断 stdin 读进来的收益率。新人立刻问了一句:「Python 凭什么知道 if 到哪一行结束?」这门课就从这里讲起。学完之后你能默写出同样的脚本:st...
打开 →中信建投自营 IT 团队的同事把一份 C 的期权定价库 libquant pricer.so 扔到你桌上。"我们这套是十几年前用 C 写的,封装了 Abramowitz Stegun 7.1.26 标准正态 CDF 近似;你的 Rust 引擎要在中证 510300 期权上调它,先别想着重写。"——这就是 2026 年量化 Rust 开发者面对的现实: 没...
打开 →凌晨四点四十五,上海集合竞价开盘前两小时,你坐在 CFFEX 张江 COLO 机房旁的运维室。你是国内一家头部私募 Rust 团队的负责人,沪深300 ETF (510300.SH) 做市策略;L1、L2、L3 三课合并的成果是一个名为 trading engine 的可跑二进制,策略组的研究员要昨晚通宵回归的直方图报告。终端上滚出来的一行: tick to...
打开 →周四下午,你在 SZSE 福田 COLO 机房的运维终端前盯着沪深300 ETF 行情接入面板。3.5.2 L3 你亲手写了一个 SPSC 环,目的是让你之后读生产无锁代码时心里有底;但到了生产代码,你 99% 的场合会直接去用 crossbeam queue 。今早的事故复盘把原因摆得明明白白:兄弟基金的策略组自己搓了一个 MPMC 队列,在高竞争下漏掉了...
打开 →字节火山引擎的某 TiKV 同事在你刚加入沪深300量化团队的第二周走过来。他抱着一台戴尔笔记本,屏幕上是 3.5.2 L3 你亲手写的那个 SPSC 环形缓冲——给 510300.SH (沪深300 ETF) 行情事件用的,生产者一个核心、消费者一个核心,中间两个 AtomicUsize 当下标。"我们要把这段代码搬进 CFFEX 张江 COLO 的 pr...
打开 →某 私募 事件驱动组的盘后会议。Q3 季报披露季刚开始,组里负责 沪深300 的研究员准备做一条 PEAD 信号:盈利惊喜后 60 个交易日的漂移。负责数据的同事翻出来一份 Wind 的盈利数据库,里面 actual eps、consensus eps、announcement date 三列齐全;研究员说,把 SUE 算出来,按 announcement ...
打开 →某 私募 量化部周一晨会上,PM 把任务排了下来:"沪深300 上跑一套完整的量价加基本面公式库,12 月底之前要给出每一条的样本内 IC、回看敏感性和换手率。"你点头接下任务,转身坐到屏幕前——上一课刚学过的 DSL 与清洗流水线就是你今天的工具。本课要做的,就是把工业界与学术界十年下来已经沉淀好的规范公式库一条一条搬上来,每条信号要(a)能用 DSL 写...
打开 →国内某头部私募的低延迟交易团队把 510300.SH (沪深300 ETF) 的行情接入和 50ETF 策略引擎之间的那一跳从 crossbeam::channel 换成手写 SPSC 环形缓冲后, P99.9 的延迟从 25 μs 掉到 6 μs——单跳省了 20 μs, 是策略整体延迟预算 ( 50 μs) 的 40%。这就是这一节课的全部出发点: Mu...
打开 →国内某头部 quant 在 CFFEX 数据中心做股指期货 colo 部署的基础架构 lead,正在 review 一名 junior engineer 的一行 patch。这行改动把策略事件计数器上的 std::mutex 删了——这个计数器是 dashboard 每秒读一次的指标。Engineer 的理由:「计数只增不减,热点路径上也从不读它。」PR 描...
打开 →开场 某私募周二上午九点三十一,沪深300 ETF(510300.SH)刚收完集合竞价,团队的 tick 处理器跑了九十秒。两个生产者线程在排空一个 Tushare 风格的行情 websocket——一个分片走 SSE(上海)回报,一个分片走 SZSE(深圳)回报——四个消费者线程各跑一个下游策略。九十三秒时,四个策略共写的盈亏累计器显示 1400000 元...
打开 →国内一家私募在 CFFEX 数据中心 colo 部署的资深系统工程师,正在用回放数据 profile 那条新搭起来的 IF/IH 股指期货做市路径。热点循环是这样的:接收线程从组播 UDP 包中 mmap 解出报文,先解析 CTP 行情字段,把一个 TickEvent 推到由 std::mutex 保护的 std::queue 上;策略线程 pop、更新本地...
打开 →周五下午两点,你在国内一家头部私募的做市桌写 C++。早盘上线了一版新写的 on tick 处理流程,沪深300成分股的 tick 流压进策略;你顺手 perf record 采了五秒看火焰图。策略逻辑本身只占 60% 周期,另外 40% 不在你写的任何函数里——而是稳稳落在 int malloc 、 int free 、 malloc consolidat...
打开 →周一早盘,某上海私募的量化研究员盯着屏幕:你昨天回测的沪深300日线截面动量因子,年化收益比上周报表显示的低了 280bp。同样的标的池、同样的回看窗口、同样的代码——但 bug 不在信号里,而在数据里。供应商的「复权收盘价」字段在隔夜悄悄又重算了一轮分红复权(back adjustment),你的损益列于是双重计入了复权调整。本课要交给你的,就是看 5 分...
打开 →某 HFT 私募在 CFFEX 张江 COLO 机房的市场数据组长,把你叫到白板前,09:25 开盘前问一个问题:沪深300 ETF(510300.SH)的委托簿在线路上和内存里到底应该怎么存,才能让 SSE 推送的二级行情每秒 20 万条增量消息全部落本,同时热路径上一次 malloc 都不调?你在白板上画出的那张结构图,就是这家私募所有市场数据系统、撮合...
打开 →