見出し画像

Re:ゼロから始める仮想通貨bot(自動売買システム)の作り方 ~第二回 仮想通貨botを作る準備をしよう(1)~


トレード時にプログラムがやっている事


こんにちは、JINです。Twitter IDはこちら

技術的な話などは、分かりやすくするために一部を端折ったり若干ニュアンスが違う物もあるのでご了承ください。あまりに酷い間違い等はご指摘頂けると助かります

第1回の記事はこちらです。今回は仮想通貨botを作る準備の話です。

みなさんも取引所でトレードする時は専用アプリなどを利用していると思います。あれももちろんプログラムなんですが、仮想通貨botとは何が違うのでしょうか。なぜわざわざ自分でbotを作るのか。その辺を説明したいと思います。

まず始めにとある取引所でトレードをする時、プログラム的にどんな事が起こっているかを説明します。

トレード完了までの流れ
1. スマホやPCにある専用アプリを開いて取引所にアクセスする
2. ビットコインのBuyボタンをクリックする
3. 注文が自宅PCから取引所に送られる(リクエスト)
4. 注文が成立した/失敗したなどの結果を取引所から自宅PCに返される(レスポンス)
5. Webブラウザ上にビットコインの購入履歴とポジションが表示される

一般的なアプリはユーザが分かりように見た目を作りこみ、使いやすいように、ボタン1つで注文が出来るようになっています。

裏を返せばプログラムで注文内容を作って送れば、専用アプリなどがなくてもトレード出来るという事で、項番でいうと3と4の部分を指しています。また、この処理をクライアントからリクエストを送ってサーバーからレスポンスを貰うという言い方をよくします。

こういった処理をするシステムをクライアントサーバーシステムといいます。仮想通貨botは自動売買システムであり、クライアントサーバーシステムであるのです。

画像1


そもそも専用アプリで自動売買出来ないのか

アプリでも最近は便利な機能がありシステムトレードが出来る物もあります。

例えば以下のNOTEはRIOさんのFTXのQuant Zoneの使い方ですが、こちらはなかなか高機能で色んな自動売買システムを組めます。

https://note.com/jacko/n/nfde960d583ed?magazine_key=ma52145a4866b

FTXの口座を持っていない人は以下のリファリンクから開設すると30ドルのボーナスと手数料5%引きになります。

FTXの口座開設はこちら

じゃあ、FTXのQuant Zoneでいいじゃん?

いいえ。これはFTXだけで他の取引所にはありませんw複雑な条件設定をすればするほど、かける労力はプログラミングするのと大した変わりがないです。そうやって頑張って覚えても、このサービスが終了したら知識は無駄になります。一方、プログラミングは覚えてしまえばトレード以外にも役に立つ事が多々あります。

自作の仮想通貨botを作って自分で条件を書けば大抵の取引所で自動売買を実行できますし、それらは取引所によっての違いこそあれ、どこで動かすのか、どの言語を選ぶのか、全て自由自在なのです。そしてbotを作って動かせば、時間にも縛られないし大量の処理も代わりにやってくれます。なので、アプリ勢や取引所のサービス利用勢より圧倒的に自由なトレードが出来ます。

画像2

頑張って壁外に旅立ちましょう!

環境の準備(概要)

では仮想通貨botを作ったり動かしたりするための環境の準備について説明します。大きく分けて以下の3つが必要です。

1. 取引所の開設とAPIキーの取得
 Bitflyer or Binance or FTX or etc..
2. クライアントを動かすPCの用意 自宅PC or クラウド上のVPC(AWSなど)
 Windows or Linux
3. プログラム言語のインストール
   Python or Node.js

まず1ですが、大半の人は既にどこかしらは開設済みかと思います。ただ多すぎても大変なので上記3つだけを対象にします。また、説明が冗長になるので基本的にはFTXを例にして進めます。取引所によって差異がある部分はその都度なるべく説明します。

