Python Ubuntu

pandasとmatplotlibで株式取引の可視化

投稿日:2017年11月26日 更新日:

可視化

前回、Python3で株式売買のシミュレーション〜pandasでは、ランダムで売買するよりも成績が悪かった.
その理由としては、いろいろ考えられる.
– エントリーの判断が正しくない
– 利益が確保できていない
– 株価は予測不可能だった

これらを確かめるには、まず、結果として出てきた平均値が、そのデータを本当に代表しているのか、その内容を確認してみる必要がある.
数値のデータをグラフにして可視化するのがその第一歩となる.

そこで、まず、売買シミュレーションをした期間の株価のグラフを描画して、これに利用した指標のグラフを重ねあわせる.
次に、実際のAIが取引したデータで取引した日と価格をグラフに書き加えたい.

下準備

csvデータとして保存

まず、csvデータとして保存することから、DataFrameインスタンスは、to_csvメソッドというメソッドでcsvファイルとして保存できる.
今回は次のようなデータを用意した.
score.csv

対象期間の株価データ

取引データ

pandasのplot

pythonでは、グラフ描画にはmatplotlibというライブラリのが一般的.
pandasでは、matplotlibをラッパーしたplotというメソッドが用意されている.

Pandasのplotの全引数を解説

jupyterでグラフ描画の準備

とりあえずヒストグラム

極端な数字の外れ値があると、平均値はデータを代表する値ではなくなる.
外れ値を見るには、ヒストグラムにしてみるのが手っ取り早い.

バーが離れてて気持ち悪いヒストグラムだけど、とりあえず大きな外れ値はなさそう.

サンプル数を1000件まで増やしてみると、だいたいこんな感じ.

とりあえずplotしてみる

なお、画像を保存するには、

とりあえず、x軸は日付、y軸はcloseだけでいいので、xyを指定する.

日本語タイトル指定

日本語表示にはフォントをまず指定する(ubuntuなのでタカオフォント)

そして、titleで指定

ほかの指標グラフも重ねあわせる

同じデータフレームなのでyをリストで指定してもいいけど、あとからグラフを重ねることもできる.
その場合、plotの返り値でaxオブジェクトが返ってくるので、オプションのaxで指定すればOK
alphaの指定は透明度
gridはグリッド線を表示するかどうか

matplotlibでsubplot

よくある株式チャートのように別のグラフで取引高やRSIを表示したい.
matplotlibのグラフは、Figureという描画領域の中に、複数のaxという座標軸を持つことができる.
(そのほかにグリッド上に複数の座標軸を配置できたり、座標で指定したところに座標軸をさらに指定したりすることもできる.)
ここでは、x軸を共通にする複数の座標軸を持つグラフを縦に3つ並べてみる.

matplotlib の figure(図) と axes(座標軸)-python

縦幅のバランスを整えたい.
1番目のaxは2分の1、3番目、4番目は4分の1

売買データをプロットする

時系列データは折れ線グラフであらわすのだけど、設定でマーカーを表示して、線を消せば、エントリーとイグジットのポイントを図示できる.
グリーンの+が買いのエントリ、*がイグジット.レッドの+が売のエントリ、*がイグジット.
Matplotlib.pyplotのplotの全引数を解説を参考にして、linestyle、marker、colorなどを設定する.

番外編 ローソク足チャート

ローソク足チャートは、今のところmatplotlib.financeにある.
将来的に、mpl_financeに移る予定というアナウンスがあるけど、mpl_financeのリポジトリにはもうメンテナンスしてないって書いてある.

candletick2_ohlcはx軸を指定できないので、別にx軸を指定しなければならない.
xticksでindexを5つおきに目盛にして、そのラベルをstrftimeで作成している.
参考: pythonのmatplotlib(とちょこっとpandas)でローソク足のチャートを書く

まとめて保存

大きな波で利益を確保できていない
損切りが多くてもいいから、大きな利益を取るようにしたい

AWS Access Key ID: AKIAIZUDN7SMNJFMNVLA. You are submitting requests too quickly. Please retry your requests at a slower rate.

-Python, Ubuntu
-, , ,

執筆者:

関連記事

はじめてのKaggle~pandas、scikit-learn

By: Internet Archive Book Images – Flickr Commons 目次1 kaggle2 kaggleコマンドのインストール3 タイタニック:災害の機械学 …

Pythonではじめての機械学習~scikit-learn、tensorflow

By: krheesy – CC BY 2.0 目次1 機械学習2 scikit-learn3 tensorflow 機械学習 勉強しているところなので、間違っている箇所もあるかもしれませ …

市場テクニカル分析ライブラリta-libとPython用のラッパーTa-Libをインストールする

By: GotCredit – CC BY 2.0 目次1 ta-lib2 Ta-Lib ta-lib ta-libは市場のテクニカル分析用のライブラリ集. linuxの場合はソースコード …

Python3で統計の勉強まとめ

By: Anssi Koskinen – CC BY 2.0 目次1 Hackerrank 10 Days of Statistics2 Day0 平均値、中央値、最頻値3 Day1 四分 …

Ubuntu Desktopで指紋認証〜Fingerprint GUI

By: Chris Costes – CC BY 2.0 目次1 Fingerprint GUI2 インストール3 指紋登録4 Done Fingerprint GUI launchpad …