Sample market making bot at bitbank.cc
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib first commit Apr 24, 2017
.gitignore first commit Apr 24, 2017
README.md README.md Apr 24, 2017
index.js first commit Apr 24, 2017
package.json first commit Apr 24, 2017

README.md

sample-market-making-bot

はじめにお読みください

このコードはBTC/JPY取引所でマーケットメイキングを行う上でのサンプルとなるコードです。このリポジトリ内のコードは 各自で改変して実行することを前提としています。

デフォルトではアカウント内のビットコイン残高が1.0を超えていた場合、動作を停止します。

このサンプルコードを改変せずまたは改変し動作させ損失を被った場合でも、このコードの作者及びビットバンク社はいかなる責任も負いかねます。

BTC/JPYの取引はbitbank.ccで行えます。 https://bitbank.cc/

APIドキュメントはこちら https://docs.bitbank.cc/

動かし方

Node.jsの実行環境が必要です。lib/logic.js内の

var api = bitbank.privateApi("your_api_key", "your_api_Secret");

を自身のAPIキーとAPIシークレットに書き換え、取引ロジックを修正した後、以下のコードを実行することにより動作を開始します。

$ npm i   # install dependencies
$ node index.js

プログラムが完成した後はVPSなどのクラウドサーバ上で動かすことをおすすめします。その際、pm2などのデーモン化ツールを使うと効率的です。

デフォルトの取引ロジック詳細

  1. 現在の最良買い気配値と最良売り気配値の中央値を取得
  2. アセット情報を取得
  3. アクティブオーダーをすべてキャンセル
  4. ビットコインの残高が1.0を超えていない場合は5へ進む
  5. 中央値から0.1%離した価格に0.01BTCの売り注文と買い注文を出す
  6. 10秒後、1へ戻る

取引ロジックの例

マーケットメイキングには様々な手法が存在します。以下はその一例です。

  • 大きな板が最終約定価格付近に存在した場合、その手前に板を置く
  • 例えば最終約定価格から50円、100円、200円離した価格にそれぞれ売り板/買い板を置く
  • botのロジックを他のユーザに悟られないよう、発注数量をランダム値にする
  • オーダーブックの売り数量が買い数量を極端に上回っていた場合、様子を見て買い注文は出さない等
  • 約定履歴APIを利用し、自分の直近の約定結果から不利にならないような位置に板を置く
  • ボラティリティが大きい局面を判定し、そのときだけはbotの動作を停止させる、または数量を小さくする