この投稿文は次の言語で読めます: 日本語
暫く多忙でしたので、MT5を開くこともなく自動売買だけ稼働させている状態でしたが、
先月6/12に MT5の最新版がリリースされていましたので、個人的に興味を惹かれたところをピックアップしておきます。
リリースノートはこちら。
Pythonから MT5へアクセス
ずっと欲しかったやつです!!!
従来まで、PythonからMT4/MT5を操作するようなスクリプトを書いていましたが、
シンプルに MT5をコマンドラインから起動しつつ
→前処理:与えるパラメータを制御するためのファイル操作
→後処理:バックテスト実行結果の集計、DB連携
のような役割でのみ、使用していましたが、
python向けのライブラリが整理された事によって、従来よりも更に親和性高く連携が出来るようになりそうです。
こちらの記事が参考になったのですが、
pythonからmt5のパッケージを介してレート情報を取得し、
python上でデータ処理やビジュアル化を行ったり、
python側で計算した結果をソケット通信を介してmt5側に戻しラインを引くようなことも出来るみたいです。
pythonはデータ処理を楽に、かつ柔軟に行うための多くのパッケージが揃っているので、
書きづらいMQLを頑張るよりはよほど生産性高くやりたいことを実現できるようになると思います。
素直に嬉しいアップグレードです。
MT5InitializeはMetaTrader 5ターミナルとの接続を確立します。
MT5ShutdownはMetaTrader 5ターミナルへの以前に確立された接続を閉じます。
MT5TerminalInfoは接続されたMetaTrader 5ターミナルのステータスとパラメータを受信します。
MT5VersionはMetaTrader 5ターミナルバージョンを戻します。
MT5WaitForTerminalはMetaTrader 5ターミナルが取引サーバーに接続するまで待ちます。
MT5CopyRatesFromは指定した日付から開始してMetaTrader 5ターミナルからバーを受信します。
MT5CopyRatesFromPosは指定したインデックスから開始してMetaTrader 5ターミナルからバーを受信します。
MT5CopyRatesRangeは指定した期間のバーをMetaTrader 5ターミナルから受信します。
MT5CopyTicksFromは指定した日付から開始してMetaTrader 5ターミナルからティックを受信します。
MT5CopyTicksRangeは指定した期間のティックをMetaTrader 5ターミナルから受信します。
使用可能な関数の内、すぐに役に立ちそうなのはレート情報取得でしょうかね。
レートさえ取得できれば様々な指標や判定処理が行えます。
今後、ポジション操作も出来るようになれば、大体のことがPython 1言語出来てしまいそうな気もする・・・
MQLもそれなりに書いてきましたが、未だにバッファの配列の概念がしっくりこないときもあり、
慣れ親しんだPythonで一通りの売買処理まで書けてしまったら最高なんですけどね。
今後のさらなる機能追加に期待です。
ストラテジーテスターの改善と最適化
最適化を実行する際、特定プロセスの処理が遅いと、それが終わるまで全プロセスが待機するような局面がありましたが、
再配分が出来るようになったことで、遅いプロセスを掴んでしまったとしても再配分し、待ち時間をより短縮できるようになったようです。
テスト中の入出金処理
これは真面目に欲しかった機能です!
現在公開中のEAにおいても、 年次で確定申告を行うための出金や、
そもそも初期投資費用の安全性を守るために一定条件で出金していった場合の売買結果がどうなるのか?等、
従来はライブで確認していくしかなかったような対応も、今後はバックテストで事前確認出来るようになります。
より安定的な運用フローをテストの段階で見定めて置けるようになるのは本当にありがたいです。
まとめ
相変わらず、MT4の機能追加はなくMT5のみバージョンが上がっていきます。
出来ることの差が日に日に広がるなかで、日本の証券会社はMT4しか使えないのは不利な環境になっているため、
ゼロカット等の安全性も考慮すると、初回手続が若干面倒でも海外FXの口座を用意し、MT5で運用するのが良いように思いました。