1)MetaTrader4or5でTickデータを取得する.
2)PythonでTickデータを取得と同時にインジケータの数値を計算し保存する.
3)過去のデータから現在値を予測する学習をする.
4)売買ルール(発注,決済)をプログラムに記述する.
5)自動売買を実行し,利益と損失の結果を出す.
FXのTick情報を収集すると同時に,インジケータの数値も計算して保存し,値動きの予測を行う.予測にもとづいて売買のルールを設定し,オンラインのデモトレードで利益や損失を確定していく.
注意 目標2はPythonを実行できる環境(Ubuntu等)でやるので、その環境で目標1もやってください
| 電極 | 線の色 | サイトンボードピン |
| 耳のクリップ | 黒 | ボトムSRBピン(SRB2) |
| FP1 | 紫 | ボトムN1Pピン |
| FP2 | グレー | ボトムN2Pピン |
| C3 | 緑 | ボトムN3Pピン |
| C4 | 青 | ボトムN4Pピン |
| P7 | オレンジ | ボトムN5Pピン |
| P8 | 黄 | ボトムN6Pピン |
| O1 | 赤 | ボトムN7Pピン |
| O2 | 茶色 | ボトムN8Pピン |
| 耳のクリップ | 黒 | ボトムBIASピン |
#ref(): File not found: "MarkIV_electrode_map.png" at page "MetaTrader5とPythonによる自動売買"
配線の色とサイドボードピンの組み合わせは一致しないかもしれないので、写真の通りの電極と一致するように写真と表を見比べて接続する。
以下のサイトを参考にして、同じように電極とデイジー・ピンのペアリングも行う。
電池パッケージを結束バンドなどで固定しておく。
以下のサイトでインストール http://openbci.com/index.php/downloads
#ref(): File not found: "Op_usb.png" at page "MetaTrader5とPythonによる自動売買"
USB ドングルをコンピュータ側にでっぱりをスライドさせ、青いライトを点灯させる
#ref(): File not found: "Op_kiban.png" at page "MetaTrader5とPythonによる自動売買"
Cyton ボードのスイッチは、上にスライドで PC 接続、下にスライドで Bluetooth 接続となる
今回はPC接続なので上にスライドする
ここから先はWindowsとUbuntuでやり方が違う
#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%であることを表している