Python で 豪ドル/円チャ-ト を探求

豪ドル/円予測改善ファイルまとめ

ここまでで、豪ドル/円のCSVデ-タ mane_chart_go.csv のダウンロ-ドファイルが完成しました。
引き続き 豪ドル/円予測改善ファイル をまとめます。
sc_sele_mane_poly-tako.py をまとめると次のようになります。
2023/4/25日追記
Windows10
Oracle VM VirtualBox7
ubuntu-2204-LTS
の環境で次のような警告がでるようになりました。
Matplotlib created a temporary config/cache directory at
/tmp/matplotlib-exerkpb3
because the default path
(/home/yamada/.cache/matplotlib)
is not a writable directory;
it is highly recommended to set the MPLCONFIGDIR environment variable
to a writable directory,
in particular to speed up the import of Matplotlib
and to better support multiprocessing.
和訳:
デフォルト パス(/home/yamada/.cache/matplotlib)
は書き込み可能なディレクトリではないため、
Matplotlib は一時的な config/cache ディレクトリを
/tmp/matplotlib-exerkpb3
に作成しました。
MPLCONFIGDIR 環境変数を書き込み可能なディレクトリに設定することを強くお勧めします。
特に、Matplotlib のインポートを高速化し、
マルチプロセッシングをより適切にサポートするためです。

推奨内容にしたがって、最初の部分に
import os
os.environ['MPLCONFIGDIR'] = '/tmp/'

を追記します。

----まとめコ-ドはここから----


  #!/usr/bin/python3
  # -*- coding: utf-8 -*-
  import datetime
  #230425 2行追加
  import os
  os.environ['MPLCONFIGDIR'] = '/tmp/'
    
  def addBusinessDays(from_date, add_days):
    cur_date8 = [] # 21/03/30
    cur_date4 = [] # 3/30
    business_days_to_add = add_days
    current_date = from_date
    while business_days_to_add > 0:
      current_date += datetime.timedelta(days=1)
      weekday = current_date.weekday()
      if weekday >= 5: # sunday = 6
        continue
      #土日は以下はスキップ
      # 年/月/日として文字列にする
      #例 21/03/30      
      e11 = current_date.strftime("%y/%m/%d")
      e22 = e11.replace("/0", "/")
      e33 = e22[3:] # 21/ 削除
      cur_date8.append(e22)
      cur_date4.append(e33)
      business_days_to_add -= 1
    return cur_date8, cur_date4

  import pandas as pd
  import numpy as np
  from datetime import datetime as dt
  import matplotlib.pyplot as plt
  # import mplfinance as mpf
  from mplfinance.original_flavor import candlestick_ohlc

  xl_df = pd.read_csv(
   "/home/yamada/public_html/manep/mane_chart_go.csv",
   encoding="cp932")

  Close = xl_df["終値(売り)"].values
  app = Close[-1:]
  # print(app)
  app1 = np.hstack((app, app, app, app, app))
  # print(app1)
  Close1 = np.hstack((Close, app1))
  # print(Close1)

  Idx = xl_df.index

  # Idx は 0 スタ-ト
  Idx5 = Idx[-5:] + 5
  Idxlg = np.r_[Idx, Idx5]
  # print(Idxlg) 
  z = np.polyfit(Idxlg, Close1, 9)
  p = np.poly1d(z)
  # print("予測値=最終日+1~+5日")
  p_pand = np.round(p(Idx5),3)

  Open = xl_df["始値(売り)"].values
  High = xl_df["高値(売り)"].values
  Low = xl_df["安値(売り)"].values
  # Closea = xl_df["終値(売り)"].values
  Date = xl_df["日付"].values
  tstr = Date[-1]
  tdatetime = dt.strptime(tstr, '%Y/%m/%d %H:%M:%S')
  # 文字列をdatetimeに変換するのがstrptime()関数
  # datetime.datetime.strptime(文字列, 書式指定文字列)
  lastday = addBusinessDays(tdatetime, 5)
  # pandas concat 関数で横(列)方向へ連結 axis=1 を忘れるな
  lastday_pd = pd.DataFrame(lastday[0])
  p_pand_pd = pd.DataFrame(p_pand)
  df_concat = pd.concat([lastday_pd, p_pand_pd], axis = 1)
  # print(df_concat)
  df_concat.to_csv(
   '/home/yamada/public_html/manep-img/mane_chart_go.csv',
   header=False, index=False)

  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)

  xDate.append(lastday[1][4])
  xD.append(i + 5)

  ohlc = zip(
   Idx, Open, High, Low, Close)
  fig = plt.figure(
   figsize=(8.34, 5.56))

  ax = fig.add_subplot(1,1,1)
  ax.grid()
  plt.plot(
   Idx, p(Idx),
   Idx5, p(Idx5),'bo')
  candlestick_ohlc(
   ax, ohlc, width=0.5, alpha = 1,
   colorup='r', colordown='g')
  plt.xticks(xD, xDate)
  plt.title('AUS$ / JPY chart')
  plt.xlabel('Date')
  plt.ylabel('Yen')
  plt.savefig(
   '/home/yamada/public_html/manep-img/mane_chart_go.png')

