ビットコインの裁定取引を行う自動売買プログラムを作ってみたけれど
裁定取引というのは、アービトラージともいって
同一の価値を持つ商品の一時的な価格差を利用して
高い方を売り、安い方を買ってその価格差で
利益を得るというものです。
ご存知の通りビットコインの取引所はいくつか存在しています。
同じ1BTCでも、取引所ごとに取引されている価格というのは
若干異なります。
各取引所で取引される価格
bidは売値、askは買値であり、
各取引所ごとにbidとaskの価格が
設定されています。
それぞれの取引所では当然の事ながら
スプレッドがあり、
ask(買値)はbid(売値)よりも
高くなっています。
ところが取引所が複数あることによって
買値が売値よりも高いという関係性が
崩れることがあります。
同じ1BTCに対して、
売値の方が買値よりも高いということが起こります。
例えば、同じタイミングで
QUOINEでaskが114,007円
coincheckでbidが114,325円
というようなことが起こりえます。
この場合、
114,007円で買い
114,325円で売る
ということになります。
差額の318円が利益になるという訳ですね。
将来のビットコインの値動きなど
予想する必要もなく、
取引所間に価格差さえあれば利益を得られる訳です。
「絶対に儲かるじゃん!」
「ビットコインでウェイウェイできるぞ!」
と喜び勇んで自動売買プログラムを作りました。
(ウェイウェイの例:http://kabumatome.doorblog.jp/tag/%E3%82%AA%E3%83%97%E3%82%B6%E3%82%A4%E3%83%AB)
このブログで紹介したビットコイン取引所のAPIを
呼び出すプログラムも、この自動売買プログラムで
利用するためのものです。
自動売買プログラムといっても難しいものじゃありません。
各取引所のAPIを呼び出して価格情報を取得します。
そして各ビットコイン取引所の
bid(売値)とask(買値)を比較して
買値よりも売値の方が高くなっている場合、
売注文と買注文を同タイミングで行う訳です。
プログラムを作りながら
各ビットコイン取引所に口座を作りました。
まずはテスト運用をするために
各取引所に5,000円ずつ入金しました。
(5,000円の半分はビットコインで持っておきます)
微調整を行いながら自動売買プログラムを
修正していきました。
修正を繰り返して自動売買ができるところまで完成しました。
ここでふと、いくらつぎ込んだらいくら儲かるのかを
計算してみることにしました。
ずっと気になっていたのは手数料です。
ビットコインの売買手数料だけではなく、
ビットコインの送金手数料、
日本円を引き出すときの手数料等です。
裁定取引は価格差を狙うものなので、
1回の取引で大きな利益を出せるものではありません。
微々たる利益の取引を何度も何度も繰り返すことで
利益を積み重ねていくものです。
ですので、手数料が投資結果に大きく影響してきます。
各ビットコイン取引所の手数料は
以前書いた記事を参考にしてください。
これを見ると、売買手数料について
大きな負担にはならないことが分かります。
QUOINEとcoincheckは0
Zaifに至っては-0.01%
bitFlyerの高いものでも0.15%
ビットコインの裁定取引で気を付けなければならないのは
偏りが発生する可能性があることです。
自動売買プログラムを開発はしたのですが、
これまでのところ、まだ手動でしか実行していません。
手動で動かした範囲だけでも偏りがあることが分かりました。
具体的には、QUOINEが他のビットコイン取引所と比べて
低い価格で遷移しているようだということです。
ビットコインの買注文が入る(askの価格が低い)のが
大抵QUOINEになります。
逆の売注文については、coincheckかZaifのどちらかです。
(たまにbitFlyerも入ります)
つまり、買注文に関しては大抵QUOINEで約定するということです。
QUOINEは低い相場で推移しているので、
現状だと売注文になる頻度は低くなります。
QUOINEが買注文ばかりだと、
ここに日本円をどんどん追加していく必要があります。
そしてこの口座にはビットコインが貯まっていきます。
ここで先ほどの各ビットコイン取引所ごとの手数料表を
見て頂きたいのですが、非常にありがたいことに
QUOINEのビットコイン出金手数料は0.00%です。
買注文でQUOINEに貯まったビットコインは
ビットコインの送金で他の取引所口座に送金してやります。
そうすると、裁定取引の売注文で使えるようになります。
そのための送金手数料がQUOINEでは0円ということです。
これは非常にありがたいことです。
ここで問題になるのは、日本円をQUOINE口座に
入れ続けなければならないということです。
それには、Zaifやcoincheckなどでビットコインを
売って得た日本円をQUOINE口座に入れる必要があります。
ビットコイン取引所への日本円の入金は、
口座が住信SBIネット銀行のところが多く、
こちらも住信SBIネット銀行の口座を持っていれば
ネットで振り込む際の振込手数料は0円でした。
(QUOINEだけ日本円入金の手続きが済んでいないので
まだ入金手続きができておらず確認できていません。
確認でき次第また当ブログで紹介します)
日本円の入金については、「別途銀行手数料」と書いていますが、
多くのビットコイン取引所では実質0円です。
(住信SBIネット銀行を使う前提)
これも非常にありがたいですね。
問題は日本円を引き出す方です。
これには1回あたり350円~500円程度かかります。
この金額は、少額で裁定取引を行っている場合には
かなり大きな負担になります。
ちょっとシミュレーションしてみました。
例えば1回 0.05 BTCの単価で裁定取引を行う場合を考えます。
この0.05 BTCは、1 BTCが125,000円の相場のときには6,250円に値します。
次に裁定取引を行う条件を、価格差が1,000円あったときとします。
この場合、価格差の1,000円分が利益に相当します。
ただ、この場合の1,000円の価格差は 1 BTC(125,000円)に対するものです。
0.05 BTCで取引を行う場合は、
1,000円 × 0.05 = 50円
が利益になります。
6,250円の裁定取引で50円の利益になります。
売りと買いでそれぞれ6,250円ずつ、
トータルで12,500円の資産に対して
50円の利益なので、1回の取引での
利益率は0.4%になります。
これはそれほど悪い取引ではなさそうです。
問題は出金手数料です。
1回で50円の利益を得られたとして、
出金手数料の500円を得るためには
10回の裁定取引を行う必要があります。
10回行ってやっと出金手数料分が稼げるという計算です。
ただ、これだと利益0円で取引する意味がなくなってしまいます。
投資として考えるなら、少なくとも
出金手数料の10倍程度を取引単位にしたいことろです。
5,000円の利益が得られたら日本円を1回引き出すイメージです。
50円の利益から5,000円ですから、
少なくとも100回は裁定取引を行う必要があります。
100回の裁定取引自体は、自動売買プログラムを
実行させていれば問題なく達成できる回数でしょう。
問題は投資資金です。
6,250円 × 100 = 625,000円
が片道の投資資金で必要になります。
裁定取引を行うためには、
同じ額のビットコインを持っておく必要がありますので、
少なくとも120万円は投資資金として欲しいところです。
今、手元にビットコインに投資できる
120万円があるかというと・・・
ありません・・・。
私の投資資金は、昨年ほぼオプション取引に突っ込みました。
これは、アメリカの証券会社Firstradeに口座を作って
そこに送金して取引しています。
USDで海外の証券会社に送金しているので、
両替と送金手数料がかかっています。
ですので、そう簡単に手元に戻せません。
(というかしばらく戻す気はありません)
裁定取引を行うための潤沢な資金はありませんが、
せっかく作った自動売買プログラムをそのまま
お蔵入りにさせるのももったいない。
売りと買いが各取引所に万遍なくあれば、
(取引に偏りがなければ)
そもそも資金を移動させる必要性もなくなります。
ということは、資金の偏りのせいで
売買頻度は落ち込むとは思われますが、
その確率は0ではありません。
少額ですがすでに各ビットコイン取引所に
日本円を入金してしまっているということと、
実験の意味も込めて自動取引プログラムを
稼働させてみたいということもあるので、
とりあえずは運用開始してみることにします。
ビットコインが値下がりしなければ
損をすることもないはずなので
(プログラムが意図通りに動けば)
自動裁定取引プログラムを運用しながら
その経過を本ブログで報告していきたいと思います。
と言っても自動実行する環境を用意できていません。
昔、古いパソコンにLinuxをインストールしたものがあったので
それを引っ張り出して環境設定してみようと思っています。