2018年4月25日水曜日

DQNを使ったトレード事始め。Anaconda+tensorflowインストール

まえまえから積み課題になっていた深層学習を使用したトレードについて、やっと準備を始めました。

自分向けのインストールメモを残しておきます。

■最終目標
 強化学習を利用した自動トレードです。
 まずは、Deep Q-Networkから初めて、最終的にはRainbowでのトレードを目指します。

■前提
まず、口座に連携する方法についてはいろいろあるのですが、MT4に共有メモリかなにかで連携するか、oandapyを使ってOANDA Rest APIに直結するか、Jijiを使ってRuby経由でやるかはさておき、開発そのものは慣れたWindows環境が良いと思いWindows10にインストールする前提で行きます。

※oandapy OANDA Rest APIのPythonラッパー
https://github.com/oanda/oandapy

※Jiji RubyベースのFXトレードフレームワーク(OANDA RestAPI対応)
http://jiji2.unageanu.net/

深層学習のフレームワークとして有名で資料も多いtensorflow+Python(Anaconda)という環境を作成したいと思います。

※tensorflow(テンソルフロー)
Googleが開発した商用利用も可能な深層学習フレームワークです。

※Anaconda(アナコンダ)
Python言語環境と学術演算ライブラリをパック化したパッケージです。
ヘビ仲間です。

※Python(パイソン)
なぜか?深層学習でよく利用されるようになった開発言語です。現在Python使いの人単価はプログラマ業界でぶっちぎっていますので、いまから業界に入る人は頑張って勉強しましょう。私?残念ながら、現時点ではPythonわかりません。今から勉強します。

■インストール環境
Windows10 64bit
Core i7
Geforce GTX960m
Mem 16GB

アルファベットが開発したtensorflowはGPUによる高速化が可能です。
対応しているGPUはGeForceのみとなっていて、AMD Radeonには対応していません。
ちょっと動かしてみただけですが、深層学習はめちゃくちゃ遅いので、GeForce必須です。ある程度新しくないとだめですので、GeForce GTXシリーズ必須です。
下のページでスコア値が3.0以上は必須です。
https://developer.nvidia.com/cuda-gpus

少し動かしましたが、正直ノートPC搭載のGTX960mでも力不足で、GTX1080クラスが必要だなと感じました。
また、GPUアクセラレーション有効状態でもCPUパワーを50%ほど持っていくため、CPUもそこそこのスペックが必要そうです。本格的にやるならCore i5-8400+GTX1080のマシンを新調しようと思いました。

■インストール手順
tensorflowのインストールページをベースにメモを残します。
https://www.tensorflow.org/install/install_windows

1.CUDA toolkit 9.0のインストール

tensorflowのインストールを書いた記事で少し古いとCUDA8.0をインストールすることになっているものも多いです。2018/4/25時点のバイナリ配布版tensorflowではCUDA9.0を利用します。

すでにCUDA9.1がリリースされていますので、ソースコードからビルドするとCUDA9.1も利用可能です。ここではバイナリ版をインストールする前提にします。多分次のtensorflowバイナリ配布バージョンの対応CUDAは9.1になると思いますので、tensorflowのインストールページを確認して、常時必要なCUDA toolkitのバージョンを確認してください。

https://developer.nvidia.com/cuda-90-download-archive
まず、このページからCUDA9.0をダウンロードします。
Windows→10→exe(local)を選択して表示されるBase Installer、Patch1、Patch2をダウンロードします。


ダウンロードしたexeファイルを、Base Installer、Patch1、Patch2の順に起動して、CUDAをインストールします。

2.cuDNNのインストール

https://developer.nvidia.com/cudnn

cuDNNというCUDA用深層学習パッケージをインストールします。
ここでは、NVIDIAの開発者メンバーシップに登録が必要です。
未登録の方は、Download cuDNNボタンを押した後に表示されるメンバーシップ要求画面でjoinボタンを押してからメンバー登録してください。
メンバー登録すると、登録したメールに「Please confirm your email to join the NVIDIA Developer Program」というタイトルの認証メールが届きます。HTML表示可能なメーラーにてメールのVerify Emailをクリックすると認証完了します。

その後、先ほどのメンバーシップ要求画面右側にあるloginボタンを押して登録したユーザにてログインするとダウンロードが可能です。

CUDA9.0用のcuDNN「Download cuDNN v7.1.3 (April 17, 2018), for CUDA 9.0」をダウンロードします。
ZIPファイルでダウンロードされますので、ZIPファイル内のbinフォルダをCUDA9.0のbinフォルダに上書きします。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin

最後にWindowsの環境変数PATHにCUDA9.0のbinフォルダへのパスを通して終了です。
環境変数の編集はWindows10であれば、Siriに環境変数とお願いすると表示されます。

3.Anacondaのインストール

Python環境のパッケージであるAnacondaをインストールします。
https://www.anaconda.com/download/


64 Bit Graphical Installer Anacondaをダウンロードします。
クリックするとダウンロードが開始されます。画面上にメールアドレス登録してくださいと出てきますが、すでにダウンロードは開始されていますので無視しても大丈夫です。

基本的にすべてデフォルトのままインストールします。
Installation OptionsにてRegister Anaconda as my default Python3.6にチェックしておきます。(デフォルトでチェックが付いていると思います)

Visual Studio Coreのインストールを聞かれます。Windowsの場合Visual Studio Cummunityが利用可能です。仕事柄すでにインストール済みですので、ここはSkipしました。Visual Studio CummunityにおけるPython開発の記事は別の機会に書きます。


4.tensorflowのインストール

Anacondaインストール完了すると、Anaconda Promptが起動可能です。
プログラムメニュー→Anaconda→Anaconda Promptを起動します。
以下Anaconda Prompt上の操作です。
まず、Anaconda用インストールマネージャーcondaアップデートを行います。次のコマンドを打ちます。
conda update -n base conda

なぜか一回目block should ....というメッセージが操作可能なコマンドとして認識されませんと怒られるため、2回実行します。

次にtensorflowのための仮想環境を作成します。tensorflowのインストールページではPython3.5を指定していますが、3.6が出ているため3.6にします。次のコマンドを打ちます。
conda create -n tensorflow pip python=3.6
activate tensorflow

pythonのパッケージマネージャーpipが少し古いので、あらかじめアップデートしておきます。
python -m pip install --upgrade pip

ついにtensorflowのインストールです。
pip install --ignore-installed --upgrade tensorflow-gpu

tensorflowのインストール解説には動作確認が載っていますので実行してみましょう。
以下、https://www.tensorflow.org/install/install_windowsからの抜粋です。

$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!') 
>>> sess = tf.Session() 
>>> print(sess.run(hello))


CUDAへのパスが通ってないと、ここでdllが足りないと怒られるので、もしも実行に失敗した場合環境変数を確認してください。

(蛇足)
こう思うとOANDAすごいですよね。本気で倍率10倍制限とかくそだろ!とか言いたくなります。クリック365へ天下り禁止にしてから制限を論じてください。

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program
Trading View プロフィール

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。