豪ドル/円予測ファイル改善ファイル作成

まとめた2つのファイルは動作確認のため TeraPad 等で作成したら、ファイル名をそれぞれ
sc_sele_mane_down.py
sc_sele_mane_poly-tako.py
として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の 共有フォルダ c:\vb_public_html にしました。
なお、
c:\vb_public_html
はゲスト OS Ubuntu のなかの
/home/yamada/public_html
とリンクしていて共有フォルダの関係にあります。
詳細は ユ-ザ-ごとの公開ディレクトリを用意する を読んでみてください。

豪ドル/円予測改善ファイル動作確認

まず、これらのファイルを動作させるには Selenium が動作するように、Ubuntu に必要パッケ-ジ
Selenium, ChromeDriver, chromium-browser
をインスト-ルする必要があります。
まだの方はPython Selenium Web 自動操作概要 を読んで、Ubuntu に必要パッケ-ジをインスト-ルしてください。
2つ目のファイル sc_sele_mane_poly-tako.py を動作させるには
pandas, pyplot(matplotlib), Numpy, mplfinance
の各パッケ-ジも必要です。
まだの方は豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化 を読んで、Ubuntu に必要パッケ-ジをインスト-ルしてください。
インスト-ル済みの方はこれはパスします。
Ubuntu ディスクトップにある □>_ アイコンから端末画面を開き、
yamada@ubuntu-20:~$ mkdir public_html/manep-img
として新規ディレクトリを作成しておきます。
/home/yamada/public_html/manep-img
が作成できました。
作成済みの方はこれはパスします。
また
/home/yamada/public_html/manep
のフォルダとその中に
mane_chart_go.csv
ファイルが必要です。
この辺のところは 豪ドル/円 CSV 改造ファイルまとめ を読んでください。

ここまでで、豪ドル/円予測改善ファイル動作確認の前準備が完了しました。
引き続き、本ファイルを実行確認します。


  • 豪ドル/円予測改善ファイル確認 に進む
  • 豪ドル/円予測ファイル改善ファイル に戻る
  • 豪ドル/円予測ファイル改善 に戻る
  • 合体ファイルさくら VPS で定時自動実行 に戻る
  • 豪ドル/円 CSV ダウンロ-ド,グラフ化合体ファイルをさくら VPS で動かす に戻る
  • 豪ドル/円 CSV ダウンロ-ド,グラフ化合体ファイル確認 に戻る
  • 豪ドル/円 CSV ダウンロ-ド,グラフ化合体ファイル に戻る
  • 豪ドル/円 チャ-ト 予測表示 に戻る
  • 豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化ファイルまとめ に戻る
  • ロ-ソク足本体の表示 に戻る
  • 予測日/予測値の一覧表を作成 に戻る
  • 予測最終日取得 に戻る
  • Numpy polyfit 関数で豪ドル/円を予測 に戻る
  • 豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化 に戻る
  • 豪ドル/円 CSV 改造ファイルまとめ に戻る
  • Python 豪ドル/円チャ-ト 概要 に戻る
  • 70VPS に戻る