Julia で株価の推移をplotしてみた(複数の株価を比較)
February 13, 2025 – 3:23 pm前回は過去1年間の日経株価の推移をplotした。
今回は、特定の日時の株価を100にし、複数のその後の株価推移をplotしてみる。plotの対象として、日経平均(^N225)とメガバンク4行(三菱UFJ(8306.T)、三井住友FG(8316.T)、りそなHD(8308.T)、みずほFG(8411.T))を選んだ。
2023年1月1日(株価は4日)の株価を100としたときの推移をplotしたものが以下:
この図を出力するうえで、DataFrames に含まれる様々な機能を使っており、JuliaのDataFramesが極めて効果的であることがわかる。特に、Pythonのpandasの操作に比べてシンプルであることが理解できると思う。
以下、上記のplot図を作成するソースを掲げる:
using YFinance using Dates using DataFrames using TimeSeries using Plots function process_str(original_string) if ( occursin("^", original_string) ) return replace( original_string, "^" => "" ) else numbers = match(r"^\d{4}", original_string).match return "T" * numbers end end tickers = ["^N225", "8306.T", "8316.T", "8308.T", "8411.T"]; data = get_prices.(tickers, range="5y", interval="1d",exchange_local_time=true); df = vcat([DataFrame(i) for i in data]...); df.timestamp = Date.(map(x->Dates.format(x,"yyyy-mm-dd"), df.timestamp)) time_origin = "2023-01-01"; df_subset = df[ df.timestamp .>= Date(time_origin), :]; gdf = groupby(df_subset, :ticker); df_close = DataFrame(timestamp = gdf[1].timestamp); for i = 1:length(tickers) df_close[ !, Symbol( process_str( gdf[i][i,:ticker] ) )] = gdf[i].close; end for col in names(df_close)[2:ncol(df_close)] df_close[:, col] = df_close[:, col] ./ df_close[1, col] * 100. end time_array = TimeArray(df_close, timestamp=:timestamp); plot( time_array[:N225, :T8306, :T8316, :T8308,:T8411] )