仮想通貨の自動取引ツール(bot)作りはじめました

kuchikomi977_TP_V

先週から、仮想通貨(主にビットコイン)の自動取引ツールを作っていました。

スポンサーリンク
レクタングル大

きっかけ

Pythonを再勉強しようと思ったのがきっかけです。

書籍を購入してオーソドックスに勉強しようと思っていたのですが、ネットで色々調べていると、仮想通貨のツール(bot)をPythonで作ってる人がいて、興味を持ちました。

※以降は「仮想通貨自動売買ツール」を「bot」と表現します。仮想通貨界隈での一般的な呼び名らしい。

実際に色んな人のブログを見てみると、「このロジックなら、私でも作れるんじゃね?」と思い、試してみたくなった。

更に調査を進めると、bot作成ってPythonの勉強に「かなり有効」だと感じたんです。

bot作成がPython学習に有効なワケ

APIが豊富

プログラミングって、自分の作ったプログラムで完結することって殆どありません。実践では「外部システムとの通信」が必須です。しかし、Pythonの勉強のために外部APIを構築するのは効率的ではありません。

仮想通貨のbot作成をしていると、この辺の知識をおのずと得ることができます。仮想通貨取引所の外部APIと連携して「残高の照会」や「実際の取引(売買)」を行うので。

仮想通貨取引所では、この手のAPIが豊富に公開されています。自ら作る必要がありません。なので、非常に効率よく知識を身に付けることができる。

取引所によってはAPIのサンプルコードまで用意している所もあり、コードのコピペだけで挙動確認ができます。

私はGMOコインからはじめましたが、まさにコピペだけで残高照会から取引までできて、Python初心者でも楽しみながら勉強ができる。

10年前に株式で同様の事をしようと思った時期があるのですが、その時代は外部API公開なんて概念が皆無だったので、HTMLを取得して必要な部分を解析、、なんて非効率なことをする必要がありました。これだとHTMLの構成が変わるたびにコードを書き直す必要があり、非常に苦労した記憶があります。

現在はAPIの仕様も決まっており、受信するデータもJSONで加工されてることが殆どなので、API周りの設計が非常にシンプルにできるように。初心者でもお手軽に試せます。

少額から始められる

「仮想通貨の取引自動化って・・・間違えてロジックを作って大損しそう」

この様に考えられてる方も多いかと思います。

確かに作ったコードを実行する際は気をつける必要があります。

しかし、取引所によっては「超少額」から取引を行うことが可能です。例えばGMOコインの場合、ビットコインであれば「0.0001ビットコイン」から取引が可能。

仮に1ビットコイン=110万円の場合、110円だけの取引も可能ということです。

実際の取引ロジックの部分をコメントアウトすれば、実際の取引を行わないシミュレートも可能。

(当然、ループロジックを間違えれば大変なことになるので、失敗しても責任はおえません。)

稼働環境作りも簡単

昔と比べて環境整備も楽になりました。

自動化ツールの特性上、24時間稼働させるのが目標となりますが、一昔であれば自宅のパソコンを常に起動させることは現実的ではありませんでしたし、個人が手軽に使用できるクラウドサービスもありませんでした。

今は自宅でESXiを構築するのも容易ですし、安価なクラウドサービスを使用するのもアリです。

私は自宅のvCenterサーバーが常に稼働しているので、環境的にバッチリです。

実際に作ってみました

という訳で、実際に試しに作ってみました。コアな部分の開発にかかった時間は「2日」程度です。

主な機能は以下の通り。

  • 特定の条件で、自動的に売買される
  • 地震予知のように、急激な上げ下げを検知して、事故を防止する
  • APIなどでトラブルがあれば、自動的にbotを緊急停止する
  • 売買結果は即座にSlackにて通知する
  • ログの標準化

誤解のないように言っておきますが、このツールを使用して安定的に収益を上げれるとは思っていません。

私は株の取引経験は10年以上あり、投資・投機で個人が収益を上げることがいかに困難かは十分理解しているつもりです。

投資のプロや法人は、それこそ莫大な投資をかけてツールを作っています。なので、わずか数日で作った簡易プログラムでは、手も足も出ないでしょう。

ただ、動作させた結果には興味があるので、まずは1週間ほど動作させてみようと思います。

勉強を再会する方へ
スポンサーリンク
レクタングル大
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">