Python Ubuntu

Python3で株式売買のシミュレーション〜pandas

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

株式売買シミュレーション

株価データ集 for 日本株時系列データ
ベクターで株価データ集を見つけて購入したので、これを利用してAIでの株式売買のシミュレータを作ってみた.
過去データで株式売買をしてみて、AIのパフォーマンスをみるのが目的.

ファイルの構造

pandas

pandasはデータ解析支援ライブラリ.Rのようにデータフレームとしてデータをいろいろ操作できる.

機能は膨大なので、順番にググってやっていくといい.
Python pandas 関連エントリの目次
Pandasの全メソッドを解説(その1)

まず、インストールして、importから

DataFrameの作成、構造

DataFrameは二次元データを収納する枠組.
横方向の列をcolumnという.
また、縦方向の行データの目印としてindexをつけることができる.

初期データを入れることもできるけど、必ず2次元データ(二重のArray)で入れること
また、indexも一次元データ(Array)で与えること

csvからの読み込み

read_csvで読み込む.オプション名がインスタンス化の時と微妙に異なるから注意.
一行目は自動でカラム名になるので、ヘッダーがないときはheader=None指定する.

Pandasのread_csvの全引数を解説

データの指定

カラム名

インデックス指定

ちなみに一番最後は−1を指定する
df[1] だとKeyErrorになる

範囲指定

条件指定

isinメソッドで該当する行のみの集合を取ることができる

行の追加

同じカラム名のデータフレームをappend

列の追加、削除

列の追加は、新しいカラム名に代入すればOK

列の削除は、drop.axis=1と追加する.

行ごとに処理を回す

rowには、(index, pd.Series)のタプルが入る.

できあがり

Jstock

ディレクトリがハードコーディング

Game

エントリーのときだけAiで判断して、決まった利益確定ラインか損切りラインに達したらイグジットにした
エントリー中は、次のエントリーができないことにした

Ai

グランビルの法則を参考に8箇所のエントリーポイントを判断するようにした.
5日の移動平均線を基準にして、トレンドに沿った順張りでは長期の移動平均線を参考にして、逆張りではRSIを参考にみるようにしている.

app

結果

一応、いろいろな時代で約1年間、AIに従って投資すると、平均で+26%の利益を得られる見込みになる.
今後はトレードを記録して敗因分析をしたり、決め打ちした値を機械学習にかけて最適化したりしてみたい.

ちなみに、全くのランダムで売買をきめた場合のパフォーマンスは、、、

というわけで、今のところ、ランダムに売り買いしたほうがマシという結論に…orz

-Python, Ubuntu
-, ,

執筆者:

関連記事

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

By: sprklg – CC BY 2.0 目次1 可視化2 下準備3 pandasのplot4 matplotlibでsubplot5 売買データをプロットする6 番外編 ローソク足チ …

Ubuntu Server14.04にMediaWikiをインストール

By: Cambodia4kids.org Beth Kanter – CC BY 2.0 目次1 MediaWikiとは2 MariaDBのインストール3 PHP5.6のインストール4 …

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

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

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

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

zshの機能と設定まとめ

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