投資

仮想通貨のアービトラージとは

仮想通貨のアービトラージとは
  • Mar 30 03:46:47 :日時
  • [0.103529, 1.4060] :[基軸通貨, ペアにした通貨]の残高(両取引所の合計)
  • ch:-1.0670 :取引した量(取引所1で売って2で買う場合 +, 取引所2で売って1で買う場合 -の符号がつく)
  • 仮想通貨のアービトラージとは
  • BNB:1.1108 :取引手数料に使う取引所トークンの残高(optional, 後述のBNBBUYフラグをONにした場合)
    を表しています.

algori11/arbitrage_crypto

This commit does not belong to any branch on this repository, and may belong to a 仮想通貨のアービトラージとは fork outside of the repository.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

仮想通貨取引所を二つ用意して入金し, アルゴリズムを走らせることで, 二つの取引所に価格差が生じた機会を自動的に見つけて取引し, 利益を生み出します. 現物取引のみに対応しています.

  • pandas(データ処理)
  • numpy(数値処理)
  • requests(HTTPライブラリ)
  • docopt(コマンドライン引数処理)
  • ccxt(仮想通貨取引所のAPIをまとめたライブラリ)

取引所のAPIが変わったとき, ccxtを更新する必要がある場合があるので, 注意してください.

Trade mode # Trade と Demo のどちらのモードか
BTC/DASH # アービトラージに用いる通貨ペアは何か
binance/hitbtc2 # アービトラージに用いる取引所はどこか
minsize:0.001 # 取引の最小値はいくらか

authentication success(balance) # API経由で残高の取得が可能か確認

Mar 30 00:20:58 [0.103475, 1.4030] ch:0.000 BNB:1.1487

裁定機会が来たとき, 裁定取引を行えるBalanceを持っているなら直ちに取引を実行し, 取引後のBalanceを出力します.

Mar 30 00:28:38 [0.103477, 1.4030] ch:-0.0210 BNB:1.1484
Mar 30 00:28:43 [0.103477, 1.4030] ch:-0.0040 BNB:1.1483
Mar 30 00:28:47 [0.103477, 1.4030] ch:-0.0010 BNB:1.1483
Mar 30 03:45:仮想通貨のアービトラージとは 34 [0.103490, 1.4050] ch:1.3320 BNB:1.1275
Mar 30 03:46:47 [0.103529, 1.4060] ch:-1.0670 BNB:1.1108

  • Mar 30 03:46:47 :日時
  • [0.103529, 1.4060] :[基軸通貨, ペアにした通貨]の残高(両取引所の合計)
  • ch:-1.0670 :取引した量(取引所1で売って2で買う場合 +, 取引所2で売って1で買う場合 -の符号がつく)
  • BNB:1.1108 :取引手数料に使う取引所トークンの残高(optional, 後述のBNBBUYフラグをONにした場合)
    を表しています.

のテキストが出ず何らかのエラーで止まった場合, config.iniや取引所でのAPIのアクセス許可に問題がある可能性があります. (ccxtがそれぞれの取引所に対して十分整備されていないせいで発生するエラーがも多いため, そうしたエラーが出た場合は報告していただけると助かります).

また, ここまでで, 取引所の選択によってはCaution:の表示が出る場合があります. そのままで動く可能性もありますが, この警告が出た場合はコードの実行を停止して, buffer.pyやccxt_extrainfo.pyを追記したり, ブログやここで報告していただければできるだけ対応します.

特殊なエラーの例としては, Biboxという取引所ではそれぞれの仮想通貨について, balanceを一度0でない状態にして口座をactivateしないと残高が取得できない, といった仕様がありました. (この場合, アービトラージに用いる通貨を事前に手で少しだけ購入しておけばOKです.)

のメッセージの後, 裁定機会が観測されるたび, 仮にその機会に取引できたときの利益を表示します.
表示する内容は, 左から, 時間, 取引できる量(取引所1で売って2で買う場合 +, 取引所2で売って1で買う場合 -の符号がつく), 取引を行ったときの倍率, となっています(倍率については, best bid / ask を使っているため, 評価は甘め.)

configファイルに, 取引する通貨の組み合わせや取引所, 取引を行う価格差の条件などを記入します.

[settings]
BASE = BTC
ALT = XRP
threshold_up = 仮想通貨のアービトラージとは 1.0025
threshold_down = 1.0025

