初心者向け

【Python】Coincheck APIを使って仮想通貨を自動売買(自動取引)してみる!【コインチェック/ビットコイン】

coincheck-auto-trade

こんばんは!光です。

大手グローバル企業でWebエンジニアをやっています。

Webエンジニアを目指してプログラミングを勉強している初心者の方向けに情報を発信しています。

経歴や実績はこちら

システム開発のお仕事の依頼もお待ちしております。

お問い合わせページTwitterのDMからお気軽にお問い合わせください!

今回はこのような質問をいただきました。

仮想通貨を自動売買してみたい!

今流行の仮想通貨。

どうやら仮想通貨の取引所にはAPIが用意されていてプログラムから売買ができるらしい。

そこで今回はこちらの質問について解説していきます!

今回はCoincheck(コインチェック)でビットコインを自動売買してみます!

テクニカル分析

テクニカル分析を使ってみた自動売買はこちら!

手軽に自動売買試してみたい!という方は今ご覧いただいているこの記事の内容がおすすめです!

ボリンジャーバンド

MACD

RSI

環境

環境変数定義して実行したら動作するけど面倒だと思うのでDocker使ってください!

$  python --version
Python 3.9.1

$ docker -v
Docker version 20.10.5, build 55c4c88

$ docker-compose -v
docker-compose version 1.28.5, build c4eb3a1f

アルゴリズム

あくまで自動売買できるのがゴールなのでアルゴリズムは非常に単純です。

デフォルトだと60秒間隔でレートを確認し、グラフが下降→上昇となった場合に購入、上昇→下降となった場合に売却します。

また、暴落対策として損失が大きい場合と損失が続いた場合は5時間取引を中止するようにしています。

物足りない人は自由にコード書き換えちゃってください!

準備

実行環境

Python 3.9系をインストールするか、Docker環境を用意してください。

Dockerがおすすめ!

APIキー

まずはコインチェックのAPIを利用するために口座を開設する必要があります。

以下のリンクから口座を開設してください!

実際に自動売買するには本人確認も必要です。

本人確認は数週間かかることもあるので早めに行っておくことをおすすめします。

シミュレーションモードなら本人確認なしでも実行できるかも?

アカウントを作成できたらAPIキーを発行します。

こちらのページの「新たにAPIキーを追加する」から発行します。

新たにAPIキーを追加する

以下の項目にチェックを入れて発行してください。

  • 新規注文
  • 取引履歴
  • 残高

こちらで表示されるIPアドレスをIPに入れておくとAPIキーが漏洩したときに不正アクセスを防げます。

APIパーミッション

発行できたらアクセスキーとシークレットアクセスキーを控えておきます。

ソースコード

GitHubで公開しています。

クローンなりダウンロードしてください!

.env

ルートディレクトリに配置されている.envのパラメータを書き換えます。

任意の値に書き換えてください!

  • ACCESS_KEY:発行したアクセスキー
  • SECRET_KEY:発行したシークレットアクセスキー
  • COIN:取引通貨(btc, etc, fct, mona)
  • INTERVAL:計測間隔
  • AMOUNT:購入金額(ビットコインの場合は500円以上である必要があります。指定しない場合は買えるだけ買います。)
  • SIMULATION:シミュレーションモード(実際に自動売買したい人はfalse)

購入分だけ売るという仕様にしたかったのですが、対応が難しそうだったので持ってる分だけ売るという仕様になっています。
すでに自動売買対象の通貨を保持している方は注意してください。

取引での損失やソースコードのバグなどの責任は負えません。
すべて自己責任でお願いします。

実行方法

ルートディレクトリで実行してください。

実行したら2分間データを取得した後に自動売買が始まります!

Dockerで実行する場合

$ docker-compose up --build

直接実行する場合

こちらの場合は.envの環境変数を実行環境に登録する必要があります。

$ python ./src/main.py

あとがき

興味本位で始めたのですが、Pythonをしっかりと身につけることができたので非常に為になりました。

Pythonは今流行の言語なので書けるようになっておきたいですよね。

Pythonも仮想通貨も学べたので満足!

ぜひAPIキーを取得して試してみてください!

参考

https://qiita.com/ti-ginkgo/items/7e15bdac6618c07534be

https://github.com/coincheckjp/coincheck-python