1)MetaTrader4or5でTickデータを取得する.
2)PythonでTickデータを取得する.
3)売買ルール(発注,決済)をプログラムに記述する.
4)自動売買を実行し,利益と損失の結果を出す.
FXのTick情報を収集すると同時に,移動平均線を見るMACD(マックディー)というテクニカル分析を行い,オンラインのデモトレードで利益や損失を確定していく.
以下のサイトを参考にして行った。
pythonは予めインストールされているものとする
Win10ではコマンドプロンプトを起動し、pip install MetaTrader5を入力してMT5をインストールする。
また、今回は、時間関連処理も行うのでpip install pytzもインストールしておく。
上記サイトで作成するprogram.pyはこのページの下からダウンロードできる。
その後、デモ口座を開設するためにXMのアカウントを作る。
XMの指示に従いMT5のモジュールのダウンロードとインストールを行い、EURJPYを追加してから、program.pyを実行するとtickデータが取得できる。
※PlayOnMacとは、Mac環境内にWindowsアプリを入れられるようにする物である
Macは以下を参考にし、インストールし、2番と同じ手順でMT5を入れることが出来る
https://www.metatrader5.com/ja/terminal/help/start_advanced/install_mac
以下のサイトを参考に進める https://qiita.com/toyolab/items/20b21384c8b91a9b778e
注意点として、口座番号は上記で作ったXMの口座IDである。
このページの下部にtrading.pyとmyconfig.iniを添付しておいた。
trading.py、myconfig.iniをメモ帳で開き、ディレクトリ、口座など書き換える必要がある。
ストラテジーテスタについては左上の表示タブから追加することができる。
また、ストラテジーテスタの設定タブで、一番下のオプティマイズを遺伝的アルゴリズムに変更することでパラメータを変更できるようになる。
#ref(): File not found: "オプティマイズ.png" at page "MetaTrader5とPythonによる自動売買"
#ref(): File not found: "パラメータ.png" at page "MetaTrader5とPythonによる自動売買"
1、MT5を起動する。
2、コマンドプロンプトを起動しtrading.pyとmyconfig.iniが入ってるフォルダのディレクトリに移動する。
3、python trading.py と入力し、pythonプログラムを起動する。
4、おそらく、図のような表示が出ると思うので、はいを押す。
#ref(): File not found: "表示.jpg" at page "MetaTrader5とPythonによる自動売買"
5、その後、図のようなウィンドウが出るので閉じる。
#ref(): File not found: "とじる.png" at page "MetaTrader5とPythonによる自動売買"
6、右下のスタートを押すことで自動売買が実行される。
#ref(): File not found: "スタート.png" at page "MetaTrader5とPythonによる自動売買"
7、実行結果として以下のようになる。
今回、簡単な戦略だったので結果としては負けてしまったが他の良い戦略のEAを自作することで勝ちに持っていけると思われる。
#ref(): File not found: "実行結果.png" at page "MetaTrader5とPythonによる自動売買"
#ref(): File not found: "GUI設定.png" at page "MetaTrader5とPythonによる自動売買"
OpenBCI_GUI.exeを開いて
(1) LIVE from (Cyton)
(2) Serial(from Dongle)
(3) COM3
(4) 8CHANNELS
(5) START SYSTEM
以上の流れで実行できる
・エラーが出たときはOpenBCIHub.exeを起動してからOpenBCI_GUI.exeを起動する
シリアルポートにアクセスするのに十分な特権でOpenBCIアプリケーションを起動する
OpenBCIソフトウェアをホームフォルダに展開したと仮定すると、以下のコマンドで実行できる
cd ~/application.linux64 && sudo bash OpenBCI_GUI
(1) LIVE from (Cyton)
(2) Serial(from Dongle)
(3) SERIAL / COM PORT は一番上のやつ
(4) 今回は8CHANNELS
(5) START SYSTEM
以上の流れで実行できる
・装着するときは電池がついている方を後ろ向きにする
・DATA LOG FILE でファイルを変更できる(デフォルトで日付)
・実行できる状態か確かめるときは、SERIAL / COM PORT の横の矢印から確認できる
・GET CHANNEL と STATUS が Success となっていれば実行可能
・脳波がとれない場合はそのチャンネルの頭のねじを回すことで調節する(2番はとれなかった)
START SYSTEM を実行すると以下のような画面になり、左上の START DATA STREAM で測定開始、STOP で測定終了となる
#ref(): File not found: "OpenBCI_start.png" at page "MetaTrader5とPythonによる自動売買"
作業する場所にフォルダを作り、以下のプログラムと画像を入れる
#ref(): File not found: "slide.py" at page "MetaTrader5とPythonによる自動売買"
#ref(): File not found: "test.py" at page "MetaTrader5とPythonによる自動売買"
#ref(): File not found: "Black_image.png" at page "MetaTrader5とPythonによる自動売買"
#ref(): File not found: "guu.png" at page "MetaTrader5とPythonによる自動売買"
#ref(): File not found: "paa.png" at page "MetaTrader5とPythonによる自動売買"
#ref(): File not found: "tyoki.png" at page "MetaTrader5とPythonによる自動売買"
#ref(): File not found: "white_image.png" at page "MetaTrader5とPythonによる自動売買"
そのフォルダの中にcountというフォルダを作り、以下の画像を入れる
#ref(): File not found: "one.png" at page "MetaTrader5とPythonによる自動売買"
#ref(): File not found: "two.png" at page "MetaTrader5とPythonによる自動売買"
#ref(): File not found: "three.png" at page "MetaTrader5とPythonによる自動売買"
python3でやる
pipのインストールはこのサイトの「pipのインストール方法」を見てやる
モジュールのインストールは以下のコマンドで
pip3 install opencv-python
sudo pip3 install pyautogui
sudo pip3 install xlib
pip3 install matplotlib
sudo apt-get install python3-tk
sudo apt-get install python-scipy
pip3 install scipy
pip install scikit-learn
pip3 install pandas
pip3 install sklearn
プログラムslide1.2.pyについて
#ref(): File not found: "test1++.png" at page "MetaTrader5とPythonによる自動売買"
pyautogui.click(141,101)のところはとりあえずそのままで
下線部のPATHは書き換える
実行方法
slide.pyのプログラムでデータ収集
test.pyのプログラムで収集したデータから機械学習させるという流れ
1.
cd ~/application.linux64 && sudo bash OpenBCI_GUI
でOpenBCIを起動しハードのセットアップを行う
2.
ターミナルの新しいタブを開いてslide.pyのあるところに移動し、
python3 slide.py
で実行できる
OpenBCIのスタートの位置にpyautogui.click(x,y)を合わせないといけないのでエラーが出た場合は以下のプログラムで位置を確かめられる
#ref(): File not found: "click.png" at page "MetaTrader5とPythonによる自動売買"
このプログラムを実行したときのマウスカーソルの位置がPoint(x=588, y=482)などと表示される
実行に成功すると3,2,手の順でスライドが流れるのでその手に勝つ手を後出しで出す(100回)
ターミナル上に遅延時間が表示されているので記録しておく
終わったらOpenBCIを停止して、applicasion.linux64のSavedDataのところにあるテキストデータの名前を変更する
3.ここでもう一つのプログラムtest.pyを使う
各々で変更してほしい点は以下の点である(120行前後)
#ref(): File not found: "test2.png" at page "MetaTrader5とPythonによる自動売買"
yamamoto_1.txtのところは2で名前を変えたテキストデータの名前にする、
隣の数字は2で記録した遅延時間なのでその数字を入れる
赤丸の部分は2でターミナル上に表示された数列をコピー&ペーストする
実行結果の例を示す
#ref(): File not found: "kekka.png" at page "MetaTrader5とPythonによる自動売買"
これは取得した100個のデータから最初の40個のデータを訓練データとして、次の40個のデータを予測したときの正解率が37.5%であることを表している