こんばんは!ヒカリです。
Webエンジニアを目指してプログラミングを勉強している初心者の方向けに情報を発信しています。
今流行の仮想通貨を自動売買してみました!
リモートワークでおすすめのグッズ紹介してみました!
以前、こちらの記事で簡単な自動売買システムを作ってみたのですが、今回はテクニカル分析を組み込んでみます。
利用するテクニカル分析は以下の3つです。
- ボリンジャーバンド
- MACD
- RSI
今回もCoincheck(コインチェック)でビットコインを自動売買してみます!
環境
環境変数定義して実行したら動作するけど面倒だと思うので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
アルゴリズム
ざっくりとアルゴリズムを解説しておきます。
どれも有名なテクニカル分析なので詳細を知りたい方は個別に調べてみてください!
暴落対策として損失が大きい場合と損失が続いた場合は5時間取引を中止するようにしています。(共通処理)
こちらは各自で損失幅や時間を調節しても良いかもしれないです。
ボリンジャーバンド
今回はボリンジャーバンドの±2σを基準に取引してみます。
-2σで買い注文、+2σで売り注文といった感じですね。
ボリンジャーバンドの一般的な使い方となります。
MACD
ヒストグラムが負から正になったとき(MACDがシグナルを下から上に抜けるとき)に買い注文を行います。
売り注文は少し迷ったのですが、ヒストグラムが正の状態で減少したときとしました。
RSI
RSIが30を下回ったとき買い注文、RSIが70を上回ったとき売り注文を行います。
こちらも一般的な使い方ですね。
RSIが20を下回ったときに買い注文を行う方もいますね。
準備
実行環境
Python 3.9系をインストールするか、Docker環境を用意してください。
Dockerがおすすめ!
APIキー
まずはコインチェックのAPIを利用するために口座を開設する必要があります。
以下のリンクから口座を開設してください!
環境はできたのにAPIキーがなくて動作チェックできない!
という状況になりやすいので、とりあえず最初に開設しておくのがおすすめです。
実際に自動売買するには本人確認も必要です。
本人確認は数週間かかることもあるので早めに行っておくことをおすすめします。
アカウントを作成できたらAPIキーを発行します。
こちらのページの「新たにAPIキーを追加する」から発行します。

以下の項目にチェックを入れて発行してください。
- 新規注文
- 取引履歴
- 残高

発行できたらアクセスキーとシークレットアクセスキーを控えておきます。
ソースコード
ソースコードはGitHubで公開しています。
自分が使ってみたいアルゴリズムのコードをクローンなりダウンロードしてください!
準備
ルートディレクトリに配置されている.envのパラメータを書き換えます。
任意の値に書き換えてください!
- ACCESS_KEY:発行したアクセスキー
- SECRET_KEY:発行したシークレットアクセスキー
- COIN:取引通貨(btc, etc, fct, mona)
- INTERVAL:計測間隔
- AMOUNT:購入金額(ビットコインの場合は500円以上である必要があります。指定しない場合は買えるだけ買います。)
- SIMULATION:シミュレーションモード(実際に自動売買したい人はfalse)
実行方法
ルートディレクトリで実行してください。
実行したら25分間データを取得した後に自動売買が始まります!
Dockerで実行する場合
$ docker-compose up --build
直接実行する場合
$ python ./src/main.py
あとがき
どのアルゴリズムもpandasを使うと比較的簡単に実装できました。
いろいろテクニカル分析試してみたけど個人的にはボリンジャーバンドが一番好き。
投資とプログラミングの勉強を同時にできるので自動売買は素晴らしいです。
テクニカル分析組み込むのも良いけど自分でアルゴリズムを考えるのも良いですね。
ぜひAPIキーを取得して試してみてください!
参考
https://qiita.com/ti-ginkgo/items/7e15bdac6618c07534be
https://github.com/coincheckjp/coincheck-python