💱 外汇交易
📖 业务知识
外汇交易类型
外汇交易(Foreign Exchange, FX)是指不同货币之间的兑换和交易,是全球最大的金融市场,日均交易量超过7.5万亿美元。银行外汇业务主要包括以下类型:
| 交易类型 | 交割时间 | 主要用途 | 定价机制 |
|---|---|---|---|
| 即期外汇(Spot) | T+2(两个工作日) | 进出口贸易结算、即时换汇需求 | 即期汇率,实时市场报价 |
| 远期外汇(Forward) | 未来约定日期(如1M/3M/6M/1Y) | 锁定汇率、对冲汇率风险 | 即期汇率为基础 + 掉期点(由利率平价推导) |
| 外汇掉期(Swap) | 近端+远端两笔方向相反的交易 | 调节币种头寸、短期融资、规避汇率风险 | 近端即期汇率 + 远端远期汇率 |
| 外汇期权(Option) | 欧式(到期日行权)或美式(任意日行权) | 汇率风险管理(买方有权利无义务)、投机交易 | 期权费 + 执行汇率 |
💡 掉期点(Swap Points)
远期汇率 = 即期汇率 + 掉期点。掉期点由两种货币的利率差决定:若报价货币利率高于基准货币利率,掉期点为负(远期贴水);反之为正(远期升水)。远期升贴水的计算公式:
掉期点 = 即期汇率 × (报价货币利率 - 基准货币利率) × 天数 / 360
汇率体系
银行汇率体系是外汇交易的核心定价基础,主要包括以下关键概念:
| 汇率术语 | 英文 | 定义 | 银行视角 |
|---|---|---|---|
| 买入价 | Bid Rate | 银行买入外汇的价格 | 银行支付人民币换取客户外汇 |
| 卖出价 | Offer/Ask Rate | 银行卖出外汇的价格 | 客户支付人民币换取银行外汇 |
| 中间价 | Mid Rate | 买入价与卖出价的算术平均值 | (买入价 + 卖出价) / 2,参考基准 |
| 结汇 | Settlement of FX | 客户将外汇卖给银行,换为人民币 | 银行用买入价从客户购汇 |
| 售汇 | Sale of FX | 客户从银行购买外汇,支付人民币 | 银行用卖出价向客户售汇 |
汇率标价方法:
- 直接标价法(Direct Quotation):以本币表示单位外币,如 USD/CNY = 7.25(中国采用),即1美元 = 7.25人民币
- 间接标价法(Indirect Quotation):以外币表示单位本币,如 GBP/USD = 1.28,即1英镑 = 1.28美元
- 点差(Spread):卖出价与买入价之差,即银行的交易利润,如 USD/CNY Bid 7.2400 / Ask 7.2600,点差为 200 点(pips)
💡 交叉汇率(Cross Rate)计算
当两种货币之间没有直接报价时,通过各自对美元的汇率套算。例如,已知 USD/JPY = 150 和 USD/CHF = 0.90,则 CHF/JPY = 150 ÷ 0.90 = 166.67。测试需覆盖:直接交叉汇率、间接交叉汇率、以及多个中间货币的链式套算场景。
结售汇业务
结售汇是银行最基本的外汇业务,受国家外汇管理局(SAFE)严格监管。根据银行外汇业务性质,分为经常项目和资本项目:
- 经常项目结售汇(贸易/非贸易):货物贸易、服务贸易、收益和经常转移项下的结汇/购汇。货物贸易需匹配海关进出口数据(货物贸易外汇监测系统),个人结汇/购汇有年度5万美元等值额度限制
- 资本项目结售汇:外商直接投资(FDI)、对外直接投资(ODI)、外债、跨境融资、证券投资(QFII/RQFII/沪港通)等,需提供外汇局核准件或登记凭证
业务基本流程:
- 客户提交结汇/售汇申请,填写《涉外收入申报单》或《境外汇款申请书》
- 银行审核交易背景真实性(合同、发票、报关单、资本项目核准件等)
- 系统查询客户结售汇额度(个人年度额度、企业外汇账户余额)
- 执行汇率报价(实时牌价或优惠汇率),客户确认后成交
- 生成结售汇水单/交易确认书,完成人民币/外币资金交割
- 向外汇局报送结售汇统计数据(BOP国际收支申报)
外汇监管要求
中国外汇管理遵循"经常项目可兑换、资本项目逐步开放"的原则,主要监管法规和系统包括:
- 《外汇管理条例》:国务院行政法规,明确外汇管理基本框架,规定经常项目外汇收支应具有真实合法基础,资本项目外汇管理依法实施
- 个人外汇管理办法:个人年度结汇和购汇便利化额度分别为等值5万美元,超额度需提供真实性证明材料
- 货物贸易外汇管理:企业货物贸易外汇收支需与海关进出口数据匹配,实行总量核查和分类管理(A/B/C类企业)
- 跨境人民币结算:允许以人民币进行跨境贸易和投资结算,不纳入外汇额度管理,但需通过RCPMIS系统报送
- 国际收支统计申报(BOP):所有跨境资金流动均需通过银行向外汇局进行国际收支申报,包括基础信息和申报信息两部分
🧪 功能测试要点
1. 汇率计算准确性
| 测试场景 | 验证点 | 预期结果 |
|---|---|---|
| 基础购汇计算 | 客户用人民币购汇10000美元,卖出价7.2500 | 应付人民币 = 10000 × 7.2500 = 72500.00 |
| 基础结汇计算 | 客户将10000美元结汇为人民币,买入价7.2400 | 应收人民币 = 10000 × 7.2400 = 72400.00 |
| 小额币种精度 | 日元JPY/CNY购汇50000日元,卖出价0.048000 | 应付人民币 = 50000 × 0.048000 = 2400.00(日元精度通常保留2位) |
| 交叉汇率计算 | EUR→CNY无直接牌价,需通过EUR/USD和USD/CNY套算 | EUR/CNY = EUR/USD × USD/CNY,验证套算精度(保留4-6位小数) |
| 掉期点计算 | USD/CNY即期7.2500,美元利率5.5%,人民币利率1.5%,1个月(30天) | 掉期点 = 7.2500 × (1.5%-5.5%) × 30/360 = -0.0242;远期汇率 = 7.2258 |
| 汇率精度截断 | 计算结果超出币种标准精度(如USD/CNY为4位小数) | 按币种标准精度四舍五入/截断,验证舍入方向一致性 |
| 优惠汇率计算 | 对VIP客户在基准卖出价基础上优惠50个基点(BP) | 实际成交价 = 卖出价 - 0.0050,验证大额/贵宾优惠分层逻辑 |
2. 结汇/售汇流程
| 测试场景 | 验证点 | 预期结果 |
|---|---|---|
| 个人额度内结汇 | 个人当年度累计结汇3万美元,在5万美元额度内 | 正常结汇,不要求额外证明材料,系统自动扣减年度额度 |
| 个人超额度结汇 | 个人当年度已结汇4.5万美元,再结汇1万美元(累计5.5万) | 仅允许结汇0.5万美元,超出部分拒绝或要求提供真实性证明 |
| 企业货物贸易 | 企业凭进口合同和报关单申请购汇 | 审核报关单与合同一致性,系统自动匹配海关数据后允许购汇 |
| 资本项目购汇 | FDI项下资本金结汇,企业提供外汇局业务登记凭证 | 审核登记凭证有效性,在登记金额范围内允许结汇 |
| 反洗钱筛查 | 大额购汇交易(≥等值1万美元)触发反洗钱筛查 | 系统自动进行制裁名单匹配、可疑交易规则评估,高风险交易转人工审核 |
| 交易撤销/冲正 | 外汇交易成交后因汇率异常或操作错误申请撤销 | 在未清算前可发起冲正,生成反向交易冲销,需双人复核授权 |
⚠️ 汇率波动场景
测试需覆盖:客户发起交易时的报价汇率与实际成交时的汇率不一致(汇率波动≥50bps)。系统是否允许"锁价"功能?锁价有效期多长(通常10-30秒)?超时后系统是否重新报价?这些"滑点"场景是外汇交易测试的关键风险点。
3. 额度控制
| 测试场景 | 验证点 | 预期结果 |
|---|---|---|
| 个人年度额度查询 | 查询个人当年度结汇/购汇已用额度与剩余额度 | 精确显示已用金额、剩余金额、额度重置日期(次年1月1日) |
| 跨年额度重置 | 年末12月31日 23:59与次年1月1日 00:00的额度切换 | 额度正确重置,12月31日交易归入当年,1月1日归入新年 |
| 多渠道额度共享 | 同一客户在柜面、网银、手机银行同时操作购汇 | 额度实时共享扣减,防止多渠道并发突破5万美元额度限制 |
| 企业外汇账户 | 企业经常项目外汇账户余额控制(目前无强制限额) | 验证账户余额实时更新、透支控制、冻结/解冻逻辑 |
| B类企业额度 | 外汇局分类为B类的企业,超过可收付汇额度 | 系统拦截交易,提示"超外汇局额度,请联系外汇局调整" |
4. 跨境申报
| 测试场景 | 验证点 | 预期结果 |
|---|---|---|
| 国际收支申报 | 跨境汇款金额超过申报起点(目前暂免个人5000美元以下) | 系统生成BOP申报单,申报交易编码、国别、币种、金额 |
| 大额交易报告 | 单笔或当日累计等值人民币5万元以上的跨境交易 | 系统自动生成大额交易报告,按规定时间报送反洗钱监测中心 |
| 可疑交易报告 | 交易特征匹配可疑模型(如分拆购汇、频繁跨境小额汇款) | 标记可疑交易,生成可疑交易报告,触发人工复核和报告流程 |
| 贸易信贷报告 | 企业进出口贸易中存在预收/预付/延收/延付(≥90天) | 系统提示企业需在30天内通过货物贸易监测系统报告贸易信贷 |
⚡ 性能测试要点
汇率牌价更新
⏱️ 牌价更新SLA
银行间外汇市场(CFETS)每个交易日提供多轮牌价更新。系统需在牌价源更新后 ≤ 1秒内同步至所有业务渠道(柜面、网银、手机银行、ATM)。牌价延迟超过5秒将产生客户套利窗口,属于重大生产风险。
- 多数据源汇聚:系统可能接收多个牌价源(路透、彭博、CFETS、总行报价),需验证多源数据的一致性、优先级和切换策略
- 渠道同步延迟:从总行牌价中心向各分行、各渠道分发时的延迟分布(P50/P95/P99),验证消息中间件的吞吐量和可靠性
- 牌价缓存策略:在高频查询场景下(如手机银行页面刷新),牌价缓存的命中率和过期策略,避免过期牌价被用于报价
- 极端波动压力:模拟汇率剧烈波动场景(如非农数据发布、央行干预),牌价每秒变化100+点,验证系统在剧烈波动下的稳定性和报价准确性
实时交易并发
- 峰值TPS模拟:模拟交易高峰时段(如开盘/收盘、重大经济数据发布),目标支持500+ TPS外汇实时交易并发,P99延迟≤500ms
- 报价引擎性能:高并发下报价引擎的吞吐量,单次报价计算耗时(含优惠规则、交叉汇率套算)≤ 5ms
- 撮合引擎测试:对支持外汇做市商业务的系统,验证中央限价订单簿(CLOB)的撮合性能,订单匹配延迟≤1ms
- 数据库压力测试:大量并发的额度扣减、交易记账、头寸更新操作,验证数据库行级锁、死锁检测和连接池管理
- 长稳测试:24小时持续压测,验证内存泄漏、GC(垃圾回收)停顿、连接池泄漏等长期稳定性问题
其他性能场景
- 结售汇报送批处理:日终向外汇局批量报送结售汇统计数据,验证10万+笔交易明细的生成、加密、传输效率(目标≤10分钟)
- 头寸计算:实时计算各币种外汇头寸(多头/空头)和风险敞口,验证高频交易场景下头寸计算的实时性和准确性
- 反洗钱实时筛查:每笔外汇交易触发反洗钱规则引擎(数十条规则),验证规则引擎在高并发下的决策延迟(目标≤50ms)
- 灾备切换:主中心故障时,系统切换至灾备中心,验证切换后牌价同步恢复时间(RTO≤5分钟)和交易数据零丢失(RPO=0)
📋 外汇交易测试检查清单
| 测试类别 | 检查项 | 优先级 |
|---|---|---|
| 汇率计算 | 基础购汇/结汇、小额币种精度、交叉汇率、掉期点、汇率截断、优惠汇率 | P0 |
| 结售汇流程 | 个人额度内/超额、企业货物贸易/资本项目、反洗钱、交易冲正 | P0 |
| 额度控制 | 年度额度、跨年重置、多渠道共享、企业账户余额、B类企业限额 | P0 |
| 跨境申报 | BOP申报、大额交易报告、可疑交易报告、贸易信贷报告 | P1 |
| 牌价性能 | 多数据源同步、渠道分发延迟、缓存策略、极端波动稳定性 | P0 |
| 并发性能 | 500+ TPS实时交易、报价引擎≤5ms、批处理≤10分钟、反洗钱≤50ms | P1 |