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

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

-Python, Ubuntu
-, ,

執筆者:

関連記事

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

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

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

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

Ubuntu Desktopで指紋認証〜Fingerprint GUI

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

Raspberry Pi3とsense HATで遊ぶ

By: Su Yin Khoo – CC BY 2.0 目次1 Raspberry Pi32 Raspbian3 Raspbianでsshを使う4 raspi-configで初期設定5 R …

Tensorflowのモデリング1〜CNN

By: William Warby – CC BY 2.0 目次1 畳み込みニューラルネットワーク2 Conv層3 POOL層4 残りの処理5 結果6 ハイレベルニューラルネットレイヤーを …