見出し画像

ビットコインのアービトラージBOTプログラム:サンプルコード+解説

こんにちは、higoxです!
私は2017年の10月にビットコイン を使った アービトラージ をはじめました。それはPythonを使用した「BOT(プログラム)」を作成し、自動で売買を行うというものです。
アービトラージを初めてこの半年の間、BOTプログラムのバージョンアップをし続け、現在ではなかなか安定して動作し、利益を上げてくれるようになってきました。実際に月単位の収益でみたとき、この半年間でマイナスになった月は1回もありません。
「これはいけるのでは?」と感じ、今回サンプルコードの公開に踏み切ってみました。

毎月の損益報告等は以下のブログで毎月行っています。

こちら [ http://arbitrage.hatenablog.com/ ]

からご確認いただけます。また、BOTが取引動作を行った際には、

こちら [ https://twitter.com/hig0x_bot ]

に自動でTweetされています。公開のサンプルコードでアービトラージを行った場合の動作頻度等の確認にご使用ください。

本note記事のアップデートリストは

こちらhttp://arbitrage.hatenablog.com/entry/2018/08/26/100802 ]

で公開しています。また、私は日中、普通のサラリーマンとして生活しておりますので、コメント欄・twitter等での質疑応答には基本的に対応できないことをご了承ください。

最近、本note記事に対し、「喜びの声」をいただけるようになってきました!とても嬉しかったので、そのうちの1つをここで紹介させてもらいます。

本当に励みになります!ありがとうございました!

サンプルコードと記事内容

公開するコードはpython3で書かれています。また、現在公開中のサンプルコードは

・「Zaif」、「CoinCheck」間
・「Zaif」、「Bitflyer(FX)」間
・「Zaif」、「Liquid(Quoinex)」間
・「Coincheck」、「Liquid(Quoinex)」間
・「Bitflyer(FX)」、「Liquid(Quoinex)」間

でアービトラージを行う5バージョンのものです。

私は普段「Liquid(Quoinex)」、「CoinCheck」間でのアービトラージを行っていますが、現在「CoinCheck」は新規に口座開設することができない状態にありますので、他の組み合わせのBOTも作成し、公開することにしました。

※2018/11/3追記:
現在、Liquid(旧Quoinex)、CoinCheckとも新規口座開設受付中です!

また、

・アービトラージに関して、基本動作原理
・プログラムの実行環境の構築として、Windowsにおける「Anaconda3」のインストール方法
・BOT運用に関するTOPICSとして、Windows環境でのBATファイルを使った繰り返し実行、RaspberryPiやAWS Cloud9での設定方法

も解説しています。

では、早速解説に移っていきましょう。

アービトラージとは

まず、今回公開するBOTが行っている「アービトラージ」という取引手法を説明いたします。アービトラージは裁定取引とも呼ばれる、「同じ商品」が「異なる市場」では「異なる価格」で売買されることを利用して利益を出そうとする取引手法です。

噛み砕いて説明すれば、市場A(例えばディスカウントショップ)で100円で購入したコーラを市場B(例えば富士山山頂)で500円で販売することで、400円の利益を得ようとする取引手法ということになります。

この続きをみるには

この続き: 86,596文字 / 画像40枚

ビットコインのアービトラージBOTプログラム:サンプルコード+解説

higox

2,000円

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
91
ビットコインのシステムトレードにチャレンジしています。

こちらでもピックアップされています

仮想通貨
仮想通貨
  • 192本
コメント (705)
>>panchi様
横から失礼します。
私もたまにサーバーのエラーもあったりして、片方の取引所だけが
取引できていないということがたまにあります。
特にzaifはサーバーエラーが多い印象です(-_-;)
unspread決済時、
zaifの決済が済んだ直後にサーバーエラーとか起きてプログラムが停止してしまうと
こういう状況になるかもしれませんね。
もしかしたら、bitflyerのエラーかもしれませんが、
私はbitflyerは使っておりませんので良くわかりません。ごめんなさい。

救済策としては、手動で決済を行っています。
マイナスになることもありますが、プラスになることもあります。
higox様
ご無沙汰しております。
久しぶりに取引所を変更してアービトラージを行ってみたところ、初めてのエラーが出てしまいました。エラー文は以下です。
Traceback (most recent call last):
File "/home/ec2-user/environment/arbr.py", line 16, in <module>
quoinex = ccxt.quoinex({
AttributeError: module 'ccxt' has no attribute 'quoinex'
pythonやccxtの更新など自身で考えられることはやってみたのですがうまくいかず・・・なにかヒントをいただければ幸いです。
動作環境はCloud9です。
higox様 
ご無沙汰しております。
私も久しぶりにアビトラを動かしたら下記のエラーが出ました。
おそらくは、quoinex のAPIに問題があるかと思われます。
10月からエラーが出るのでなにかしらquoinex のAPI更新がエラーの原因になっているのかと思っております。
私はコインチェックとquoinex でアビトラを行っています。
プログラムは起動すると動きます。ですがスプレッドが規定値に達し、いざ売り買いしようとするとエラーが出てしまう状態です。
何かしら対策があればお教えください。よろしくお願いします。
2019-11-09 23:40:05.102818 spread待ち ca_qb:-2053.0 qa_cb:1316.18
spread動作エラー
result = quoinex.create_order('BTC/JPY', type='market', side='buy', amount=size)
ccxt.base.errors.AuthenticationError: quoinex requires `apiKey`



higox様
はじめまして、早速CC⇔Liquidで設定していますが、
初歩的なところですが、keyのところでつまずいています。
バージョン4
#api設定
coin_access_key = '' #コインチェックのAPIアクセスキー
coin_secret_key = '' #コインチェックのAPIシークレットキー
quoinex = ccxt.quoinex({'apiKey': '','secret': '',})
各キー設定して実行すると
File "C:/Users/XXXX/.spyder-py3/CC_Quoine.py", line 17
quoinex = ccxt.quoinex({'*****': '','*****': '',}) #LiquidのAPIキー、secretキー
SyntaxError: invalid character in identifier
***は実際の各キーをコピペで入力しています。
また、このキーは他のプログラムでは使用できているキーです。
何か設定そのものが違っているのでしょうか?ご教示頂ければ幸いです。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。