見出し画像

仮想通貨ビットコインでの裁定取引プログラムを作成しました


はじめに

Avoと申します。
この度、Bitflyer自動裁定取引プログラムを作成・公開しました。

これは何なのかというと、
仮想通貨ビットコインを、仮想通貨取引所Bitflyerにて、
「理論的にはローリスク・ローリターンである」という裁定取引によって
自動売買し、利益を上げることを試みるプログラムです。

もしかしたら、次のような疑問を抱かれる方もおられるかもしれません、
「仮想通貨の価格は乱高下する。リスクがないはずがない」

確かにリスクは存在します。
では、その裁定取引におけるリスクとは何でしょうか?
このnoteでは、その疑問を始めとする仮想通貨の裁定取引の情報をまとめ、
「仮想通貨裁定取引の実際」を把握できるように記述しました。

また、率直に以下の疑問を持つ方も多いと思います。

「裁定取引によって稼ぐことはできるのか?」

この疑問についても本文を御覧ください。

このnoteの存在意義

「裁定取引」についてはネットでの検索により無料で入手可能ですが、

  • まとまった情報を入手するのは面倒

  • 特に仮想通貨での自動裁定取引プログラムを実行した際の具体的な知見を
    取り入れた情報はあまりない

ため、作成するに至りました。

読者としては、

  • 仮想通貨裁定取引を今まで知らず、それに興味がある方

  • 取引プログラムを動かすスキルはあるので、あらかじめ得られた知見を
    把握したい方

を想定しています。

このnoteは全文無料閲覧可能です。
内容は「これで稼げる!」と煽るような内容は極力避け、
率直に記述するよう心がけています。

プログラムの公開先

GitHubにて公開しています。プログラミング言語はPythonです。
プログラム自体は無料で公開しており、ライセンスに従えば改変可能です。
プログラムに関する日本語の説明記事はQiitaにて公開中です。

このプログラムの技術的な情報について

「このプログラムの動作環境」
「実際プログラムを作成するにあたっての試行錯誤」
という技術的な情報に関しては、
先ほどのQiitaにて記事を投稿しております。

仮想通貨・ビットコインとは何か?おさらい

このnoteに興味を持っていただいた方には、
仮想通貨・ビットコインのことはある程度自明かと思われます。
したがって、裁定取引を行う側面から捉えなおしてみたいと思います。

仮想通貨によって取引手法の自由度が増えた

従来、株取引・為替取引には機関投資家という、
大手のプロ投資家が介在し、
アマチュア投資家とは異なる取引規模と手法によって
大きな資金を運用していました。

仮想通貨取引の場合、部分的ではありますが、
プロの手法をアマチュアも行うことが可能になったのです。
なぜそのようなことが可能になったのかというと、
以下のような要因があります。

  • プロ・アマ問わず同一のフィールド(取引所・取引契約)で取引をする

  • 取引所によっては、自由度の高いAPI(※)を公開し、プログラムによる自動取引を可能にした。

  • 取引手数料がその他の金融商品に比べて安いケースがあった

※APIとはプログラムで取引を行うための窓口機能を指します。

アマも可能になったその一つの手法が、
今回メインに取り上げる裁定取引です。
これは株の現物・先物取引では機関投資家でよく行われる手法でした。
また、FXでは禁止されている手法であり、
これを行うと取引停止・口座凍結になりますが、
仮想通貨では禁止されていません。

裁定取引とは

では、裁定取引とはどういう手法なのでしょうか。
これは、「同一金融商品・または将来的に価格が一致することが約束された商品の価格差を利用して、売買をほぼ同時に行い、その差を利益(利ざや)として稼ぐ」手法です。
価格変動のリスクを受けにくく、理論的にはローリスクです。
リターンは価格差の起きやすさと競合他者に影響を受けますが、ローリターンであると考えてよいでしょう。

仮想通貨で行える3種類の裁定取引の例を挙げて説明します。
手法はこれら以外にも存在します。

仮想通貨の3種類の裁定取引手法

