FXのTick情報を収集し、データを用いてテクニカル分析を行い、オンラインのデモトレードで利益や損失を確定していく。
以下のサイトを参考にして行った。
参考サイト第九回 MT5とPythonを連携してみよう!
pythonは予めインストールされているものとする。
また、プログラムの見やすさや、実行のしやすさにおいて、visual stdio codeを使ってpythonを書くのがおすすめ。
(うまくPythonがインストールできない事例があったのでインストールの流れ書いておきます)
リンク先確認:Pythonのインストール方法(Windows)
ubuntuの場合,pipが初期でインストールされていない?からインストールしなきゃいけない.
sudo apt install python3-pip
でインストール.
Win10ではコマンドプロンプトを起動し、必要なライブラリをインストールする。
インストールの仕方はコマンドプロンプトで
pip install MetaTrader5
のように入力してインストールする。
今回インストールが必要なのは、
(インジケータの計算に利用するTA-Libはインストールの仕方が特殊なため、後述する)
その後以下のサイトからMT5をインストールする。
※ここでのMT5は前述したpip install MetaTrader5のMT5とは名前が同じだけで別物。
下記のリンクでインストールするものはアプリ
MetaTrader 5をダウンロードしましょう
MT5での最低取引量は0.01lot(10000通貨)なので残高は大体10万以上にしておくべき
MT5の左上のファイル→デモ口座を開くから残高を増やすことができる
参考サイトWindows環境のPythonでTA-Libを使えるようにする
「スタート」→「コントロールパネル」→「システムとセキュリティ」→「システム」ここに書いてある「システムの種類」が32ビットなのか64ビットなのかを覚えておく。
python -Vと入力するとpythonのバージョンが確認できる。
TA_Lib‑0.4.17‑cp36‑cp36m‑win_amd64.whlこれをダウンロードする。「win_amd64」がパソコンのビット数を指し、「cp36」がpythonのバージョンを指している。ここが自分の環境に合ったものをダウンロードする。
python -m pip install TA_Lib‑0.4.17‑cp36‑cp36m‑win_amd64.whlと打ち込む。(TA_Lib以下を自分がインストールしたものに書き換えるのを忘れずに)
Successfully installed ~~~と表示されたら完了。
注意点として、口座番号は上記で作ったXMの口座IDである。
今回使うファイルは5つあり、一つ目がpythonのファイルで、残りはMT5用のファイルである。
[pythonのファイル]
#ref(): File not found: "demo.py" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
[MT5のファイル]
#ref(): File not found: "initmql4.mqh" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "stdlib.mqh" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "stderror.mqh" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "Trade.csv" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "TradeAI.mq5" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "MQL5.zip" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
MT5用のファイルの置き場所を下記に示す
まず、MT5を起動し、左上のファイルからデータフォルダを開くを押す。
#ref(): File not found: "1.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
そのあと、開いたフォルダの
MQL5→includeにinitmq4.mqh、stdlib.mqh、stderror.mqhの三つを入れる。
MQL5→scriptsにTradeAI.mq5を入れる。
MQL5→FilesにTrade.csvを入れる。
demo.pyの場所は任意で大丈夫。
これでファイルの配置は終了。
次に、TradeAI.mq5のコンパイルを行う。
以下の画像に従う。
#ref(): File not found: "2.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "3.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
これでファイルのコンパイルは終了
次にUSDJPYのチャートを表示する
#ref(): File not found: "11.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
次にTradeAIをUSDJPYに入れる。
※もし、ウィンドウが出てきたらで自動売買の許可にチェックを入れる。
#ref(): File not found: "12.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
その後、上のタブからツール→オプションで下記の画像の箇所にチェックを入れ、OKを押す。
#ref(): File not found: "5.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
これでMT5の設定は終わり。
次にpythonのdemo.pyをテキストエディタなどで開き、Trade.csvのディレクトリを書き換える。
下記の画像の場所を自分に合ったディレクトリに変更する。
#ref(): File not found: "pathchange2.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
demo.pyのコード内でできる限りコメントアウトしてるので、そこを参考にして欲しい。
MT5を起動した状態でdemo.pyをコマンドプロンプトから実行することで、自動売買が開始される。
上記写真で用いている、Visual Studio Codeで実行する場合右上の緑△ボタン押すことで自動でターミナルが起動され、プログラムを実行できる。
売買の時の音が気になる場合は、MT5画面上のツールタブ→オプション→イベントの音声アラートを有効にするのチェックを外す。
実際に動作している状態の画像を下記に載せる。
#ref(): File not found: "7.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "8.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
Ctrl+T上記写真の赤線で囲われた取引履歴などを見るツールボックスが表示される
#ref(): File not found: "9.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
2020/1/8の1:00~2020/1/8の16:00の間動かした結果 525.86円の損失だった。
#ref(): File not found: "10.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
また、短期と長期の間隔を20秒、50秒から100秒、200秒に変更し同じ期間自動売買を行った結果、損失を421.5円減らすことができた。
#ref(): File not found: "demo2.py" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "chart.py" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "tickdeta.csv" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
demo2.pyとchart.pyを別のターミナルで同時に実行する。#ref(): File not found: "backtest.py" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "USDJPYM1.csv" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
インジケーターのパラメーター(SMAなら短期と長期の移動平均線の期間)がどの値の時に一番利益が出るのかを見つけるためのシステム。pip install backtesting上記のコードでインストールしておく。
pip install notebookインストールが完了したらターミナル上で
jupyter notebookで起動する。(終了する時は[Ctrl]+[C])
以下はシステムの流れである.
#ref(): File not found: "dataget.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "paraopt.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
#ref(): File not found: "ruleselect.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
以下は全てのプログラムが入ったファイル.
#ref(): File not found: "MT5.zip" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
PythonやMT5等のインストール方法は上記のゼミ引き継ぎ内容と同じ.
Pythonのライブラリは必要なものは少し変わっているため,自分がプログラム内で使用しているもの全てをを以下に示す.
Python標準搭載のものもあるが,インストールが必要なものもあるので各自インストールする.
以下プログラムの説明
コードの細かい説明はコード内にコメントしてあるの見てください.
tickdata.pyの流れは以下のようになっている.
tickdata.pyはバックグラウンドで常に動かしておき,データを貯め続ける.
コードの細かい説明はコード内にコメントしてあるの見てください.
各インジケーターの最適化プログラム(indi_@@@.py)の流れは以下のようになっている.
各indi_@@@.pyのプログラムはバックグラウンドで常に動かしておき,最適なパラメータを更新し続ける.
コードの細かい説明はコード内にコメントしてあるの見てください.
Backtest_rule.pyの流れは以下のようになっている.
#ref(): File not found: "L15.png" at page "11月10日 様々な指標とストラテジの評価,FX自動売買システム構築"
コードの細かい説明はコード内にコメントしてあるの見てください.
Trade.pyの流れは以下のようになっている.