bot1


最近仮想通貨の取引を始めてみたのですがずっとチャートを見続ける時間がなかったり、感情に流されて売買を行ってしまうためもうけを出すことができません。

そこで、時間に縛られず感情にも流されずに売買を行うために仮想通貨の自動売買を行うための仮想通貨botを作ることにしました。

botの作成が上手くいけば働かなくてもお金が増えていくので幸せな気持ちになれます(笑)

今回はいくつかの記事に分けてbitFlyer(ビットフライヤー)のAPIとPythonを使ってビットコインを自動売買する仮想通貨botを作成していきます。


仮想通貨bot(ボット)とは


botとは、人間に代わって作業を行うコンピュータプログラムの総称です。

仮想通貨botとは、人間に代わって仮想通貨の取引を自動で行ってくれるコンピュータプログラムです。


仮想通貨の自動取引botのメリット


感情に流されずトレードを行うことができる
  • 24時間いつでも自動で取引を行ってくれる
  • トレードを行っているとついついもう少し待てば値段が上がるかもしれないなどの感情に流されてしまうことがあります。botを使うことで自分が事前に決めたルールに従って取引を行ってくれるため感情に流されることがなくなります。

    世の中には副業として仮想通貨の取引を行っている人が多いと思います。そういった人は常にチャートに張り付き続けることができず取引のタイミングを失ってしまいます。botを使えばいつでも自動的に取引を行ってくれるので仕事中などでも利益を出すことができます。


    仮想通貨の自動取引botのデメリット


    ルール通りの取引しかできない
  • プログラミングのスキルが必要
  • 仮想通貨botを作るにはプログラミングの知識が必要です。ただ今の世の中プログラミングの方法を調べれば簡単にインターネットで見れるためこれはあまりデメリットではないのかもしれません。

    仮想通貨botのメリットとして事前にルールを決めているので感情に流されることがないというものがありました。しかしそれを逆にいうとルール通りのことしかできないということになります。そのため取引先のサーバーが停まるなどの予想外のことが起こると対応することができません。



    仮想通貨bot用のサンプルデータを収集する


    いよいよ仮想通貨自動取引を行うための仮想通貨botを作成していきます。

    しかし、いきなり自分の所持している仮想通貨を使用してbotの作成に挑むとみるみる仮想通貨が溶けていく未来しか見えないためまずは、仮想通貨botを作成するためにチャートのサンプルデータを集め、そのサンプルをもとにbotを作成していきます。

    今回、私はbotを作成するためにPythonbitFlyerのAPIを使います。

    Pythonの使い方が分からない人はこちらを、bitFlyerのAPIをPythonでしようする方法が分からない人はこちらを参考にしてください。


    サンプルデータを収集するコードの例


    今回は10秒ごとに最終取引価格を取得するという方法でサンプルデータを集めていきます。

    コードは下記のようになります。

    # -*- coding: utf-8 -*-
    # bitflyerから10秒ごとに最終取引価格を集める

    import pybitflyer # bitFlyerのAPIをPythonで使うために必要なライブラリ
    import time
    from datetime import datetime

    def main():
      api = pybitflyer.API(api_key="自分のAPI KEY" ,api_secret="自分のAPI Secret"# api keyの取得(pybitflyer.API()でも良い))
      raws = 0 # 最終取引価格を格納
      
      while True:
        # 10秒ごとに稼働
        if int(datetime.now().strftime('%S'))%10 == 0:
          # プロットデータの更新
          tick = api.ticker(product_code = "BTC_JPY")
          raws = tick['ltp']
          now = datetime.now()
          # 取得時刻と最終取引価格を表示する
          print('{}-{}-{}\t{}:{}:{}\t{}'.format(now.yearnow.monthnow.daynow.hournow.minutenow.second,raws))
          # 7秒後まで休憩(プログラムが無駄に走る時間を短くするため)
          time.sleep(7)

    if __name__ == '__main__':
      main()


    if int(datetime.now().strftime('%S'))%10 == 0:の赤字の10の値を変更することで最終取引価格を取得する間隔を変更することができます。

    その部分を変更する際は time.sleep(7) の赤字の7の値も変更してください。取得したい秒数の間隔より大きい値だと上手くデータを集めることができません。


    収集したサンプルデータをグラフ化する


    収集したサンプルデータをExcelでグラフ化してみました。グラフもPythonを使って描画してもよかったのですがあまり意味がないので今回はExcelを使います。

    今回はとりあえず約一日分(一日分には少し足りない)をグラフ化しました。
    bot2


    グラフを見るとしっかりとサンプルデータが収集できているみたいです。



    最後に


    本記事では、仮想通貨bot作成の第一段階としてサンプルデータの集め方を書きました。

    次からはこのサンプルデータをもとに仮想通貨botを本格的に作成していきます。