この記事は最終更新日から116日が経過しています。
情報が古くなっている可能性がございますのでご注意ください。

【BitMEX】自動取引ボットの設定と使い方をわかりやすく解説(sample-market-maker)

なぎ
コインチェックの今後も決まってこれからの相場がどう動くか楽しみですが、今は特に取引することもなく暇なので最大リバレッジ100倍のBitMEXのテストサーバーで自動取引ボットを動かしてみようと思います。

BitMEXについて

BitMEXは海外の仮想通貨取引所ですが、日本語にも対応しており、その最大の魅力は追証なしでの最大100倍リバレッジ取引が可能な点です。

登録がまだの方はよければこちらのアドレスから登録してくれると嬉しいです。
BitMEX-新規アカウント登録
こちらのリンクから登録すると半年間取引手数料が10%割引されます。
メールアドレスの登録後、入金したらすぐに取引を開始できます。

BitMEXの自動取引ボットについて

BitMEXはなんとオープンソースで自動取引ボットのプログラムを公開しています。

このプログラムをいじいじすることで自分のスタイルに合った取引を自動でさせることが公式公認で出来るわけですよ!

ただし、拾ってきたプログラムをそのまま本番サーバーで動かすのはやめましょう
あくまでもBitMEXが自動取引を体験させるために組んだプログラムですので損する可能性が大いにあります。
テストサーバーで動かしながら感触を確かめていきましょう。
本番サーバーで動かす場合は自己責任でお願いします。

オープンソースのコードは以下のサイトから見ることができます。
GitHub – BitMEX/sample-market-maker: Sample BitMEX Market Making Bot

BitMEXのテストネットアカウントを新規作成

登録手順

BitMEX TESTNET-新規アカウント登録

BitMEXの本番サーバーのアイコンはですが、テストネットのアイコンはです。

必要事項を入力して、CAPTCHA認証をスライドさせ、サービス利用規約をよく読み、同意したらチェックを付けて登録ボタンを押してください。
登録すると、メールアドレスにメールが届くので、表示されるリンクをクリックしてアカウントを有効化してください。

有効化すると自動的にログインされます。
すると以下の画像のような本番サーバーとそっくりな取引画面が開かれます。


あらかじめ0.1BTCが入金されています。欲しい…

