あれ、この話2018年にもしたな。
こんにちは、完全に出戻り娘です。今度こそ自動botでたくさん稼いじゃうぞ!!!
というわけで2021年のbot構築についてもメモしていきたいと思います。
進めながら書いていますよ
上から順番にやっていけばきっとあなたもbotが作れます!
取引所選定
まずは取引所選定ですよね。今回は使用したいbotに合わせてbybitをまず選んでみることにしました。
何はともあれ申し込みましょう。以下から登録して取引すると10$相当のボーナスがもらえます。
右のほうのアカウント作成から、私はEメールで申し込みました。
メールアドレスとパスワードを埋めて「登録」をクリックするだけです。
ロボ確認が入ります。最近このチェック流行ってるの?AIには難しいんですか?
Eメールに認証コードが届いているので、入力しましょう。
するとログインされます。
なんか入金すると、とかSNSをフォローすると、とかでいろいろ特典がもらえるので、適宜実施しましょう!!ありがてえ
twitterをフォローしただけで雑に5ドルもらえました。なんかすごいよな。
こちとらアサヒ飲料のLINE友達に登録して10ポイントもらってるレベルだぞ
入金で50$もらえる!右上のメアドをクリックして個人資産をクリック。
BTC他いろいろありますが、入金を押すとこの取引所の自分のウォレットが表示されます。
というわけでお得なので、できるやつはやってしまいましょう!
ただ、0.1BTC~の入金なので、入金ボーナスのハードルはやや高めですね…(今だと60万くらいですか…)
これで登録は完了!いったんbybitのことは忘れます。
サーバ選定
2018年と同じく、AWS(AmazonWebService)にて仮想を立てて実施することにします。
なんか無料OSがRedhat8になってたわ~、時代の流れを感じる。
ちな、fedora生まれRedhat育ちです。ubuntu?知らない子ですね…
まずはAWSに行って登録しましょう。
無料期間から始められるのでありがたいですね。
無料が終わっても、確か私の使い方だと月数百円でした。
しかし、amazonのロボ認証のこれ、めぇーちゃ難しくない?人間なのに3回も失敗したんですけど。
下の画像間違ってるんですよ。V5p6va以外の何だというのか?あ、2個目のVも大文字?
登録後、仮想サーバを立てます。「仮想マシンを起動する」をクリック。
OSの選択ですが、無料にRHEL8があります。私は仕事で使い慣れたこちらを選びました。
同様に構築しようという場合は、同じものを選択してください。
スペック選択です。
無料の人は選択の余地がないのでそのまま右下の青い「確認と作成」をクリックしてください。
次の画面も同じく右下にある起動をクリック。
次の画面で、
キーペアを作成します。「新しいキーペアの作成」を選択し、キーペア名を自由に入力します。
その後、「キーペアのダウンロード」を選択し、この「ほにゃらら.pem」ファイルを把握できるところに保存してください。※このファイルはもう一度はダウンロードできないそうなので、なくさないでください!
そうしたら、インスタンスの作成です。
インスタンス作成中です。右下のインスタンスの表示を押して待ちましょう。
作成したインスタンスが赤丸あたりに表示されていると思います(私のは4つ表示されていますが、初めてやった方は一つだと思います)
実行中の少し右に、作成状況が乗っています。ここが「初期化しています」あたりになるまで待ちましょう。
早速sshでAWSに接続します。
寄り道:poderosaのダウンロード
sshでASWに接続するにあたり、ターミナルソフトが必要です。
おすすめのターミナルはpoderosaです。以下URLから最新版[4.4.5]をダウンロードしてください。
解凍するだけで使えますので、任意の場所で解凍してpoderosa.exeをダブルクリックして起動してください。起動時、windows から.netframeworkが不足などと言われたら、インストールしてあげてください。
awsに戻ります。
以下の画像の「実行中」の左にあるawsの「インスタンスID」をクリックすると、
以下の画面に遷移します。右のほうにある「接続」をクリックしてください。
接続情報です。「SSHクライアント」のタブで、赤い四角に囲まれたサーバ名をコピーしてください。(サンプル画像は白抜きしていますが、ここにサーバ名が出ているはずです)
起動したpoderosaのssh接続アイコン(モニタみたいなやつ)をクリックします。
以下の画像のように、
①に先ほどコピーしたサーバ名を入力。
②にはec2-userと入力。
③で公開鍵を選択。
(パスフレーズは空欄で構いません)
④に、先ほどダウンロードした「ほにゃらら・pem」を選択して
OKを押してください。
初回は初接続のアラートが出ますが、OKとしてください。
これで無事poderosaでawsへ接続できました。
エンターを押すなどして、動くことを確かめましょう。
ツール→オプション→コマンド から、コピー、ペーストをctrl+に割り当てておくのがおすすめです(初期設定はAlt+になっている)。
同じく、
ツール→操作 から、「マウスで選択したら自動的にコピー」にチェックを入れておくのがおすすめです。
環境構築
今回のbotはpythonを使用するのでpythonの構築をしましょう。
さて、前回はccxtを使用せずbitmex独自のコマンドを用いましたが、今回はccxtを活用していきたいと思います。
rootユーザにパスワードを設定しておく
まずはrootユーザにパスワードを設定しておきましょう。構築直後は、何も設定されていません。以下のようにコマンドを入力していきます。太文字の部分が入力するコマンドです。
Last failed login: Sun Mar 21 11:11:47 UTC 2021 on pts/0
There was 1 failed login attempt since the last successful login.
[root@ip- ~]# passwd
Changing password for user root.
New password:★設定したいパスワードを入力してenter
Retype new password:★確認。もう一度同じパスワードを入力してenter
passwd: all authentication tokens updated successfully.
[root@ip- ~]#
基本的なインストール@rootユーザ
yum install gcc gcc-c++ make git openssl-devel zlib-devel readline-devel
上記コマンドで基本的なものをインストールしておきましょう。
Pythonのインストール@rootユーザ
初期状態ではpythonはインストールされていませんので、インストールします。
ログイン直後は「ec2-user」ですので、「su -」としてパスワードを打ち、rootユーザに昇格しておいてください。
[root@ip- ~]# yum install @python36
Last metadata expiration check: 0:24:49 ago on Mon 22 Mar 2021 09:26:53 AM UTC.
Dependencies resolved.
=========================================================================================================================
Package Architecture Version Repository Size
=========================================================================================================================
Installing group/module packages:
python36 x86_64 3.6.8-2.module+el8.1.0+3334+5cb623d7 rhel-8-appstream-rhui-rpms 19 k
Installing dependencies:
python3-pip noarch 9.0.3-18.el8 rhel-8-appstream-rhui-rpms 20 k
python3-setuptools noarch 39.2.0-6.el8 rhel-8-baseos-rhui-rpms 163 k
Installing module profiles:
python36/common
Transaction Summary
=========================================================================================================================
Install 3 Packages
Total download size: 202 k
Installed size: 466 k
Is this ok [y/N]: y ★yを入力してenter
Downloading Packages:
(1/3): python3-setuptools-39.2.0-6.el8.noarch.rpm 1.2 MB/s | 163 kB 00:00
(2/3): python36-3.6.8-2.module+el8.1.0+3334+5cb623d7.x86_64.rpm 125 kB/s | 19 kB 00:00
(3/3): python3-pip-9.0.3-18.el8.noarch.rpm 126 kB/s | 20 kB 00:00
————————————————————————————————————————-
Total 846 kB/s | 202 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : python3-setuptools-39.2.0-6.el8.noarch 1/3
Installing : python3-pip-9.0.3-18.el8.noarch 2/3
Installing : python36-3.6.8-2.module+el8.1.0+3334+5cb623d7.x86_64 3/3
Running scriptlet: python36-3.6.8-2.module+el8.1.0+3334+5cb623d7.x86_64 3/3
Verifying : python36-3.6.8-2.module+el8.1.0+3334+5cb623d7.x86_64 1/3
Verifying : python3-pip-9.0.3-18.el8.noarch 2/3
Verifying : python3-setuptools-39.2.0-6.el8.noarch 3/3
Installed:
python3-pip-9.0.3-18.el8.noarch python3-setuptools-39.2.0-6.el8.noarch
python36-3.6.8-2.module+el8.1.0+3334+5cb623d7.x86_64
Complete!
これでpythonが使えるようになりました。
次に、pythonコマンドをpython36で使えるように指定しておきます。
There are 3 programs which provide ‘python’.
Selection Command
———————————————–
* 1 /usr/libexec/no-python
+ 2 /usr/bin/python2
3 /usr/bin/python3
Enter to keep the current selection[+], or type selection number: 3★「/user/bin/python3」が選択されている数字(上記例では3)を入力してenter
[root@ip- ~]# python –version ★pythonコマンドで使用できるバージョンを確認
Python 3.6.8
[root@ip- ~]# pip –version ★pipのバージョンも確認
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
ccxtのインストール@rootユーザ
次に、ccxtをインストールします。ccxtとは、各取引所に渡すコマンドをこう、取りまとめてくれているライブラリ…です。
太字のコマンドを入力します。
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip install –user` instead.
Collecting pip
Downloading https://files.pythonhosted.org/packages/fe/ef/60d7ba03b5c442309ef42e7d69959f73aacccd0d86008362a681c4698e83/pip-21.0.1-py3-none-any.whl (1.5MB)
100% |████████████████████████████████| 1.5MB 792kB/s
Installing collected packages: pip
Successfully installed pip-21.0.1
[root@ip- ~]# pip install ccxt ★ccxtインストール
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with ‘-m pip’ instead of running pip directly.
Collecting ccxt
Downloading ccxt-1.43.91-py2.py3-none-any.whl (2.1 MB)
|████████████████████████████████| 2.1 MB 6.6 MB/s
Collecting yarl==1.1.0
Using cached yarl-1.1.0-cp36-cp36m-manylinux1_x86_64.whl (255 kB)
Collecting cryptography>=2.6.1
Downloading cryptography-3.4.6-cp36-abi3-manylinux2014_x86_64.whl (3.2 MB)
|████████████████████████████████| 3.2 MB 39.3 MB/s
Requirement already satisfied: requests>=2.18.4 in /usr/lib/python3.6/site-packages (from ccxt) (2.20.0)
Collecting certifi>=2018.1.18
Using cached certifi-2020.12.5-py2.py3-none-any.whl (147 kB)
Collecting aiodns<2.1,>=1.1.1
Using cached aiodns-2.0.0-py2.py3-none-any.whl (4.8 kB)
Requirement already satisfied: setuptools>=38.5.1 in /usr/lib/python3.6/site-packages (from ccxt) (39.2.0)
Collecting aiohttp<3.8,>=3.7.4
Downloading aiohttp-3.7.4.post0-cp36-cp36m-manylinux2014_x86_64.whl (1.3 MB)
|████████████████████████████████| 1.3 MB 47.7 MB/s
Requirement already satisfied: idna>=2.0 in /usr/lib/python3.6/site-packages (from yarl==1.1.0->ccxt) (2.5)
Collecting multidict>=4.0
Downloading multidict-5.1.0-cp36-cp36m-manylinux2014_x86_64.whl (141 kB)
|████████████████████████████████| 141 kB 43.6 MB/s
Collecting pycares>=3.0.0
Downloading pycares-3.1.1-cp36-cp36m-manylinux2010_x86_64.whl (228 kB)
|████████████████████████████████| 228 kB 40.1 MB/s
Collecting typing
Downloading typing-3.7.4.3.tar.gz (78 kB)
|████████████████████████████████| 78 kB 14.5 MB/s
Requirement already satisfied: chardet<5.0,>=2.0 in /usr/lib/python3.6/site-packages (from aiohttp<3.8,>=3.7.4->ccxt) (3.0.4)
Collecting idna-ssl>=1.0
Downloading idna-ssl-1.1.0.tar.gz (3.4 kB)
Collecting async-timeout<4.0,>=3.0
Downloading async_timeout-3.0.1-py3-none-any.whl (8.2 kB)
Collecting attrs>=17.3.0
Downloading attrs-20.3.0-py2.py3-none-any.whl (49 kB)
|████████████████████████████████| 49 kB 12.3 MB/s
Collecting typing-extensions>=3.6.5
Downloading typing_extensions-3.7.4.3-py3-none-any.whl (22 kB)
Collecting cffi>=1.12
Downloading cffi-1.14.5-cp36-cp36m-manylinux1_x86_64.whl (401 kB)
|████████████████████████████████| 401 kB 42.8 MB/s
Requirement already satisfied: pycparser in /usr/lib/python3.6/site-packages (from cffi>=1.12->cryptography>=2.6.1->ccxt) (2.14)
Requirement already satisfied: urllib3<1.25,>=1.21.1 in /usr/lib/python3.6/site-packages (from requests>=2.18.4->ccxt) (1.24.2)
Using legacy ‘setup.py install’ for idna-ssl, since package ‘wheel’ is not installed.
Using legacy ‘setup.py install’ for typing, since package ‘wheel’ is not installed.
Installing collected packages: multidict, cffi, yarl, typing-extensions, typing, pycares, idna-ssl, attrs, async-timeout, cryptography, certifi, aiohttp, aiodns, ccxt
Attempting uninstall: cffi
Found existing installation: cffi 1.11.5
Uninstalling cffi-1.11.5:
Successfully uninstalled cffi-1.11.5
Running setup.py install for typing … done
Running setup.py install for idna-ssl … done
Attempting uninstall: cryptography
Found existing installation: cryptography 2.3
Uninstalling cryptography-2.3:
Successfully uninstalled cryptography-2.3
Successfully installed aiodns-2.0.0 aiohttp-3.7.4.post0 async-timeout-3.0.1 attrs-20.3.0 ccxt-1.43.91 certifi-2020.12.5 cffi-1.14.5 cryptography-3.4.6 idna-ssl-1.1.0 multidict-5.1.0 pycares-3.1.1 typing-3.7.4.3 typing-extensions-3.7.4.3 yarl-1.1.0
(ログ省略)
bybitのAPIキーを取得する
botは、人間がメアドとパスワードでログインして取引をするように、「APIキー」「secret」を使用してbybitへ注文を出します。
まずは入手しておきましょう。
ログイン後、右上のメアドが表示されているところにマウスを合わせ、「アカウント&セキュリティ」をクリックします。
次の画面で、「API管理」をクリックします。
注意情報。理解しましたをクリックでOKです。
右上の「新しいキーの作成」をクリックします。
あ、2段階認証をしておかないとAPIキーが使えないようです。
寄り道:二段階認証
※もしGoogleAuthenticatorをスマホに入れていない方はインストールしてください。
また「アカウント&セキュリティ」をクリックします。
中ほどにあるGoogleのところの右にある「設定」をクリックします。
まずメール認証を求められます。〇で囲った「認証コードを送信する」をクリックし、登録したメールアドレスに送信されてきた認証コードを入力して確定をクリックしてください。
画面に出たQRをGoogleAuthenticatorで読み取ります。
アプリ右下にある「+」から、QRコードをスキャンで読み取ってください。
bybit@メアドという風に登録されます。
ここに出ている6桁の数値を、bybitの画面の下の6桁に入力して確定を押すと完了です。
~寄り道ここまで
さて、APIキーの登録に戻りましょう。
セキュリティ→API管理→新しいキーの作成
です。画面は以下の通り。
①…APIトランザクションとします
②…名前を任意につけましょう
③…自身のIPアドレスを入力します。awsの場合、ec2-user@ip-???-??-??-???という風になっているかと思いますので、ip-の後ろの数値を「???.??.??.???」といった表記で入力しておくとよさそう。。。かと思ったのですが、それでは通りませんでした。私は設定しませんでした。
④…アクティブな注文とポジションとします。
⑤…GooglerAuthenticatorにて数値を確認して入れてください。
確定をクリックすると、APIキーが表示されます。
初回しか表示されませんのできちんとメモしてください!
(とはいえわからなくなったら新しく作り直せばいいよ・・
これでキーの取得は完了です。
まず使ってみるbot
前回はこちらの記事を参考にbitmexで作成しました。あの時から時代は流れ、bitmexは日本人は使えなくなり…。まあ別にいいんだけど(お金残ってなかったから)
コメント