BASEとALTによってアービトラージを行う通貨のペアを指定します.この例では, Bitcoin(BTC)仮想通貨のアービトラージとは とRipple(XRP)が指定されています. BASEにはその取引所で基軸通貨と扱われている通貨を, ALTにはその通貨で購入する形になっている通貨を指定してください. 大抵の場合, BASEとしてはBTCやETH, JPY, USDTなどが指定されることになるかと思います. また, この通貨ペアは後で指定する二つの取引所の両方で取り扱われている必要があります.

次は閾値(売値が買値の何倍になったら取引を行うかの値)の設定を行います.
この設定には, threshold_upとthreshold_downという二つの値を指定します.
それぞれ「取引所1での売値が取引所2での買値の何倍になったら取引するか」「取引所2での売値が取引所1での買値の何倍になったら取引するか」を意味しています.
ここで, up と down を別々に設定するのは, 取引所ごとに高くなりやすい傾向, 安くなりやすい傾向がある場合があるからです.
具体的には,

は, 「取引所1の方が取引所2より1.003倍以上高くなったら, 取引所2で買って取引所1で売る」設定,

は, 「取引所2の方が取引所1より1.004倍以上高くなったら, 取引所1で買って取引所2で売る」設定ということになります.

Binanceの取引手数料は0.05%, HitBTCの取引手数料は0.1%なので, 閾値の設定が1.0015(0.05% + 0.10% = 0.15%に対応する)より小さいような値になってくると, 期待利益率が手数料に負けるようになってしまいます. 取引所の手数料率の合計より0.1%程度以上高い値に設定することをお勧めします.

Binanceという取引所では, BNBという取引所の独自トークンで手数料を支払うと手数料が割引される(半額になる)ため, このトークンを自動的に購入する機能を実装しています.
BNBBUYを1にすると, 所持BNBが1BNB以下になったとき1BNBの自動購入が行われます. Binanceを用いない場合, またBinanceでBNBを自動購入しない場合はBNBBUY=0を指定してください. BiboxでのBIXについても同様にしています.

Binanceを使用しないのにBNBBUY = 1を指定したり, Biboxを使用しないのにBIXBUY = 1を指定するとアルゴリズムが止まるので注意してください.

[EXCHANGE1]
NAME = binance
APIKEY = dummy_foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar
SECRET = dummy_abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

[EXCHANGE2]
NAME = hitbtc2
APIKEY = dummy_foobarfoobarfoobarfoobarfoo
SECRET = dummy_abcdefghijklmnopqrstuvwxyz

取引に用いる取引所を指定します. また, このプログラムで取引所にアクセスできるように, APIキーとSECRETキーを各取引所のWebサイトで取得し, ここに記入します. APIキーの取得時, 情報閲覧の許可やTradeの許可を設定するのを忘れないようにしてください. このとき, セキュリティ上, APIからはWithdrawalできないよう設定することをお勧めします.

_1broker, _1btcxe, acx, allcoin, anxpro, bibox, 仮想通貨のアービトラージとは binance, bit2c, bitbay, bitcoincoid, bitfinex, bitfinex2, bitflyer, bithumb, bitlish, bitmarket, bitmex, bitso, bitstamp, bitstamp1, bittrex, bitz, bl3p, bleutrade, braziliex, btcbox, btcchina, btcexchange, btcmarkets, btctradeim, btctradeua, btcturk, btcx, 仮想通貨のアービトラージとは 仮想通貨のアービトラージとは bxinth, ccex, cex, chbtc, chilebit, cobinhood, coincheck, coinegg, coinexchange, coinfloor, coingi, coinmarketcap, coinmate, coinsecure, coinspot, coolcoin, cryptopia, dsx, exmo, flowbtc, foxbit, fybse, fybsg, gatecoin, gateio, gdax, gemini, getbtc, hitbtc, hitbtc2, huobi, huobicny, huobipro, independentreserve, itbit, jubi, kraken, kucoin, kuna, lakebtc, liqui, livecoin, luno, lykke, mercado, mixcoins, nova, okcoincny, okcoinusd, okex, paymium, poloniex, qryptos, quadrigacx, quoinex, southxchange, surbitcoin, therock, tidex, urdubit, vaultoro, vbtc, virwox, wex, xbtce, yobit, yunbi, zaif, zb

