スクリーンショット_2018-03-11_19

暗号通貨自動トレードシステム開発キャンプ#2:trading bot の種類について

#bot開発キャンプ第2夜
#botはまだ作り始めません
//botの種類について
//プログラミング初心者は何から手をつければいい?
//初心者でも儲かるbotは作れるのか?

おはようございます。しゃしゃしゃしゃです。
bot開発キャンプと銘打っておきながら今回のキャンプでも全然開発に進みません。申し訳ないです。ただ、これから開発をしていく上で知っておいた方がいい情報もあると思うので時間のある人は読んでいただければと思います。

・botの種類は大きく分けて5種類存在する。
一口にbotと言ってもそのアルゴリズムには様々な種類があります。
1.アービトラージ(裁定取引)系bot
 bot開発をしようと考えている皆様ならアービトラージという言葉を聞いたことがあるかもしれません。
アービトラージを簡単に説明すると、複数の市場において同一商品の値段に乖離がある場合、その価格差を利用して利益をあげることです。

例:CoinCheckで1BTCが100万円、bitflyerで1BTCが105万円とする。
この時、CoinCheckで1BTCを買ってbitflyerで1BTCを売れば5万円の利益になります。

実際には送金している間に価格が変動してしまう価格変動リスク等があるのですが、CoinCheckとbitflyerで既に現物を持っているとしていたら時間による価格変動リスクを最小限にして利益を得られることは分かっていただけたと思います。
ただ、1年2年前だったらいざ知らずBTCトレードをする人が増えた現在だと5万円の乖離が発生することはほとんどないです。1万円程度の乖離なら未だに発生することがあるのでこのアービトラージ系botを作成するのもいいかもしれません。
実際に開発をする際は上記、価格変動リスクだけではなく、BTC売買手数料・BTC送金手数料・流動性リスク等々を加味して作成しましょう。かなりメジャーなアルゴリズムですのでとりあえず作って儲かるか試すのもいいんじゃないでしょうか。

2.マーケット・メイク系bot(MM bot)
 こちらは前回のキャンプで説明したスプレッドを利用して利益をあげるbotです。以下の画像をみてください。これはbitMexで実際の取引板です。今、最終執行価格が$8679.5、最適売り気配$8680、最適買い気配$8679です(実際にはグループ化しているので違うのですが...)。この時、 $8679.3で買指値、$8679.5で売指値注文をすれば差額の$0.2*枚数を利益とすることができます。このほかにメイカー・テイカーモデルを採用している取引所では別途手数料が利益になることもあります。

・メイカー・テイカーモデルとは
 メイカーに対する手数料を優遇し、テイカーに対する手数料は優遇しないモデルのことです。メイカーとは板を作る人(指値で板に注文を晒す人)、テイカーとは板を奪う人(成り行きで注文を晒さずに取引する人)のことです。
 取引所からしてみれば指値を使って板を作ってもらえれば流動性ができ、参加者が増え、スプレッドも狭まるのでいいことずくめです。逆に成り行き注文で注文を板に晒さず奪っていくと流動性が奪われスプレッドも広がるのであんまり嬉しくないわけです。なので板を作る人の手数料を0とかマイナスにして優遇する代わりに板を食べる人から手数料を取ろうというわけですね。
 別に、メイカーが良くてテイカーが悪いと言うわけではありません。ただ、そのバランスを保つ為にこのような施策をとっているというだけです。

3.執行系bot
 大量の注文をする際に取引によるコスト・約定価格・在庫リスク等々を最適化するbotです。大量注文をする場合、一度に全注文を通してしまうと需給のバランスが崩れて価格が不利な方向に変動してしまうことになります。
例えば、10000枚の買い注文を最終取引価格が100万の時に成り行きで出したとすると、約定していくうちに売り板が食べられて価格は上がっていくことは想像がつきますよね? そうすると本来100万で買いたかったはずなのに結果を見ると平均約定価格が105万になってしまっている。なんてことが有り得る訳です。このような状況に陥らないよう、価格に及ぼす影響(マーケットインパクト)を小さくする為に注文を分割し1回あたりの数量や頻度を最適化するのがこのbotです。

4.ディレクショナル系bot
 こちらがみなさんが想像しているbotかもしれません。テクニカル指標・ファンダメンタルズ指標など様々な情報を分析して価格変動を予測し、売買収益の獲得を行うbotです。トレンド追従型・逆張り型・レンジ型のものなど様々なものが有ります。かなり有名なロジックとしてはイナゴbotがありますね。去年AKAGAMI 卍さんがそのロジックを公開して話題になったので知っている方も多いかと思います。

そのほかにも最近bitflyerで実装されたSFDを利用したSFD bot、有名人のツイートを監視してトレードを行うbotなど本当に様々な種類が有ります。今後のキャンプではこれらのbotの作り方などを紹介していければと考えています。

・プログラミング初心者は何から手をつけたらいい?
 本キャンプで使用する言語は主にpython3にする予定ですのでネットで適当に検索をして変数への代入、IF文やFor文の使用ができる状態になっていただければと思います。環境を構築するに当たって「python anaconda」で検索して、anacondaなるパッケージをインストールしていただければと思います。エディタはなんでもいいです。私はPycharmを利用しています。これらの導入についても軽く触れる予定ですが、他のサイトをみていただいた方がわかりやすいかもしれません。

・初心者でも儲かるbotは作れますか?
 人によります。市場に出れば初心者とかぶっちゃけ関係ないので努力すれば利益の出るbotを作成できるでしょうし、コピペで作るだけならほぼ確実に損するでしょう。一つ言えるのは手動で利益が出たからといってbotで利益が出るとは限りませんし、手動で利益がでなかったからといってbotでも利益が出ないとは限りません。自分が何を作っているのか、何をしようとしているのかなどを紳士に考えてPDCAを回していけば報われることがあるかもしれませんねという感じです。トレードで利益が出なくても確実にスキルは身につくと思いますし、ただみなさんの目的はおそらくbotで利益を出すことだと思いますので、利益がでないbotを作った時に「でもプログラミングのスキルはついた」とか考えるだけでなく、ダメだった原因を探って探って探って利益が出るbotの開発を継続していただければと思います。

・口座開設がまだのひとへ
 ぶっちゃけ実際に開発を進めていくのが次のnoteになるのかその先のnoteになるのかわからないので早く開設してください!とは言えませんが、bitflyerとかは本人確認とかもしなければならないので口座開設をしておくのをおすすめしておきます。
以下私のアフィリエイトリンクです。登録していただければ幸いです。
・bitflyer
https://bitflyer.jp?bf=yaa5px3n

・bitMex(以下のリンクから登録すると手数料が6ヶ月間10%引きになります。) 
https://www.bitmex.com/register/smlBwx


最後までお読みいただき、ありがとうございました。


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