ソア

女性不信になって、ビットコインはじめて←イマココ

ディープラーニング×ラズパイで仮想通貨(ビットコイン)を人工知能(AI)が自動売買

お久しぶりです。

かなりの間投稿をしていませんでしたがその間もビットコイン自動売買システムを試行錯誤しながら作っていました。

 

いきなりですが完成品から。こちらです。

f:id:masagutti:20180720003327j:plain

本体はラズベリーパイです。簡単に言うとちっさいパソコンです。

www.nicovideo.jp

プログラムはすべてPythonで書いています。

 

masagutti.hatenablog.com

*最新型公開しました

 

今までは様々なテクニカル指標を用いて相場を判断していたのですが、これは多くの人がやっているアプローチで、他になにか方法がないのかとずっと考えていました。

 

そこで私が目をつけたのが人工知能。よく言われているAIですね。

今回取り入れたのは

ニューラルネットワーク 

です。

ラズパイでAI自動売買

 ニューラルネットワークとは

ニューラルネットワークというのは人間の脳の神経細胞のつながりを人工的なモデルで表したものです。そんなものが役に立つのか、事実かなり役立ってくれました。

 

f:id:masagutti:20180720005541p:plain

このように一つのユニットに入力、出力があります。このユニットへの入力がある閾値を超えると他のユニットへ信号が出力されます。このユニットをノードといいます。そしてこれらの出力信号それぞれに「重み」というものをつけます。重みが大きくつくと出力される信号も大きくなると思ってください。んでこの重みをうまく調整することで求めている出力に近いものにしていきます。

 

f:id:masagutti:20180720005609p:plain

これらが図のように縦に並んで一つの「層」を作りそれらが横に並んでネットワークを構成します。一番最初に入力を受ける層を「入力層」、最後に出力される層を「出力層」といいます。そしてその間の層を「中間層」といいます。今回はこの入力層に過去「3時間分のビットコイン価格データ」を入力し、出力層から「1時間後に上がっているか下がっているかそれぞれの確率」を取り出すネットワークを作成しました。

 

資産の増え方をシミュレーション

そしてその「1時間後に上がっている(下がっている)確率」がある閾値を超えると注文を出すというアルゴリズムでシミュレーションしました。その結果がこちら。

f:id:masagutti:20180727234252p:plainf:id:masagutti:20180727234304p:plain

1枚目は「トレーニングデータ」、2枚目は「テストデータ」でのシミュレーションです。AIはこの「トレーニングデータ」から学習するのでこの結果が良いのは当たり前です。テストで前もって出る問題を教えられているようなものです。肝心なのは「テストデータ」の結果です。順調に伸びてますね。途中で伸びが弱くなっていますが、価格の変化が小さくなっていた時期だったので仕方ないでしょう。

masagutti.hatenablog.com

↑より詳細にまとめました

f:id:masagutti:20180728000548p:plain

f:id:masagutti:20180728001052p:plainf:id:masagutti:20180728002848p:plain

 

これ何がすごいって、トレーニングデータとテストデータで価格変動のトレンドが全く逆になってるんですよね。AIはトレーニングデータ、つまりずっと価格上がりっぱなしの時期だけみて学習してるのに、価格下がりっぱなしのテストデータでも資産を増やし続けてるんですよ。勉強したテスト範囲の問題をまるっきり性質を逆にしたようなテストだったけど、その勉強内容の本質から理解してたからちゃんと点数取れたみたいな感じ。

 

形は完成!肝心の中身は、、

そしてこれはいけるなと思い、ビットフライヤーAPIを利用しての自動売買を24時間動かし続けるためにラズパイに移し替えました。

f:id:masagutti:20180728004527j:plain

 左のモニタには現在のビットコインの価格や資産、ポジションが表示されます。右のモニタには過去3時間分の折れ線チャートが表示されます。

f:id:masagutti:20180728012213p:plain

こんな感じで自動売買のプログラムも作った。もちろんパイソン。

 

しかしこれまでは全部過去のデータを用いたシミュレーション。実際可動させるとどうなるのかが重要です。これが完成してから約1ヶ月立ちましたが経過がこちら。

f:id:masagutti:20180728010530j:plain

967円かよ!と思うかもしれませんがそれは、動作テストなので取引できる最小単位(0.01BTC)で取引をしていたからです。私は大学生で全然お金がありません(だからこんなことやってるのですが)ので、一ヶ月前の預け入れ証拠金は1812円でした笑。1ヶ月で1812円が2779円なので利回りは約53%ということになります。また先程記述した通りこれは最小単位での結果なので、これを取引可能な最大数で取引をしていたら0.02~0.03BTCで取引していたことになるので(15倍レバレッジをかけて)の利回りは100~150%になっていた計算になります。

masagutti.hatenablog.com

↑より詳細な運用実績

 

まとめ

これらの結果から考えるとこのニューラルネットワークを用いたビットコイン自動売買はかなり有用だと思います。ビットコインで勝つ方法とかいったものはいろいろ言われていますが、こうして自分でロジックを作ってシミュレーションしてみると、よく言われている方法にはいろいろと疑問を覚えます。逆にそれでいい結果だと自分のロジックをある程度信頼できます。数万円の余剰資産であれば結構稼いでくれそうなんですが、大学生の自分は元金を用意できないので儲けの絶対額は少ないですね、、、。もしこの記事の閲覧数が多ければより詳しく書くかもしれません。個人的に質問や相談があれば遠慮なくお寄せください。

 それでは。

AIのマルチロジック化

上記の「ニューラルネットワークのモデル(要はAI)」を複数用いてより精度を増したモデルが「マルチロジックモデル」です。複数の異なる期間の価格データをそれぞれ異なるロジック(AI)に与えより多面的に相場を捉えることが出来ます。

masagutti.hatenablog.co

AIの最適化

上記の「マルチロジックモデル」について「遺伝的アルゴリズム」を用いてそれぞれのロジック(AI)毎にパラメーターを最適化したものが「最適化モデル」です。「マルチロジックモデル」がロジック間である程度パラメーターを共有しているのに対し、「最適化モデル」はロジック毎に最適なパラメーターを設定してあるのでより高い精度が期待できます。

masagutti.hatenablog.com

 

AIの技術をエロに使った例

また、AIの技術を「エロ」に使ってこんなことしてます。

masagutti.hatenablog.com