11月10日 様々な指標とストラテジの評価,FX自動売買システム構築
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[専門ゼミ 榊原]]
*目次 [#e890b3d5]
#CONTENTS
**[[売買ルールの基礎知識]] [#o4c5ab32]
**1. 目標 [#i67428c5]
FXのTick情報を収集し、データを用いてテクニカル分析を行い...
**2. 【Windows】pythonのパッケージとMT5のインストール[#kb...
-MacはMT5が対応していないため、Windowsで作業を行う。~
(以下のサイトのようにしてMacでもできないことはないが、Win...
参考サイト[[Mac OSでのプラットフォームのインストール:http...
以下のサイトを参考にして行った。~
参考サイト[[第九回 MT5とPythonを連携してみよう!:https://...
pythonは予めインストールされているものとする。~
また、プログラムの見やすさや、実行のしやすさにおいて、vis...
(うまくPythonがインストールできない事例があったのでイン...
リンク先確認:[[Pythonのインストール方法(Windows)]]~
ubuntuの場合,pipが初期でインストールされていない?からイ...
sudo apt install python3-pip
でインストール.
Win10ではコマンドプロンプトを起動し、必要なライブラリをイ...
インストールの仕方はコマンドプロンプトで~
pip install MetaTrader5
のように入力してインストールする。
今回インストールが必要なのは、
-MetaTrader5
-pytz
-pandas
-numpy
-(mplfinance)
(インジケータの計算に利用するTA-Libはインストールの仕方が...
その後以下のサイトからMT5をインストールする。~
※ここでのMT5は前述したpip install MetaTrader5のMT5とは名...
下記のリンクでインストールするものはアプリ~
[[MetaTrader 5をダウンロードしましょう:https://www.metatr...
MT5での最低取引量は0.01lot(10000通貨)なので残高は大体10...
MT5の左上のファイル→デモ口座を開くから残高を増やすことが...
**3. TA-Libのインストール [#hde192be]
参考サイト[[Windows環境のPythonでTA-Libを使えるようにする...
+環境の確認
まず、使っているパソコンが何ビットなのを確認する。~
「スタート」→「コントロールパネル」→「システムとセキュリ...
ここに書いてある「システムの種類」が32ビットなのか64ビッ...
次に、使っているpythonのバージョンを確認する。コマンドプ...
python -V
と入力するとpythonのバージョンが確認できる。~
~
+ダウンロード
コンパイル済みのTA-Libをダウンロードします。~
[[Unofficial Windows Binaries for Python Extension Packag...
上記のURLの中に「TA-Lib」があるので探す。
TA-Libにもいろんなバージョンがあり、その中で自分の環境に...
TA_Lib‑0.4.17‑cp36‑cp36m‑win_amd64.whl
これをダウンロードする。「win_amd64」がパソコンのビット数...
その後、ダウンロードファイルを、さきほどコマンドプロンプ...
~
+インストール
ダウンロードしたので、インストールする。コマンドプロンプ...
python -m pip install TA_Lib‑0.4.17‑cp36‑cp36m‑win_amd64...
と打ち込む。(TA_Lib以下を自分がインストールしたものに書き...
Successfully installed ~~~
と表示されたら完了。
**4. MT5で自動取引を行う~準備~ [#ma1025ac]
注意点として、口座番号は上記で作ったXMの口座IDである。
今回使うファイルは5つあり、一つ目がpythonのファイルで、残...
[pythonのファイル]~
#ref(MetaTrader5とPythonによる自動売買/demo.py)
[MT5のファイル]
#ref(MetaTrader5とPythonによる自動売買/initmql4.mqh)
#ref(MetaTrader5とPythonによる自動売買/stdlib.mqh)
#ref(MetaTrader5とPythonによる自動売買/stderror.mqh)
#ref(MetaTrader5とPythonによる自動売買/Trade.csv)
#ref(MetaTrader5とPythonによる自動売買/TradeAI.mq5)
#ref(MetaTrader5とPythonによる自動売買/MQL5.zip)
MT5用のファイルの置き場所を下記に示す
まず、MT5を起動し、左上のファイルからデータフォルダを開く...
#ref(MetaTrader5とPythonによる自動売買/1.png,,30%)
そのあと、開いたフォルダの
MQL5→includeにinitmq4.mqh、stdlib.mqh、stderror.mqhの三つ...
MQL5→scriptsにTradeAI.mq5を入れる。
MQL5→FilesにTrade.csvを入れる。
demo.pyの場所は任意で大丈夫。
これでファイルの配置は終了。
次に、TradeAI.mq5のコンパイルを行う。
以下の画像に従う。
#ref(MetaTrader5とPythonによる自動売買/2.png,,30%)
#ref(MetaTrader5とPythonによる自動売買/3.png,,30%)
これでファイルのコンパイルは終了
次にUSDJPYのチャートを表示する
#ref(MetaTrader5とPythonによる自動売買/11.png,,30%)
次にTradeAIをUSDJPYに入れる。
※もし、ウィンドウが出てきたらで自動売買の許可にチェックを...
#ref(MetaTrader5とPythonによる自動売買/12.png,,30%)
その後、上のタブからツール→オプションで下記の画像の箇所に...
#ref(MetaTrader5とPythonによる自動売買/5.png,,30%)
これでMT5の設定は終わり。
次にpythonのdemo.pyをテキストエディタなどで開き、Trade.cs...
下記の画像の場所を自分に合ったディレクトリに変更する。~
#ref(MetaTrader5とPythonによる自動売買/pathchange2.png,,3...
**5. MT5で自動取引を行う~プログラムの説明~ [#ma1025ac]
demo.pyのコード内でできる限りコメントアウトしてるので、そ...
**6. MT5で自動取引を行う~実行~ [#ma1025ac]
MT5を起動した状態でdemo.pyをコマンドプロンプトから実行す...
上記写真で用いている、Visual Studio Codeで実行する場合右...
売買の時の音が気になる場合は、MT5画面上のツールタブ→オプ...
実際に動作している状態の画像を下記に載せる。
#ref(MetaTrader5とPythonによる自動売買/7.png,,30%)
#ref(MetaTrader5とPythonによる自動売買/8.png,,30%)
Ctrl+T上記写真の赤線で囲われた取引履歴などを見るツールボ...
**7. MT5で自動取引を行う~結果~ [#ma1025ac]
*** 【単純移動平均ゴールデンクロスの実行結果】 [#b993d560]
#ref(MetaTrader5とPythonによる自動売買/9.png,,30%)
2020/1/8の1:00~2020/1/8の16:00の間動かした結果
525.86円の損失だった。
#ref(MetaTrader5とPythonによる自動売買/10.png,,30%)
また、短期と長期の間隔を20秒、50秒から100秒、200秒に変更...
**8. 2020/11/04追加分 [#j4e6a7d5]
-取得した分足データからローソク足グラフを作成
#ref(MetaTrader5とPythonによる自動売買/demo2.py)
#ref(MetaTrader5とPythonによる自動売買/chart.py)
#ref(MetaTrader5とPythonによる自動売買/tickdeta.csv)
demo2.pyとchart.pyを別のターミナルで同時に実行する。~
demo2.pyはdemo.pyとほぼ変わらないが、分足データにリサンプ...
66行目の~
chart.pyでtickdeta.pyから分足データを読み込み描画する。~
(描画をリアルタイムで更新するためにはpause関数で一定時間...
-インジケーターのパラメーター最適化のためのバックテスト
#ref(MetaTrader5とPythonによる自動売買/backtest.py)
#ref(MetaTrader5とPythonによる自動売買/USDJPYM1.csv)
インジケーターのパラメーター(SMAなら短期と長期の移動平均...
pythonのライブラリにバックテストに使えるbacktesting.pyが...
pip install backtesting
上記のコードでインストールしておく。~
自分はjupyter notebook上で動かしていたのでその方法で説明...
--jupyter notebookのインストール~
参考サイト[[Jupyter Notebookのインストール:https://www.ja...
pipでインストールする。~
pip install notebook
インストールが完了したらターミナル上で
jupyter notebook
で起動する。(終了する時は[Ctrl]+[C])~
*大谷卒業研究 [#u1b391ed]
以下はシステムの流れである.
+MT5からTickデータを取得,指定した時間足ごとにリサンプリ...
#ref(MetaTrader5とPythonによる自動売買/dataget.png,,75%)
+csvファイルから時間足データを取得し,15個のインジケータ...
#ref(MetaTrader5とPythonによる自動売買/paraopt.png,,75%)
+全てのパラメータにおける最適な値をファイルから取得,その...
直交表と評価指標を回帰分析しそれぞれのインジケーターの主...
全ての評価値を用いて最適なルールの組み合わせを選択する.
#ref(MetaTrader5とPythonによる自動売買/ruleselect.png,,75%)
+最適なルールの組み合わせで実際に売買を行う.
以下は全てのプログラムが入ったファイル.
#ref(MetaTrader5とPythonによる自動売買/MT5.zip,,75%)
**1.データ取得 [#jeacb785]
PythonやMT5等のインストール方法は上記のゼミ引き継ぎ内容と...
Pythonのライブラリは必要なものは少し変わっているため,自...
-MetaTrader5
-datetime
-time
-pandas
-numpy
-mplfinance
-talib
-backtesting
-re
-warnings
-scikit-learn
Python標準搭載のものもあるが,インストールが必要なものも...
以下プログラムの説明
----
コードの細かい説明はコード内にコメントしてあるの見てくだ...
~
tickdata.pyの流れは以下のようになっている.
+MT5からTickデータを取得し,Tickデータに付随している時間...
+指定秒足(10S,30S,1M,5M,30M,4H)でリサンプリングしtic...
+tick_10s〜4hをcsvファイルに保存(インジケータの数だけ同じ...
tickdata.pyはバックグラウンドで常に動かしておき,データを...
**2.パラメータの最適化 [#lcddfb22]
コードの細かい説明はコード内にコメントしてあるの見てくだ...
~
各インジケーターの最適化プログラム(indi_@@@.py)の流れは以...
+それぞれのインジケーターの名前が入ったcsvファイル(OHLCV_...
+Backtesting.pyをもちいてそれぞれのインジケーターの計算に...
+最適化したときのパラメータの結果をcsvファイル(para_@@@.c...
各indi_@@@.pyのプログラムはバックグラウンドで常に動かして...
**3.最適なルール選択 [#e0e6c41f]
コードの細かい説明はコード内にコメントしてあるの見てくだ...
~
Backtest_rule.pyの流れは以下のようになっている.
+それぞれのインジケーターの最適なパラメータの結果をcsvフ...
+L15直交表をもちいて16通りのルールを作成(1なら使用,0なら...
#ref(MetaTrader5とPythonによる自動売買/L15.png,,50%)
+16個のルールでバックテストを行い,その結果得られた評価指...
+直交表と評価指標のデータフレームで回帰分析を行い,インジ...
+2^15個全ての組み合わせの直交表を作成,その直交表と主効果...
+最適な組み合わせを選択し,そのときのデータフレームのinde...
**4.トレード [#m766b80d]
コードの細かい説明はコード内にコメントしてあるの見てくだ...
~
Trade.pyの流れは以下のようになっている.
+それぞれのインジケーターの最適なパラメータの結果をcsvフ...
+最適なパラメータの結果をもちいてそれぞれのインジケーター...
+取得した最適な組み合わせの値(10進数)を15桁の2進数に変...
+rule[0]〜rule[14]それぞれの中身が1のとき,それに対応した...
終了行:
[[専門ゼミ 榊原]]
*目次 [#e890b3d5]
#CONTENTS
**[[売買ルールの基礎知識]] [#o4c5ab32]
**1. 目標 [#i67428c5]
FXのTick情報を収集し、データを用いてテクニカル分析を行い...
**2. 【Windows】pythonのパッケージとMT5のインストール[#kb...
-MacはMT5が対応していないため、Windowsで作業を行う。~
(以下のサイトのようにしてMacでもできないことはないが、Win...
参考サイト[[Mac OSでのプラットフォームのインストール:http...
以下のサイトを参考にして行った。~
参考サイト[[第九回 MT5とPythonを連携してみよう!:https://...
pythonは予めインストールされているものとする。~
また、プログラムの見やすさや、実行のしやすさにおいて、vis...
(うまくPythonがインストールできない事例があったのでイン...
リンク先確認:[[Pythonのインストール方法(Windows)]]~
ubuntuの場合,pipが初期でインストールされていない?からイ...
sudo apt install python3-pip
でインストール.
Win10ではコマンドプロンプトを起動し、必要なライブラリをイ...
インストールの仕方はコマンドプロンプトで~
pip install MetaTrader5
のように入力してインストールする。
今回インストールが必要なのは、
-MetaTrader5
-pytz
-pandas
-numpy
-(mplfinance)
(インジケータの計算に利用するTA-Libはインストールの仕方が...
その後以下のサイトからMT5をインストールする。~
※ここでのMT5は前述したpip install MetaTrader5のMT5とは名...
下記のリンクでインストールするものはアプリ~
[[MetaTrader 5をダウンロードしましょう:https://www.metatr...
MT5での最低取引量は0.01lot(10000通貨)なので残高は大体10...
MT5の左上のファイル→デモ口座を開くから残高を増やすことが...
**3. TA-Libのインストール [#hde192be]
参考サイト[[Windows環境のPythonでTA-Libを使えるようにする...
+環境の確認
まず、使っているパソコンが何ビットなのを確認する。~
「スタート」→「コントロールパネル」→「システムとセキュリ...
ここに書いてある「システムの種類」が32ビットなのか64ビッ...
次に、使っているpythonのバージョンを確認する。コマンドプ...
python -V
と入力するとpythonのバージョンが確認できる。~
~
+ダウンロード
コンパイル済みのTA-Libをダウンロードします。~
[[Unofficial Windows Binaries for Python Extension Packag...
上記のURLの中に「TA-Lib」があるので探す。
TA-Libにもいろんなバージョンがあり、その中で自分の環境に...
TA_Lib‑0.4.17‑cp36‑cp36m‑win_amd64.whl
これをダウンロードする。「win_amd64」がパソコンのビット数...
その後、ダウンロードファイルを、さきほどコマンドプロンプ...
~
+インストール
ダウンロードしたので、インストールする。コマンドプロンプ...
python -m pip install TA_Lib‑0.4.17‑cp36‑cp36m‑win_amd64...
と打ち込む。(TA_Lib以下を自分がインストールしたものに書き...
Successfully installed ~~~
と表示されたら完了。
**4. MT5で自動取引を行う~準備~ [#ma1025ac]
注意点として、口座番号は上記で作ったXMの口座IDである。
今回使うファイルは5つあり、一つ目がpythonのファイルで、残...
[pythonのファイル]~
#ref(MetaTrader5とPythonによる自動売買/demo.py)
[MT5のファイル]
#ref(MetaTrader5とPythonによる自動売買/initmql4.mqh)
#ref(MetaTrader5とPythonによる自動売買/stdlib.mqh)
#ref(MetaTrader5とPythonによる自動売買/stderror.mqh)
#ref(MetaTrader5とPythonによる自動売買/Trade.csv)
#ref(MetaTrader5とPythonによる自動売買/TradeAI.mq5)
#ref(MetaTrader5とPythonによる自動売買/MQL5.zip)
MT5用のファイルの置き場所を下記に示す
まず、MT5を起動し、左上のファイルからデータフォルダを開く...
#ref(MetaTrader5とPythonによる自動売買/1.png,,30%)
そのあと、開いたフォルダの
MQL5→includeにinitmq4.mqh、stdlib.mqh、stderror.mqhの三つ...
MQL5→scriptsにTradeAI.mq5を入れる。
MQL5→FilesにTrade.csvを入れる。
demo.pyの場所は任意で大丈夫。
これでファイルの配置は終了。
次に、TradeAI.mq5のコンパイルを行う。
以下の画像に従う。
#ref(MetaTrader5とPythonによる自動売買/2.png,,30%)
#ref(MetaTrader5とPythonによる自動売買/3.png,,30%)
これでファイルのコンパイルは終了
次にUSDJPYのチャートを表示する
#ref(MetaTrader5とPythonによる自動売買/11.png,,30%)
次にTradeAIをUSDJPYに入れる。
※もし、ウィンドウが出てきたらで自動売買の許可にチェックを...
#ref(MetaTrader5とPythonによる自動売買/12.png,,30%)
その後、上のタブからツール→オプションで下記の画像の箇所に...
#ref(MetaTrader5とPythonによる自動売買/5.png,,30%)
これでMT5の設定は終わり。
次にpythonのdemo.pyをテキストエディタなどで開き、Trade.cs...
下記の画像の場所を自分に合ったディレクトリに変更する。~
#ref(MetaTrader5とPythonによる自動売買/pathchange2.png,,3...
**5. MT5で自動取引を行う~プログラムの説明~ [#ma1025ac]
demo.pyのコード内でできる限りコメントアウトしてるので、そ...
**6. MT5で自動取引を行う~実行~ [#ma1025ac]
MT5を起動した状態でdemo.pyをコマンドプロンプトから実行す...
上記写真で用いている、Visual Studio Codeで実行する場合右...
売買の時の音が気になる場合は、MT5画面上のツールタブ→オプ...
実際に動作している状態の画像を下記に載せる。
#ref(MetaTrader5とPythonによる自動売買/7.png,,30%)
#ref(MetaTrader5とPythonによる自動売買/8.png,,30%)
Ctrl+T上記写真の赤線で囲われた取引履歴などを見るツールボ...
**7. MT5で自動取引を行う~結果~ [#ma1025ac]
*** 【単純移動平均ゴールデンクロスの実行結果】 [#b993d560]
#ref(MetaTrader5とPythonによる自動売買/9.png,,30%)
2020/1/8の1:00~2020/1/8の16:00の間動かした結果
525.86円の損失だった。
#ref(MetaTrader5とPythonによる自動売買/10.png,,30%)
また、短期と長期の間隔を20秒、50秒から100秒、200秒に変更...
**8. 2020/11/04追加分 [#j4e6a7d5]
-取得した分足データからローソク足グラフを作成
#ref(MetaTrader5とPythonによる自動売買/demo2.py)
#ref(MetaTrader5とPythonによる自動売買/chart.py)
#ref(MetaTrader5とPythonによる自動売買/tickdeta.csv)
demo2.pyとchart.pyを別のターミナルで同時に実行する。~
demo2.pyはdemo.pyとほぼ変わらないが、分足データにリサンプ...
66行目の~
chart.pyでtickdeta.pyから分足データを読み込み描画する。~
(描画をリアルタイムで更新するためにはpause関数で一定時間...
-インジケーターのパラメーター最適化のためのバックテスト
#ref(MetaTrader5とPythonによる自動売買/backtest.py)
#ref(MetaTrader5とPythonによる自動売買/USDJPYM1.csv)
インジケーターのパラメーター(SMAなら短期と長期の移動平均...
pythonのライブラリにバックテストに使えるbacktesting.pyが...
pip install backtesting
上記のコードでインストールしておく。~
自分はjupyter notebook上で動かしていたのでその方法で説明...
--jupyter notebookのインストール~
参考サイト[[Jupyter Notebookのインストール:https://www.ja...
pipでインストールする。~
pip install notebook
インストールが完了したらターミナル上で
jupyter notebook
で起動する。(終了する時は[Ctrl]+[C])~
*大谷卒業研究 [#u1b391ed]
以下はシステムの流れである.
+MT5からTickデータを取得,指定した時間足ごとにリサンプリ...
#ref(MetaTrader5とPythonによる自動売買/dataget.png,,75%)
+csvファイルから時間足データを取得し,15個のインジケータ...
#ref(MetaTrader5とPythonによる自動売買/paraopt.png,,75%)
+全てのパラメータにおける最適な値をファイルから取得,その...
直交表と評価指標を回帰分析しそれぞれのインジケーターの主...
全ての評価値を用いて最適なルールの組み合わせを選択する.
#ref(MetaTrader5とPythonによる自動売買/ruleselect.png,,75%)
+最適なルールの組み合わせで実際に売買を行う.
以下は全てのプログラムが入ったファイル.
#ref(MetaTrader5とPythonによる自動売買/MT5.zip,,75%)
**1.データ取得 [#jeacb785]
PythonやMT5等のインストール方法は上記のゼミ引き継ぎ内容と...
Pythonのライブラリは必要なものは少し変わっているため,自...
-MetaTrader5
-datetime
-time
-pandas
-numpy
-mplfinance
-talib
-backtesting
-re
-warnings
-scikit-learn
Python標準搭載のものもあるが,インストールが必要なものも...
以下プログラムの説明
----
コードの細かい説明はコード内にコメントしてあるの見てくだ...
~
tickdata.pyの流れは以下のようになっている.
+MT5からTickデータを取得し,Tickデータに付随している時間...
+指定秒足(10S,30S,1M,5M,30M,4H)でリサンプリングしtic...
+tick_10s〜4hをcsvファイルに保存(インジケータの数だけ同じ...
tickdata.pyはバックグラウンドで常に動かしておき,データを...
**2.パラメータの最適化 [#lcddfb22]
コードの細かい説明はコード内にコメントしてあるの見てくだ...
~
各インジケーターの最適化プログラム(indi_@@@.py)の流れは以...
+それぞれのインジケーターの名前が入ったcsvファイル(OHLCV_...
+Backtesting.pyをもちいてそれぞれのインジケーターの計算に...
+最適化したときのパラメータの結果をcsvファイル(para_@@@.c...
各indi_@@@.pyのプログラムはバックグラウンドで常に動かして...
**3.最適なルール選択 [#e0e6c41f]
コードの細かい説明はコード内にコメントしてあるの見てくだ...
~
Backtest_rule.pyの流れは以下のようになっている.
+それぞれのインジケーターの最適なパラメータの結果をcsvフ...
+L15直交表をもちいて16通りのルールを作成(1なら使用,0なら...
#ref(MetaTrader5とPythonによる自動売買/L15.png,,50%)
+16個のルールでバックテストを行い,その結果得られた評価指...
+直交表と評価指標のデータフレームで回帰分析を行い,インジ...
+2^15個全ての組み合わせの直交表を作成,その直交表と主効果...
+最適な組み合わせを選択し,そのときのデータフレームのinde...
**4.トレード [#m766b80d]
コードの細かい説明はコード内にコメントしてあるの見てくだ...
~
Trade.pyの流れは以下のようになっている.
+それぞれのインジケーターの最適なパラメータの結果をcsvフ...
+最適なパラメータの結果をもちいてそれぞれのインジケーター...
+取得した最適な組み合わせの値(10進数)を15桁の2進数に変...
+rule[0]〜rule[14]それぞれの中身が1のとき,それに対応した...
ページ名: