Python3・CCXT・Cloud9を用いたBitMEX裁量トレード補助ツール作成講座

前回のnoteではCCXTでBitMEXトレードを行うための基本的なメソッドの説明を行いました。今回のnoteでは自動売買bot作成の前段となる、裁量トレード補助ツールの作成方法を説明します。bot作成・実行でも重宝するCloud9を使った開発・実行環境の構築から触れているため、自動売買bot作成の導入としても耐えうる内容になっています。

対象の取引所はBitMEXです。1コマンド(1スクリプト)でエントリ指値注文・利確(クローズ)指値注文・損切り(ストップ)注文ができるようになります。トレードルールが確立しており、エントリ価格や利確・損切り幅が決まっている方にとっては、取引画面から数量や価格を入力する手間が省けるため、利用価値のあるツールとなります。ちなみに、実際に動くソースコードの全量は、本noteの末尾に掲載しています。

ちなみに、トレード手法については様々なやり方があると思いますが、一例として、スキャルピングでの勝ち方をくりぱかさんがこの有料noteで紹介されています。こういったものを参考にするのが良いでしょう。本noteの内容は、くりぱかさんの手法はもちろんとして、特に、取引頻度が高く、素早いアクションが求められるスキャルピングを行う際に真価を発揮するに違いありません。

目次

・環境構築(クラウドIDE (Cloud9)の登録・設定)
・裁量トレード補助スクリプト
・エントリ注文(指値・成行)
・利確注文(指値)
・損切り注文(成行)

私はbotトレードの開発・実行環境として、クラウドIDE(統合開発環境)であるCloud9を愛用しています(今ではAmazonに買収され、AWSファミリーの1サービスとなっています)。正直、物凄く使いやすいです。手放せません。どのPCからでも同一の開発・実行環境にアクセスできるため、インターネットにアクセスできる環境さえあれば、どこにいても開発を続けられます。また、スマホからスクリプトの実行状況を確認することだってできます。

Cloud9は他のクラウドIDEに比べ、評価や知名度が群を抜いて高いのも、私が今回オススメする理由でもあります。ビットコインの売買以外にも、手軽なプログラミング環境として様々な目的に利用することができます。この機会にアカウントを用意しておくと生活の幅が広がりますよ。

今後、私が執筆するnoteでは一貫して、このCloud9を利用していきます。今回の講座では、登録から始まり、実際にコードを動かすまでのステップを解説します。Cloud9で実現可能なことに関するより深い詳細については、Cloud9自体のサイトや他の解説Webページに譲るとして、本noteでは最短距離でコードを実際に動かすまでに至ることに重点を置きます。

環境構築(クラウドIDE (Cloud9)の登録・設定)

クラウドIDEであるCloud9の登録を行います。ちなみに、Amazonに買収されてから、旧Cloud9は新規登録ができなくなりました。そのため、ここでは新しいCloud9 (AWS Cloud9)の登録方法を説明します。