この画面はテストネットなので自由に取引しても損することはありません。
まあ、利益も当然受け取れませんけどね( ´∀` )
自分のトレード技術を試したり磨くにはうってつけの場所ですね!

残高が底を尽きても大丈夫!

すぐに入金できます!w
だってテストネットですからw

テストネットへの入金方法

まず、画面上部の「アカウント」をクリックします。
すると次のような画像の画面が開かれます。

「入金」ボタンをクリックしてください。

次にテストネットの入金するにはFaucetサイトを使用します。
①の中の3つのうちどれでもいいのでアクセスしてください。
自分のときは1番上が止まってたので、真ん中を使いました。

[Your TestNet address]のテキストボックスにさっきの画像の②の入金アドレスをコピペしてください。
あとはロボットではありませんにチェックを付けて少し待ってください。

すると成功したと緑の枠で表示されますので、表示されたら下の「last 15 transactions」のトランザクションID一覧から緑枠の中に書いてあるトランザクションIDと同じやつをクリックしたら、普段と同じブロックチェーンの確認状況を見ることができます。

青丸の「未確認の取引!」が「1確認」に変わったらBitMEXのテストネットの残高に反映されているはずです。
(※BitMEXでは1回でも確認されれば受入れられますが、遅延する場合もあります。)

——

以上で入金方法の説明は終わります。

自動取引ボットをテストネットで動かしてみる

今回、自動取引ボットを導入するにあたって、仮想通貨界隈でも有名な「ヤバイWEB屋さん@yabaiwebyasan)」のお力をお借りしました!

ここから先は以下の記事を参考にして自分で実践しながら記事にしていきます。

0(ゼロ)から学ぶビットメックス(BitMEX)自動売買ボットの動かし方〜非エンジニアでもちゃんと学べば動かせる?〜 – モテるためのブロックチェーンと暗号通貨(仮想通貨)

ビットメックス(BitMEX)が公開している自動売買ボットの使い方やカスタマイズについて翻訳 – モテるためのブロックチェーンと暗号通貨(仮想通貨)

自動取引ボットを導入するために必要な道具

ヤバイWEB屋さんはWEBエンジニアってことなのでもちろんMacみたいですが、私はそっち方面の就活をしてるにもかかわらずMacを持ってないので残念ながらWindowsで頑張ります

私のページではWindowsユーザーが最後まで一切迷うことなく作業できるようにわかりやすく書いているつもりです(*- -)(*_ _)ペコリ

入力するコマンドとか準備するものがMacとWindowsとでは違ってくるので、わたしのページはMacユーザーにはあまり意味ないと思います。

Macユーザーの方はヤバイWEB屋さんの記事を読んだほうがいいと思います。
0(ゼロ)から学ぶビットメックス(BitMEX)自動売買ボットの動かし方〜非エンジニアでもちゃんと学べば動かせる?〜 – モテるためのブロックチェーンと暗号通貨(仮想通貨)
(追記)2018年3月31日をもってヤバイWEB屋さんのサイトのコンテンツはリセットされました。

Windowsユーザーの方は自動取引ボットをとりあえず動かすためには次の下準備が必要です。

  • コマンドプロンプト
  • Windows PowerShell(管理者)
  • Chocolatey
  • git
  • python
  • テストネットアカウントのAPIキー

それぞれの説明を簡単にしますね。

コマンドプロンプト

コマンドプロンプトはプログラミングの環境構築やらプログラムを実際に走らせてみたりする動作をコマンドっていう命令をキーボードで入力することで命令処理をサポートするためのツールみたいなものですね。

こんなやつですね。
Macで言うところのコマンドラインにあたります。

Windows PowerShell(管理者)

Windows PowerShell はマイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスクリプト言語である。 オブジェクト指向に基づいて設計されており、. NET Frameworkを基盤としている。(Wikipediaより引用)

つまりは、コマンドプロンプトの上位互換的な存在です。
Windows PowerShellは今回、インストールから実行までずっと必要になります。

Windows PowerShellはWindows7以降は初期装備となっているようです。

また、このWindows PowerShellには管理者モードで開くものとそうでないものがあります。
今回の記事で書いていることは管理者権限でないとうまくいかない場合もあるみたいです。

Chocolatey

次にChocolateyについてですが、これはパッケージマネージャになります。

Macで言うところのHomebrewにあたるものです。

Windowsでは基本的にインストーラーをダウンロードして、そのインストーラーを使ってネットからソフトウェアをインストールします。
ですが、このパッケージマネージャを使うことで、ソフトウェアをインストーラーを介さずにインストールして、なおかつバージョンの管理や更新、削除を容易に行うことができるようになります。

Chocolatey

git

自分の書いたコードや開発過程の記録を自分のPCに残すためのもの

Python

このBitMEXの自動取引ボットをいじいじしようと思ったら多少のプログラミング技術が必要になります。
で、この自動取引ボットを構成するのに使われているプログラミング言語がPythonになります。
プログラミング言語で有名なので言うとjavaやC言語などですね。

Pythonは機械学習プログラムを得意としたプログラミング言語になります。
BitMEXの自動取引ボットをいじいじするにはこのPythonのバージョン3.5以上でプログラミングする必要があるみたいですよ。

今回はPythonの仮想環境で自動取引ボットを動かすために使います。

テストネットアカウントのAPIキー

自動取引ボットが取引所で取引を行うために必要なアクセス許可証のようなものです。
APIキーは取引所のマイアカウントと自動取引ボットとを結びつけるためにほとんどの自動取引ボットの場合必要になります。

BitMEXのテストネットアカウントのAPIキーはこちらから取得することができます。
BitMEX TESTNET-APIキーの作成

APIキーは外部に漏れないように取り扱いには十分注意してください。
また、使っていないAPIキーは削除し、不要なAPIキーを残さないようにしましょう。

自動取引ボットを動かすための手順

1.Chocolateyをインストールする

まず、Chocolateyをインストールします。

「Windows PowerShell(管理者)」を立ち上げてください。

次にこのコマンドを入力することでインストールが始まります。

iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))

環境や時期によって違ったりするので詳しくは公式ホームページを見てください。
インストールが終わったら、choco -hとコマンド入力して下さい。
最後にバージョンが表示されていればOKです。

2.gitをインストールする

次にgitをインストールします。
choco install gitとコマンドを入力して下さい。
途中でYes/No/Printを聞かれたときはyを入力して継続してください。

3.Python3をインストールする

次にPython3をインストールします。

choco install python3とコマンドを入力して下さい。

インストールが終わったらコマンドプロンプトを立ち上げて、python –versionと入力して、きちんとインストールされていることを確認してください。

4.テストネットアカウントのAPIキーの作成

自動取引ボットを動かすには、本番でももちろんですが、APIキーが必要です。
そのため、テストネットでAPIキーを作成しておきましょう。

BitMEX TESTNET-APIキーの作成

アカウントページの左メニューにある「APIキー」ページに移動してください。

名前は自分が管理しやすいように名前を付けてください。
CIDRは空欄で大丈夫です。
キーのアクセス許可は「注文」にだけチェックを付けてください。

終わったら送信するボタンを押してください。
すると、IDと秘密鍵が表示されますので、メモしておいてください。後から使います。

APIキーは他人に知られてしまうと取引を勝手に行われる可能性があります。
APIキーの扱いには注意してください。
テストネットでも本番サーバーでも注意してください。

5.プログラムをダウンロードして動かす

「Windows PowerShell(管理者)」を起動してください。

以下の順にコマンドを実行していってください。
各手順の解説は次の項に書いてます。

cd ../../Users/xxx/Desktop
git clone https://github.com/BitMEX/sample-market-maker
cd sample-market-maker
python -m venv myvenv
cd myvenv
./Scripts/Activate.ps1
cd ..
pip install -r requirements.txt
cp market_maker/_settings_base.py settings.py
set BITMEX_KEY=”APIキーのID”
set BITMEX_SECRET=”APIキーの秘密鍵”
python marketmaker XBTUSD

6.各コマンドの解説

cd ../../Users/xxx/Desktop
これは単にデスクトップに移動しているだけです。

Windows PowerShellを立ち上げると最初はどっか適当なフォルダにいると思います。
私の場合だとCドライブのWINDOWSの中のsystem32にいました。
なのでCドライブまで戻ってからデスクトップに移動しています。

移動に使用するコマンドはcdです。
ひとつ前のフォルダに戻る場合は../
次のフォルダに移動したい場合は/フォルダ名になります。


git clone https://github.com/BitMEX/sample-market-maker
これは自動取引ボットをBitMEXのGithubリポジトリからクローン(ダウンロード)してきます。


cd sample-market-maker
クローンするとデスクトップに「sample-market-maker」というフォルダが自動的に作られているので、cdコマンドでフォルダを開きます。


python -m venv myvenv
Pythonの仮想環境を構築します。
「myvenv」のところは好きな名前でも構いません。

venvについての詳しい内容はこちら
28.3. venv — 仮想環境の作成 — Python 3.6.4 ドキュメント


cd myvenv
新しく「myvenv」というフォルダが追加されるので、cdコマンドで移動します。


./Scripts/Activate.ps1
仮想環境をアクティベート(有効化)します。
成功すると行の最初に(mayvenv)と追加されます。


cd ..
ひとつ前のフォルダにcdコマンドで戻ります。


pip install -r requirements.txt
pipというパッケージ管理システムを用いて、「requirements.txt」に記載されているすべてのパッケージを一括でインストールします。
※「install -r」は一括でパッケージリストからインストールすることを表しています。
※「requirements.txt」は「sample-market-maker」フォルダに元からあるはずです。


cp market_maker/_settings_base.py settings.py
「market_maker」フォルダから「_settings_base.py」というファイルを「settings.py」という名前でコピーしてきます。
※「sample-market-maker」フォルダに「settings.py」というファイルができるはずです。


set BITMEX_KEY=”APIキーのID”
前項で取得したAPIキーのIDを環境変数にセットします。


set BITMEX_SECRET=”APIキーの秘密鍵”
前項で取得したAPIキーの秘密鍵をセットします。


python marketmaker XBTUSD
プログラムを実行します。
※「XBTUSD」の部分を他のペアに変更すると他のペアでも自動取引ができると思います。


* プログラムの止め方(自動取引の停止)
Ctrl + Cキーで終了することができます。

* プログラムの始め方(自動取引の再開)
PowerShellを閉じた後に再度、自動取引を開始したい場合は、cdコマンドで「myvenv」フォルダまで移動して、そこで./Scripts/Activate.ps1を入力して仮想環境を有効化して、cd ..でひとつ前に戻って、python marketmaker XBTUSDでプログラムを実行してください。

——–
以上で各手順の解説を終わります。

実行したらエラーになった場合の対処法

上で説明した手順で出来るはずなんですが、私のパソコンだとエラーになってしまったので、その時の対処法を書いておきます。

プログラムを実行すると次のようなエラーが出てきました。

ERROR – ws_thread – API Key incorrect, please check and restart.

APIキーが無効だからチェックして再起動してみてね。って言われました。

$env:BITMEX_KEY$env:BITMEX_SECRETをコマンド入力して、きちんと値が入ってるか確認してください。

きちんと入ってる場合はもう一度プログラムを実行してみてください。
それでもダメだった場合とそもそも環境変数にセットされていなかった場合は、
「sample-market-maker」フォルダをいつも通りエクスプローラから開いて、「settings.py」をメモ帳などで開いてください。

API_KEYとAPI_SECRETを入力して上書き保存してください。
再度、Windows PowerShell側でプログラムを実行してみてください。
すると次の画像のように実行が成功すると思います。

これでも成功しなかった場合は、ちょっと分からないので、エラー状況とかを教えてもらえると一緒に考えられるかもです。

夜の間少しだけ動かしてみた結果

文章の項目を見てもらえれば分かりますが、すべてAPIを使った取引(ボット)によるものです。

途中、止めてる時間もありましたが、約5時間半で165件の取引が行われていました。

結果はプラス(0.0323BTC)でした!

ヤバイWEB屋さんはマイナス結果だったみたいですので、今回はタイミングが良かったみたいですね(笑)


これから色々といじってテストネットでどんどんと試していきたいですね!(/ω\)

次回は

次は色々と取引ルールをいじってみて、設定に関する解説などができればなと思います。

BitMEX公式が発表している設定に関する情報はこちらから。
sample-market-maker/README.md at master · BitMEX/sample-market-maker · GitHub

公式のは英語なので、日本語で見たい方は、ヤバイWEB屋さんが翻訳してくれてるので、読ませてもらいましょう
ビットメックス(BitMEX)が公開している自動売買ボットの使い方やカスタマイズについて翻訳 – モテるためのブロックチェーンと暗号通貨(仮想通貨)
(追記)2018年3月31日をもってヤバイWEB屋さんのサイトのコンテンツはリセットされました。
今後はヤバイWEB屋さんのGitHubをご参照ください。
sample-market-maker/README.md at master · yukihirai0505/sample-market-maker · GitHub

ではまた!(*ノωノ)