ビットコインのトレードbotを作るにあたって、どういう手法が稼げるのか?。徒手空拳から始めるよりは、すでに稼いでいるbotterの情報をツイッターで調べてみました。一部、僕が実践した結果も交えてまとめてみました。
bot作成に必要な言語
botを作るにあたってプログラミングに必要な言語は、以下が多いです。初めて勉強する方は、pythonがおすすめです。
- python
- Javascript
取引所のAPIは、ウェブベースのAPIなので、ぶっちゃけ開発言語は何でもよいわけですが、pythonなどの人気の言語だと、有志の方が取引所ごとにライブラリを開発してくれいるんですよ。それらを使うと、めちゃ便利で、コーディングが楽です。
botの手法
botを作るにあたって、botでの手法は、MQL4(MT4)などで使う、ボリンジャーバンドやMACDなどのテクニカルは、ほぼ使うことはありません。
というか、これらはMT4と違って簡単に取得できません。テクニカルを使うのがかなり面倒です。pythonであれば、Talibなど外部のライブラリを使ったり、もしくは直接計算するかしかないんです。それにテクニカルつかうならMT4で作ればいいしね。botでしか出来ない事をやるのがベスト。
また、作る際は、他の人もAPIを使ってる人が多い大手の取引所をおすすめします。
botの利点
では、どんな売買手法があるかというと、botでしかできない利点を使います。
- 1秒未満の情報を取得できる(MT4だと1分足だけどそれ以内で考慮可能)
- 瞬時の価格変化に対応可能
- 秒間での売買が可能
- 出来高の変化を常に把握できる
botの種類
開発するにあたって調べて分かったbotの種類は以下7つ。まだ、いろいろありそうだけど。。
いずれも、オシレーターなどのテクニカルは使いません。
MMbot(マーケットメイクbot)
最近botterのあいだで流行ってるみたい。スプレッド開いたときに内側にエントリーさせて、その鞘を取るという手法です。株でいうサヤ取りです。
理論
MMの理論はこちらの方のブログ記事が有名です。正直、読むと理論は難しいんだけど、簡単にいうとスプレッド広がったら内側にエントリー。これだけ。まあ、だけどやってみると結構難しい。
僕の実践結果
bitFlyerでの実践結果はこちらの記事にまとめました。
- 売値と買値のサヤ取りなので一回の利益は薄い
- チャートが凪ってて価格が動かない相場では利益上げられない
- ロットを張らないと利益にならない
- 大損はしにくい
- 手数料が痛い
- うまくロット管理やれば複利で儲かりそう
問題点
- 小さいロットだと手数料で利益がマイナスになる
- 両建てなので資金力は必要
- 両建て両方決済するわけではない=片方残る事(片張り)が多い
- みんなやってる手法なので席がすぐに埋まる
- トレンドに弱い
- トレンドが発生したときは速攻で片張りになる
- 暴騰、暴落時の片張りでめちゃくちゃマイナスになる
- 片張りになったときにどうするかの処理は必須
- 在庫管理がムズい
- 板が活発であること(ある程度の出来高は必須)
チャンネルブレイクアウト
僕の実践結果
実際に、僕も作ってやってみました。最初に作ったbotがブレイクアウト狙いでした。
詳しくはこちらの記事にまとめましたので、ご参考を
- どこからどこまでの期間の高値、安値をとるかが鍵になる
- 期間が短いと高頻度でのスキャルピング可能=一回あたりの利益は薄い
- 期間を長くするとブレイク時の利益も大きいが損も大きい
- 高頻度の場合は売買手数料に要注意
サンプルソース
有志の方が公開してます。
bitflyer
BitMEX
SFDBot
SFD(Swap For Difference)。取引所の規約で、現物と先物の価格乖離を拡大する方向でトレードを実施した際に、罰金徴収されて、縮小方向のトレードをするとボーナスがもらえる事を逆手にとって売買する手法。このBotも人気の様子。
SFDの理論
こちらの記事の方が詳しくまとめてました。だいぶ参考になりました。
僕の実践結果
まだ未実装ですが、個人的には早く作った方がいいなと思ってます。
現物と先物の価格乖離がどのくらいで発生するのか、取引所ごとに規約が違うので、それをしっかり把握する必要あり。
サンプルソース
Javascriptで公開している方がいらっしゃいました。
ハスーbot
端数bot。取引所の小数点以下の端数処理の仕様(まあバグかな)を逆手にとった手法。
最初に見つけた方は、天才だと思います。少々グレーなので、実装は要注意。
ハスーbotの理論
こちらの方が詳しくまとめてました。
https://sshuhei.com/entry/bitflyer-fraction/
いなごbot
いなごの理論
イナゴフライヤーを使った方法
初期は、bot作成で有名なAKAGAMIさんが、イナゴフライヤーを使って、BUY・SELLボリュームを使って、そちらに乗ったり、反転するという方法で稼いでました。
最終ツイートがてら、botのコアロジックを公開しておく。いなごFlyerの直近20秒のBuy/SellボリュームをPhantomJSでスクレイピング。BuyVolが強ければロング、SellVolが強ければショート、Buy/Sell反転した時が利確、兼、損切りっていうシンプルロジック。価格は一切見ていない。見ているのはVolだけ。 https://t.co/IgJ0txcN7c
— AKAGAMI (@akagamiv2) November 30, 2017
問題点
現在はたぶん、このAMAGAMIさんのイナゴフライヤー使った手法は使えないと思う。なぜなら、イナゴフライヤー自体が実チャートとの時差が結構生じるようになってるから。10秒近くは感じられます。そのときにエントリーしても遅いんですよ。
ただ、独自でAPI使って、BUYボリュームとSELLボリュームを取得すれば、時差なしのタイムリーな情報が分かるので、この理論は使えると思う。
アービトラージbot
仮想通貨では古典的な手法。取引所ごとに価格が違うので、その差額を得る手法。
わくわくお相撲ランドでみると一目瞭然なのですが、取引所ごとにビットコインの価格は違っています。だいたい常時5千円以上は差があります。Twitterを調べてみると、アービトラージのbotで稼いでいる方は、まだ居るので、まだまだ使える手法だと思います。
問題点
- 稼ごうと思ったら1BTC以上の資金力が必要
- 送金手数料が痛い(どの取引所を使うかが鍵)
- 実際に送金するか、取引所ごとに資金を入れておいて差額とるかで作りが変わる
機械学習bot
機械学習とは、いわゆるAIです。これは、本が出ているので、興味ある方はそれを読むのが一番です。書籍の感想の記事を書いたので興味ある方はご覧ください。
まとめ
稼ごうとおもったら複数のアルゴリズムの融合がベスト
MMだけだと、レンジ相場には強いけど、トレンドは弱い。
トレンドが発生し、暴騰、暴落が発生すると、SFDも発生する。
まだ、botは2種類しか作ってないけど、それぞれで利益は出たので
そう考えると、局面ごとに稼働するようなbotが理想ではないかと思ってます。
アルトコインで実施
ビットコインのBOTで利益が出たら、よりボラティリティが大きいアルトコインに対応するようにするといいかも。ただ、出来高が多い通貨を選ぶ必要はあります。板が薄いとMMなどは機能しづらいです。
ご質問はコメント欄からお願いします