1.取引所の価格差を利用する。その1

例えば、ビットコイン(BTC)取引所がA,B2つ存在し、
相場も異なる(乖離する)場合が生じたとします。
そのため、Aは1BTC150円であり、Bは1BTC100円となりました。
このときBで1BTCを買い、Aで1BTCを空売りしたらどうなるでしょうか。
Bで買った損益は-100円
Aで売った損益は150円
その差150-100=50円を利益として得たということになります。

どちらも同じ仮想通貨BTCを取引しているのですから、
いずれ価格は同じものになるはずです。
価格が同一になったときに、AでBTCを買い戻し、BでBTCを売り払えば利益が確定します。その際の相場にかかわらず、50円の利益が得られるということになります。

この手法のメリットは、

  • 各裁定取引機会の得られる利益が把握しやすい

ことです。

デメリットは、

  • 取引所の価格差が縮まらない場合、利益を確定できない

  • 複数の取引所で取引開始をする申し込みが煩雑

  • 複数の取引所に渡るため、累積損益計算計算が煩雑

ということです。

2.取引所の価格差を利用する。その2

次は、ビットコインの送金を使った手法です。
A取引所で1BTC50円と急落したが、B取引所では100円のままだとします。
その際、A取引所で1BTCを購入し、すぐさまB取引所へ送金します。
そして、1BTCを売ったとします。
その際50円で仕入れ、100円で売ったのですから、利益100-50=50円が利益として得られます。

この手法のメリットは、

  • 得られる利益が把握しやすい

  • 送金直後に利益確定しやすい

です。

デメリットは、

  • ビットコインの送金手数料により利益が差し引かれるため、
    価格が大きく乖離していないと、利益が出せない

  • ビットコインの送金には時間がかかるため、それまでに売りに出す取引所の価格が変動してしまう(価格変動リスクが、他の裁定取引手法より高い)

ことです。

3.現物と先物取引の価格差を利用する

現物とは、実際の商品(ビットコイン)を売買取引することです。
先物とは、特定の商品を未来の決まった日時に反対売買する約束をした上で、今の相場で売買することです。
例えば、2日後に売ることが決まっている(満期といいます)ビットコインを、今100円で買ったとします。満期に相場が上がっていれば利益となり、相場が下がっていれば損となります。

「先物の満期は現物の取引価格と一致する」ことが確約されています。

つまり、現時点で、現物・先物に価格差があるのであれば、片方を売り、片方を買い、その状態を満期まで維持することで、利益を上げる事ができるのです。
満期に先物は決済され、それと同時に現物の反対売買を行うことで利益が確定します。
(図としては、1番目の手法に類似しています)

この手法のメリットとしては、

  • 同じ取引所を利用するので、取引所間の仕様の違いを気にしなくて良い

デメリットとしては、

  • 「現物売り・先物買い」の場合は、現物を持っている状態から始めなければならないため、為替変動リスクにさらされる。(反対に「現物買い・先物売り」はそのリスクが少ない)

  • 先物自体の取引量が少なく、多額の取引は行えない。

  • スワップポイント(※)・手数料による利益から差し引かれる分を予め考慮して取引する必要がある(手計算では困難、だからこそプログラムで行う)

※先物では、売ったものを買い、買ったものは売るということで清算しなければなりません。スワップポイントは清算されてない状態で日をまたいだ際に生じる手数料です。

裁定取引に共通する特徴…プログラムの必要性

では、裁定取引全体としてはどのような特徴があるのでしょうか。
まとめると、以下の通りです。

共通したメリット

ローリスク・ローリターン

共通したデメリット

  • 手法はマネしやすいため、最終的には注文環境
    (板情報取得のための回線速度、注文・約定速度、送金速度の速さなど)
    が有利不利を左右する。
    また、取引機会は明確にわかるため、市場規模によっては裁定取引者同士のパイの取り合いになる。

  • 利益を上げるには大きな資金が必要

