Skip to content

bitbankinc/sample-market-making-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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の動作を停止させる、または数量を小さくする

About

Sample market making bot at bitbank.cc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published