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
  → 建立持仓并持续计算盈亏、融资和保证金
  → 用户平仓或风控强平
  → 账本结算、外部对冲核对和财务对账
1
2
3
4
5
6
7
8

# 永续交易平台怎样撮合与结算

先分清两个问题:订单在哪里成交,资产与仓位由谁记账。中心化或链上决定托管、执行与结算边界;订单簿或流动性池决定成交方式,两者不是同一组分类。

常见实现 怎样工作 主要取舍
中心化交易平台 平台维护订单簿、撮合、保证金账户、风控和内部账本 成交与记账快,但用户依赖平台托管、风控与结算
链上执行与结算 智能合约管理抵押品、仓位和结算;可采用订单簿,也可用流动性池与预言机报价 规则与状态可验证,但受 Gas、区块延迟、价格源和合约安全影响
链下撮合、链上结算 链下服务匹配订单,链上验证并结算结果 减少链上计算,但必须处理提交失败、结算延迟,以及链下结果与链上状态不一致

订单簿的收费角色见 Maker/Taker,流动性池原理见 AMM。永续平台常见收入是交易手续费和其他服务费;资金费通常在持仓者之间转移,不应直接算作平台收入。

# CFD 与永续的详细区别

维度 CFD 永续合约
常见标的 外汇、股票、指数、商品、加密资产 以加密资产为主,也可扩展到其他指数化市场
交易场所 多数是经纪商提供的 OTC 产品 CEX 订单簿或链上永续协议
报价与流动性 经纪商参考外部市场或 LP 报价向客户报价,并决定是否向外对冲 订单簿靠买卖挂单成交;部分链上协议采用流动性池与预言机定价
费用付给谁 点差加价、佣金和隔夜融资等由经纪商按规则计收或支付 交易手续费付给平台或协议;资金费通常在多空持仓者之间交换
平台核心风险 客户净敞口、LP 与对冲、跳空和合规 价格脱锚、强平瀑布、预言机、保险基金和智能合约风险
权威账本 经纪商与清结算系统 CEX 内部账本或链上合约状态

一句话区分:CFD 更像经纪商围绕外部标的报价提供的场外差价产品;永续更像没有到期日、靠资金费率锚定现货的交易市场。两者共享杠杆、保证金、实时盈亏和强平能力,但定价、费用、流动性和结算边界不同。

# 一笔交易背后的平台链路

无论是 CFD 还是永续,核心系统都可以用下面的主线理解:

行情与参考价格
  → 报价或订单簿
  → 订单管理与前置风控
  → 撮合、内部成交或外部路由
  → 持仓与实时盈亏
  → 保证金与强平引擎
  → 资金账本、费用与结算
  → 外部 LP、银行、托管方或链上数据对账
1
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
  → 获取订单簿或行情快照
  → 只接受连续的增量序列
  → 发现断号、乱序或连接中断
  → 标记数据过期并重新拉取快照
1
2
3
4
5

前端需要显示连接状态和数据更新时间,不能在行情已经过期时继续让用户误以为价格实时。高频更新还要合并渲染,避免每个 Tick 都让整页 React 组件重新执行。

# 订单状态必须由服务端确认

用户点击下单后,前端可以立即显示 “提交中” ,但不能直接显示 “已成交” 。一次订单可能经历:

draft → submitting → accepted → partially_filled → filled
                          ├─ canceled
                          └─ rejected
1
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 线页面” ,而是一整套交易与风险业务。