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)でローソク足のチャートを書く

まとめて保存

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

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理書籍

作者Wes McKinney

クリエーター小林 儀匡, 鈴木 宏尚, 瀬戸山 雅人, 滝口 開資, 野上 大介

発行オライリージャパン

発売日2013年12月26日

カテゴリー大型本

ページ数474

ISBN4873116554

Supported by amazon Product Advertising API

-Python, Ubuntu
-, , ,

執筆者:

関連記事

zshの機能と設定まとめ

By: Marsha Wheatley – CC BY 2.0 目次1 zsh機能の紹介 ニコニコ動画2 環境3 colors 色の設定4 Completion 補完機能5 Correct …

no image

Ubuntu Server12.04にRedmine2.0.3をインストール

環境 Ubuntu Server12.04にrvmでrubyをインストール 目次1 準備2 MySQLを準備3 nginxのインストール4 Redmineのダウンロードと展開5 config/data …

ubuntu server14.04にElasticSearchをインストール

By: Dawn Huczek – CC BY 2.0 目次1 環境2 インストール3 サービスの起動4 できた5 はじめてのElasticSearch 環境 Ubuntu 14.04.2 …

Ubuntu14.04のElasticsearch1.5に日本語形態素解析プラグインKuromojiを追加する

By: Bùi Linh Ngân – CC BY 2.0 目次1 Kuromoji2 インストール3 試す4 情報5 日本語の為のスキーマレス環境構築をやってみた Kuromoji el …

Tensorflowのモデリング2〜RNN

By: fdecomite – CC BY 2.0 目次1 Reccurent Neural Network(RNN)2 入力値を計算3 RNNのモデル4 損失関数とオプティマイザーの定義 …