bitflye(ビットフライヤー)のリアルタイムAPIで約定サイズ、BUY・SELLを表示する
Twitter:@ba__in
お久しぶりです。
Zaifのメールは絶対承認しない派の@ba__inです。
リアルタイムAPIで約定された方向(BUYSELL)を把握するコードが無かったので他の方が作ったコードにちょちょいと付け足して、色付きでプロットできるようにしてみました。
めちゃ簡単です。
ここから何か高頻度取引につながる発見があるやもしれませんね(⌒∇⌒)
コード(エディタにペッ!!てしたら使え..るはず)
# pip install websocket-client
import websocket
import json
import pandas as pd
import colorama
from colorama import Fore, Back, Style
colorama.init(autoreset=True)
CHANNEL = "lightning_executions_FX_BTC_JPY"
def on_message(ws, message):
message = json.loads(message)
if message["method"] == "channelMessage":
# print("{} {}".format(message["params"]
# ["channel"], message["params"]["message"]))
params_message = message["params"]["message"]
df = pd.DataFrame(params_message)
# 直前の約定金額
price = int(df.ix[[len(df) - 1], ["price"]].values.flatten())
# 直前の約定数量
size = float(df.ix[[len(df) - 1], ["size"]].values.flatten())
#直前の約定された方向(BUY,SELL)
side = df.ix[[len(df) - 1], ["side"]].values.flatten()
if side =="BUY":
print("size:{}".format(size), Fore.LIGHTYELLOW_EX + "BUY")
elif side =="SELL":
print("size:{}".format(size), Fore.LIGHTGREEN_EX + "SELL")
def on_open(ws):
ws.send(json.dumps({"method": "subscribe",
"params": {"channel": CHANNEL}}))
if __name__ == "__main__":
# note: reconnection handling needed.
ws = websocket.WebSocketApp("wss://ws.lightstream.bitflyer.com/json-rpc",
on_message=on_message, on_open=on_open)
ws.run_forever()
上記コードにはいろいろインストールするものが出てくるやもしれません。
(多分”colorama”、”websocket-client”あたり)
参考元
こちら (ページ内リンクがなぜか引用不可だったのでHPから検索ください)
では。