見出し画像

金融システムの資金流動性 - Global Liquidity Net Change

世界の主要中央銀行と財務当局による流動性供給の純変化を計算し、それを視覚化するためのものです。各国の中央銀行のバランスシートや、米国の財務省一般口座(TGA)およびリバースレポ(RRP)などの主要な指標を取り込み、それらの流入と流出の差分を計算しています。

サンプル

免責事項

このインジケーターは、すべてご自身の責任でご利用ください。本インジケーターの使用によるいかなる損失や損害について、当方は一切の責任を負いかねます。

また、本インジケーターの動作の正常性や正確性については一切保証いたしません。予期せぬ動作やエラーが発生する可能性があるため、ご理解の上でご利用いただきますようお願いいたします。

設定方法はこちら

インジケータの目的

この「Global Liquidity Net Change」インジケーターは、世界の主要中央銀行および財務当局による流動性供給の増減を計算し、視覚化しています。このインジケーターが表示する増減には、以下のような要素が関係しています。

増加(ポジティブなネット変化)

インジケーターが増加を示す場合、これは流入が流出を上回っていることを意味します。具体的には、中央銀行によるバランスシートの拡大(資産購入プログラムや利下げによる流動性供給)が増加し、またはTGAやRRPを通じた流動性吸収が減少していることを示唆します。

  • 中央銀行の資産購入: 例えば、米国連邦準備制度(FED)が量的緩和(QE)を実施し、債券を大量に購入することで市場に流動性を供給すると、インジケーターの値が増加します。

  • 他国の中央銀行も同様に資産購入や金利引き下げを行う: 例えば、欧州中央銀行(ECB)や日本銀行(BOJ)が同様の政策を取る場合も、流動性が増加します。

減少(ネガティブなネット変化)

インジケーターが減少を示す場合、これは流出が流入を上回っていることを意味します。具体的には、中央銀行が資産を売却したり、金融引き締め政策を実施して流動性を吸収したり、TGAやRRPを通じた流動性吸収が増加していることを示唆します。

  • 資産売却や利上げ: 例えば、FEDが量的引き締め(QT)を行い、保有資産を売却して市場から資金を回収することで、インジケーターの値が減少します。

  • TGAやRRPの増加: 米国財務省がTGA残高を増加させたり、RRPを通じて市場から資金を吸収した場合も、流動性が減少し、インジケーターがネガティブな変化を示すことになります。

解釈のポイント

このインジケーターの増減は、金融市場における流動性の動向を反映しており、流動性の増加は通常、資産価格の上昇圧力として作用し、減少は逆に価格の下落圧力として作用することが一般的です。

市場参加者は、このインジケーターを用いて世界的な流動性のトレンドを把握し、その結果としての市場動向を予測することができます。例えば、流動性が増加している局面ではリスク資産の価格上昇が期待され、逆に流動性が減少している局面ではリスク回避の動きが強まる可能性があります。

インジケータの仕様

グローバル流動性の日々の増減をヒストグラム(バー)とラインで表示FED 採用している国および指標を以下に示します。

FED (United States Commercial Bank Borrowings): 米国商業銀行借入
米国の商業銀行が中央銀行(FRB)から借り入れた金額を指します。商業銀行が短期的な資金需要を満たすために借り入れを行う場合に使われる指標です。銀行がこの資金を貸し出したり、他の金融活動に使うことで、実際の経済に対して資金が流通します。

TGA (Treasury General Account): 米国財務省一般口座残高
FRBが保有する国債の総量が増加することは、FRBが国債を市場から購入しており、その結果として市場に資金が流れ出していることを意味します。FRBが市場に国債を売却し、資金を吸収していることになります。

RRP (Reverse Repurchase Agreements): 米国リバースレポ残高
リバースレポは、FRBが民間金融機関に国債を売却して資金を吸収する取引です。これは市場から短期的に資金を引き出すことを目的としており、FRBが資金の供給を抑えるために行います。FRBが行うこの操作は、過剰流動性を抑制し、金利上昇を狙うなどの金融引き締めの一環として理解されます。

ECB (European Central Bank): 欧州連合商業銀行借入
米国商業銀行借入のEU版、以下同様です。

