BitMEX 自動売買BOT開発 [ API編 ] ① 開発環境の構築、APIライブラリの詳細、全APIマップ

こんにちは。MAZMEXです。
先日のnote [ BitMEX 自動売買BOT開発 [ API編 ] もくじ ] で予告しておりました最初の章ができました。

このAPI編の連載では、BitMEXで自動売買を行うBOTができるだけ多くの方に作れるように、BitMEXのシステムやAPIについての情報を中心にお届けしていきます。
(※連載ですが期日は特に設定せず、じっくりと考えながらいい内容が書けたところで順次公開していければと思っております。)

【2018.5.22 追記】
公式ライブラリ修正版をversion upしたので、関連の説明を訂正しました。既にお使いの方は特に実装を変える必要はありません。

はじめに

本noteの内容は、ご自身で簡単にトレードBOTが構築できるようになりたい、または既に開発中のBOTの改善材料を見つけたい、という方に向けて構成を試みました。

筆者がTwitterで発信していた情報は、BitMEXのAPIについてのピンポイントな話題ばかりですが、それぞれに反応があり、このAPI周辺の全容をまとめること誰でも触れられるように敷居を下げることは価値が高そうに感じています。

また、トレードBOTの試作はそれ自体がかなり楽しいものです。
有力そうなAPIや指標を1つ発見しただけでもわくわくしてきますし、BOTが少しずつでも戦果を上げはじめたときはうれしいですし、パラメータを少し調整すると結果が変わってくる様はとても興味深いです。

そのBOT開発の醍醐味とも言える部分に、多くの方がすぐに触れられるように、筆者なりに調査や工夫をした結果をまとめていければと思っています。


事前の補足事項

======
各noteでは、実際にAPIを動作させながら(できるだけ動かす楽しさを体験しながら)読み進めていただけるようにと考えています。

そのプログラミング言語として Python 2系または3系を前提とします。
強力なライブラリのおかげで簡易なプログラミングで済み、実行する環境もクラウドに構築できるため、非常に敷居が低くなっています。
(※そして、PythonはWebや書籍でも学びやすい言語の代表格でもあります!)

また驚くべきことに、BitMEXがテストネット(仮データで試せる環境)を無料で提供していることから、「BTCを持ったことがない」「BitMEXを使ったことがない」という方でも、今すぐにBOTの開発をスタートすることができます。

ちなみに、BitMEXをはじめて使うという方は、BitMEXおじさんさんのWebサイトの情報がオススメです。(筆者もとても助けられました。)

BitMEXがはじめての方はこちらから登録していただけると嬉しいです。
トレード手数料が6ヶ月間マイナス10%になります!(メールアドレスだけですぐに登録できます。)
https://www.bitmex.com/register/O0tzmZ
======

第1回 目次

第1回では、BOT開発をスタートするために必要な知識や役立つTips、APIライブラリの詳細をご紹介していきます。
(まずは開発の環境を作るところからはじめますので、もし既に環境をお持ちの方は適宜読み飛ばしていただいて構いません。)

以下が第1回の目次です。
開発環境を作ったあと、BOTで利用するAPIライブラリを詳細に説明します。
公式ライブラリ(筆者による修正版)とCCXTの2つについて説明し、公式ドキュメントに記載されるすべてのAPIにアクセスするマップシートを提供します。

■ BOTを書きながら試せる環境の構築
■ テストネットの有用性について
■ APIライブラリの詳細と選択基準について
■ 公式ライブラリ(修正版)
■ CCXT
■ 全APIの呼び出しマップ(公式ライブラリとCCXT)

導入部分は易しい内容になっていますが、後半の章はかなり詳細な内容(APIを深掘りして使いたい方向け)も含んでいます。

第2回以降では、個別のAPIについての話題が多くなりますが、そのためにいずれも重要な内容になりますので、ぜひご一読ください。


1.開発環境の構築

はじめに、Python が実行できる開発環境を準備しましょう。
といっても、特殊な環境は必要なく Python のコードが実行できればOKです。
お手元のPCかクラウド上で実行環境(以下のようなコマンドを実行できる環境)をお持ちの方は、この項目は読み飛ばしていただいて構いません。

$ python script.py
// このような実行環境をお持ちの方は次の項目(テストネット)へどうぞ!

■ Python 環境をクラウドで作ろう

昨今、Python の実行環境はクラウドサービスが非常に充実しており、ブラウザからアクセスするだけで、コードの編集と実行が簡単にできるようになっています。
色々なサービスを調査・比較してみました結果、Cloud9というサービスがもっとも適していそうでしたので、紹介させていただきます。
決め手は、IDE [ 統合開発環境 ]としての完成度(とても使いやすいです)、ほぼ無料で使える料金体系セキュリティ面(APIキーなどの個人的な情報を置くのが安全)です。
(※ Cloud9の導入については、AKAGAMIさんのこちらのnoteと類似の内容になっています。)

Cloud9 の登録・初期設定

Cloud9は、Amazonが提供するクラウドサービス(AWSと言います)の1つです。ブラウザからいつでもアクセスでき、初心者の方にも使いやすい直感的な操作感が魅力です。試作したBOTの実行もすぐに行えます。

また、AWSには登録から1年間使える無料の利用枠があり、BOT開発のような負荷が少ない用途ならこの範囲で使うことができます。
(稼働条件によっては少額の料金がかかる可能性がありますので、ときどき請求ダッシュボードを確認することをオススメします。)

