2026年上半年美国国债收益率曲线扭曲分析
2026年上半年美国国债收益率曲线中段上升、两端持稳,2s10s利差始终未倒挂,30年期收益率一度逼近5%,查看完整数据与历史比较。
2026年上半年,美国国债收益率曲线出现扭曲,而非整体平移。从1月首次交易数据到6月最后一笔交易数据,2年期国债收益率上升了67个基点,1个月期国库券收益率变动了-2个基点,30年期国债收益率仅变动5个基点;曲线中段上升,两端基本持稳。同一六个月期间,2s10s利差从72个基点收窄至30个基点,但始终未出现倒挂。
本页汇总了上半年的完整利率数据:三个时点的收益率曲线、各期限的扭曲幅度、2s10s利差的每日走势、30年期收益率突破5%的持续表现,以及过去五十年上半年收益率曲线扭曲情况,便于比较本次走势。每个数字均来自已存储的查询结果。展开任意面板即可查看背后的SQL。
什么是扭曲,以及它为何不同于平移
平移是指各期限的变动幅度大致相同:整条曲线向上或向下移动,但形态保持不变。扭曲则是指不同期限的变动幅度不同,因此曲线形态本身发生变化。
当您将曲线的不同部分视为不同工具时,这一区别十分重要。最短端包括几周后到期的短期国库券,其交易水平接近当前政策利率。长端反映市场对未来数十年经济增长和通胀的看法,即使短端经历数月剧烈波动,长端也可能基本不动。中段通常以2年期利率作为代表,反映市场对未来几年政策利率的预期如何重新定价。
如果在某个阶段,中段上升三分之二个百分点,而两端都保持不变,就意味着市场正在重新绘制近期利率路径,同时维持对长期前景的原有判断。
三个时点的收益率曲线:1月、3月和6月
要最清楚地观察曲线扭曲,最直接的方法是定期记录整条曲线,并将这些图像并排比较。下方面板展示了七个期限在三个单日时点的截面:上半年的首个交易日、3月最后一个交易日,以及6月最后一个交易日。
| 到期日 | 1月百分比 | 3月百分比 | 6月百分比 |
|---|---|---|---|
| 1-month | 3.72 | 3.74 | 3.7 |
| 3-month | 3.65 | 3.7 | 3.87 |
| 1-year | 3.47 | 3.68 | 3.98 |
| 2-year | 3.47 | 3.79 | 4.14 |
| 5-year | 3.74 | 3.92 | 4.19 |
| 10-year | 4.19 | 4.3 | 4.44 |
| 30-year | 4.86 | 4.88 | 4.91 |
每个数字背后的完整 SQL
WITH
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') ORDER BY date ASC LIMIT 1) AS jan_row,
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-03-31') ORDER BY date DESC LIMIT 1) AS mar_row,
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') ORDER BY date DESC LIMIT 1) AS jun_row
SELECT z.1 AS maturity, z.2 AS jan_pct, z.3 AS mar_pct, z.4 AS jun_pct
FROM (
SELECT arrayJoin(arrayZip(['1-month','3-month','1-year','2-year','5-year','10-year','30-year'],
[jan_row.1, jan_row.2, jan_row.3, jan_row.4, jan_row.5, jan_row.6, jan_row.7],
[mar_row.1, mar_row.2, mar_row.3, mar_row.4, mar_row.5, mar_row.6, mar_row.7],
[jun_row.1, jun_row.2, jun_row.3, jun_row.4, jun_row.5, jun_row.6, jun_row.7])) AS z
)1月的曲线并不是干净的上行斜线。年内首个交易日,2年期收益率为 3.47%,低于1个月期国库券的 3.72%。曲线中段因此出现下凹,而低点正好位于反映近期政策预期的期限。到3月最后一个交易日,2年期收益率升至 3.79%;到6月最后一个交易日,下凹已完全消失。2年期收益率为 4.14%,高于面板中的所有国库券期限,随后收益率沿曲线逐点上升,30年期最终达到 4.91%。六个月的时间将一条有凹陷的曲线变成了传统的上行曲线。变化并不是所有期限收益率同步上移,而是中段凹陷被抬高。
逐个期限看这次扭曲
将1月快照从6月快照中扣除后,这次扭曲呈现出自身的形态:以2年期为中心形成峰值,并向两端逐渐收敛至零。图中将每个期限的变动拆分为第一季度和第二季度两个阶段。
| 到期日 | 第一季度变动(基点) | 第二季度变动(基点) | 上半年变动(基点) |
|---|---|---|---|
| 1-month | 2 | -4 | -2 |
| 3-month | 5 | 17 | 22 |
| 1-year | 21 | 30 | 51 |
| 2-year | 32 | 35 | 67 |
| 5-year | 18 | 27 | 45 |
| 10-year | 11 | 14 | 25 |
| 30-year | 2 | 3 | 5 |
每个数字背后的完整 SQL
WITH
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') ORDER BY date ASC LIMIT 1) AS jan_row,
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-03-31') ORDER BY date DESC LIMIT 1) AS mar_row,
(SELECT (yield_1_month, yield_3_month, yield_1_year, yield_2_year, yield_5_year, yield_10_year, yield_30_year) FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') ORDER BY date DESC LIMIT 1) AS jun_row
SELECT z.1 AS maturity,
round((z.3 - z.2) * 100, 0) AS q1_change_bp,
round((z.4 - z.3) * 100, 0) AS q2_change_bp,
round((z.4 - z.2) * 100, 0) AS h1_change_bp
FROM (
SELECT arrayJoin(arrayZip(['1-month','3-month','1-year','2-year','5-year','10-year','30-year'],
[jan_row.1, jan_row.2, jan_row.3, jan_row.4, jan_row.5, jan_row.6, jan_row.7],
[mar_row.1, mar_row.2, mar_row.3, mar_row.4, mar_row.5, mar_row.6, mar_row.7],
[jun_row.1, jun_row.2, jun_row.3, jun_row.4, jun_row.5, jun_row.6, jun_row.7])) AS z
)2年期的67个基点是图中最大变动,高于1年期的51、5年期的45和10年期的25,也比两端的变动高出一个数量级。按季度拆分来看,这一上行是持续发生的,而不是单次跳升:第一季度上涨32个基点,第二季度上涨35个基点。无论是什么因素重新定价了收益率曲线中段,其影响都持续贯穿两个季度,并在每笔成交中逐步体现出来。下方的日度序列以更细的粒度印证了这一点。
Did the 2s10s spread invert in H1 2026?
No, and the receipts pin down exactly how close it came. The one-row panel holds the half's boundary values; the chart under it is every daily print.
| 起始(基点) | 结束(基点) | 最低(基点) | 最低日期 | 最高(基点) | 读数 |
|---|---|---|---|---|---|
| 72 | 30 | 27 | 2026-06-18 | 74 | 124 |
每个数字背后的完整 SQL
SELECT
round((argMin(yield_10_year - yield_2_year, date)) * 100, 0) AS start_bp,
round((argMax(yield_10_year - yield_2_year, date)) * 100, 0) AS end_bp,
round(min(yield_10_year - yield_2_year) * 100, 0) AS min_bp,
argMin(toString(date), (yield_10_year - yield_2_year, date)) AS min_date,
round(max(yield_10_year - yield_2_year) * 100, 0) AS max_bp,
count() AS prints
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30')
AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)The spread between the 10-year and 2-year yields opened the half at 72 basis points, never printed wider than 74, and ended June at 30. Its floor was 27 basis points, printed on 2026-06-18, the closest approach to inversion, still comfortably positive. A reader who only wants the inversion answer can stop here; the path matters for a different question.
| d | 2s10s利差(基点) |
|---|---|
| 2026-01-02 | 72 |
| 2026-01-05 | 71 |
| 2026-01-06 | 71 |
| 2026-01-07 | 68 |
| 2026-01-08 | 70 |
| 2026-01-09 | 64 |
| 2026-01-12 | 65 |
| 2026-01-13 | 65 |
| 2026-01-14 | 64 |
| 2026-01-15 | 61 |
| 2026-01-16 | 65 |
| 2026-01-20 | 70 |
| 2026-01-21 | 66 |
| 2026-01-22 | 65 |
| 2026-01-23 | 64 |
| 2026-01-26 | 66 |
| 2026-01-27 | 71 |
| 2026-01-28 | 70 |
| 2026-01-29 | 71 |
| 2026-01-30 | 74 |
每个数字背后的完整 SQL
SELECT toString(date) AS d, round((yield_10_year - yield_2_year) * 100, 0) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30')
AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)
ORDER BY dateWas the flattening one sharp event or a grind? The daily series answers: 124 prints stepping down from 72 basis points on 2026-01-02 to 30 at the June close, with no single-day collapse anywhere in the sequence. A flattening that arrives print by print is a slow repricing; one that arrives in a week usually has a date attached. This one was a grind.
30年期国债与5%关口
从变动栏看,长期国债收益率在这半年度内波澜不惊,首尾仅变动5个基点。但期间曾触及一个值得记录的水平。以下记录衡量了这次触及。
| 起始百分比 | 结束百分比 | 首次达到5的日期 | 最后达到5的日期 | 达到或超过5的读数 | 最高百分比 | 最高日期 | 读数 |
|---|---|---|---|---|---|---|---|
| 4.86 | 4.91 | 2026-05-04 | 2026-06-10 | 16 | 5.18 | 2026-05-19 | 124 |
每个数字背后的完整 SQL
SELECT
round(argMin(yield_30_year, date), 2) AS start_pct,
round(argMax(yield_30_year, date), 2) AS end_pct,
toString(minIf(date, yield_30_year >= 5)) AS first_5_date,
toString(maxIf(date, yield_30_year >= 5)) AS last_5_date,
countIf(yield_30_year >= 5) AS prints_at_or_above_5,
round(max(yield_30_year), 2) AS high_pct,
argMax(toString(date), (yield_30_year, date)) AS high_date,
count() AS prints
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_30_year)30年期国债收益率在该半年度以4.86%开盘,并于2026-05-04首次达到或超过5%。在该半年度的124次报价中,有16次达到或超过这一关口;其间于2026-05-19升至5.18%的高点,最终于4.91%回落至该关口下方。整数关口本身没有特殊的市场机制,但30年期国债收益率达到5%是按揭交易台和养老金配置机构会引用的水平。市场走势给出了明确答案:收益率从2026-05-04到2026-06-10期间一直处于或高于该水平。这是一次发生在5月初至6月中旬的阶段性行情,处于整体平稳的半年度之内,但期间完成了三分之一个百分点的往返波动。
五十年的半年期曲线扭转
这样的扭转罕见吗?我们将半年期扭转定义为2年期收益率变动减去10年期收益率变动。正值表示短端上涨更快(或下跌更少),即曲线从短端开始变平。该面板计算了自1976以来每个半年的这一数值;1976是2年期和10年期序列首次在完整半年内同时有数据的年份。面板还列出了每个半年的2s10s利差最低值。
| 期间开始 | 半年 | 读数 | 2年期变动(基点) | 10年期变动(基点) | 扭转(基点) | 最低2s10s(基点) |
|---|---|---|---|---|---|---|
| 1976-07-01 | 1976 H2 | 125 | -168 | -107 | -61 | 85 |
| 1977-01-01 | 1977 H1 | 126 | 66 | 36 | 30 | 106 |
| 1977-07-01 | 1977 H2 | 123 | 110 | 44 | 66 | 32 |
| 1978-01-01 | 1978 H1 | 124 | 124 | 79 | 45 | 9 |
| 1978-07-01 | 1978 H2 | 124 | 154 | 56 | 98 | -86 |
| 1979-01-01 | 1979 H1 | 124 | -103 | -37 | -66 | -82 |
| 1979-07-01 | 1979 H2 | 124 | 230 | 157 | 73 | -169 |
| 1980-01-01 | 1980 H1 | 125 | -242 | -41 | -201 | -241 |
| 1980-07-01 | 1980 H2 | 125 | 405 | 230 | 175 | -170 |
| 1981-01-01 | 1981 H1 | 124 | 156 | 144 | 12 | -170 |
| 1981-07-01 | 1981 H2 | 125 | -131 | -6 | -125 | -155 |
| 1982-01-01 | 1982 H1 | 124 | 79 | 25 | 54 | -71 |
| 1982-07-01 | 1982 H2 | 125 | -512 | -404 | -108 | -24 |
| 1983-01-01 | 1983 H1 | 126 | 94 | 64 | 30 | 52 |
| 1983-07-01 | 1983 H2 | 124 | 68 | 89 | -21 | 64 |
| 1984-01-01 | 1984 H1 | 125 | 230 | 198 | 32 | 52 |
| 1984-07-01 | 1984 H2 | 124 | -315 | -232 | -83 | 20 |
| 1985-01-01 | 1985 H1 | 123 | -136 | -145 | 9 | 106 |
| 1985-07-01 | 1985 H2 | 125 | -68 | -119 | 51 | 100 |
| 1986-01-01 | 1986 H1 | 124 | -121 | -169 | 48 | 42 |
每个数字背后的完整 SQL
SELECT concat(toString(toYear(date)), if(toMonth(date) <= 6, '-01-01', '-07-01')) AS period_start,
concat(toString(toYear(date)), if(toMonth(date) <= 6, ' H1', ' H2')) AS half,
count() AS prints,
round((argMax(yield_2_year, date) - argMin(yield_2_year, date)) * 100, 0) AS change_2y_bp,
round((argMax(yield_10_year, date) - argMin(yield_10_year, date)) * 100, 0) AS change_10y_bp,
round((argMax(yield_2_year, date) - argMin(yield_2_year, date)) * 100
- (argMax(yield_10_year, date) - argMin(yield_10_year, date)) * 100, 0) AS twist_bp,
round(min(yield_10_year - yield_2_year) * 100, 0) AS min_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= toDate('1976-07-01') AND date <= toDate('2026-06-30')
AND isNotNull(yield_2_year) AND isNotNull(yield_10_year)
GROUP BY period_start, half
HAVING prints >= 100
ORDER BY period_start ASC| 2026年上半年扭转(基点) | 按幅度排名 | 比较的半年数 | 首年 | 出现倒挂的半年数 | 最近倒挂半年开始 |
|---|---|---|---|---|---|
| 42 | 42 | 100 | 1976 | 28 | 2024-07-01 |
每个数字背后的完整 SQL
SELECT
round(anyIf(twist, period_start = '2026-01-01'), 0) AS h1_2026_twist_bp,
arrayCount(x -> abs(x) > abs(anyIf(twist, period_start = '2026-01-01')), groupArrayIf(twist, period_start != '2026-01-01')) + 1 AS rank_by_magnitude,
count() AS halves_compared,
toUInt16OrZero(substring(min(period_start), 1, 4)) AS first_year,
countIf(min_2s10s < 0) AS halves_with_inversion,
max(if(min_2s10s < 0, period_start, '')) AS last_inverted_half_start
FROM (
SELECT concat(toString(toYear(date)), if(toMonth(date) <= 6, '-01-01', '-07-01')) AS period_start,
count() AS prints,
(argMax(yield_2_year, date) - argMin(yield_2_year, date)) * 100
- (argMax(yield_10_year, date) - argMin(yield_10_year, date)) * 100 AS twist,
min(yield_10_year - yield_2_year) * 100 AS min_2s10s
FROM global_markets.treasury_yields
WHERE date >= toDate('1976-07-01') AND date <= toDate('2026-06-30')
AND isNotNull(yield_2_year) AND isNotNull(yield_10_year)
GROUP BY period_start
HAVING prints >= 100
)2026年上半年的扭转幅度为42个基点。按绝对值计算,这一数值在100个半年中排名第42,处于中间位置,并不异常。表中显示,双向扭转幅度达到这一水平三倍和四倍的半年期都曾出现。该半年期的特殊之处在于方向发生了反转:2025年的两个半年期中,2年期收益率均下跌(2025年上半年下跌-53个基点,下半年下跌-31个基点);2026年上半年则上涨67个基点,曲线中前端至中端在年末年初发生了方向变化。倒挂栏显示了这一半年期所处的时代背景:100个半年期中的28个曾在某个时点出现负值2s10s利差;其中最近一次始于2024-07-01,处于2022年至2024年长期倒挂的尾段。2026年上半年最低为27个基点,因此完全未进入这一行列。
曲线趋平会影响什么
这种扭曲形态在债券市场之外的三个影响领域。以下只说明传导机制,不作预测。抵押贷款利率:30年期固定抵押贷款利率通常以高于10年期美国国债收益率的利差报价。10年期收益率在本阶段收于4.44%,变动25个基点,仅为2年期收益率变动幅度的一部分。若曲线扭曲主要集中在2年期,抵押贷款定价受到的影响会远小于同等幅度的整体平行移动。银行利差:银行通常以短期利率融资,并以较长期利率放贷。曲线趋平会收窄这两类利率形成的利差,而这正是净息差的基础。衰退规律:美国过去的衰退之前,2年期与10年期国债收益率利差曾出现倒挂,因此该利差一直受到关注。本阶段从未出现倒挂;最低点为27个基点。上述因素是否能说明未来走势,属于预测范畴;本文不作预测。
拍卖日历说明
上述图表均未显示供给,但了解其背后的节奏仍然很有帮助。美国财政部每月发行2年期、5年期和7年期国债,并按照季度再融资周期拍卖10年期和30年期国债,其间还会进行增发。这里的每个收益率,都是在这一稳定的新券发行日历下形成的市场价格。本文数据集不包含拍卖层面的结果(投标倍数、尾部利差),因此不对任何具体拍卖中的需求作出判断。
常见问题
2026年美国国债收益率曲线是否倒挂?
上半年没有。2026年上半年2年期与10年期收益率利差最低为27个基点,出现在2026-06-18;年初为72,6月底为30。整个期间利差保持为正,但曲线趋于平坦。
什么是收益率曲线扭曲?
这是曲线形状发生变化,而非整体水平变化。不同期限的收益率变动幅度不同。2026年上半年,2年期收益率上升67个基点,而1个月期和30年期收益率仅变动个位数基点。曲线中段因此出现扭曲,不同于所有期限同步移动的平行移动。
2026年2年期美国国债收益率上升了多少?
上半年累计上升67个基点,从1月首次交易数据中的3.47%升至6月最后一个交易数据中的4.14%;其中两个季度分别变动32和35个基点。
30年期美国国债收益率何时突破5%?
2026年上半年首次达到或超过5%的交易数据出现在2026-05-04。收益率于2026-05-19升至5.18%的峰值,半年度结束时回落至该水平以下,为4.91%。
美国收益率曲线上次倒挂是什么时候?
按本页以半年为单位的统计口径,最近一个出现2年期与10年期收益率利差倒挂的半年始于2024-07-01。自1976以来,共有28个半年中的100个至少有一次2年期与10年期收益率利差为负。
同六个月的股票、行业和期权台账见2026年上半年市场回顾;该期间交易所依据的宏观数据发布见进入下半年的宏观背景。上方每个面板均可复现。将SQL粘贴到Strasmore终端,并针对同一组数据表运行即可。
方法
- 起始值和结束值分别是各期限在2026年1月1日至6月30日期间的首笔和末笔成交记录,按查询中的日期选取。这些快照对应单日数据行,分别为上半年首笔成交、3月末笔成交和6月末笔成交;在这些日期,七个期限的数据均完整。
- 半年历史数据自1976年7月开始配对比较2年期和10年期,这是两条序列首次同时有完整半年的时期。通过查询内置的筛选条件,剔除共同成交记录少于100笔的半年,并在表格中列出每个半年的成交记录数量。历史数据的上限固定为2026年6月30日,因此后续数据到来后,比较样本不会扩大。
- 极值按“数值—日期”元组确定性打破平局,因此即使成交值相同,重新生成结果也不会改变日期。
- 生成过程通过受控的只读路径执行;公开页面从不查询实时数据。数据仓库状态截至2026年7月12日。