library(vroom)
library(dplyr)
library(lixingr2)
library(lubridate)
library(tidyr)
<- lxr_macro_interest_rates(
china_aaa_corporate_deposit_1y_yield token = Sys.getenv("LIXINGR_TOKEN"),
area_code = "cn",
start_date = "2020-01-01",
end_date = "2025-09-06",
metrics_list = "cdnaaa_y1",
options = list(call_config = list(return_format = "tibble"))
|>
) mutate(date = date(ymd_hms(date))) |>
select(date, cdnaaa_y1)
<- vroom(
usd_cny_c_swap_1y "USD_CNY_C_Swap_定盘曲线_1Y.csv",
delim = ",",
col_types = "Dcd",
locale = locale(encoding = "GB2312")
|>
) select(
date = 日期,
usd_cny_swap_pips_1y = 掉期点_Pips
|>
) filter(date >= "2020-01-01")
<- lxr_macro_fx(
usd_cny_fx_rates token = Sys.getenv("LIXINGR_TOKEN"),
start_date = "2020-01-01",
end_date = "2025-09-06",
from_currency = "USD",
to_currency = "CNY",
options = list(call_config = list(return_format = "tibble"))
|>
) mutate(date = date(with_tz(ymd_hms(date), "Asia/Shanghai"))) |>
select(date, usd_cny_close_price = close)
<- lxr_macro_national_debt(
us_treasury_1y_yield token = Sys.getenv("LIXINGR_TOKEN"),
area_code = "us",
start_date = "2020-01-01",
end_date = "2025-09-06",
metrics_list = "tcm_y1",
options = list(call_config = list(return_format = "tibble"))
|>
) mutate(date = date(with_tz(ymd_hms(date), "Asia/Shanghai"))) |>
select(date, us_tcm_y1 = tcm_y1)
<- china_aaa_corporate_deposit_1y_yield |>
hedged_yield_data left_join(usd_cny_c_swap_1y, by = "date") |>
left_join(usd_cny_fx_rates, by = "date") |>
left_join(us_treasury_1y_yield, by = "date") |>
drop_na() |>
mutate(
hedged_china_yield_1y = cdnaaa_y1 +
0 - usd_cny_swap_pips_1y / (usd_cny_close_price * 10000))
( )
可交易口径中美利差测算
1 计算口径
为与直接买美元短期资产收益可比,需用外汇掉期将汇率风险完全对冲。下文 \(S\)、\(F\) 均为 USD/CNH 报价方向。记:
即期汇率:\(S\)
远期汇率:\(F\)
掉期点(pips):\(P\)
掉期点与价差的关系:
\[ P = (F - S) \times 10000 \implies F - S = \frac{P}{10000} \]
我们选择一年期美元对人民币 C-Swap 定盘价,所以不需要额外年化掉期点。求掉期点占即期的百分比,需作如下转换:
\[ \frac{F-S}{S}\ = \frac{\frac{P}{10000}}{S} = \frac{P}{S\times 10000} \]
当结算货币是 USD,而资产货币是 RMB,且使用的点数来自 USD/CNH 这一报价方向时,计算“美元对冲后的等效回报”需要对掉期点占即期的百分比取相反数。
中国利率债曲线最活跃在中长端,1 年期国债常“离线”、受供需与政策扭曲更大。1 年同业存单点位更能代表市场边际资金价格。因而用外汇掉期将汇率风险完全对冲后,1 年期人民币 AAA 级同业存单折算成“美元计价”的对冲后收益率(也可理解为等效美元收益率)公式为:
\[ \text{1 年期中债商业银行 AAA 级同业存单到期收益率} +\left(0-\frac{\text{1 年期美元对人民币外汇掉期 C-Swap 定盘价}}{\text{美元兑离岸人民币即期汇率} \times 10000}\right) \]
2 数据处理
近几年,美元兑离岸人民币与在岸人民币的即期汇率基本一致。鉴于可通过 API 获取在岸人民币汇率数据,下面的计算使用美元兑在岸人民币即期汇率。
3 可视化
library(echarts4r)
|>
hedged_yield_data e_charts(date) |>
e_line(us_tcm_y1, name = "美债 1 年期收益率", symbolSize = 0) |>
e_line(hedged_china_yield_1y, name = "对冲后中国 1 年期收益率", symbolSize = 0) |>
e_title("中美对冲收益率对比") |>
e_tooltip(
trigger = "axis",
formatter = e_tooltip_pointer_formatter("percent", digits = 2)
|>
) e_y_axis(formatter = e_axis_formatter("percent")) |>
e_legend(bottom = 0, itemGap = 20,)
4 注意事项
“C-Swap 定盘价”为掉期点。本文换算基于有担保利率平价(CIP)的近似,忽略跨币种基差、交易费用、保证金占用、日计数/复利方式差异、在岸/离岸市场差异等因素。Wind 中,同业存单到期收益率以百分比显示(例如 2.35 表示 2.35%),因而换算方式与本文不同。