かとのぼダイアリー

エンジニア兼サービス開発者のプログラミングと雑記ブログ

かとのぼダイアリー

エンジニア兼サービス開発者のプログラミングと雑記ブログ

仮想通貨の自動売買Bot作りました

1月の最初の作品は、ビットコインの取引所の価格差に注目した裁定取引(アービトラージ)Botを作りました。

作った理由は、pythonを使ってなんか作ってみたかったからです。ただ、今自分が作っているウェブサービスには全然pythonが必要ありません!

また、私のイメージだと、pythonって分析に使うものだという感じなので、その前段階のデータの加工などがメンドクサそうでした。

なので、ちょうどpythonを使うにはシンプルでわかりやすい売買botを作ることにしました。

名前は「かとのぼ」と「ボット」で、katonobotと言う名前にしました笑

コードはpythonで、環境はAWS(アマゾンウェブサービス)のCloud9です

(Cloud9は原因不明のエラーが出るので現在は使ってないMacで動かしています。エキスパートの人にも聞きましたが、どうやら自分の固有のエラーのようです。)

なぜこの環境にしたかと言うと、コードや環境設定のサンプルがたくさんあったからです。一時期ビットコインの値段が大きく値上がりした時に、みんなこぞってBotの取引で儲けようとしたおかげ、仮想通貨の裁定取引の情報がたくさんあります。

と言うことで、コード自体も自分ではロジックはほぼ考えず、ほとんどいろんなところから引っ張ってきて作りました(楽をしたw)。

 

 

基本的なロジック

ロジックはいたってシンプルです。各取引所間で値段の乖離があるので、ある一定以上に値段が乖離したら同じ数量のビットコインを高い取引所で売り、安い取引所を買いを行います。

取引所はapiを提供してくれているので、そこから価格をある一定の時間ごとに取得します。そして条件に適したら注文を自動で出すと言う形です。

現物取引の売り買いができるよう、ビットコインと現金を両方置いておきます。信用取引なら売りから入れるのでもう少し資金効率がよくなるように思いますが、現段階ではよくわからないことが多すぎるので今回はやめておきます。

乖離が縮小したら、そこで反対売買を行います。この差分がアービトラージ、利益の源泉となります。この方法だと現物の値段が下がると損しますが、まぁその辺は練習なので無視します。

 

実際に運用開始。全く上手くいっていない状態ぃ!

今日から運用スタートしましたが、Cloud9がクソ重たくてうまくいきません。慣れていない開発環境なので、Cloud9が悪いのか、自分が悪いのか、そこからわかっていないので非常にストレスです。

また、しばらくボットが動くと止まります。この止まる原因も、Cloud9が悪いのか、自分の書いたコードが悪いのか、それとも取引所のapiが上手く取れていないのかわからない状態です。要するに、新しいことすぎて原因が突き止められていません。

(結局、cloud9側のエラーだとわかりましたので、現在は普段使っていないMacBookAirで動かしています。現在は問題なく動いてくれています。)

こんな状態で動かしていいのか心配ですが、投資した金額よりマイナスにはならないですし、本番環境で実際にやってみないとわからないので、とりあえずしばらくいじってみます。

と言うことで、まだ利益を出すようなところではないのでコードなども一切紹介しませんが、一応作ったよということで報告でした。

 

参考:

qiita.com

 

qiita.com

 

qiita.com

(qiitaにたくさん記事があります。)