手数料が安い取引所については以下の記事を参考にしてください.
アービトラージに適した仮想通貨取引所(取引手数料0.仮想通貨のアービトラージとは 1%以下)
(HitBTCを用いる場合, バージョンアップしたAPIであるhitbtc2を指定するようにしてください.)

2018/06/04追記: 2018年6月なかばごろから, 金融庁の施策の関係で日本からのHitBTCの使用が一時的に(公式ブログによると, おそらく秋ごろまで)できなくなるようです. 他の取引所への移行をおすすめします.

取引所によっては, 取引の際にパスワードを入力する必要がある場合(Bit-Zなど)があります. この場合は, 仮想通貨のアービトラージとは Trade Passwordとして設定した文字列を

の形で追記します.(現在, Bit-Zのみ取引パスワードの設定に対応しています. Trade Password の設定が必要な他の取引所があれば連絡いただければ対応します.)

  • [SLACK] SLACKの Incoming Webhooks に投稿
  • [LINE] LINE Notify に投稿
  • [FILE_LOGGING] 指定したファイル名のファイルに保存

ccxtを用いているとはいえ, 取引所ごとの特徴の違いなどから様々なエラーが発生することが予想されます. 現在, BinanceとHitBTC, Bit-Zでは正常動作することを確認しています. また, Bibox, Zaifについては残高取得ができるところまでは確認しています.

こんなエラーが出たよ, という報告や, その対策など投げていただけると嬉しく思います.

質問やご意見, 改善案などがあれば, 上記ブログのコメント欄や, GitHubのissues, またメールアドレス algorisamurai[at]gmail.com ([at]は@に変えてください)までお気軽にご連絡ください.

仮想通貨アービトラージを海外取引所でやっても儲かるのか

仮想通貨アービトラージを海外取引所でやっても儲かるのか

初心者A

初心者B

結論としては容易ではありませんが上手く調整すればアービトラージでも利益を出していけそうだ 。ということになります。

この記事を読むことでこれからアービトラージをやろうかと検討している人が、理論上は儲かりそうなことと、実際にやってみるかどうかの検討をするための良い材料が見つかることでしょう。

アービトラージとは…世界中の取引所の中から最高値と最安値を比較して売買する行為!

世界中の取引所の中から最高値と最安値を比較する

そんなことができたら誰も苦労しない

と思うかもしれません。確かに売買には工夫が必要ですが、 実は価格差を算出する点においては実はとても簡単にできます。

Coingeckoを使う

Coingeckoでビットコイン(BTC)のページを実際に開いてみる

Coingeckoでビットコイン(BTC)のページを実際に開いてみる Coingeckoでビットコイン(BTC)のページを実際に開いてみる2

Coingeckoでビットコイン(BTC)のページを実際に開いてみる3

そしてShow Moreし終わったあとに、ここまでShow Moreで出した取引所を価格順で並べ替えます。

Coingeckoでビットコイン(BTC)のページを実際に開いてみる4 Coingeckoでビットコイン(BTC)のページを実際に開いてみる5

なんと、 一番高いビットコイン価格は11796ドル で、 一番安いビットコイン価格は9272ドル です。およそ 2524ドル(約27万円)ほどの価格差 があります。

現実の世界はもっと複雑

現実の世界はもっと複雑

送金先の取引所が日本人にも扱えるのかどうか分からない

送金先の取引所が安全かどうか分からない

海外の取引所であると日本円に換金できないため工夫が必要である(価格差の小さな他の通貨へ換金や現地法定通貨に換金などする必要がある)

着金するまでの時間がそれなりに必要でその間に価格差が収束してしまう

プロおに

軍資金が必要

また 現実の世界では価格差が送り先とこちら側とで反転してしまう場合などもあり着金した頃にはマイナスになることも 。
そのためアービトラージを繰り返したデータをもとにどのくらいの確率でアービトラージが成功するのかどうか、というところは記録していくことをオススメします。

つまり確率勝負となるとそれだけアービトラージの回数を積み重ねて検証していく必要もあるし、世界中の各国取引所でいつでもアービトラージできるようにビットコインを分散化させないといけません

システムを作る側の方が安心できる

集客したり信用してもらうことは大変ですが金融機関向けエンジニアリングのスキルを持っている人であればシステムを作れば安全な立ち位置から収益を増やせます。

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる