初心者向け

【Python】テクニカル分析!RSIを使って仮想通貨を自動売買してみる!【コインチェック/ビットコイン】

coincheck-auto-trade-rsi

こんばんは!光です。

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

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

経歴や実績はこちら

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

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

以前、こちらの記事で簡単な自動売買システムを作ってみたのですが、今回はテクニカル分析を組み込んでみます。

今回利用するのはRSI!

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

その他のテクニカル分析

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

ボリンジャーバンド

MACD

環境

環境変数定義して実行したら動作するけど面倒だと思うので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

アルゴリズム

今回はRSIを基準に取引してみます。

RSIが30を下回ったとき買い注文、RSIが70を上回ったとき売り注文を行います。

一般的な使い方ですね。

また、暴落対策として損失が大きい場合と損失が続いた場合は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)

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

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

実行方法

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

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

Dockerで実行する場合

$ docker-compose up --build

直接実行する場合

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

$ python ./src/main.py

あとがき

RSIは買われすぎ、売られすぎで判断する指標なのでわかりやすいですね。

自動取引では使いやすい指標なのかもしれません。

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

参考

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

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

http://www.algo-fx-blog.com/rsi-python-ml-features/