FINRAマージン債務統計の読み方と公表時期
FINRAマージン債務統計の仕組みを解説します。報告の根拠、第3週の公表、4~7週間の遅れ、1997年以降の履歴の読み方を紹介します。
FINRAのマージン債務統計は、投資家が証券口座を担保にいくら借り入れているかを毎月集計したものです。顧客向けに信用取引口座を扱うすべてのブローカーからデータを収集します。見出しとなる数値は、顧客の借方残高の合計額です。月の最終営業日時点で測定されます。公表されるのは翌月の第3週で、発表時点では4~7週間前のデータです。
FINRAのマージン債務統計が示すもの
この報告はFINRA Rule 4521(d)に基づいています。顧客向けに信用取引口座を扱う各会員会社は、月の最終営業日時点、かつ決済日ベースで、証券信用取引口座におけるすべての借方残高の合計と、すべての現金口座および証券信用取引口座におけるすべての自由信用残高の合計を提出します。
この2つの合計が、統計系列の全体です。借方残高はローンです。借り入れで購入した証券について、顧客がブローカーに支払うべき金額を指します。業界全体で合計したものが、マージン債務として公表される数値です。自由信用残高は反対側の残高です。ブローカーに預けられ、要求払いとなっている顧客資金で、報告書では現金口座と信用取引口座に分けて示されます。
数値の読み方を変える重要な点が4つあります。
- 借方残高は総額で計上されます。空売りの時価も含まれ、空売りに伴う信用残高とは相殺されません。
- 自由信用残高には、空売り口座の残高と特別覚書口座は含まれません。
- 決済日ベースでは、取引が約定した日ではなく、決済した日に計上されます。T+1決済では、月最終セッションに行った購入が翌月に決済され、翌月の数値に計上されます。
- 他のFINRA会員会社の口座、DVP口座とRVP口座、証券以外の口座など、いくつかの口座種別は集計対象外です。
報告書は月末後、可能な限り速やかに提出する必要があります。遅くとも翌月の第6営業日までです。公表はその後になります。
FINRAのマージン債務データはいつ公表されるか
FINRAは通常、基準月の翌月第3週にマージン統計を更新します。各社は第6営業日までに提出しますが、集計値が掲載されるのはそのおよそ2週間後です。事前に固定の公表日が示されることはありません。これは、決済日と公表日が1年前から公表される空売り残高の公表カレンダーとは明確に異なります。
この時間差の影響を見るため、翌月20日を第3週の掲載日の代替日とし、その期間の市場を測定します。下のパネルは、過去1年半の各月末について、基準日、代替公表日、その間の通常セッション数、期間中のSPYの値動きを示します。
各数値の背後にある正確なSQL
WITH daily AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2024-11-01 00:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY d
),
reference_month AS
(
SELECT
toStartOfMonth(d) AS m,
max(d) AS as_of,
argMax(px, d) AS as_of_close
FROM daily
GROUP BY m
),
release AS
(
SELECT
m,
as_of,
as_of_close,
addDays(toStartOfMonth(addMonths(m, 1)), 19) AS release_day
FROM reference_month
)
SELECT
formatDateTime(r.m, '%Y-%m') AS month,
any(formatDateTime(r.as_of, '%b %e')) AS as_of_label,
any(formatDateTime(r.release_day, '%b %e')) AS release_label,
count() AS sessions_count,
round(100 * (toFloat64(argMax(d.px, d.d))
/ toFloat64(any(r.as_of_close)) - 1), 2) AS spy_change_pct
FROM release AS r
CROSS JOIN daily AS d
WHERE d.d > r.as_of
AND d.d <= r.release_day
AND r.release_day < today()
GROUP BY r.m
ORDER BY r.m直近の完了した期間では、Jun 30からJul 20までの間に、市場では通常セッションが13回あり、SPYは-0.57%動きました。マージン統計を公表日に読む場合、読んでいるのはその回数分のセッション前に取得されたスナップショットです。
マージン債務を読む時点でどれほど古いのか
月末のスナップショットは、この統計の中では最も新しく、約3週間前のデータです。基準月の初めに行われた借り入れは、約7週間前のデータになります。これが4~7週間という範囲です。特定の月ではなく、公表スケジュールによって生じる特性です。
次のパネルでは、同じ測定を2006まで遡るすべての月末に広げ、各期間中の市場の変動幅で並べ替えています。
各数値の背後にある正確なSQL
WITH daily AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2006-01-01 00:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY d
),
reference_month AS
(
SELECT
toStartOfMonth(d) AS m,
max(d) AS as_of,
argMax(px, d) AS as_of_close
FROM daily
GROUP BY m
),
release AS
(
SELECT
m,
as_of,
as_of_close,
addDays(toStartOfMonth(addMonths(m, 1)), 19) AS release_day
FROM reference_month
),
gaps AS
(
SELECT
r.m AS m,
abs(round(100 * (toFloat64(argMax(d.px, d.d))
/ toFloat64(any(r.as_of_close)) - 1), 2)) AS abs_move_pct
FROM release AS r
CROSS JOIN daily AS d
WHERE d.d > r.as_of
AND d.d <= r.release_day
AND r.release_day < today()
GROUP BY r.m
)
SELECT
multiIf(abs_move_pct < 1, '0 to 1%',
abs_move_pct < 2, '1 to 2%',
abs_move_pct < 3, '2 to 3%',
abs_move_pct < 5, '3 to 5%',
abs_move_pct < 8, '5 to 8%',
'8% or more') AS move_bucket,
count() AS months_count,
round(100 * count() / (SELECT count() FROM gaps), 1) AS share_pct
FROM gaps
GROUP BY move_bucket
ORDER BY min(abs_move_pct)その期間の21.1%は0 to 1%の範囲に入り、グラフ上で最も広い範囲である8% or moreには15が含まれます。これほどの値動きの後に届く残高の数値は、市場がすでに再評価したポートフォリオを示しています。
この遅れにより、2つの用途は明確に否定されます。この数値で今週の状況を説明することはできません。また、異なる時点を測定していることを注記せずに、同日の価格と並べることもできません。空売り残高にも同じ問題がありますが、遅れはより短く、空売り残高が2週間前のデータである理由で説明しています。
過去最高の金額が最も興味深くない理由
マージン債務は、過去最高を更新したときに最も頻繁に話題になります。しかし、その仕組みを考えると、記録更新のハードルは低いものです。借方残高は、価格とともに時価が変動するポートフォリオを担保にした借入金です。ポートフォリオ価値に対する借入比率を一定に保ったまま価格が上昇すれば、ドルベースの合計額も同時に増えます。名目ベースの過去最高は、単位を変えて価格水準を言い換えているにすぎません。
記録更新はどの程度よく起きるのでしょうか。下のパネルでは、対象期間内の過去すべての月末終値を上回ったSPYの月末終値を数えています。
各数値の背後にある正確なSQL
WITH daily AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2006-01-01 00:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY d
),
month_close AS
(
SELECT
toStartOfMonth(d) AS m,
toFloat64(argMax(px, d)) AS close_px
FROM daily
GROUP BY m
),
peaks AS
(
SELECT
m,
close_px,
max(close_px) OVER (ORDER BY m ASC
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_peak
FROM month_close
),
per_year AS
(
SELECT
toYear(m) AS y,
count() AS closes_observed,
countIf(close_px >= running_peak) AS new_highs
FROM peaks
GROUP BY y
)
SELECT
toString(y) AS year,
closes_observed,
new_highs,
round(100 * sum(new_highs) OVER (ORDER BY y ASC
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
/ sum(closes_observed) OVER (ORDER BY y ASC
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 1) AS cumulative_share_pct
FROM per_year
ORDER BY y対象期間では、月末終値の34.3%が期間内の新高値でした。そのうち、2026だけで現時点までの4を占めています。ポートフォリオ価値とともに上昇するドルベースの系列は、こうした頻度も引き継ぎます。名目ベースの過去最高を、それだけでニュースとして読むことは、主に市場が高値圏にあることを言い換えているだけです。
数十年にわたる借入の推移を比較可能にする方法は2つあります。
- 実質ベース:ドルの列を消費者物価指数で実質化し、1997年の1ドルと2026年の1ドルを同じ単位にします。Bureau of Labor StatisticsはCPIの履歴を無料で公表しています。
- 比率:借方残高を、借入の裏付けとなる指標で割ります。例えば、米国株式市場全体の時価総額や名目GDPを使います。結果はドル額ではなく、借入の強度を示す比率になります。
外部データを必要としない見方もあります。借方残高の前月比または前年同月比の変化率は、構造上、規模の影響を受けません。価格水準が生む緩やかな上昇傾向も、元の合計額から取り除けます。
マージン債務は先行指標か
正直な表現は「同時指標」です。借方残高とポートフォリオ価値は同じ月の中で連動します。集計値が公表される時点では、その月の価格推移はすでに公表されています。先行・遅行関係を主張するには、ドルベースの残高と価格水準の算術的な関係に加え、数値が存在するまでの4~7週間の遅れも考慮する必要があります。
読者は連動性を直接確認できます。FINRAの履歴を市場の最悪の月と重ね、レバレッジ系列の下落が先行したのか、それとも同じ月に生じたのかを確認します。下のパネルが確認対象の日付を示しています。
各数値の背後にある正確なSQL
WITH daily AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2006-01-01 00:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY d
),
month_close AS
(
SELECT
toStartOfMonth(d) AS m,
toFloat64(argMax(px, d)) AS close_px
FROM daily
GROUP BY m
),
chained AS
(
SELECT
m,
close_px,
lagInFrame(close_px, 1) OVER (ORDER BY m ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_close
FROM month_close
)
SELECT
formatDateTime(m, '%b %Y') AS calendar_label,
round(100 * (close_px / prior_close - 1), 2) AS spy_change_pct
FROM chained
WHERE prior_close > 0
ORDER BY spy_change_pct ASC
LIMIT 1010カ月のうち最悪だったOct 2008では、月末終値間で-16.74%下落しました。10番目の月でも-8.4%下落しました。これらの月に借方残高の列を並べれば、タイミングの問題は見出しを書く人ではなく、読者自身が判断できます。
1997年まで遡る全履歴のダウンロード方法
FINRAはMargin Statisticsページに表を掲載し、同じ系列をExcel形式でも提供しています。Excelデータは1997年1月から始まり、月ごとに1行あります。借方残高の合計と自由信用残高の列が並び、単位は百万ドルです。
ファイルを有効に使うには、2つの習慣が役立ちます。まず、ダウンロードするたびに日付付きのコピーを保存してください。修正された報告によって過去月が改訂される可能性があり、変更を確認できるのは自分のアーカイブだけです。次に、作成するすべてのチャートのラベルに基準月を記載してください。そうすれば、ある月の残高が公表月の残高として誤って表示されることを防げます。
このデータと並べて読むことが多いFINRAのデータセットについては、同じ収集・公表パターンを月2回の頻度でたどるFINRAの空売り残高データを参照してください。報告遅延のない市場の広がりを測る指標については、ハイ・ロー指数が日次の価格データから直接作られています。
よくある質問
FINRAのマージン債務データはいつ公表されるか
FINRAは通常、基準月の翌月第3週にマージン統計を更新します。各社は、翌月の第6営業日までにCustomer Margin Balance Formを提出し、集計値はその後に掲載されます。事前に固定の公表日は示されません。
借方残高と自由信用残高の違いは何か
借方残高は、信用取引で購入した証券について顧客がブローカーに支払うべき金額です。自由信用残高は、ブローカーが保管し、要求払いとなっている顧客資金です。FINRAは、証券信用取引口座の借方残高合計と、現金口座および証券信用取引口座の自由信用残高合計を収集します。
FINRAのマージン債務データはどこまで遡れるか
FINRAのMargin Statisticsページからダウンロードできる履歴は1997年1月から始まり、月ごとに1行あります。残高は、各月の最終営業日時点の決済日ベースで、百万ドル単位で報告されます。
マージン債務は市場の天井を予測するか
この用途には、系列の2つの特性が制約となります。ドルベースの水準はポートフォリオ価値と連動するため、借入強度が一定でも価格上昇とともに増えます。また、各数値は公表時点で4~7週間前のものです。転換点を研究する読者は、元のドル水準ではなく、前年同月比の変化率や比率ベースの指標を使うことが多いです。
マージン債務は空売り残高と同じか
いいえ。マージン債務は、ロングポジションを担保とした借入金です。空売り残高は、空売りされ、まだ買い戻されていない株数を数えます。どちらもブローカーがFINRAに提出する報告を通じて、固定されたサイクルで公表されます。公表までには数週間の遅れがあります。
上記の各パネルは、作成に使ったSQLの全文に展開できます。別のティッカーやより長い期間について、同じ月末と公表遅延の計算を実行する場合は、Strasmore terminalで平易な英語により依頼してください。