BitMexのBotをVisual Studio+Pythonで開発する その1 - 環境構築 -
スポンサーリンク

目次

BitMexで大火傷

BitMexは界隈の皆さんご存知だと思いますが、暗号通貨のFX取引所です。

BTCの他に、XRP、ETHなどのアルトコインも扱っています。

BTCだとレバレッジ100倍までかける事ができ、もし負けてもマイナスにはならず0でカットしてもらえるのでFXでよく発生している追証とかマイナスにはならないので安心です。

先日8万円を元手にレバ25倍で始めてみました。

めまぐるしく変化するチャートに翻弄され、弱いメンタルの為損切や利確を躊躇している内にあっという間に溶けてしまいました…

これは普通の人間が生き残れる場所では無い!

メンタルに左右されずに機械的なトレードが必要だ!

と思いました。

そんな事ができるのは本物の機械しかできません。

というわけで、BitMexで自動取引するBotを開発してみたいと思います。

 

BitMex - 公式サイト -

Botを開発するのに必要なもの

使用ライブラリ:ccxt

開発言語:Python (JavaScript, PHPでも出来るっぽいが、今回はPythonで)

開発環境:Visual Studio 2017

PC:Visual Studioが動作するPC

取引所のアカウント、APIキー

 

開発環境はVisual Studioである必要は無いのですが、今回は自分が一番使いやすいもので進めます。

ccxtライブラリ

多くの暗号通貨取引所でAPI通信を行い、Botを開発する為のライブラリです。

由来はCryptoCurrency eXchange Trading (Library)だそう。

 

公式github

https://github.com/ccxt/ccxt

公式マニュアル

https://github.com/ccxt/ccxt/wiki/Manual

 

Python

開発言語の1つ。

構文はCやJavaに似た感じですが、if文の等のまとめ方は{}ではなくインデントの揃え方で処理がまとまるようで、書き方には注意が必要です。

Pythonの開発環境の構築方法は色々ありますが、今回はVisual Studioのコンポーネント(部品)としてインストールしたいと思います。

Visual Studio 2017

MicrosoftのIDE(統合開発環境)。

Intellisenseという自動補完機能が最高の作業効率を与えてくれます。

Windowsアプリの他にWEBアプリやスマホアプリを作れたり、言語もPythonの他にC#やC++、VB、F#、JavaScriptなど様々な言語に対応しており、現代最強のIDEの1つである事は間違いないでしょう。

 

Visual Studioが動作するPC

私が使用しているPCは以下です。

CPU:AMD Ryzen7 1700 (8コア16スレッド)

メモリ:16GB

SSD:512GB

OS:Windows10 64bit

 

Visual Studioは結構重たいのと、ディスク容量を結構食うのでCPUは8スレッド以上、メモリ8GB以上、SSD256GB以上欲しいところです。

 

取引所のアカウント、APIキー

BitMexでアカウントを作成し、botで操作する為にAPIキーの作成が必要です。

BitMex - 公式サイト -

botのテストを行う場合はテストネットと言って仮の環境を使用してテストを行います。

BitMex - テストネット -

Visual Studio 2017のインストール

以下のサイトからVisual Studio IDEのWindows用ダウンロードボタンからCommunity 2017(無償版)を選択します。

Visual Studio - 公式サイト -

ダウンロードした,exeファイルを実行してインストールします。

Visual Studio 2017のインストール - 公式サイト -

Python環境のインストール

ワークロードの選択でPython 開発を選択し、右下の変更ボタンを選択してインストールします。

Python 3にチェックが入っていればOKです。

インストールが終わったらVisual Studioを起動します。

Pythonプロジェクト作成

Visual Studioを起動したらまず、メニューバーからファイル -> 新規作成 -> プロジェクトを選択します。

Pythonアプリケーションを選択し、適当なプロジェクト名をつけてOKを押して作成します。

pipのアップグレード

プロジェクトを作成したら、まずはpipをアップグレードします。

