見出し画像

Python pybitflyerを使ったティッカーの取得に挑戦してみた

ティッカーの取得 

みんなが金融市場で高利益を出すにはどうすればいいだろう。それができれば、富は均等に分配されていくはずだ。

利益を出せるロジックをボクが作れるか疑問だけど、とりあえず手を動かそう。

今回は、pybitflyerというPythonの拡張モジュールを使って、利益が出るか分析するためにビットコインのティッカー情報を取得しようと思う。

pybitflyerの導入

いきなり、わからない単語が羅列されたと思っている人もいるだろうから簡単に説明を。
pybitflyerは、暗号通貨販売会社のbitflyerが提供しているAPIをプログラミング言語Pythonで簡単に操作できる拡張モジュールだ。作成者はおおかみ山さん。感謝して使っていこう。

素人が売り買いをして価値がだんだん下がっていく数字を見ながら悲しんでいたのですが、そうなるとエンジニアとしてはシステムトレードがしたくなるのが世の常です(?)。幸いにもbitFlyerには、HTTP APIというURLを叩くことで情報を得たり取引をしたりできるシステムがあるではありませんか。しかしながらその仕組みは複雑で、セキュリティのための暗号化が必要だったり、HTTP APIで返ってくるものを処理したりと、そのまま扱うには何かと大変です。
そこで、bitFlyerのREST APIをPythonから気軽に利用することができるラッパーを作成しました。

ここでいうティッカーとは、送信された情報を表示する受信装置のことで、ティッカーコードに紐づいた価格などの情報をいう。例えば、ビットコインのティッカーコードはBTCという。

ティッカーシンボル(ティッカーコード)とは、株式市場において上場企業の銘柄を分かりやすく識別するために用いられるアルファベットコードのことを指します。ニューヨーク証券取引所やナスダックなどのアメリカの証券取引所をはじめ、欧州やアジアの取引所などでも用いられています。
仮想通貨取引所においても通貨ごとにティッカーシンボルが用いられており、具体的にはBTC(ビットコイン)、ETH(イーサリアム)、BTC(ビットコインキャッシュ)、LTC(ライトコイン)などが挙げられます。

まずは、iOSのPythonista3にpybitflyerをインストールしよう。前回の記事でインストールしたlaunch_stash.pyを起動して、次のコードを入れる。

pip install pybitflyer

これで導入は終了。びっくりするくらい簡単だ。

pybitflyerを使ってみる

それでは、早速プログラムを作ってみよう。
まずは、Magic commentと呼ばれるコードの文頭。このコードは、utf-8のいう形式で書くことを宣言しているけど、Python3では不要との話もある。ダブルクォーテーションで挟まれているところはdocstringという説明文だ。

# -*- coding: utf-8 -*- #
"""
We crush capitalism.
"""

次にpybitflyerというモジュールを使うよと宣言する。これをしないとpybitflyerを使えない。

import pybitflyer

今回は、ティッカー情報のうち、タイムスタンプ、最終取引価格、最低売価格、最高買価格を取得する。
tickという値に=で代入するのは、pybitflyerがAPIから取得したいティッカー情報のうち、ビットコインのものを抽出したデータの集まりだ。それをprintでtimestampなどの項目として画面に表示している。

tick = pybitflyer.API().ticker(product_code="BTC_JPY")
print("timestamp : " + str(tick["timestamp"]))
print("ltp : " + str(tick["ltp"]))
print("best_bid : " + str(tick["best_bid"]))
print("best_ask : " + str(tick["best_ask"]))

そして、プログラムを動かすと簡単にビットコインの取引データを取得できた。pybitflyerが取得するティッカー情報は引用のとおり

tickerは辞書形式になっていて、キーはそれぞれ以下の通りです。

best_ask:最高買価格
best_bid:最低売価格
best_ask_size:最高買価格数
best_bid_size:最低売価格数
ltp:最終取引価格
total_ask_depth:買注文総数
total_bid_depth:売注文総数
volume_by_product: 価格ごとの出来高

そして、プログラムを動かしてみるとティッカーから情報を得ているのがわかる。

あとは、このティッカー情報をループ処理で取得し、テクニカル分析をしなくちゃいけない。

株価や通貨などの値動きの推移をグラフ化したチャートを読み、分析することを「テクニカル分析」といいます。 投資家の心理状態を分析し、今後の値動きを予測する手法です。
今回は代表的なテクニカル分析として「ローソク足」、「単純移動平均線」、「ボリンジャーバンド」、「RSI」、「MACD」、「ストキャスティクス」また、じぶん銀行FXでお使いいただける「一目均衡表」「RCI」「パラボリック」を解説します。

ところで、pybitflyerを使って利益を上げた人もたくさんいるだろうけど、おおかみ山さんに還元した人はいるんだろうか。もっと、こういう人たちが評価されれば良いのに。
ちなみに、出来上がったコードはこちら。

# -*- coding: utf-8 -*- #
"""
We crush capitalism.
"""
import pybitflyer

tick = pybitflyer.API().ticker(product_code="BTC_JPY")
print("timestamp : " + str(tick["timestamp"]))
print("ltp : " + str(tick["ltp"]))
print("best_bid : " + str(tick["best_bid"]))
print("best_ask : " + str(tick["best_ask"]))

目次

次の記事

前の記事

いいなと思ったら応援しよう!