共通した必須条件

  • 裁定取引機会発生時には、裁定取引を行うため、それをいち早く察知しなければならない。

  • 取引所間、現物・先物取引間の注文はほぼ同時に行わなければならない

これらを行うためには自動化が非常に有効であることがわかると思います。
一般的に、プログラムによる自動取引は、
「融通が効かないと言われるシステムトレード」のイメージがありますが、
反面、「自動化されているため、その取引はとても迅速に行われる」という側面があります。
裁定取引とプログラムによる自動取引は相性が非常によいのです。

既存の裁定取引プログラムを使ってみた

裁定取引プログラムは、すでに公開されているものがあります。
例えば、R2 Bitcoin Arbitragerです。
これは、上記3種類の手法のうち、1番目の手法を行っているものです。
つまり、取引所感の価格差を利用し、両取引所間で同時に売買注文を行うということです。

このプログラムは非常に洗練されています。
(このプログラムについては、質問されてもお答えすることはできません)

個人的に使用した当時の感想としては、
・利益を上げるために、プログラムのパラメータの調整がかなり必要
・指値注文のため、裁定取引のためのペアの注文のうち片方が約定しないことが多々ある。
ということを感じています。

今回公開した裁定取引プログラムの手法

今回公開した裁定取引プログラムは3番目の手法を利用しています。
つまり、ビットコイン現物・先物の価格差を利用するものです。
多くの利用者がおり、先物を利用でき、安定したAPIが存在するのは、
当時、日本で取引所ではBitflyerと絞られたため、
そこでの裁定取引を行うに至りました。

プログラムの仕様

プログラムに関する技術的な手順・内容については前述したとおり、
Qiitaの記事に含めています。

プログラムを作成してわかるローリスクの意味

「裁定取引は理論上ローリスク・ローリターン」というのが一般的なWebの情報です。しかし、プログラムを作成してみてわかったのですが、それなりに隠れたデメリットや隠れたリスクが含まれていることが判明しました。

1. セキュリティのリスク

プログラムには常にセキュリティに気をつけなければなりません。
信用のできない他人のプログラムを使用することは、
口座の取引権限を無条件に他者に任せることに近いものがあります。
プログラムから取引を行うには、
API KEYというパスワードと同等のものを取得し、設定しますが、
このAPI KEYの権限を適切に設定・管理することが肝要です。

2. 利益があげられるのは売買注文が完全に約定したときのみ

例えば、A取引所で101円、B取引所で100円であったとします。
この時A取引所で101円の売り注文、
B取引所で100円の買い注文の2つの注文出すとします。
これが成行注文なら良いですが、
指値注文の場合は約定しないことが多々あります。
すると、2つの注文ではなく、片側一方だけが約定し、
ただの1つの売買注文となり、
価格変動リスクにさらされることになります。

3. 注文が殺到すれば目的の価格で購入はできない(損の可能性)

では、成行注文なら、裁定取引の注文を必ず約定させられるのでしょうか。
例えば、A取引所で102円、B取引所で100円であったとします。
A取引所で成行売り注文、B取引所で成行買い注文を出せば約定はします。
しかし、約定価格がその価格とは限りません。
A取引所で売り注文が殺到しているならば、99円で売りが約定し、99-100=1円の損を出してしまうこともありうるのです。

また、両取引所の価格が一致した際に、
裁定取引の利益を確定するための注文を出すとします。
その際、同じく裁定取引を行っている同じプログラム・同じ設定で競合する裁定取引者がいる場合は、同様の注文が殺到するため、そのようなケースが大きくなります。

4. APIが不安定なときがある

これは、「取引所のサーバーが不安定になり、正常な取引が行えない」ということです。
裁定取引を行うチャンスというのは、相場の乖離や暴落などの不安定な情勢を利用するものが多く、注文が殺到することが少なくありません。その際、取引用サーバーが重くなり、不安定になるということです。

したがって、裁定取引は理論上ローリスク・ローリターンであるという結論はありますが、実際行ってみると一筋縄ではいかない面もあるのです。

自動裁定取引プログラムをリリースする理由

