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, Ubuntu
-, , ,

執筆者:

関連記事

zshの機能と設定まとめ

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

Ubuntu Server 12.04にJava8をインストール

By: Ed Schipul – CC BY 2.0 目次1 Java 82 add-apt-repositoryをインストール3 リポジトリの追加4 インストール5 JAVA_HOMEの …

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

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

no image

Ubuntuのターミナルで将棋する~gpsshogi

  インストール

ヘルプ

ゲームしてみる [crayon- …

企業レベルのコンテンツマネジメントシステムAlfresco Community5.1をubuntu server14.04にインストールしてみた

By: jenny downing – CC BY 2.0 目次1 Alfresco Community2 ダウンロード3 LibreOfficeのライブラリのインストール4 Alfres …