CFD 与永续合约业务面试指南
# CFD 与永续合约业务面试指南
面向交易平台的前端与全栈岗位:重点理解平台怎样成交、赚钱、控制风险,以及怎样保证订单和资金正确。基础概念集中在「币圈生存指南」和「合约交易」,按下面清单跳转学习,本篇保留业务分析、工程方案与面试回答。
风险提示
本文用于业务和工程面试准备,不构成交易、法律或合规建议。产品准入、杠杆、强平与客户保护规则因地区、平台和合约而异。
# 面试需要掌握哪些知识
按「必会基础 → 平台业务 → 工程追问」复习。点击概念会直接跳到对应小节;能不看笔记回答右栏的问题,就达到了这一项的复习目标。
# 必会基础:先说清用户在交易什么
| 知识概念与学习入口 | 要能回答什么 |
|---|---|
| 现货、永续、交割与 CFD 对比、CFD 是什么 | 买到的是资产还是合约?是否到期? “现货型 CFD” 为什么也可能需要保证金? |
| 做多、做空与开平仓、订单类型 | 涨跌怎样影响盈亏?市价单和限价单有什么区别,为什么止损不保证按指定价成交? |
| 订单簿与 Maker/Taker、做市商、LP 与 AMM、滑点与价格影响 | 谁提供流动性?限价单一定是 Maker 吗?为什么大单可能成交更贵? |
| 名义价值、杠杆、保证金和盈亏 | 用 2000 USDT、1 ETH、10 倍杠杆,算出仓位价值、保证金与涨跌 100 USDT 的盈亏。 |
| 最新成交价、指数价格与标记价格、资金费率 | 为什么不直接用最新成交价强平?资金费由谁付给谁,为什么有助于价格贴近现货? |
| 逐仓与全仓、强平、破产价、保险基金与 ADL | 亏损会影响哪些资金?强平价和破产价有何区别?强平后的资金缺口怎样处理? |
| CFD 的点差、隔夜融资与持仓规则、常见 CFD 平台 | 为什么刚开仓就可能浮亏?资金费和隔夜融资有什么不同?CFD 一般在哪交易? |
# 平台业务:说清平台赚什么、承担什么风险
| 知识概念与学习入口 | 要能回答什么 |
|---|---|
| CFD 收入与净敞口、A Book、B Book 与混合模式 | 点差加价、佣金与对冲怎样影响利润?客户盈利时平台一定亏损吗? |
| 永续的撮合与结算、CFD 与永续的业务区别 | 中心化、链上与混合实现有什么取舍?哪些底层能力能复用,哪些产品规则必须分开? |
| 平台风险与业务指标 | 成交量与未平仓量有什么区别?为什么交易量高不一定代表平台健康? |
# 工程追问:说清异常发生时怎样保证正确
| 知识概念与学习入口 | 要能回答什么 |
|---|---|
| 交易平台完整链路、资金账本与对账 | 从下单到结算经过哪些系统?为什么不能只更新一个余额字段? |
| WebSocket 行情、订单状态与幂等、金额精度 | 行情断流或乱序怎么办?下单超时怎样避免重复开仓?金额为什么不能直接用浮点数? |
| Canvas 渲染与 K 线图开发 | 怎样高清渲染?缩放后为什么点不准?离屏缓存与 Worker 有何区别?PDF 编辑器经验怎样迁移到交易图表? |
| 看盘指标与聪明钱、指标面试追问 | EMA、RSI、OI 分别看什么?SMC 真能识别机构订单吗?怎样区分实时信号、收盘确认与指标重绘? |
| 链上岗位再看:预言机、确认与扫描、链上重组 | 价格过期时怎样避免错误强平?为什么拿到交易哈希不等于充值成功? |
学完后用 高频面试题 练习口述,再按 目标公司调研清单 补充其实际产品规则。
# 图表与指标的复习顺序
简历有 Canvas / Fabric PDF 编辑器经历,面试官很容易继续追问渲染与交互:先准备 高清渲染、坐标转换、离屏与 Worker,再讲 实时 K 线怎样保证正确且不卡。
看盘指标也值得准备,但前端岗位的重点是知道用户在看什么、数据从哪来、怎样正确计算和展示。先掌握 K 线、成交量、EMA、RSI,再补 OI、资金费率与 SMC;不需要把面试回答变成交易策略分享。
# CFD 平台怎样赚钱
常见收入来源包括:
- 买卖点差(Spread):向客户提供的买卖报价之间有差额;平台扣除外部流动性与对冲成本后,才是实际收入。
- 交易佣金:部分产品按成交金额、手数或固定标准收费。
- 隔夜融资或 Swap:杠杆持仓跨日后,根据产品、方向和基准利率收取或支付融资费用。
- 汇率转换和其他服务费用:账户币种与产品结算币种不同时可能产生换汇成本。
- 内部化风险的损益:B Book 模式下平台承接客户净敞口,可能获利也可能亏损,不能把它说成无风险收入。
这里的敞口(Exposure)指会受价格涨跌影响的风险头寸;客户净敞口是同一标的多空仓位抵消后剩下的方向和金额。例如,客户做多 100 万、做空 70 万,净敞口就是做多 30 万;平台承接这些交易且未向外对冲时,相当于承担相反方向的风险,价格上涨就可能因客户净盈利而亏损。
点差为什么会让开仓立即浮亏、隔夜融资怎样计费,见 CFD 的费用与持仓规则。
# A Book、B Book 与混合模式
这三个词描述 CFD 平台怎样处理客户订单和自身风险,不是前端订单状态:
| 模式 | 平台怎样处理 | 主要收入 | 主要风险 |
|---|---|---|---|
| A Book | 把订单或净敞口传给外部 LP、主经纪商或其他市场对冲 | 点差加价、佣金和服务费 | LP 报价、滑点、拒单、延迟和对冲成本 |
| B Book | 平台内部承接客户净敞口,不立即把每笔交易传到外部 | 点差、费用及内部化结果 | 客户整体盈利、单边行情和集中敞口可能让平台亏损 |
| 混合模式 | 根据客户、产品、流动性和风险限额选择内部化或外部对冲 | 两种模式组合 | 路由规则、利益冲突治理和实时风险控制更复杂 |
点差加价,就是平台在外部 LP 的原始报价上再加一层收费。例如,LP 报价是卖出可得 100、买入需付 101,点差为 1;平台给客户的报价变成卖出可得 100、买入需付 102,点差就变成 2,多出的 1 就是平台加收的部分,尚未扣除其他成本。
A Book 要向外部对冲,不能把客户支付的全部点差都算作平台收入,因此这里强调 “加价” 。B Book 写 “点差” 是概括收入来源,不代表它不能加价;A/B Book 区分的是怎样处理风险,不是怎样收费。
A Book 不等于平台完全没有市场风险,B Book 也不等于平台可以操纵客户。A Book 仍有成交和对冲基差风险;B Book 必须设置产品、客户、方向和总净敞口限额,并接受合规、审计和公平执行约束。
一笔 CFD 订单的典型链路如下:
行情源与 LP 报价
→ 平台生成 Bid / Ask
→ 用户提交订单
→ 余额、保证金、产品与风控校验
→ 内部成交或路由到外部 LP
→ 建立持仓并持续计算盈亏、融资和保证金
→ 用户平仓或风控强平
→ 账本结算、外部对冲核对和财务对账
2
3
4
5
6
7
8
# 永续交易平台怎样撮合与结算
先分清两个问题:订单在哪里成交,资产与仓位由谁记账。中心化或链上决定托管、执行与结算边界;订单簿或流动性池决定成交方式,两者不是同一组分类。
| 常见实现 | 怎样工作 | 主要取舍 |
|---|---|---|
| 中心化交易平台 | 平台维护订单簿、撮合、保证金账户、风控和内部账本 | 成交与记账快,但用户依赖平台托管、风控与结算 |
| 链上执行与结算 | 智能合约管理抵押品、仓位和结算;可采用订单簿,也可用流动性池与预言机报价 | 规则与状态可验证,但受 Gas、区块延迟、价格源和合约安全影响 |
| 链下撮合、链上结算 | 链下服务匹配订单,链上验证并结算结果 | 减少链上计算,但必须处理提交失败、结算延迟,以及链下结果与链上状态不一致 |
订单簿的收费角色见 Maker/Taker,流动性池原理见 AMM。永续平台常见收入是交易手续费和其他服务费;资金费通常在持仓者之间转移,不应直接算作平台收入。
# CFD 与永续的详细区别
| 维度 | CFD | 永续合约 |
|---|---|---|
| 常见标的 | 外汇、股票、指数、商品、加密资产 | 以加密资产为主,也可扩展到其他指数化市场 |
| 交易场所 | 多数是经纪商提供的 OTC 产品 | CEX 订单簿或链上永续协议 |
| 报价与流动性 | 经纪商参考外部市场或 LP 报价向客户报价,并决定是否向外对冲 | 订单簿靠买卖挂单成交;部分链上协议采用流动性池与预言机定价 |
| 费用付给谁 | 点差加价、佣金和隔夜融资等由经纪商按规则计收或支付 | 交易手续费付给平台或协议;资金费通常在多空持仓者之间交换 |
| 平台核心风险 | 客户净敞口、LP 与对冲、跳空和合规 | 价格脱锚、强平瀑布、预言机、保险基金和智能合约风险 |
| 权威账本 | 经纪商与清结算系统 | CEX 内部账本或链上合约状态 |
一句话区分:CFD 更像经纪商围绕外部标的报价提供的场外差价产品;永续更像没有到期日、靠资金费率锚定现货的交易市场。两者共享杠杆、保证金、实时盈亏和强平能力,但定价、费用、流动性和结算边界不同。
# 一笔交易背后的平台链路
无论是 CFD 还是永续,核心系统都可以用下面的主线理解:
行情与参考价格
→ 报价或订单簿
→ 订单管理与前置风控
→ 撮合、内部成交或外部路由
→ 持仓与实时盈亏
→ 保证金与强平引擎
→ 资金账本、费用与结算
→ 外部 LP、银行、托管方或链上数据对账
2
3
4
5
6
7
8
| 模块 | 主要职责 | 关键问题 |
|---|---|---|
| Market Data | 接收报价、成交、指数和订单簿 | 数据是否过期、乱序、缺口或异常 |
| Pricing | 生成 CFD Bid/Ask,或计算指数与标记价格 | 数据源、权重、点差、异常剔除 |
| OMS | 管理订单生命周期 | 重复提交、撤单与成交竞态、状态顺序 |
| Matching / Routing | 订单簿撮合、内部成交或路由 LP | 价格优先、时间优先、滑点和拒单 |
| Position | 聚合成交并计算持仓均价 | 加仓、减仓、反手和多币种换算 |
| Risk Engine | 计算保证金、限额、强平和平台敞口 | 延迟、极端行情、相关性和集中风险 |
| Ledger | 记录余额、费用、资金费率和已实现盈亏 | 借贷平衡、不可变审计、精度和幂等 |
| Settlement / Reconciliation | 与 LP、银行、托管方或链上事实核对 | 少账、重复账、延迟确认和人工恢复 |
# CFD 比永续多关注什么
- 多资产、多交易时段、休市与跳空。
- LP 聚合、A/B Book、对冲路由和执行质量。
- 合约乘数、手数、点值、隔夜融资和结算币种转换。
- 不同司法辖区的客户分类、杠杆限制、风险披露和负余额保护。
# 永续比 CFD 多关注什么
- 指数、标记价格、资金费率和基差。
- 24 小时连续交易、交易所间价差与高波动强平瀑布。
- Open Interest、保险基金、ADL 和风险档位。
- 链上模式中的预言机、智能合约、Gas、MEV、清算机器人和跨链资产风险。
# 前端与全栈岗位应该准备什么
# 实时行情不能只会 “连 WebSocket”
常见做法是先通过快照获得完整状态,再按序列号应用增量更新:
订阅 WebSocket
→ 获取订单簿或行情快照
→ 只接受连续的增量序列
→ 发现断号、乱序或连接中断
→ 标记数据过期并重新拉取快照
2
3
4
5
前端需要显示连接状态和数据更新时间,不能在行情已经过期时继续让用户误以为价格实时。高频更新还要合并渲染,避免每个 Tick 都让整页 React 组件重新执行。
# 订单状态必须由服务端确认
用户点击下单后,前端可以立即显示 “提交中” ,但不能直接显示 “已成交” 。一次订单可能经历:
draft → submitting → accepted → partially_filled → filled
├─ canceled
└─ rejected
2
3
请求超时只代表前端没有收到响应,不代表订单没有进入系统。下单接口需要 Client Order ID 或幂等键,前端在重试前先查询真实订单状态,避免重复开仓。
# 金额与数量不能随便用浮点数
价格、数量、费率和盈亏都有固定 Tick Size、Step Size 与舍入规则。JavaScript number 不能可靠表示所有十进制金额,核心计算应使用整数最小单位、定点 Decimal 或服务端返回的十进制字符串;前端主要负责展示和输入校验,最终保证金与强平判断由权威风控服务完成。
# 交易页面至少要清楚展示
- Bid、Ask、Mark、Index 和 Last 分别是什么价格。
- 杠杆、逐仓或全仓、名义价值、初始保证金和预计强平价。
- 交易手续费、资金费率或隔夜融资的方向和预计金额。
- 订单是已接受、部分成交、已成交、已撤销还是被拒绝。
- 行情、仓位或保证金数据是否过期。
- 链上充值或提现是待确认、已确认还是失败,不能只凭交易哈希宣布成功。
# 平台风险与业务指标
# 面试应能说出的主要风险
- 市场风险:客户持仓或平台净敞口在价格快速变化时产生损失。
- 流动性风险:订单无法按预期价格成交,强平时滑点扩大。
- 跳空与穿仓风险:价格跨过风险线,来不及在破产价之前平仓。
- 定价风险:指数成分、LP 报价或预言机异常导致错误报价和强平。
- 对手方与托管风险:CFD 经纪商、LP、中心化交易所或托管方无法履约。
- 技术风险:重复订单、行情断流、撮合故障、账本不一致和强平延迟。
- 链上风险:合约漏洞、MEV、链拥堵、重组、桥和预言机攻击。
- 合规风险:牌照、KYC、AML、制裁、地区准入、杠杆和营销限制不符合要求。
# 常见业务指标
| 指标 | 说明 | 为什么重要 |
|---|---|---|
| Trading Volume | 一段时间内的成交额 | 交易活跃度与手续费基础 |
| Open Interest | 尚未平仓合约的名义价值 | 市场参与度与潜在强平规模 |
| Spread | 买卖价差 | 用户成本、流动性和平台收入 |
| Market Depth | 不同价格档位可成交的数量 | 大单滑点与强平承载能力 |
| Funding / Basis | 资金费率及永续与指数价差 | 多空拥挤和价格锚定状态 |
| Liquidation Volume | 被强平仓位规模 | 杠杆风险与极端行情压力 |
| Insurance Fund | 保险基金余额与变化 | 系统吸收坏账的缓冲能力 |
| Net Exposure | 平台按标的和方向汇总的净敞口 | CFD 对冲和整体市场风险 |
| Rejection / Slippage | 拒单率与实际成交偏差 | LP、撮合和用户执行质量 |
| Reconciliation Break | 内外账不一致数量与金额 | 资金安全与运营恢复压力 |
交易量高不一定代表业务健康。如果点差异常、拒单率高、保险基金持续下降或单边敞口过大,平台可能是在用更高风险换取表面增长。
# 为什么一家 Web3 公司同时做 CFD 和永续
两类业务可以复用行情、账户、KYC、订单、持仓、风控、账本、客服和数据分析能力,也能覆盖传统多资产交易者与加密原生用户。但复用的是基础能力,不代表可以混用全部规则:
- CFD 的报价、LP 路由、隔夜融资和监管边界需要独立处理。
- 永续的指数、资金费率、保险基金和链上风险需要独立处理。
- 用户余额、公司资金、LP 资金和链上托管资产必须在账本与权限上明确隔离。
- 产品页面必须明确用户交易的是 CFD、中心化永续还是链上永续,不能让用户误以为自己持有现货。
面试回答:CFD 和永续都需要实时行情、订单、持仓、保证金和风控,所以公司可以复用大量交易基础设施;CFD 更擅长覆盖外汇、股票、指数和商品,永续更贴近加密用户的 24 小时杠杆交易需求。真正需要分开的,是定价和费用机制、流动性来源、托管结算以及监管边界。合理做法是复用底层能力,同时让两套产品规则和风险账本保持清楚。
# 高频面试题
1. CFD 和永续合约最核心的区别是什么?参考答案
两者都让用户不直接持有标的就交易价格变化,也都可能使用杠杆和保证金。CFD 通常是用户与经纪商之间的场外差价合约,价格参考外部标的或 LP 报价,成本主要包括点差、佣金和隔夜融资;永续是没有到期日的合约市场,订单簿或 AMM 形成价格,再通过指数和资金费率锚定现货。两者可以复用订单、持仓和风控基础设施,但定价、流动性、结算与监管边界不同。
2. 为什么永续没有到期日还能跟随现货价格?参考答案
传统期货可以在到期交割时向现货收敛,永续没有这个机制,所以平台引入指数价格和资金费率。当永续持续高于现货时,通常让多头向空头付费;低于现货时通常反过来,改变持仓成本并吸引套利资金把价差拉回。费率方向最终由平台公式决定,不能只用市场看涨或看跌判断。
3. 为什么强平使用标记价格,而不是最新成交价?参考答案
最新成交价可能被小额成交、薄订单簿或短时插针拉偏。如果直接用它强平,会让用户因为局部异常成交被错误清算。标记价格通常参考多个现货市场形成的指数,并加入合理基差,因此更适合评估仓位真实风险。平台仍要处理指数源中断、异常值和预言机延迟,标记价格并不是天然绝对可靠。
4. 逐仓和全仓怎么选?参考答案
逐仓主要用分配给单个仓位的保证金承担亏损,风险边界清楚,但该仓位较容易单独强平;全仓让账户可用权益共同支持多个仓位,能提高资金利用率,但一个大额亏损可能拖累其他仓位。平台实现时不能只改一个前端开关,保证金占用、可用余额、强平范围和风险提示都必须跟着模式变化。
5. A Book 和 B Book 是什么?参考答案
A Book 是把订单或净敞口传给外部 LP 对冲,平台主要赚点差加价和佣金,但仍承担滑点、拒单和对冲基差风险。B Book 是平台内部承接客户净敞口,可能得到内部化收益,也可能在客户整体盈利或单边行情中亏损。成熟平台常用混合模式,并按产品、客户和风险限额决定是否外部对冲,同时需要管理利益冲突和公平执行。
6. 平台怎样避免强平后出现坏账?参考答案
第一层是正确的指数和标记价格,避免异常成交误触发;第二层是初始保证金、维持保证金、风险档位和仓位限额;第三层是在到达破产价前撤单、部分减仓或强平;第四层是保险基金吸收极端滑点后的缺口;保险基金仍不足时才可能使用 ADL。工程上还要保证风险计算低延迟、订单和账本幂等,并通过压力测试和对账及时发现缺口。
7. CFD 和永续平台分别怎样赚钱?参考答案
CFD 常见收入是买卖点差、佣金、隔夜融资、换汇和其他服务费,B Book 还会产生内部化损益,但同时承担客户净敞口风险。永续平台常见收入是 Maker 或 Taker 手续费、强平相关费用及其他服务费;资金费率通常是多空之间转移,不应直接说成平台收入。回答收入时要同时说明流动性、对冲、坏账和合规成本。
8. 如果让你设计交易页面,最容易忽略什么?参考答案
我会重点防止用户把暂时状态误认为最终事实。行情要显示连接和更新时间,断流后不能继续伪装实时;订单提交成功不等于成交,要展示接受、部分成交、成交、撤销和拒绝;钱包拿到交易哈希也不等于充值确认。金额使用定点精度,查询依赖快照加连续增量,下单使用幂等键,保证金和强平结果以服务端风控为准。
9. 交易系统中为什么资金账本不能只保存一个 balance 字段?参考答案
一个可修改余额无法解释钱为什么变化,也难以处理重复消息和事后对账。更可靠的设计是为入金、冻结、解冻、手续费、已实现盈亏、资金费率和提现记录不可变账本分录,再由分录计算或校验余额。每个业务操作使用唯一幂等键,账本借贷保持平衡,并定期与 LP、银行、托管方或链上资产核对。
10. CFD 公司开展永续业务,技术上可以直接复用整套系统吗?参考答案
不能整套照搬,但可以复用账户、KYC、行情接入、订单状态、持仓、账本、监控和客服等底层能力。CFD 需要 LP 报价、A/B Book、隔夜融资和多市场交易时段;永续需要指数、标记价格、资金费率、保险基金、ADL,链上模式还多出预言机和合约安全。合理边界是共享基础设施,分别实现产品规则、风险模型和清结算适配。
# 看盘指标面试追问
1. EMA 和 RSI 分别干什么?RSI 超买就应该卖吗?参考答案
EMA 是给近期价格更高权重的平均线,用来平滑价格、观察趋势;RSI 比较近期上涨与下跌幅度,观察动能强弱。RSI 超买不代表下一步必跌,强趋势中可以一直处于高位。开发时我更关注数据周期、公式参数和确认状态是否一致,避免把还没收盘的实时变化展示成已经确定的买卖信号。
2. 聪明钱指标真的能知道机构在买什么吗?参考答案
图表里的 SMC 主要按价格高低点、结构突破和快速波动标记区域,并没有读取机构的真实账户或订单。BOS 观察结构突破,CHoCH 提示结构可能改变,订单块是脚本识别的价格区域,不是实际订单簿。链上的聪明钱钱包标签属于另一类地址分析。我会按数据来源区分两者,不把推测出来的区域显示成已经证实的机构挂单。
3. 指标历史上很准,为什么实时运行却对不上?参考答案
先区分正常变化和未来信息泄漏。未收盘 K 线在变,指标跟着变化是正常的;有些结构高低点要靠后续 K 线确认,标记虽然画回过去的位置,当时却还不知道。验证时要按当时可获得的数据回放,并记录信号第一次出现的时刻,同时核对周期、时区、价格源与参数。不能只拿最终历史图证明一个信号实时就能做到。
4. 成交量和 OI 有什么区别?OI 涨就代表更多人在做多吗?参考答案
成交量统计一段时间已经发生的交易,OI 统计当前尚未平仓的合约规模。成交很多不一定留下更多持仓,而每份合约都有多空两侧,所以 OI 上升不能单独证明多头更多。展示时要说明 OI 是张数、币数量还是名义价值,并结合价格、资金费率等解释,不把单个统计值直接包装成方向判断。
5. 如果产品要增加一个 EMA 指标,你会怎样实现和验证?参考答案
先明确品种、周期、价格源、周期参数和初始值规则,再用相同历史 K 线计算并绘制指标。未收盘 K 线更新时,基于上一根已收盘的 EMA 状态重算,不能每来一条 Tick 就推进一个周期。用固定数据与参考结果对照,并测试切换周期、历史补数和断线重连;历史价格修订后,要重算后续受影响结果。最后把数据计算和图表刷新分开,保证正确性与流畅度。
# 面试前研究目标公司的问题
面试前不需要猜答案,可以从官网、产品页面、牌照信息和面试交流中确认:
# CFD 业务
- 主要提供外汇、股票、指数、商品还是加密 CFD?
- 采用 A Book、B Book 还是混合模式?外部 LP 和对冲由哪一层管理?
- 主要收入来自点差、佣金还是隔夜融资?
- 目标客户和服务地区是什么?杠杆、负余额保护和 KYC 规则怎样区分?
- 平台怎样处理休市、跳空、公司行动和多币种结算?
# 永续业务
- 是中心化订单簿、链上 AMM、链下撮合链上结算,还是其他架构?
- 使用什么抵押品?支持逐仓、全仓还是组合保证金?
- 指数由哪些来源构成?标记价格和资金费率怎样计算?
- 谁执行强平?是否采用部分强平、保险基金和 ADL?
- 用户资产由平台托管、第三方托管还是智能合约托管?
# 岗位与工程
- 岗位更靠近交易前端、账户订单、撮合风控、钱包链上,还是数据与运营?
- 订单和行情的一致性目标是什么?怎样处理断线、乱序、重复与超时?
- 目前最重要的业务指标和风险指标是什么?
- CFD 与永续复用了哪些系统,又有哪些明确隔离的服务和账本?
- 图表使用 TradingView、Lightweight Charts 还是自研?行情来源、历史数据与实时流怎样衔接?
- 产品提供哪些指标与画线功能?指标是实时预览还是收盘确认,是否支持信号提醒与回放?
这些问题既帮助判断岗位,也能让面试官看到你理解的不是 “做一个 K 线页面” ,而是一整套交易与风险业务。