Cloud9を利用するにあたって、利用料金はかかりません。無料で使えます。ただし、AWSファミリーの中の1サービスという位置付けですので、利用状況によってはAWSのサーバ利用料金がかかることがあります。しかし、AWSには無料利用枠(アカウント作成から1年間)があるため、新規のユーザはAWS Cloud9を実質的に無料で利用することができます。よっぽどヘビーな使い方をしない限りは大丈夫でしょう。では、次のリンク( https://aws.amazon.com/jp/cloud9/ )からCloud9のサイトに移動し、登録・設定を行いましょう。

「AWS Cloud9 の使用を開始」をクリックします。

AWSアカウントの入力が求められます。私は既に持っていましたが、お持ちでない場合は、Create a new AWS accountから作成を行いましょう。

AWSアカウントの認証が完了すると、上記の画面が表示されます。Create environmentをクリックします。

Nameに環境の名前を入力します。何でも良いです。上記の画像では「trade」としています。Next stepをクリックします。

インスタンス設定の画面が表示されます。デフォルト設定のままで構いません。末尾のNext stepをクリックします。

確認画面が表示されます。末尾のCreate environmentをクリックします。

やっと旧Cloud9ユーザには馴染みのある画面が出て来ました。ほっとした瞬間です。環境が用意されるまでの間、少し待ちます。

何やらポップアップが出て来ますが、デフォルト設定のままNextをクリックします。

再び、Nextをクリックします。

Finishをクリックします。

これでIDEが起動し、使える状態になりました。お疲れ様です。では、本題であるPython3・CCXTライブラリの利用へと移っていきましょう。

まずは基本的な環境構成情報を調べましょう。以降は$の後ろのコマンドを入力してみてください。

ec2-user:~/environment $ python --version
Python 2.7.12

Python2(バージョン2)が標準でインストールされていることがわかります。

ec2-user:~/environment $ python3 --version
Python 3.6.2

python3コマンドとしてPython3も最初から入っていますね。

ec2-user:~/environment $ which python3
/usr/bin/python3

本講座ではPython3を用いるため、python3の場所(パス)を確認しておきます。

ec2-user:~/environment $ pwd
/home/ec2-user/environment

現在のディレクトリ。

ec2-user:~/environment $ ll
total 4
-rw-r--r-- 1 ec2-user ec2-user 570 Mar 11 07:58 README.md

現在のディレクトリにあるファイルの一覧。

では、ここからが本題になります。

裁量トレード補助スクリプト

BitMEXでの裁量トレードを補助するPython3スクリプトを作成します。

ec2-user:~/environment $ touch trade.py
ec2-user:~/environment $ ll
total 4
-rw-r--r-- 1 ec2-user ec2-user 570 Mar 11 07:58 README.md
-rw-rw-r-- 1 ec2-user ec2-user 0 Mar 11 08:58 trade.py

trade.pyという名前の空ファイルが作成できました。

ec2-user:~/environment $ chmod 775 trade.py
ec2-user:~/environment $ ll
total 4
-rw-r--r-- 1 ec2-user ec2-user 570 Mar 11 07:58 README.md
-rwxrwxr-x 1 ec2-user ec2-user 0 Mar 11 08:58 trade.py

trade.pyに実行権限を与えました。r(Read)とw(Write)の後にx(Execute)が追加されています。

では、trade.pyを開き、編集を行っていきます。

左側のファイル一覧にtrade.pyが追加されています。ダブルクリックで開きましょう。

trade.pyのタブが開かれ、編集ができる状態になりました。

#!/usr/bin/python3
import time
import ccxt
import sys

bitmex = ccxt.bitmex({
    'apiKey': 'API_KEY',
    'secret': 'API_SECRET',
})
bitmex.urls['api'] = bitmex.urls['test']

こちらをコピーし貼り付けてください。API_KEYとAPI_SECRETの部分はご自身のものに変更してください。BitMEXの画面上部「API」から作成できる「ID」と「秘密」に相当します。

名前に適当な文字列を入力し、「送信する」をクリックします。

上記は私が発行したサンプルのKeyとSecretです。※無効化・削除済み
編集が終わったら、command-s (WindowsではCtrl-s)でスクリプトを保存しておきましょう。

#!/usr/bin/python3

冒頭は、シバンまたはシェバン (英語: shebang) というもので、UNIXのスクリプトの#! から始まる1行目のことです。 スクリプトを読み込むインタプリタを指定します。これを記述し、実行権限をtrade.pyに付与することで、「python3 trade.py」と打ち込む必要なく、「./trade.py」でスクリプトを起動することができます。Python3インタプリタの場所(パス)は、先ほど「which python3」で確認したものです。

import time
import ccxt
import sys

2〜4行目では、処理に必要なライブラリを読み込んでいます。timeはループのWait処理(time.sleep(second))を実行するために必要になります。ccxtは前回のnoteで紹介した、BitMEXでのポジション確認や発注を簡便に行うためのライブラリです。sysは引数の取得sys.argvとスクリプトを終了させるsys.exit()処理に用います。

続いて、下記のコードを追記しましょう。

※これ以降は、有料パートとなります。無料パート・有料パートに関わらず、プログラミングが初めてという方にもわかりやすく解説したつもりです。引き続き同じ要領で、実際にどのようにトレード補助ツールとして形作っていくか、下記の内容を段階を経て説明していきます。最後まで読み進めていただけると幸いです。

・エントリ注文(指値・成行)
・利確注文(指値)
・損切り注文(成行)

この続きをみるには

この続き:8,637文字/画像13枚

Python3・CCXT・Cloud9を用いたBitMEX裁量トレード補助ツール作成講座

AKAGAMI 卍

500円

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

note.user.nickname || note.user.urlname

最後まで読んでいただき、どうもありがとうございます。頂いたサポートは、良質な情報を発信している方のnote購入・サポートに充てさせていただきます。

スキありがとうございます。今後ともよろしくお願いいたします。
272

AKAGAMI 卍

仮想通貨

24つのマガジンに含まれています

コメント43件

GAMIさん、お世話になります。
Testnetで注文を出した後、ターミナルにLTPが延々と自動で表示され続けるのですが、
これは仕様なのでしょうか?
本番環境で複数の注文を出したい場合には本稿で解説されているコードではできないということでしょうか?
ccxt.base.errors.AuthenticationError: bitmex {"error":{"message":"Invalid API Key.","name":"HTTPError"}}
上記のエラーが出ていましたがAPI作成時にキーのアクセス許可を”注文”にしていないことが原因でした。UIが少し変わっているようなので記載しておきます。
noteの通りにやってもエラーが出て数日間自力で解決しようと頑張ってますがギブアップです。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。