仮想通貨自動売買入門 PythonでbitFlyerAPIてすと②

仮想通貨を自動売買してお金ほしいいいいいい! って欲望のための続き。


①ではパブリックAPIを用いてTick情報を取得するところまで試しました。
仮想通貨自動売買 PythonでbitFlyerAPIてすと①

今回は取得したデータを貯めて、簡単に分析するところまでやってみたいと思います。

自分は下記手順でデータを取得し分析しました。
1.Pandasを使ってDataFrameを用意
2.ループで指定した回数Tickデータを取得し、DataFrameに追加
3.結果を使って時系列データ表示
4.結果を使って移動平均を計算
順番に説明していきます。

1.Pandasを使ってDataFrameを用意

さて参りましょう。
Tickデータを定期的に取得し、そのデータを時系列に並べて表示する事でグラフ表示させたりとか、移動平均とか計算して分析とかしたいですよねきっと?
そんな時にPythonを使ってデータを整理するのに適しているPandasというものがあります。

公式は↓から
Pandas 公式

Pandasは何ができるの?? って話なのですが、
プログラミングに詳しい人怒られそうな気がするのですが…、素人的にはExcelで縦横の表作ってるみたいな事がPythonのコードでできるよってのがイメージしやすい気がします。Pandasの使い方とかもそのうち勉強がてらまとめたいな。

なんでPandas使うと幸せかというと、現状取得したデータはJSON形式です。
このJSONファイルを一個ずつ保存してあとで触るとかスーパーめんどいので、取得したそばから一つのExcelの表みたいな形でデータを蓄積していくことで、取得結果を簡単にグラフ化したりしたいからです。
ちなみに、Excelみたいな縦横2次元のデータ構造をPandasではDataFrameと言い、
横一列or縦一列みたな状態のデータをSeriesと呼びます。

まずは前回同様にTickデータを取ります。
この時に、取得した値を一度PandasのSeriesの構造で取っておきます。
こうする事で、取ったデータをこれまでのデータを蓄積しておくDataFrameに簡単に追加できます。
上記の値とは違いますが、取得したデータは↓のようになっています。
Indexに項目名が格納され、valueがその時取得した値です。
このvalueに相当する値を繰り返し取得してDataFrameに追加していきます。

まずはDataFrameに取得したSeriesのindexだけもらっておきます。

次に、下記の書き方でSeriesの値をDataFrameに追加する事ができます。
あとはこれを一定時間毎に繰り返すだけです。

2.ループで指定した回数Tickデータを取得しDataFrameに追加

手順はこんな感じ
・Forで指定回数取得
・取得&DataFramへの追加はこれまで説明した通り。
・Time.sleep(秒)を使って指定時間待ってループを回す。
(最初にインポートしておいてね★ミ)

取得したデータを見ると↓

無事とれていますね!

3.結果を使って時系列データ表示

いよいよグラフ表示!pandasはmatplotLibをそのまま使えます。
DataFrame[“描画したいIndex名”].plt()
で描画できます。こんな感じ↓

いっきにそれっぽいいいいい!!! ちょっと達成感!
TimeStanpを使って横時間時間軸表示するようにしなきゃですがめんどいのでちょっと放置。

4.結果を使って移動平均を計算

さて、最後に移動平均を描画したいと思います。
これができると大分できた感ある。

具体的になにするかというと、
1.DataFrameに移動平均のデータを格納する列を追加
2.移動平均の値を計算
3.表示したいデータを一つのグラフに表示
という流れで行きます。

まずは1と2を同時にやってしまいます。
DataFrameでの列の追加は↓のように
DataFram[“追加したい名前”]=データ
で簡単に追加できます。
この値を移動平均を計算して入れるのですが、これも簡単で、Pandasには移動平均を計算してくれるメソッドがついています。元々Pandasはこの手のデータを扱うことを想定して作られているからとか。便利ですね。
DataFrame[“計算につかうindex名”].rolling(window=平均する数量).mean()
で計算してくれます。こんな感じ↓

値が無いのは計算に指定した数量以上の値が必要で、下にスクロールしていけば値があるので焦らず確認!

あとは追加した移動平均の値を一緒に描画するのみ!
DataFram[[“表示したい項目1”、”表示したい項目2”,…]].plot()
とやるだけ、簡単!

できました!よく投資用のツールでみるグラフですね!!
あとはやりたい分析次第ですかね。

それっぽく整形したコードは下記

ひとまずこれで基本的なことはできたかな?
実際にはPandas使ってずーっとデータを取り続けたい場合は、実用上色々不都合があるので、なにかしらのデータベースとして保存しなきゃだと思います。
それはまた別途かな。

bitFlyerのAPI試したくなった方はこちらから。
bitFlyer ビットコインを始めるなら安心・安全な取引所で

ではまた◎


“仮想通貨自動売買入門 PythonでbitFlyerAPIてすと②” への4件の返信

  1. You completed a number of fine points there. I did a search on the theme and found the majority of folks will agree with your blog. egbeckefegkg

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です