bitFlyerでMMbotを作ってみた結果、在庫管理は利益出すために必須!

MMbotの作成に注力して2ヶ月。bitFlyer用でMMbotを作成して、あれこれ調整し、やっと利益出るようになりました。最初は国内の取引所どうなん、、って思ったけど、やってみるとよく分かった。利益出ますね。記事にまとめてみます。

 

MMの理論と仕組み

MMとは、Market Make の略で、売り板、買い板の上下に指値し、両方が成約した際のスプレッド(買値と売値の価格差)を利益とする利ザヤを稼ぐ手法です。

 

理論がよくわかるブログ

botterのあいだでは、有名なこの方の記事。内容はかなり高度なのですが、一読しておくことをおすすめします。

マーケットメイク戦略の理論 - これからの「お金」の話をしよう
最近、BTC-FXのbotを作成するためにマーケットメイク戦略を勉強していました。 そもそもマーケットメイクとは、通常の顧客同士の注文をマッチングさせるオークション方式に対して、取引所より資格を得た値付け業者が常時指値を提示して顧客と業者の間で取引を行う方式を指します。 かつてJASDAQがこの方式を採用していましたが...

 

MMbotは利ザヤを稼ぐスキャルピング

「買い」「売り」の両建てで、利ザヤを得るので、頻度は上げないとまとまったお金になりません。

 

また、同時間にエントリーしないと、BTCの価格はすぐ流れるので、botでしか出来ない手法にもなります。人間の手入力でのエントリーは不可能な手法です。

 

必然的に、エントリー頻度は多いスキャルピングの手法となります。

 

MMの問題点(これをクリアしないと利益でない)

板の上下にエントリーするだけなので、理論だけみると簡単なのですが、やってみると結構色々な問題に直面します。ざっと挙げてみると以下のとおりです。

 

取引所の取引手数料

めちゃくちゃ大きい問題です。

MMでは「買い」と「売り」を同時に注文しないといけない。

 

手数料が高いと、相当スプレッドが広がった時でないと出来ません。

0.1%の手数料のところでは、ほぼ不可能。0.01%だと、頻繁に出来ます。

 

片張りは必ず発生する!どう処理するか?

両建てで、利ザヤを稼ぐので、高頻度でやろうと思うと、直面するのが「片張り」の問題。片張りとは、売り、もしくは買いのどちらかが約定し、片方が残る事。

 

売りと買いのそれぞれの注文が同時に決済されるわけじゃないってことです。当たり前だけどね、板にある価格を成行注文するわけじゃないので、成約するまで待たないといけない。

 

誰かが買ってくれて初めて成約するわけですから、片方が残る事が頻繁に発生します。

片方残ったらどうするか?。この処理は必須です。

 

  • 価格が戻るまで待つ(どれくらいの時間?)
  • 損切りのタイミングはどうする?
  • 片張り中にチャンスがあったら次の売買はしないの?(マルチスレッド)

 

これらの処理は必須ですね。

 

トレンドに超弱い

片張りの問題からの続きなのですが、トレンドが発生したときにエントリーすると大変です。

あっという間に、マイナスになり、損切りせざるを得なくなります。

 

したがって、MMが成り立つのは、レンジ相場の時のみだと思います。

 

矢野テック
矢野テック

レンジをどうやって検知するかが、プログラミングの腕の見せどころかも。

 

在庫管理の問題

MMの理論でも紹介した、専門家のサイトでも書いていた、「在庫管理」。

これが、MMでの大きな問題点ですね。

 

片張りした後、現在の価格のスプレッドが大きく広がったとき

エントリーするにも、片張り中だと、売りか買い待ちになる。チャンスを逃すわけです。

 

 

矢野テック
矢野テック

別スレッド立てて、一方は待ち状態。もう一方で新しくエントリー。みたいな処理にするか、いっその事、シンプルにシングルスレッドにするか。いずれにせよ、しっかり管理しないと訳が分からなくなります。

 

 

資金力は必要

 

常に両建てなので、結構資金力は必要ですね。

 

以下、秒単位で取得したBid(売値)とAsk(買値)ですが、だいたい2000円くらいは、常にスプレッドがあります。だだし、1BTCでの話です。

 

 

買い1BTC、売り1BTCでの話なので、400万ずつの売り買いの約定で、2000円の利益。

2000円得ようと思ったら、800万も資金が必要なわけです。

 

 

当然のことながら、これが1万円分の売買だと、利益は400分の1になります。

だいたい、5円くらい^^;

実際は手数料もあるので、もっと少ない。

 

所持金が少ないとマジかっていくくらい、一回の利益額は低いです。

必然的に高頻度取引になります。

 

取引所は選ぶ必要あり!

取引所の問題は、とても大きいです。どこでbotを動かすが、1番のポイントになると思います。

手数料問題

問題点にも書きましたが、取引手数料はバカに出来ません。

 

というか、binanceのような、0.1%のところでは、出来ないと思っていいです。

 

最初は、binance用でMMbotを作ったんですが、利益になりませんでした(というか勝ってもマイナス)。売り買い同時両建てが基本なのですが、ある程度取引手数料が低くないと、利益にならないのです。

 

0.01%で、利益になる程度。

理想は取引手数料無料ですね。

 

Taker、Makerで違う取引所でも同じです。

 

一応解説

  • Taker = 板にある価格を指値注文
  • Maker = 板にない価格を指値注文

 

理想は、Makerでマイナス手数料のところです。

マイナス手数料は取引すると増えますw。

 

最低取引枚数の問題

取引所ごとのAPIの仕様で違いますが、どの取引所も最低取引枚数というのが設定されています。

 

は?というような枚数になっているところもあるのです。

 

例えば、国内だと

bitFlyerは5000円分が最低取引枚数だけど、コインチェックは0.005BTC

 

2020年2月の1BTCの価格は430万なので、21500円。

この仕様、価格がいつのときの設定値だよ。。

 

矢野テック
矢野テック

こういうところでは、いきなりbotは作れません。コインチェックは手数料無料なので魅力的ではありますが、最初は少額でみっちりテストしたい。

 

国内の取引所は魅力たっぷり

bot作って分かったのが、不満は多いのですが、国内の取引所はやりやすいです。

 

例えば、binanceは取引所のシステムが完璧すぎて、スキがないんですよ。APIの応答しかり、BTCのスプレッドしかり。

 

でも、国内の取引所に替えたとたん、チャンス大でした。

国内の取引所は、どこも少し貧弱なんです。

 

例えば、しょっちゅう、サーバーが固まることがある。

その間は、値段が動かない・・・・

 

動きだしたとき、めっちゃ大きなスプレッド発生!。みたいな。

 

メンテナンスで取引できない時も同様です。止まって動き出した最初の一発目が、大チャンスです。

 

おそらく、裁量トレードしていたら、イライラしていたでしょう。でも、botの場合は、こういう「取引所の不具合」がチャンスになります。

 

海外の大手は、取引所の不具合が少ないですね。

 

実行結果

ビットフライヤーで10日間動かした結果。ビットコインの価格に左右されますが利益率としては1日1〜2%

 

あまり目立ちたくないとか、色々勘案して、低頻度にしてます。

 

 

コメント