Zaifの値段を取得して買いシグナルないしはそれに準じる何かを判断する 写経編
Zaifシステムトレードbot。
を作成すべくいろいろ考えています。
とりあえず、ロジックはともかく最低限直近の金額を取得して計算できるようにならんと話にもならないだろうということで、そこを目指してみます。
最低限ってどのへん?
ひとまず、直近の金額の平均を出して、現在の価格がそれより高いか低いか判断する、くらいはできたい(日本語)ですよね。
というわけでやっていきます。
とりあえず叩いてみる
APIを眺めていてもよくわからないですね。
とりあえず叩いてみます。
wikiに書いてあるサンプルのhttps://api.zaif.jp/api/1/trades/btc_jpy
というのを見てみます。
jsonっぽい文字列がずらずらと表示されました。
へー。
APIとか正直ほっとんど理解してないんですが、URLを投げると文字列が返ってくるんですね。
150件だけ返ってくるみたいです。
え、少なくない?
tickerというのを叩くと、終値やら直近24時間の高値安値やらなにやらが拾えました。
{"last": 805055.0, "high": 837000.0, "low": 798570.0, "vwap": 820569.7361, "volume": 8083.7442, "bid": 805080.0, "ask": 805475.0}
直近24時間だけなら、これだけ見てればいいんですかね。
うーん……?
いまいちこの手のことを実現しようとした経験がないせいか、ピンと来てません。
ていうか、直近150件だけ取得できてもしょうがないですよね?
わかんなくなってきたのでカンニングします。
loggerを作って値段を記録しつつチャート表示をする仕組みが紹介されてます。
pandasとかいうのがいなかったのでインストールしつつ……
sudo python -m pip install pandas
適当にwhile文を仕込んで動かしてみると……
おー、動いてますね。
エラー!
チャートを作る方も動かしてみます。
sudo python -m pip install matplotlib
とかやりつつ動かそうとしていたら、なんかModuleNotFoundError: No module named 'tkinter'
とか言われました。
import matplotlibに併用して以下の一文を足すといいらしいです。
matplotlib.use('Agg')
どうにもcui環境では、そのままだと動かないらしい……。
さらに別のエラー。
$ python chart_test.py
File "chart_test.py", line 13
%matplotlib inline
^
SyntaxError: invalid syntax
あー。
それなー。
っていうかエディタの段階でエラー出てたんで嫌な予感はしてたんですよ(言い訳
根本的に理解してないのがよくないんだろうな……と思いつつ調べます。
なんとなくコメントにしちゃって良さそうな雰囲気。
Jupiter?じゃないと使えないとかなんとか。
なんかそういう開発環境があるんですってね?(あやふや)
動いた。
さらにseabornなるものをインストールしたところ……動くようになりました!
……なにがどうなってるのかさっぱりわかんねえ……。
さて、そういうわけなので、次はこれが何してるのか読み解いて行きたいなと思います。