技術資料

目次 

1)MetaTrader4or5でTickデータを取得する.
2)PythonでTickデータを取得と同時にインジケータの数値を計算し保存する.
3)過去のデータから現在値を予測する学習をする.
4)売買ルール(発注,決済)をプログラムに記述する.
5)自動売買を実行し,利益と損失の結果を出す.

1. 目標 

FXのTick情報を収集すると同時に,インジケータの数値も計算して保存し,値動きの予測を行う.予測にもとづいて売買のルールを設定し,オンラインのデモトレードで利益や損失を確定していく.

注意 目標2はPythonを実行できる環境(Ubuntu等)でやるので、その環境で目標1もやってください

2. MT5とpythonを連携させる 

以下のサイトを参考にして行った。

pythonは予めインストールされているものとする

Macではターミナルを起動し、pip install MetaTrader5を入力してMT5をインストールする また、今回は、時間関連処理も行うのでpip install pytzもインストールしておく。

3. FTDIドライバ・インストール(Macのみ) 

Macは以下を参考に https://www.pu-toyama.ac.jp/IS/IIE/local_pages/lab_log/wiki.php?plugin=attach&refer=OpenBCI&openfile=OpenBCI%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%95%E3%82%9A%EF%BC%88macOS%29.pdf

4. GUIインストール~ 

以下のサイトでインストール http://openbci.com/index.php/downloads

5. 脳波の測定の準備(Windows, Unix) 

#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でやり方が違う

Windowsの場合 

#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を起動する

UNIXの場合 

シリアルポートにアクセスするのに十分な特権で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

以上の流れで実行できる

8. 脳波の測定の実行と動作確認 

・装着するときは電池がついている方を後ろ向きにする

・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による自動売買"

システム(この項目は、直接USBでデータを渡したほうが早い) 

作業する場所にフォルダを作り、以下のプログラムと画像を入れる

#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による自動売買"

9. ジャンケンの出す手の分類学習 

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

で実行できる

10. ジャンケンの出す手の予測 

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%であることを表している


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS