仮想通貨(ビットコイン)の自動売買ツールを自作し、運用してみたのでその進捗・結果を紹介していきたいと思います。(オートトレーディングってやつですね)
結論から言うと、約4週間動かしましたが、儲かりませんでした…
追記 こちらで新たに、現在動かしている自動売買ツールの運用報告をしています。
こちらの記事では自動売買ツールを自作して運用するための7ステップをまとめてありますので、自動売買ツールの自作に興味がある方はご覧ください。
自作した自動売買ツールについて
自動売買ツールは前述したとおり、自分で作成したものを使用しました。
- 機器:ラズベリーパイ4 8GBモデル
- OS:Raspberry Pi OS
- 開発言語:Python
- 売買手法:ゴールデンクロス・デットクロス
- 損切 : 購入金額よりも15%下落した場合
それぞれの項目を解説していきます。
自動売買ツールに使用した機器
基本的に24時間動かしっぱなしにするため、通常のPCを連続使用すると電気代が怖いので、小型PCである「ラズベリーパイ」を使用しました。
ラズベリーパイの消費電力は最大で15W程度ですので、あまり電気代を気にしなくても良いでしょう。
発熱対策は負荷の高い処理を行わせるわけでもないので、音の出ないファンレスのケースを使用しており、ほのかに温かい程度なので熱に関しては全く問題なさそうです。
OSはラズベリーパイ公式のRaspberry Pi OSを使用していますので、動作も安定しています。
ラズベリーパイについてもっと気になる方は、こちらの記事でOSインストールを行っています。
ラズベリーパイを使わないで、普通のパソコンでも自動売買はできます。
自動売買ツールの開発言語はPython
今回は勉強もかねて最近はAI開発などで流行りの「Python」を使用してみました。
ラズベリーパイを使っての開発だと、Pythonを使用している資料がネット上に多いというのも選択した理由です。
私はPythonを使用するのが初めてでしたが、慣れればそんなに苦にはならず、むしろ書きやすいと思うところも出てきました。
数学的なパッケージが豊富という事でAI開発などにも使用されていますが、今回は難しい数学的なものは使用していません。
そもそも使いこなせない。。
もしあなたがプログラミング初心者であれば、独学よりもスクールで基礎からしっかりと教えてもらうことをおススメします。
自動売買の取引手法はクロス狙い
自動売買ツールを作る上で重要になるのが、どんなルール・手法で取引を行うのかです。
機械に行わせる場合は「いい感じでお願い」は通じないので、明確にルールを設定する必要があります。
今回、使用したのは「ゴールデンクロス・デットクロス」での取引です。株などの取引手法としては最も有名で一般的なものです。
ゴールデンクロス・デットクロス手法とは?
どんなゴールデンクロス・デットクロス手法とは、どのようなものか簡単に説明します。
刻々と値段が変わっていく相場を1時間ごとなどに区切り、設定したある期間の平均を取った線を引きます。
これを移動平均線といいます。
平均する期間を長くすればするほど、多くの点をとった平均線となるのでグラフの動きは鈍くなり、逆に期間を短くするとグラフの動きは直近の値動きに敏感な動きをします。
この平均する期間が異なる2本の平均線が交差する部分をクロスと呼びます。
期間を短く取った移動平均線が、期間を長く取った緩やかな線を下から上へ抜かしたクロスをゴールデンクロスと呼び、これから価格は上がっていくだろうと予測されます。
逆に短期の移動平均線が、長期の移動平均線の下に向かっていくクロスをデットクロスと呼び、これから価格は下がっていくだろうと予測します。
そのため、このルールに乗っ取って取引を行う場合には、ゴールデンクロスが発生したら買い、デットクロスが発生したら売りとなります。
短期移動平均線、長期移動平均線の動きによって売買タイミングを決定するため、平均期間をそれぞれどのくらいに設定するのかが非常に重要となります。
単純な平均を線にした「単純移動平均線」以外にも、「加重移動平均線」や「指数移動平均線」と呼ばれるものもあります。
自作した自動売買ツールでは「指数移動平均線」を使用しました。
こちらで各種移動平均線について、計算方法から実装方法まで紹介しています。
自動売買を行う取引所は「bitbank」を使用
自動売買をさせる取引所は「ビットバンク」を使用します。
以前まで手動の取引をビットバンクで行っており、口座もありましたのでその流れで使いました。
ビットバンクのサイトへ → 仮想通貨ならビットバンク
APIの資料や参考にできるサイトは「ビットフライヤー」の方が多い印象ですが、ビットバンクも公式にAPIの資料が出ていますし、ビットバンクのAPIを使って自動売買ツールを作っている方のブログなどもあるので、それらを参考に自動売買ツールを作ることができました。
・ビットバンクAPIの公式資料:https://github.com/bitbankinc/bitbank-api-docs/blob/master/README_JP.md
ビットバンクのAPIについてはこちらで更に紹介しています。
自動売買ツールの基本的な動き
自動売買ツールが行う動きを簡単に説明します。
資産額以上の売買はできませんので、現在持っている資産額を取得します。
仮想通貨取引所からデータを取得し、移動平均線を作成する。
今回であれば、1分ごとに取引所データを取得して、移動平均線を引いていきます。
1分ごとに取得した取引データで移動平均線を引いていき、ゴールデンクロスが発生したら購入、デットクロスが発生したら売却を行います。
STEP3に戻って、データを取得し移動平均線を引き、STEP4でクロスを確認するということを繰り返します。
こんな動きです、特に大きな特徴はありませんが損切りは設定しており、買った金額よりも15%を下回ったら損切を行います。(15%は適当にました)
売るタイミングはデットクロスがあったとしても、ビットバンクの取引手数料分(0.12%)は買った金額よりも高くないと売らないようにしています。
手数料で損するのはもったいない。
1分毎に取得するものとはローソク足のデータのことで、この時は期間が短い方が直近の値動きに対応しやすいと思い1分に決めたのですが、後日調べてみるともっと長い期間設定の方が利益を出せそうでした。
自動売買をさせた結果
実際に2021/11/10から自作自動売買ツールを動かした結果です。元手は1万円だけ入れました。
自動売買ツール 約1週間経過(2021.11.18)
こちらが1週間の取引所値動きと売買のタイミングです。
さっそく明らかに買ってはいけないところで買ってます…
1週間動かして、プログラムが売買したのは買いの1回で、損切りポイントまで下がらず、売りポイントまでも上がらずのところで価格が推移してしまった為、買っただけで何もしていません。
ビットコイン自体の価格が下がっているので、資産価値としてはマイナスです。
価格が跳ね上がるか、ガクンと下がれば売買が行われると思うので、期待してもう少し様子を見てみます。
自動売買ツール 約2週間経過(2021.11.24)
取引所の値動きと売買タイミングです。
大幅に価格が下がったので損切が発動するかと思いきや、全く発動しないのでプログラムを確認したら損切の処理がコメントアウト(無効化)されていました…。
そのため、遅れての手動での損切で本来の損切以上に大きく損失を出してしまいました。
プログラムの確認は大切
それとは別問題も発生しており、Wifiの調子が悪かったのか通信エラーでの停止もあり、なかなかうまく連続動作させることができませんでしたが、ちょこちょこ売買を行い数十円~数百円程度は稼いでくれました。
エラーでの停止が無ければ、もう少し稼いでいたかもしれません。
自動売買ツール 約3週間経過(2021.12.01)
前週の持ち越し分をビットチャートの頂上辺りで売れたので良い動きでしたが、その直後に買ってしまい、それから金額が上がることは無く、損切のポイントまでも下落しなかった為、ほぼ一週間は塩漬けビットコインになってしまいました。
売るタイミングは良いのですが、買うタイミングがあまり良くないので、買う条件を厳しくした方が良いのかもしれません。
あと、クロスのみでの取引だと、短期間での急激な値動きがあると対応できなそうです。
自動売買ツール 約4週間経過(2021.12.07)
この期間は前週持ち越し分の損切が発動し、大きな損失をまた生んでしまいました。(今回は自動で発動)
ですが、損切してからは谷で買って、山で売るという稼ぐ動きが上手くできているように見えます。
綺麗に上下を繰り返す相場の動きだと、クロスでの取引は相性が良さそうです。
自動売買ツール 約4週間動かしてみて
約4週間での結果は、初期投資で10,000円を投入し最終資産額は7,900円で、マイナス2100円となってしまいました。
今回はこれで一旦プログラムを止めて、プログラムを見直していきたいと思います。
自分しか見ないからと、プログラムを自由に書いていたら可読性が悪すぎて自分でもわからなくなってきたので、綺麗に書き直して再度自動売買を動かしてみたいと思います。
外出先でもツールの状態が分かったり、指示を出せたりすると便利なのでTwitter等のAPI機能なども組み込めたら良いな~などとも考えています。
今回は良い経験・勉強となりました。ですが自動売買で儲けるのはなかなか難しそうです。
自動売買ツールを作ってみたい方はこちらでまとめているのでご参考ください。
追記 自動売買ツールで1万円まで取り戻せました。