こちらのCloud9のサービスページ(https://aws.amazon.com/jp/cloud9/)から、「AWS Cloud9 の使用を開始」でスタートしましょう。
AWS の利用がはじめての方は、会員登録(無料)の画面が出ますので登録しましょう。

登録・ログインが完了すると、以下の画像のページが表示されます。

画像1

なお、以下のような画面が表示されたら、アイルランドを選択しましょう。
AWS にはサーバーの稼働させる場所がいくつか存在するのですが、東京は未対応です。
(BitMEXの取引所のサーバーがアイルランドにあるので、近くにすると単純にアクセス速度が速くなります。)

画像2

Create environment」を押して、開発環境を作りましょう。

画像3

まずは、Step 1 という画面が出ます。ここは名前をつけるだけです。
「bot-1」としました。「Next step」で次へ!

画像4

Step 2 は開発環境の設定です。
・Create a new instance for environment
・t2.micro

のままで「Next step」で次へ!
これは1番軽量なプランで新しく開発環境を作る選択になっています。

画像5

Step 3 は確認画面です。
Create environment」で次へ!

画像6

こちらの画面に来ましたら、Python が実行できる状態になっています。
もしここで、「AWS Cloud9 Installer」というポップアップが出た場合は、設定そのままで「Next」ボタンを押したらインストールが完了を待って、「Finish」ボタンを押してください。

■ Cloud9 ではじめての Python

画像7

画面下にこのような入力欄があると思います。
ここは特定のコマンドが実行できる場所(コンソール、コマンドライン等と呼びます)で、Pythonも実行できますのでやってみましょう。

ec2-user:~/environment $ python

と入力して、Enterを押します。

ec2-user:~/environment $ python
Python 2.7.13 (default, Jan 31 2018, 00:17:36)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

このように出ていれば実行できています!

>>> quit()
ec2-user:~/environment $

quit() と押すと元の入力画面にもどります。では次に Python のファイルを作ってみましょう。

■ Python の実行ファイルを作る

左の青いフォルダがある窓の中で、右クリックすると、下の画像のようなポップアップが出ると思います。「New File」で新しくファイルを作りましょう。

画像8

test.py」と名前をつけました。
名前はなんでもいいですが、半角英数字で「xxxxx.py」という形式にしてください。必ず後ろは .py にする必要があります。
名前の変更はファイルのところで右クリック ->「Rename」からできます。

画像9

ファイルができたら、ファイルをダブルクリック。

画像10

真っ白の編集画面が開いたら、上記のように最初の Python のコードを書いてみましょう。

import sys

print(sys.version)

このコードを書いたら、右上に見えている「Run」ボタンを押してください。

画像11

これは、Python のバージョンを表示してください、というサンプルのコードですが、2.7.13 と教えてくれました。
次に画像の右手に見えている、「Runner: Python 2」というボタンを押して、Python 3 を選択してもう一度「Run」を押してみてください。

画像12

すると、実行結果が変わりました。
この切り替えで、Python が2系でも3系でも実行できるようになりました!
両者の違いはそんなにないのですが、たまにどちらかでしか動作しないものもあるので、この切り替えは覚えておくと便利です。

以上で、Python の実行ができるようになりました!お疲れ様です。
いよいよ BitMEX 向けの開発内容に入っていきます。


2.BitMEXのテストネットについて

BOTの開発にとても便利なBitMEXのテストネットについて先に説明しておきたいと思います。
テストネットとは、BitMEX 取引所の機能をそっくりそのまま持った、様々なテストを行える無料のサービスです。もちろんAPIのテストもできます。

すでにBitMEXを使っている方もそうでない方も、メールアドレスとパスワードだけで登録でき、最初から 0.1 BTCが入った状態で試用できます。(もちろんテストのための残高なので、出金はできません。)
試したところ、BitMEX本体と同じメールアドレスとパスワードで登録できるのでアカウント管理も容易で便利です。
リスクなく開発するためにぜひ登録しておきましょう。

登録はこちらのリンクからできます。BitMEX テストネット登録
BitMEX本体の登録がまだの方もこちらからどうぞ。(BitMEX登録

テストネットの使い方は、本noteの後半で説明します。


3.APIライブラリの詳細と選択基準について

いよいよ本noteの主題である、APIについての話題に入っていきます。
ちなみに、APIとはアプリケーションプログラミングインタフェースの略ですが、簡単に言うとアプリを作るために提供されている部品(または規格)のことを指します。

BitMEXは、自動でトレードができるアプリ(BOT)が作れるように価格情報を取れたり注文が行える部品を提供しているわけですね。それをAPIと呼んでいます。

では、BitMEXは我々にどんな部品を提供してくれているのでしょうか?
ありがたいことに、BitMEXはとても多くのAPIを備えています。
その一覧は このリンク から確認できます。(英語です。)

画像13

このページの下部で、項目ごとにクリックすると実に多くのAPIがあることが確認できます。
これらのすべてが、BOT開発の中で組み込める要素ということになります。
(その組み合わせを考えると、数え切れない戦略の幅が広がっています。)

このリストの中には、トレードBOTの開発に有効な物とあまり用途がなさそうなものがありますが、使えそうなものにはすべてアクセスできるようにしたいところです。

そこでぜひ活用したいのが、APIライブラリです。
これら1つ1つのAPIにアクセスするプログラムを書くのは途方もなく大変な作業になりますが、ライブラリを使うと簡単にアクセスできるようになります。

■ API ライブラリの選択

それではAPIライブラリを見ていきましょう。
現在、BitMEX向けのAPIライブラリは以下の2つが有力です。

BitMEX 公式ライブラリ(BitMEX API Connectors)
CCXT

ただし、前者の公式ライブラリについては、軽微な不具合(Python 2系でのエラーとたまに出る警告)があるため、それを修正したものを筆者から公開しています。(どなたでもご自由にお使いいただけます。)

どちらのライブラリでも機能的に問題はないので、本noteでは両方の詳細な使い方を説明していきます。

ここから先は

8,248字 / 14画像

¥ 300

この記事が気に入ったらチップで応援してみませんか?