noteのタイトル画像

[python] pybitflyer ticker取得

目次
・初心に立ち返り
・pybitflyerでticker取得

●初心に立ち返り

仕事とプライベートとバタバタしていたので、こちらの更新が遅れてしまいました。

でも、宣言しましたとおり、pythonでもbot作成を始めました。

と言っても、pythonの文法をかなり忘れてしまい、毎回シンタックスエラーに怒られまくりw
で、リハビリの意味も込めて

bot初心者がまず一番最初にやるであろう ticker の取得

から始めたいと思います。

●pybitflyerでticker取得

あまりにありふれておりますが、結構大事。
BitMEXではtickerAPIが死んでしまいましたが、bitflyerでは元気らしいので、サクッと実装します。

#===============================================
# 外部モジュール
#===============================================
# bitflyer用のライブラリを読み込む
import pybitflyer
# time
import time

#===============================================
# 常数
#===============================================
# 対象とするペアを設定
# source = "BTC_JPY"
source = "FX_BTC_JPY"
# スリープ秒数
SLEEP_T = 1

#===============================================
# private api
#===============================================
# キー情報ファイルを読み込む
# import api_key
# api = pybitflyer.API(api_key=api_key.bitflyer_key, api_secret=api_key.bitflyer_secret)
#===============================================
# public api
#===============================================
api = pybitflyer.API()

# 対象を表示
print("=======================")
print("対象: " + source)

# tickerデータ取得関数
def getTicker():
    tick = api.ticker(product_code=source)
    # print(tick)
    print("LTP: " + str(tick["ltp"]) + ", volume: " + str(tick["volume"]) +  ", best_bid: " +  str(tick["best_bid"]) + ", best_ask: " + str(tick["best_ask"]))

# おまじない
if __name__ == '__main__':
    # 1秒待ってのループ処理
    while True:
        try:
            getTicker()
        except:
            print("Exception occurred")
        # sleep
        time.sleep(SLEEP_T)

上記は毎秒(指定可)、tickerを取得してログに出力するプログラムです。

pybitflyerのAPIで、今回使用するtickerはpublicなのでKey,Secretは指定していません。

実行すると

=======================
対象: FX_BTC_JPY
LTP: 718201.0, volume: 195630.33763225, best_bid: 718200.0, best_ask: 718201.0
LTP: 718166.0, volume: 195646.27027312, best_bid: 718069.0, best_ask: 718165.0
LTP: 718142.0, volume: 195650.28791399, best_bid: 718098.0, best_ask: 718142.0
LTP: 718070.0, volume: 195670.04199518, best_bid: 718024.0, best_ask: 718070.0

のようにtickの値を出力してくれます。

まずは簡単な実装から、python嫌いのためのpython養成ギブスです。

ちなみに、tickの中身は

でした。

まだ、pythonのpythonらしいプログラムになっていません。
numpyやpandasも使っていませんが、そのうちにOHLCVデータを引っ張ってくる時は使うでしょう。


ソフトウェア・エンジニアを40年以上やってます。 「Botを作りたいけど敷居が高い」と思われている方にも「わかる」「できる」を感じてもらえるように頑張ります。 よろしくお願い致します。