- ONNXサポート
- フォーマット変換
- データ型の自動変換
- モデルの作成
- モデルの実行
- ストラテジーテスターでの実行
- OnnxCreate
- OnnxCreateFromBuffer
- OnnxRelease
- OnnxRun
- OnnxGetInputCount
- OnnxGetOutputCount
- OnnxGetInputName
- OnnxGetOutputName
- OnnxGetInputTypeInfo
- OnnxGetOutputTypeInfo
- OnnxSetInputShape
- OnnxSetOutputShape
- データ構造体
モデルの作成
ONNXフォーマットで準備が整ったモデルを取得するには、複数の方法が使用できます。人気のあるONNX Model Zooライブラリには、さまざまな種類のタスク用に事前訓練された複数のONNXモデルが含まれています。このコレクションの良いところは、各モデルのノートブックに訓練データセットへのリンクと、モデルアーキテクチャを説明する元の論文への参照が含まれていることです。
ほとんどの機械学習フレームワークはPythonを使用します。Python用のONNXランタイムをインストールするには、次のコマンドのいずれかを使用します。
pip install onnxruntime # CPU build
|
PythonでONNXランタイムを呼び出すには、次のコマンドを使用します
import onnxruntime
|
モデル入力と出力については、関連するモデルのドキュメントを確認してください。NetronやWinML Dashboardなどの視覚化ツールを使用してモデルを表示することもできます。ONNXランタイムでは、モデルのメタデータとその入力と出力をクエリすることもできます。
results = session.run(["output1", "output2"], {
|
ONNXモデルは、MetaTrader 5ターミナルで直接作成することも、Pythonを使用してMetaEditorで作成することもできます。
MetaTrader 5でのPython
MetaTrader 5は、すぐに使える Python スクリプトのサポートを備えています。これらの操作を可能にするために、ターミナルの開発者はPython用のMetaTrader 5モジュールhttps://pypi.org/project/MetaTrader5をが提供しています。
MetaEditor統合開発環境では、MQL5でアプリケーションを作成するだけでなく、エディタからPythonスクリプトを直接実行することもできます。これを行うには、MetaEditorの設定で実行可能ファイルへのパスを指定します。
Pythonがコンピュータにインストールされていない場合は、[インストール]をクリックしてインストールファイルをダウンロードしてください。
MetaEdtiorでPythonスクリプトを作成することも、ターミナルのデータフォルダーにアップロードして、F7(コンパイル)キーを使用してすぐに実行することもできます。これにより、MetaTrader 5ターミナルが開かれ、現在のチャートでスクリプトが実行されます。Pythonコンソール(stdout、stderr)からのメッセージは、エラーセクションに表示されます。
MetaTrader 5でのモデルの操作
MQL5言語を使用すると、MetaTrader 5ターミナルでONNXモデルを直接実行できます。これは3つの手順で行われます。
- Pythonなどのサードパーティプラットフォームでモデルを訓練します。
- モデルをONNXに変換します。
- ONNX関数を使用してONNXモデルをエキスパートアドバイザーに組み込み、MetaTrader 5 ターミナルで実行します。
MQL5のPython統合により、Pythonスクリプトを実行してONNXモデルをMetaEditorに保存したり、MetaTrader 5のチャート上で直接実行したりできます。事前に作成されたPythonスクリプトを使用して、ターミナルで必要なだけ何度でもモデルを訓練できます。このライブラリには、ONNXモデルに入力できる価格データを取得するための既製の関数が含まれています。
- copy_rates_from - 指定された日付から始まるバーを取得する
- copy_rates_from_pos - 指定されたインデックスから始まるバーを取得する
- copy_ticks_range - 指定された期間のバーを取得する
- copy_ticks_from - 指定された日付から始まるティックを取得する
- copy_ticks_range - 指定された期間のティックを取得する
モデルの例 #
完成したONNXモデルの例は、公開プロジェクトで入手できます。まず、MetaEditor設定でMQL5ログインを指定して(大文字と小文字を区別します)、ナビゲータで MQL5ストレージをアクティブにする必要があります。
アクティブにした後、ONNX.Price.Predictionプロジェクトを見つけて、コンテキストメニューコマンドを使用して参加します。
次に、MQL5ストレージからプロジェクトを更新します。
プロジェクトには、ONNXモデル、2つのPython スクリプト、プロジェクト操作用のMQL5スクリプト、MQL5プロジェクトファイル(ONNX.Price.Prediction.mqproj)が含まれています。
プロジェクトに含まれているPricePredictionTraining.pyスクリプトを使用して、ONNXモデルを自分で作成できます。これを行うには、まずコマンドラインから必要なモジュールをインストールする必要があります。
python.exe -m pip install --upgrade pip
|
モジュールをインストールした後、MetaEditorでPricePredictionTraining.pyスクリプトを開き、[コンパイル]ボタンまたはF7キーを使用して実行します。
Pythonスクリプトを実行する前に、MetaTrader 5ターミナルがEURUSD銘柄を使用できるサーバに接続されていることを確認してください。たとえば、MetaQuotes-Demoサーバに接続し、ターミナル設定で[Pythonとの統合]をオンにします。
ネットワークの訓練中、MetaEditorはトレーニングが完了するまでPythonスクリプトからのメッセージを出力します。
結果が100%になると、ONNXモデルの準備が完了し、<ターミナルデータディレクトリ>\MQL5\Shared Projects\ONNX.Price.Prediction\Pythonプロジェクトフォルダに保存されます。
F7を押して2番目のスクリプトPricePrediction.pyを実行すると、結果のモデルを確認できます。