株価大暴落の件、嫁に話しました。
途端に泣き崩れる嫁。すまんな、もう贅沢品は買えない。
今から子どもに2,500万円失ったので中古のiPhoneも買えなくなる事、伝えます。
俺はトランプを絶対に許さない。
Powered by ChatGPT-4o
2ヶ月前に生成AIに書いてもらった。
それから関税90日間停止措置、米中の115%関税引き下げ等でマイナス600万円まで戻ってきた。
トランプ自身が「今は耐えろ。株を買え」と言ってたし株価操作じゃないのか……これ。
NYダウは世界を代表する企業で構成されている株価指数。
このためNYダウが下がった直後には、日経平均・世界各国の株価にも大きな影響が出ることがある。
NYダウが前日より高い場合は日本市場の寄付き価格は上がる傾向がある。
NYダウが前日より低い場合は日本市場の寄付き価格は下がる傾向がある。

これがシステムトレーダーはじめ投資家の常識。
10年毎のNYダウ・日経平均の相関係数


え?逆じゃない?


これがわかると、外国インデックスの増資をするかどうか?の判断ができるようになる。
最近は投資関係のネタに乏しいからやってみるか……。
因みに最長のヒストリカルデータは下記から手に入る。



因みに利用するのは、いつもの相関係数。相関係数の数値の意味と関係性は次のとおり。
強さ | 関係性 |
---|---|
-0.9以下 | 非常に強い負の相関 |
-0.7~-0.9 | 強い負の相関 |
-0.5~-0.7 | 負の相関がある |
-0.3~-0.5 | 非常に弱い負の相関 |
0.3~-0.3 | ほぼ無関係 |
0.3~0.5 | 非常に弱い正の相関 |
0.5~0.7 | 正の相関がある |
0.7~0.9 | 強い正の相関 |
0.9以上 | 非常に強い正の相関 |
NYダウから日経平均への影響(通常ケース)
NYダウが前日より高い場合は日本市場の寄付き価格は上がる傾向ある……ということだが下落率の相関係数は?
非常に弱い正の相関がある
ChatGPT-4oにまとめてもらったグラフの傾向は次の通り。
- 1950年代から2010年代にかけて、NYダウが日経平均に与える影響も増加しています。
- 特に1970年代後半から1980年代にかけて相関係数が急上昇し、0.5以上の高い相関が見られます。
- 2000年代以降は若干の減少が見られるものの、依然として0.4以上の相関が維持されています。
- これは、アメリカ経済の動向が日本市場に強い影響を与えていることを示しています。
予想通りの結果だけど、相関の強さは想定以上に強くなかった。
また、150年前と比べると徐々に相関係数の強さが強くなっているのが分かる。
徐々に日本のアメリカ依存が強くなっているということかな。
日経平均からNYダウへの影響(今回の調査対象)
さて結果は如何に?
ほぼ無関係
ChatGPT-4oにまとめてもらったグラフの傾向は次の通り。
- 1950年代から2010年代にかけて、日経平均がNYダウに与える影響は徐々に増加していることがわかります。
- 特に1980年代以降、相関係数は0.2以上の相関が見られます。
- これは、日本経済の成長とともに、日経平均が国際的な市場に与える影響が増加していることを示唆しています。
こちらも想定通りだけど、150年前と比べると日本がアメリカに与える影響も徐々に大きくなり始めていると言えなくもない。
少し不思議。
まとめ
ChatGPT-4oにまとめてもらったまとめ。
- 両方のグラフから、時間の経過とともに日経平均とNYダウの相関が強まっていることがわかります。
- これは、グローバル化の進展とともに、各国の株式市場がより密接に連動するようになっていることを示しています。
- これらの結果から、日経平均とNYダウの間には強い相関があり、特に近年ではその相関が顕著であることがわかります。
言いたいことは全部AIが語ってくれた。
結論としては、
アメリカ株価をのぞく時、アメリカ株価もまたこちらをのぞいているのだ
※ 深淵をのぞく時深淵もまたこちらをのぞいているのだ
Powered by ChatGPT-4o
という事が分かった。
どこに投資するか?
とよく質問されるけどインデックス投資は「入金力」と「投資期間」。
利用したソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
#### アメリカ前日と日本当日 #python sample2.py 2000-01-01 2024-12-31 previous #### 同日 #python sample2.py 2000-01-01 2024-12-31 same import pandas as pd import numpy as np import argparse def calculate_correlation(start_date, end_date, mode): # データを読み込む nikkei_data = pd.read_csv('^nkx_d.csv') ny_dow_data = pd.read_csv('^dji_d.csv') # 日付フォーマットを統一する nikkei_data['Date'] = pd.to_datetime(nikkei_data['Date'], format='%Y/%m/%d') ny_dow_data['Date'] = pd.to_datetime(ny_dow_data['Date'], format='%Y-%m-%d') # 日付をインデックスに設定する nikkei_data.set_index('Date', inplace=True) ny_dow_data.set_index('Date', inplace=True) if mode == 'previous': # アメリカ前日と日本当日 ny_dow_data['Previous_Close'] = ny_dow_data['Close'].shift(1) merged_data = pd.merge(nikkei_data, ny_dow_data, left_index=True, right_index=True, suffixes=('_nikkei', '_ny_dow')) filtered_data = merged_data.loc[start_date:end_date].copy() filtered_data['Return_nikkei'] = filtered_data['Close_nikkei'].pct_change() filtered_data['Return_ny_dow_previous'] = filtered_data['Previous_Close'].pct_change() filtered_data.dropna(subset=['Return_nikkei', 'Return_ny_dow_previous'], inplace=True) correlation = filtered_data[['Return_nikkei', 'Return_ny_dow_previous']].corr().iloc[0, 1] elif mode == 'same': # 同日 merged_data = pd.merge(nikkei_data, ny_dow_data, left_index=True, right_index=True, suffixes=('_nikkei', '_ny_dow')) filtered_data = merged_data.loc[start_date:end_date].copy() filtered_data['Return_nikkei'] = filtered_data['Close_nikkei'].pct_change() filtered_data['Return_ny_dow'] = filtered_data['Close_ny_dow'].pct_change() filtered_data.dropna(subset=['Return_nikkei', 'Return_ny_dow'], inplace=True) correlation = filtered_data[['Return_nikkei', 'Return_ny_dow']].corr().iloc[0, 1] else: raise ValueError("modeは 'previous' または 'same' のいずれかを指定してください。") return correlation if __name__ == "__main__": # 10年ごとの期間を設定 start_years = range(1950, 2015) end_years = range(1960, 2025) mode_list = ['previous', 'same'] results = [] for mode in mode_list: for start_year, end_year in zip(start_years, end_years): start_date = f"{start_year}-01-01" end_date = f"{end_year}-12-31" try: correlation = calculate_correlation(start_date, end_date, mode) results.append({ 'start_date': start_date, 'end_date': end_date, 'mode': mode, 'correlation': correlation }) print(f"期間: {start_date} - {end_date}, モード: {mode}, 相関係数: {correlation}") except Exception as e: print(f"エラー: {start_date} - {end_date}, モード: {mode}, 内容: {e}") # 結果をCSVに保存 results_df = pd.DataFrame(results) results_df.to_csv('correlation_results.csv', index=False) print("結果をcorrelation_results.csvに保存しました。") |