2ですが、クラウドのVPCというのは外に居る時もアクセス出来るPCだと思ってください。月額でお金を払う必要があるので慣れてきたらそこでbotを動かすようにすればいつでもどこでもメンテナンスが出来るので便利です。

よく分からない人は最初は自宅にあるPCでいいと思います。

3ですが、プログラムとは色んな言語というものがあります。それぞれ特徴が違うので使い分ける必要があるのですが、これも最初は例にあげたpythonかnode.jsがお勧めです。特に仮想通貨botはpythonで作っている人が多いので他の言語に比べて情報量が桁違いに多いです。私もpythonを使っていましたが最近はnode.jsで作るようにしてるので両方とも説明していこうかと思います。

APIとは

突然出てきたAPIという単語ですが、これは「Application Programming Interface」という物で、クライアントのプログラムからサーバへリクエストを出した時に実行されるプログラムです。決まったフォーマットで出すと残高情報を返したり注文するなどの命令を実行します。例えば自分の残高を知りたい時など赤の他人に見られると困りますので、自身のアカウントで作成したキーを利用したリクエストだけ許可するというような仕組みです。

画像3

WebAPIについての説明

引用元 はこちら。Web APIについてとても詳しく説明してるのでお勧め。)


APIにはパブリックとプライベートがあり、パブリックは誰でも実行できます。では試しに下記のURLをコピーしてブラウザのURL欄にペーストしてエンターを押してみましょう。ブラウザにレスポンスが表示されると思います。

画像4

BitFlyerのBTC現物のサーキットブレイカー価格は以下で取得できます。

https://lightning.bitflyer.com/api/trade/getCircuitBreakInfo?productCode=BTC_JPY&v=1
{"status":0,"error_message":null,"data":{"upper_limit":4925174.400000000000,"lower_limit":3283449.600000000000}}

2段目がレスポンスで返ってきて表示されたと思います。上側が4,925,174.4円で下側が328,3449.6円と分かります。

※サーキットブレーカー制度とは、誤発注等による価格急変防止の観点から、取引の一時中断を行う制度です。

FTXのBTC-PERPの価格は以下で取得できます。

https://ftx.com/api//markets/BTC-PERP
{"success":true,"result":{"name":"BTC-PERP","enabled":true,"postOnly":false,"priceIncrement":1.0,"sizeIncrement":0.0001,"minProvideSize":0.001,"last":38816.0,"bid":38815.0,"ask":38816.0,"price":38816.0,"type":"future","baseCurrency":null,"quoteCurrency":null,"underlying":"BTC","restricted":false,"highLeverageFeeExempt":true,"change1h":0.005726130327762664,"change24h":0.05590163488479639,"changeBod":0.024980195405334037,"quoteVolume24h":2033601001.5903,"volumeUsd24h":2033601001.5903}}

binanceのBTCUSDTの価格は以下で取得できます。

https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT
{"symbol":"BTCUSDT","price":"38800.04000000"}

これらをpythonのプログラムで書くと以下のようになります。この場合はリクエストを投げてレスポンスを貰ってるだけで出力はされません。それも自分で処理を書く必要があります。ただし、botはレスポンスを使って更に何か処理するので、基本的には貰った値を表示させる必要はありません。

import requests
requests.get('https://ftx.com/api//markets/BTC-PERP')

どうでしょうか?プログラミングというとなんだか難しそうって思うかもしれませんが一つ一つの処理はこのように簡単なんです!これをいっぱい組み合わせれば色んな事が自動で出来るようになります。少しずつ覚えていけば全くの初心者でも決して不可能ではないと思います。実際今儲かってるbotter達もプログラミング一度もした事ないって人がたくさんいますよ。

さて、このコードを動かすにはpythonをインストールする必要があります。そしてインストールするPCのOSによって手順が異なります。この辺はどんなアプリも一緒だと思います。次回はその辺について説明します。またAPIキーを使った自分の口座残高の取得方法などの説明やプログラムの説明も合わせてやります。最後まで読んで頂きありがとうございました。


この記事が気に入ったらサポートをしてみませんか?