「利益をあげられるうちに、著者自身が裁定取引をすれば良いじゃないか」というご意見もあるかもしれません。これについては、以下の理由により公開するに至りました。

  • 裁定取引に必要な資金を用意できなかった

  • もともと趣味のプログラミングの延長で作成した

  • 裁定取引プログラムの公開により、他者の反応を知りたかった

  • 裁定取引は甘くなかった

裁定取引は儲かるのか

率直な疑問だと思います。
私は現物・先物間での裁定取引しか行っていませんので、
それについて答えるならば・・・
「ローリスク。ローリターンである。
大きな資金力(100万円以上)と確かな技術力を持ってすれば、
取引機会1回につき5~500円程度の利益を上げることができるかもしれない
(資金に対して利益0.0005%~0.05%)
ただし、ローリスクの意味についてよく吟味する必要がある」

裁定取引のチャンスは取引手法によって異なります。
公開した裁定取引プログラムの場合は現物と先物の価格差を利用しますが、
「現物が先に暴落し、先物の価格が暴落に追いついていない」ような
パニック的な状況にチャンスが発生します。
また、「スワップポイントが発生しない満期当日に、先物の価格が現物の価格を上回っている」状況においてもチャンスが発生します。
そのようなチャンスが多ければ、
着実に利益をあげることができると言えます。

しかし、「ローリスク」の意味についてよく吟味する必要があります。

例えば、「同時に売り買いの注文を出すことは、
プログラムの動作として本当に可能かどうか?」ということです。
(APIの安定性、プログラムの構造にかかわってきます)
本プログラムでは、2つの注文を短時間には行っていますが、
理論的に同時には行っていません。
そこで、損益が発生することはよくあります。

また、「競合他者がいる状況はリスクではないのか?」ということも
考えられます。

プログラムを実行する際の見えないコスト

数百円の利益をあげられたとします。ここで注意しなければならないのは、取引手数料以外にもコストがかかっており、それが利益から差し引かれることです。
プログラムを24時間毎日実行するとして、そのパソコンの1か月の電気代はいくらになるでしょうか。それによっては、数百円の利益は電気代に消えてしまう可能性があります。

これについては、「電気代の少ないコンピュータ」を利用することで、コストを抑えることができます。これについては、Webの無料情報ではあまり言及されていない点となります。

まずRaspberry PiというLinuxというシステムで動作する小型コンピュータが存在します。
購入価格は¥6,000程度。
消費電力は最大5W程度ですので、1か月100~数百円の電気代となります。
購入価格と電気代がコストということです。
参考

また、VPS(Virtual Private Server)というインターネット上のサーバーコンピュータを借りる方法があります。
こちらはサーバーのスペックによって価格が変動しますが、
例えば、WebArena VPSクラウドだと月¥360円より利用できます。

これらのコストを差し引いて、ようやく利益があがります。
結果的に、これらのコンピュータを設定し、
プログラムを実行するスキルも必要
となります。

まとめ

仮想通貨では、従来のプロ機関投資家の行っていた裁定取引をアマチュアがプログラミングを利用して行うことができるようになりました。
一般的に裁定取引は「ローリスク・ローリターン」と言われていますが、実際に行うと、取引手法の種類によるメリット・デメリット、注文方法(指値・成行)によって裁定取引が行えないケース・損するケースがある、手数料以外に、送金手数料・電気代などがかかるなどの「コスト」がかかることがあるということを説明しました。
裁定取引は「稼げる」手法ではありません。
しかし、豊富な資金力と上記の不便な点を技術的にクリアすることが前提なら、
取引手法として一考の余地はあります。

投資詐欺への注意

最近、「裁定取引」をうたう怪しい投資詐欺があるようです。
裁定取引はパイの限られた、競争の激しい分野です。
何も労せず、濡れ手で粟になるようなことはありませんので、
ご注意ください。

サポートありがとうございます🙇‍♂️サポートされた資金は書籍の購入にあてられ、note執筆のために再投資されます。