Win11 WSL2 Ubuntu Python yfinance

ローソク足チャート作成

ここまでで、日足為替情報取得ファイルが実行できました。
引き続き、取得した4時間足、日足データを使ってローソク足チャートを作成して行きます。

mplfinance インスト-ル

ロ-ソク足チャ-トを作成するためには mplfinance をインストールする必要があります。
ローソク足チャートを含む金融関係のグラフ描画機能はもともと matplotlib.finance として Matplotlib に含まれていたが、Matplotlib バージョン2.0から mpl_finance という 別のパッケージとして切り出されました。
さらに mplfinance という新たなパッケージが作られ、2021年現在は mpl_finance は DEPRECATED(非推奨)となり mplfinance の使用が推奨されています。
mplfinance は Matplotlib とは別にインストールする必要があります。
conda-forge からインストールファイルをダウンロードします。
WSL2 Ubuntu のターミナルを立ち上げます。
mplfinance をインストールファイルします。
yamada@yama:~$ conda install -c conda-forge mplfinance
Enter を押してインスト-ルを開始します。
しばらく黙りこくってからコメントが次々と出てきて完了します。
インスト-ル結果を見ます。
$ conda list
でインスト-ルを確認すると

yamada@yama:~$ conda list
# packages in environment at /home/yamada/miniconda3:
#
# Name         Version          Build  Channel
_libgcc_mutex  0.1       conda_forge   conda-forge
_openmp_mutex  4.5       2_kmp_llvm    conda-forge
  ・・・・・・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・・・・・・・ 
 mplfinance    0.12.9b7  pyhd8ed1ab_0  conda-forge  
  ・・・・・・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・・・・・・・ 

mplfinance 0.12.9b7 pyhd8ed1ab_0
がインスト-ルされました。

mplfinance を使用

mplfinance モジュ-ルを使用して4時間足ロ-ソク足チャ-トを表示します。
豪ドル/円 の約100本分の4時間足 CSV デ-タを用意します。
データの取得方法は
yfinance 概要
から順次読んでいただくと分かります。
4時間足 CSV デ-タは
/home/yamada /public_html/manep/yfin_audjp_4h.csv
に保存されています。

ライブラリ取込み

取込む必要があるライブラリは4つです。
import pandas as pd
import matplotlib.pyplot as plt
from mplfinance.original_flavor import candlestick_ohlc
必要な CSV ファイル yfin_audjp_4h.csv を取込みます。
CSV の保存場所は絶対パスで表記する必要があります。
df = pd.read_csv(
"/home/yamada /public_html/manep/yfin_audjp_4h.csv", index_col='Datetime'
)
特定のカラム Datetime の値をインデックスラベルとして使っていますので index_col 引数を使用して csv データを読込みます。
使用するデータは最後(最新)から100番目までの100組とします。
df1 = df[-1:-101]
日時データはインデック列にありますので
Date = df1.index
とします。
Date 中には 2025/07/18 00:00:00 のような値が入ります。
lastday=Date[-1][:10]
最後(最新)の日付も取得しておきましょう。
あとで使います。

ロ-ソク足表示順

ロ-ソク足を表示する順番 Idx を設定します。
df1 のインデックは日時データなので、これを
0,1,2,3,・・・・・・・・
のような整数列に変更します。
df1.reset_index(drop=True, inplace=True)
drop=True で元のインデックを廃棄します。
inplace=True で df1 のインデックを 0,1,2,3,・・・
に直接変換します。

豪ドル/円 CSV デ-タでロ-ソク足表示

yfin_audjp_4h.csv デ-タをロ-ソク足表示していきます。
ロ-ソク足表示に必要なデ-タは
Open = df1["open"].values
High = df1["high"].values
Low = df1["low"].values
Close = df1["close"].values
と Date と Idx
の6列です。

X 軸日付処理

yfin_audjp_4h.csv デ-タの中の日付は
2025-07-18 00:00:00
のようになっており、そのまま X 軸日付表示をさせるには文字列が長すぎます。
よってこれを 7-18 のように短縮します。

  1. 型変換

    Pandas で抜き取った Date は リスト型になっています。
    これを str 型 に変換します。
    変換しても CSV 書式がそのまま残っていますので、
    2025/07/18 00:00:00
    のように変換されます。
    余計な文字列が沢山ありますので、これを削除していきます。
    必要なのは、月日の -07-18 です。
    左から 0~3 の 4 文字と10文字以降は必要ないので
    e4 = str(Date[i])[4:10]
    とすると、6文字が取得され
    e4 には -07-18 が入ります。

  2. 月日が1桁の時

    月日が1桁の時は、-01 のような形をしています。
    0 は余計なのでこれを削除します。
    Python 組込関数 replace()を使って、一旦 -0 を - に置き換えます。
    第一引数に置換元文字列、第二引数に置換先文字列を指定します。
    e6 = e4.replace("-0", "-")
    e4 は -07-18 ですので -7-18 が e6 に入ります。

  3. 左端の - を削除

    Python 組込関数 lstrip() で、左端の - を削除します。
    e8 = e6.lstrip("-")
    e8 には 7-18 が入りました。

  4. 繰返して X 軸日付処理

    xData は X 軸の目盛り日付です。
    そして、Python 組込関数 enumerate()を使って Date デ-タがある限り、i = 0 から 順番に for 分で処理を繰り返します。
    Date の中に 101個のデ-タが存在するとすれば、i は 0~100 まで変化します。
    今回は 4時間足10本ごとに X 軸日付を付けることにします。
    if(i % 10 == 0):
    として 10本ごとに日付を作成します。
    また、xD は日付表示位置となります。
    まとめると以下のようになります。


  xDate = []
  xD = []
  for i, key in enumerate(Date):
    if(i % 10 == 0):
      e4 = str(key)[4:10]
      e6 = e4.replace("-0", "-")
      e8 = e6.lstrip("-")
      xDate.append(e8)
      xD.append(i)

以上でロ-ソク足表示の準備ができました。
引き続き、ロ-ソク4時間足表示方法について説明していきます。


  • yfinance ロ-ソク4時間足表示 に進む
  • 日足為替情報取得アップデートファイル実行 に戻る
  • 日足為替情報取得アップデート に戻る
  • 日足為替情報取得ファイル実行確認 に戻る
  • 日足為替情報取得ファイル作成 に戻る
  • 4時間足為替情報取得ファイル作成 に戻る
  • 為替情報取得ファイル に戻る
  • yfinance 概要 に戻る
  • 70VPS に戻る