つみたてNISAの設定日(購入日)がいつが良いのかわからなかったので、過去の値動きを見て決めてみたいと思います。 設定日を決めれる以上、人の都合や何かしらの心理が働いていると思うのでデータを解析することで特徴を出せると思うのです。
データの入手
銘柄は「三菱UFJ国際-eMAXIS Slim 全世界株式(オール・カントリー)」で、MUFGのページでCSVをダウンロードできました。
特徴量の計算
割安日をとらえたいので、1-3日前からの変化率を算出します。
import pandas as pd
df = pd.read_csv(f'../data/emaxis_slim_2023.csv',encoding="SHIFT_JIS", usecols=[0, 1], names=['date','price'], index_col=0, skiprows=2, parse_dates=True)
df['day'] = df.index.day # 日にちの列追加
df['pct1'] = df['price'].pct_change() # 1日前との変化率
df['pct2'] = df['price'].pct_change(2) # 2日前との変化率
df['pct3'] = df['price'].pct_change(3) # 3日前との変化率
df = df.dropna()
display(df)
date | price | day | pct1 | pct2 | pct3 |
---|---|---|---|---|---|
2018-11-05 00:00:00 | 10228 | 5 | 0.0018611 | 0.0149846 | 0.0228 |
2018-11-06 00:00:00 | 10259 | 6 | 0.0030309 | 0.00489764 | 0.0180609 |
2018-11-07 00:00:00 | 10293 | 7 | 0.00331416 | 0.0063551 | 0.00822803 |
2018-11-08 00:00:00 | 10494 | 8 | 0.0195278 | 0.0229067 | 0.026007 |
2018-11-09 00:00:00 | 10493 | 9 | -9.52925e-05 | 0.0194307 | 0.0228092 |
… | |||||
2023-05-31 00:00:00 | 18280 | 31 | -0.005603 | -0.00894551 | 0.00905277 |
2023-06-01 00:00:00 | 18074 | 1 | -0.0112691 | -0.016809 | -0.0201139 |
2023-06-02 00:00:00 | 18242 | 2 | 0.00929512 | -0.00207877 | -0.00767013 |
2023-06-05 00:00:00 | 18660 | 5 | 0.0229142 | 0.0324223 | 0.0207877 |
2023-06-06 00:00:00 | 18579 | 6 | -0.00434084 | 0.0184739 | 0.0279407 |
続いて、日ごとに集計した平均を出したいと思います。
# 日ごとに集計するためのマルチインデックス
df_after = df.set_index(df['day'], append=True)
# 日ごとの平均
df_mean = df_after.groupby(level='day').mean()
display(df_mean)
day | price | day | pct1 | pct2 | pct3 |
---|---|---|---|---|---|
1 | 14009.5 | 1 | -0.000590313 | 0.00369232 | 0.00270431 |
2 | 14005.1 | 2 | -0.000892502 | -0.000177633 | 0.00213408 |
3 | 13256.6 | 3 | 0.00494368 | 0.00345802 | 0.00433742 |
4 | 13236.2 | 4 | -0.000535108 | 0.000229217 | 0.0017365 |
5 | 13441.9 | 5 | 0.00456021 | 0.00720238 | 0.00805549 |
6 | 13773.8 | 6 | 5.4422e-05 | 0.00639343 | 0.00706804 |
7 | 13532.4 | 7 | 0.00241265 | -0.000695427 | 0.00296299 |
8 | 13635.6 | 8 | 0.00341197 | 0.00615055 | 0.00490566 |
9 | 13579.8 | 9 | -0.000594723 | 0.00173869 | 0.00800177 |
10 | 13529.4 | 10 | -0.00164643 | -0.00213417 | -0.000465203 |
11 | 13373.9 | 11 | 0.00215085 | 0.00289 | -0.00106034 |
12 | 13574.7 | 12 | 0.000725634 | 0.00204223 | 0.00326936 |
13 | 13512.6 | 13 | -0.00400189 | -0.00421863 | -0.00202495 |
14 | 13735 | 14 | -0.00190246 | -0.00257157 | -0.000705457 |
15 | 13698.8 | 15 | 0.00179757 | -0.000435758 | -0.00139424 |
16 | 13754.7 | 16 | 0.00453384 | 0.00300484 | -0.000584403 |
17 | 13664.8 | 17 | -0.000698588 | 0.00446433 | 0.00523255 |
18 | 13449.8 | 18 | 0.00234387 | 0.00220432 | 0.00785762 |
19 | 13403 | 19 | -0.00174472 | 0.000533369 | -0.00153524 |
20 | 13532.9 | 20 | 0.000415733 | -0.00101425 | 0.000462852 |
21 | 13550.1 | 21 | -0.00318505 | -0.0020871 | -0.00200689 |
22 | 13773.8 | 22 | 0.000598292 | -0.00155823 | 0.000998652 |
23 | 13302.3 | 23 | 0.00117667 | 0.000962874 | -0.00196247 |
24 | 13856.2 | 24 | -0.000618418 | -0.00027108 | -0.00236831 |
25 | 13495.7 | 25 | -0.000547292 | -0.00268069 | -0.0012487 |
26 | 13437.4 | 26 | -0.000596698 | -0.00190722 | -0.00385332 |
27 | 13435.8 | 27 | 0.00230453 | 0.00206782 | 0.000817791 |
28 | 13560.3 | 28 | 0.00195783 | 0.00374439 | 0.00194593 |
29 | 13685.9 | 29 | -0.000123569 | 0.00141652 | 0.00247913 |
30 | 13643 | 30 | 0.00219005 | 0.00362113 | 0.00622626 |
31 | 14038.8 | 31 | 0.00357375 | 0.00523383 | 0.00987567 |
|
設定日の決定
どの時点からの変化率を採用するのか迷ったので、ボルダ式で決めたいと思います。
ボルダ得点(ボルダとくてん)は、投票者が選好順序に従って候補にランク付けをする、一人勝者選挙方式である。
wiki:ボルダ得点
日にち | 1日前 | 2日前 | 3日前 | 合計得点 |
---|---|---|---|---|
13日 | 5 | 5 | 3 | 13 |
21日 | 4 | 1 | 2 | 7 |
14日 | 3 | 3 | 6 | |
19日 | 2 | 2 | ||
10日 | 1 | 2 | 3 | |
25日 | 4 | 4 | ||
26日 | 5 | 5 | ||
24日 | 4 | 4 | ||
23日 | 1 | 1 |
ゆえに13日に設定したいと思います。
おわりに
自分で納得するためにやってみましたが、クレカで買い付けることにしたので(1%のポイントバック)実際は1日しか選べませんでした。
今回の行動は徒労に帰したので、供養のためここに記します。未来のことは誰にもわかりません。