SBI証券の損益管理を自動化してみる日記【その8】

さて、前回は取得した損益データを元に、年ごと取引内容ごとにグラフに表示するとこところまで出来ました。

今回は、月ごとの損益グラフとその累積折れ線グラフを作成していきたいと思います。前回作成したdraw_profit_graph関数に処理を追加していきます。

その前に月ごとの損益と累積グラフの前に、行に年、列に月の形で集計したピボットテーブルも見たいので先にそちらを作ることにします。

   # 年、月ごとの二次元データ
   df_monthly = pd.pivot_table(df_master, index='年', columns='月', values='損益金額/徴収額(内地方税)', aggfunc='sum', fill_value=0, margins=True)
   display(df_monthly)

実行してみます。

スクリーンショット 2020-11-01 20.41.58

はい、うまくいきました。

では、月ごとの損益グラフとその累積折れ線グラフを作成します。

   # 年月ごとの二次元データ
   df_monthly = pd.pivot_table(df_master, index='年月', values='損益金額/徴収額(内地方税)', aggfunc='sum', fill_value=0)
   df_monthly['累積損益'] = df_monthly['損益金額/徴収額(内地方税)'].cumsum()
   # display(df_monthly)

   data = [
       go.Bar(x=df_monthly.index, y=df_monthly['損益金額/徴収額(内地方税)'], name='損益金額/徴収額(内地方税)'),
       go.Scatter(x=df_monthly.index, y=df_monthly['累積損益'], name='累積損益')
   ]
   layout = go.Layout(
       width=1000
   )
   fig = go.Figure(data=data, layout=layout)
   fig.show()

実行してみます。

スクリーンショット 2020-11-01 20.48.45

はい、うまくいきました。過去2年間の累積損益は長らくマイナスで先月ようやくプラスになりましたね・・・。

データは取得したので他にも決済時の利益率、保有期間など出そうと思えば出せますね。

とりあえず本日はこの辺にしておきたいと思います。

次回はNISA口座の損益データを取得していきたいと思います。

当初この記事を書き始めた際に、エントリ時の手数料と税金を約定履歴から取得しようと考えていましたが、譲渡益税明細のデータにエントリ時の手数料と税金も含まれているようです。よく考えたら税金の計算にエントリ時のコストも必要になるので当然ですね・・・。

ということでNISAの損益データを取得できたところでゴールにしたいと思います。






この記事が気に入ったらサポートをしてみませんか?