PBC (People's Bank of China): 中国人民銀行
BOJ (Bank of Japan): 日本銀行
BOE (Bank of England): イングランド銀行
BOC (Bank of Canada): カナダ銀行
RBA (Reserve Bank of Australia): オーストラリア準備銀行
RBI (Reserve Bank of India): インド準備銀行
SNB (Swiss National Bank): スイス国立銀行
CBR (Central Bank of Russia): ロシア中央銀行
BCB (Central Bank of Brazil): ブラジル中央銀行
BOK (Bank of Korea): 韓国銀行
RBZN (Reserve Bank of New Zealand): ニュージーランド準備銀行
SR (Sveriges Riksbank): スウェーデン国立銀行
BNM (Bank Negara Malaysia): マレーシア国立銀行

このインジケーターでは、これらの国々の中央銀行および財務当局のバランスシートデータをもとに、各国の通貨を米ドルに換算し、世界的な流動性の増減を計算しています。

移動平均

ヒストグラムとラインそれぞれでSMA、EMAの選択、および移動平均の期間が選べます。

ヒストグラムとラインと書きましたが、実際は選べるので、ライン2本なども可能ですが、ヒストグラムは移動平均期間を1として純粋な増減とし、ラインは移動平均を選ぶというような使い方がお勧めです。

コード

2024/8/26 目盛表示の単位の修正など

//@version=5
indicator('Global Liquidity Net Change', overlay=false, scale=scale.right, format=format.volume)

// 各データの入力オプション
fed_active = input(true, title = "FED (Federal Reserve System)", defval=true)
tga_active = input(true, title = "TGA (Treasury General Account)", defval=true)
rrp_active = input(true, title = "RRP (Reverse Repurchase Agreements)", defval=true)
ecb_active = input(true, title = "ECB (European Central Bank)")
pbc_active = input(true, title = "PBC (People's Bank of China)")
boj_active = input(true, title = "BOJ (Bank of Japan)")
other_active = input(true, title = "Other Central Banks")

// カラーの入力オプション
positive_color = input.color(color.blue, title = "Positive Color")
negative_color = input.color(color.orange, title = "Negative Color")
line_color = input.color(color.white, title = "Line Color")

// スムージング方法の選択オプション
hist_smoothing_method = input.string(title="Histogram Smoothing Method", defval="SMA", options=["EMA", "SMA"])
line_smoothing_method = input.string(title="Line Smoothing Method", defval="SMA", options=["EMA", "SMA"])

// 棒グラフとラインの移動平均のスムージング期間を別々に設定
hist_smoothing_period = input(5, title = "Histogram Smoothing Period") // 棒グラフのスムージング期間
line_smoothing_period = input(5, title = "Line Smoothing Period") // ラインのスムージング期間

// 各データの取得
fed = fed_active ? request.security("USCBBS", "D", close, currency=currency.USD) : 0
rrp = rrp_active ? request.security("RRPONTSYD", "D", close, currency=currency.USD) : 0
tga = tga_active ? request.security("WTREGEN", "D", close, currency=currency.USD) : 0
ecb = ecb_active ? request.security("EUCBBS * EURUSD", "D", close, currency=currency.USD) : 0
pbc = pbc_active ? request.security("CNCBBS * CNYUSD", "D", close, currency=currency.USD) : 0
boj = boj_active ? request.security("JPCBBS * JPYUSD", "D", close, currency=currency.USD) : 0
boe = other_active ? request.security("GBCBBS * GBPUSD", "D", close, currency=currency.USD) : 0
boc = other_active ? request.security("CACBBS * CADUSD", "D", close, currency=currency.USD) : 0
rba = other_active ? request.security("AUCBBS * AUDUSD", "D", close, currency=currency.USD) : 0
rbi = other_active ? request.security("INCBBS * INRUSD", "D", close, currency=currency.USD) : 0
snb = other_active ? request.security("CHCBBS * CHFUSD", "D", close, currency=currency.USD) : 0
cbr = other_active ? request.security("RUCBBS * RUBUSD", "D", close, currency=currency.USD) : 0
bcb = other_active ? request.security("BRCBBS * BRLUSD", "D", close, currency=currency.USD) : 0
bok = other_active ? request.security("KRCBBS * KRWUSD", "D", close, currency=currency.USD) : 0
rbzn = other_active ? request.security("NZCBBS * NZDUSD", "D", close, currency=currency.USD) : 0
sr = other_active ? request.security("SECBBS * SEKUSD", "D", close, currency=currency.USD) : 0
bnm = other_active ? request.security("MYCBBS * MYRUSD", "D", close, currency=currency.USD) : 0

// 流入流出の計算
inflow = fed + boj + pbc + boe + ecb + rbi + boc + rba + snb + cbr + bcb + bok + rbzn + sr + bnm
outflow = rrp + tga

// ネット変化の計算
net_change = inflow - outflow

// 前日との変化を計算
net_change_diff = net_change - net_change[1]

// スムージング関数の選択
smooth_func(series, period, method) =>
    method == "EMA" ? ta.ema(series, period) : ta.sma(series, period)

// オシレータの計算
smoothed_net_change_hist = smooth_func(net_change_diff, hist_smoothing_period, hist_smoothing_method)
smoothed_net_change_line = smooth_func(net_change_diff, line_smoothing_period, line_smoothing_method)

// 棒グラフの表示
plot(smoothed_net_change_hist, title="Net Change (Histogram)", color=color.new(smoothed_net_change_hist >= 0 ? positive_color : negative_color, 0), style=plot.style_histogram, linewidth=2)

// ラインプロットの表示
plot(smoothed_net_change_line, title="Net Change (Line)", color=line_color, linewidth=2)

いいなと思ったら応援しよう!