pipはPythonのパッケージソフトをインストール・管理するためのソフトです。

これを使ってccxtなどのライブラリをインストールします。

ソリューションエクスプローラーのプロジェクト名 -> Python環境 -> Python 3.x(64-bit)を右クリックし、Pythonパッケージのインストールを選択します。

Python環境の画面になるので以下のコマンドをバーに入力してEnterを押せばpipがアップグレードされます。

--upgrade pip

ccxtのインストール

pipのインストールが成功したら、次はccxtをインストールします。

同様にバーにccxtと入力し、Enterを押してください。

ccxtのインストールが成功したら次はテストネットのアカウントとAPIキーを作成します。

BitMexのテストネットアカウントとAPIキー作成

テストネットアカウント作成

botを作る際に、稼げるかどうかも分からないプログラムをいきなり本番と同じ環境で動かす訳には行きません。

テスト用の環境としてテストネットが用意されています。

BitMex - テストネット -

まずはサイトトップからアカウント登録画面へ行き、必要事項を入力して登録します。

登録したメールアドレスに確認メールが届きますのでそれをクリックし、認証しましょう。

APIキー作成

アカウントを作成したらログインし、画面上部のAPIを選択します。

左側のAPIキーの管理を選択します。

  • 名前…自分が分かりやすい名前でOKです。
  • CIDR…MexにアクセスするIPアドレスに制限をかけてセキュリティを高めたい場合は指定してください。空白のままの場合は全てのIPアドレスからのアクセスが許可されます。
  • キーのアクセス許可…注文を自動化したいので、注文を選択します。

必要事項を入力したらAPIキーを作成します。

ここで作成されたIDと秘密鍵が表示されるので、両方ともメモしておいてください。

IDは後からも参照できますが、秘密鍵はこのページから離れると見られなくなります。

bot作成

APIキーを作成してIDと秘密鍵をメモったらVisual StudioのPythonプロジェクトに戻ります。

以下のコードは成行でロング(買い)し、BTCの現在価格をUSD建てとJPY建てで表示するだけのプログラムです。

USD=111JPYとしてあります。

これをプロジェクト名.pyを開いてコピペし、apiKeyとsecretに先程作成したAPIキーのIDと秘密鍵をそれぞれ入力してください。

#記号から右側の文字はコメント扱いで、プログラムとしては無視されます。

注意書きや説明のメモを書く時に使います。

import ccxt 
 
bitmex = ccxt.bitmex({ 
  'apiKey': 'APIキーのIDと差し替え', 
  'secret': 'APIキーの秘密鍵と差し替え', 
}) 
bitmex.urls['api'] = bitmex.urls['test']

bitmex.create_order('BTC/USD', type='market', side='buy', amount=500) #BTC/USDを500枚成行ロング(買い)

price = bitmex.fetch_ticker('BTC/USD')['last'] #最後の約定価格を取得
print('現在価格[BTC/USD]' + str(price)) #価格を数値→文字列に変換
print('現在価格[BTC/JPY]' + str(price * 111)) #USD→JPYに換算

プログラムを実行する時はVisual Studio上部の開始(緑の再生ボタン)を押します。

この時、テストネットで成行ロングされる事を確認する為に取引画面を開いておいてください。

開始を押して少し待つと黒い窓が開き、BTCのUSD価格とJPY価格が表示されます。

この画面上で何かキーを押すか、Visual Studioの赤い停止ボタンを押すとプログラムは終了します。

テストネットではロングポジションで500枚買えている事がわかります。

これでプログラムからBitMexの注文を行える事が確認できました!

これでBItMexのbotを開発する環境構築は完了です。

これからPythonの書き方やccxtのAPI、注文のロジック等を勉強して行きます。

 

PR:以下のリンクからBitMexに登録すると6ヶ月間手数料が10%OFFになります!(私には手数料の半額が報酬として入ります)

BitMex - 公式サイト -

 

スポンサーリンク

Twitterでフォローしよう

おすすめの記事