bitcoin平均相場取得の経緯
bitcoinのデイトレードを始めたのですが、いずれシステムトレードもやってみたいなーと思い、pythonの勉強がてら相場情報の取得を開始しました。
まぁ先月から既にC#で取得開始してたので、単なるそのリプレイスなのですがw
とりあえず必要になるライブラリをインストールします。
今回は、pybitflyerとmysqlclientを利用します。
pythonライブラリのインストール
pip install pybitflyer pip install mysqlclient
MySQLテーブルの定義
次にMySQLにテーブルを用意します。
CREATE TABLE `tbl_bitcoin_price_hogehoge` ( `log_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `log_date` DATETIME NOT NULL, `bitcoin_kind` VARCHAR(255) NOT NULL DEFAULT '', `bitcoin_side` VARCHAR(255) NOT NULL DEFAULT '', `bitcoin_price` BIGINT(20) NOT NULL DEFAULT '0', `bitcoin_size` DECIMAL(65,20) NOT NULL, PRIMARY KEY (`log_id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8
pythonのコーディング
続いてpythonのコーディングです。
import MySQLdb import pybitflyer api = pybitflyer.API(api_key='hohohoge', api_secret='hogegegegegegege') board_li = ['BTC_JPY','FX_BTC_JPY'] price_li = [] for i in range(len(board_li)): board = api.board(product_code = board_li[i]) price_li.append(board['mid_price']) connection = MySQLdb.connect(host='hogehoge.hoge', user='hoge', passwd='hogegegege', db='hoge_db', charset='utf8') cursor = connection.cursor() for i in range(len(board_li)): str_sql = ("INSERT INTO hoge_db.tbl_bitcoin_price_hogehoge(log_date,bitcoin_kind,bitcoin_side,bitcoin_price,bitcoin_size)") str_sql += ("VALUES (NOW(),'%%bitcoin_kind%%','MID',%%bitcoin_price%%,1);") str_sql = str_sql.replace('%%bitcoin_kind%%',board_li[i]) str_sql = str_sql.replace('%%bitcoin_price%%',str(price_li[i])) cursor.execute(str_sql) connection.commit() connection.close()
実行ファイルの作成
続いて実行用にshファイルを作ります。
# btc_mid_price_hogehoge.sh python /home/hogehoge/btc_mid_price_getter.py
cron登録
最後にcronへの登録です。
# PATHの記載を忘れずに。[echo $PATH] PATH=hogehogehogehoge/bin:hogegege * * * * * for i in `seq 0 10 59`;do (sleep ${i}; /home/hogehoge/btc_mid_price_getter.py) & done;
こんな感じで、10秒おきにbitcoinの平均相場を取得することができました。
これでようやく自宅のwindowsをシャットダウンできるようになった・・・!