さくら VPS Python 豪ドル/円 4時間足予測
豪ドル/円ロ-ソク4時間足と予測値の表示
ここまで、長々と予測グラフを表示するための準備をしてきました。
ここからは、ロ-ソク4時間足の表示と予測値を表示していきます。
まずはそのスクリプトを表示します。
import matplotlib.pyplot as plt #① from mplfinance.original_flavor import candlestick_ohlc 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), Idx6, p(Idx6),'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_4h.png') #⑧
- #① candlestick_ohlc 読込み
外部モジュ-ル matplotlib の中の pyplot モジュールを読み込んで これを plt と呼びますと宣言します。
その後、mplfinance の中の mplfinance.original_flavor から candlestick_ohlc を読込みます。
ちょっと余談になりますが、大昔の説明では、
import matplotlib.finance as mpf
と書いてあるのですが現在は使用不可のようです。
その後、mpl_finance を使用するようになり
from mpl_finance import candlestick_ohlc
のように書いていました。
現在はさらに変更され mpl_finance は mplfinance に代わっています。 - #② OHLC 形式に変換
xl_df は DaraFrame 書式、これを OHLC(Zip)形式に変換します。
このあと、candlestick_ohlc()メソッドを使用してロ-ソク足を表示します。
リストの要素を取得する場合は for 文を使用するのが一般的ですが、 複数のリストの要素をまとめて取得したい場合もあります。
python 組込 zip 関数は複数のリストを同時に取得したい場合に使用する関数です。
zip 関数は以下のように引数に取得したいリスト名を指定します。
ohlc = zip(Idx, Open, High, Low, Close)
これでロ-ソク足を表示するための前準備は完了です。 - #③ キャンパス作成
figure はグラフや文字など、全てが描かれるウインドウ(またはページ)を指します。
全ての要素の最上位レベルのコンポーネント figure インスタンス fig を生成します。
fig = plt.figure(figsize=(8.34, 5.56))
のように書くことができます。
figsize のデフォルトは、(8,6) に設定されています。
単位インチ(1in = 25.4mm)です。
でも、ピクセルサイズで図の大きさを指定したいこともありますよね。
こんな時は
Jupyter Notebook 上で作業をする場合は figsize = ピクセル÷72
とすればよいようです。
600×400 ピクセルの図にしたいならば
figsize-横 = 600÷72 = 8.33333
figsize-縦 = 400÷72 = 5.55555
にします。
今回は Python スクリプト上で作業をしていますので
figsize = 600÷100 = 6
となります。
これは、
dpi = dots per inch
が異なるせいです。
Python で実行すると dpi は 100、
Jupyter Notebook で実行すると dpi は 72
になります。
今回は 834×556 ピクセルの図にします。
細かいですね。
どうしてこうなるの!
描かれる図の余白部分を除いた横幅を 720(360×2)ピクセル、縦横比を 2:3 にしたかっただけです。 - #④ 図の配置
図を figure 内の枠のどこに配置するか指定します。
figure.add_subplot()
を使用すると、描画するグラフの配置インスタンスを作成することができます。
ここでは、fig キャンパスの中の、 (1,1,1) すなわち「1行 1列の1つ目」に配置インスタンス ax を作成しました。
ax = fig.add_subplot(1,1,1)
ax にはグリッドも入れることにします。
ax.grid()
ここに、多項式フィッティング線と予測線を描きます。
plt.plot(
Idx, p(Idx),
Idx6, p(Idx6),'bo')
Idx, p(Idx) がフィッティング線、
Idx6, p(Idx6),'bo' が予測線(●印)
が表示されます。 - #⑤ ロ-ソク足設定
candlestick_ohlc( ) メソッドでロ-ソク足の設定をします。
width = 0.5 :
ロ-ソク足の太い部分の幅設定。
大きくすると太くなります。alpha = 1 :
ロ-ソク足の透明度。
1 にすると不透明になります。colorup='r', colordown='g':
ロ-ソク足の色設定。
今回は陽線を赤、陰線を緑に設定しました。 - #⑥ 変換日付を X 軸日付に埋込む
変換日付を X 軸日付に埋込みます。
表示日付位置は軸値(Idx)の時刻表示が 00:00:00 でかつ一回表示したら次の表示はパスします。
すなわち 12本に一回ずつ日付が表示されることになります。
この表示位置は、xD のなかにあります。
変換日付は xDate のなかにあります。
よって、xticks メソッドを使うと
plt.xticks(xD, xDate)
とすると、日付を順次表示することができます。 - #⑦ タイトル・ラベル表示
plt.title('AUS$ / JPY chart')
plt.xlabel('Date')
plt.ylabel('Yen')
とするとタイトルとX,Y軸ラベルがそれぞれの中央位置に表示されます。 - #⑧ グラフ保存
グラフを保存するときは描画メソッド
plt.show() は使用せず
保存フォルダ
/home/yamada/public_html/manep-img/
とファイル名
mane_chart_go_4h.png
を指定してplt.savefig( '/home/yamada/public_html/manep-img/mane_chart_go_4h.png'
とするとグラフをファイル保存してくれます。
ここまで、豪ドル/円ロ-ソク4時間足予測についていろいろと説明してきました。
引き続き、これらの内容をまとめます。