TL;DR
- ONNXはオープンソース形式で、学習済みMLモデルをMT5で直接実行可能——外部サーバー不要。
- MetaTrader 5はビルド3600+からONNX Runtimeをネイティブサポート。
- .onnxファイルがないEAは本物のMLではありません。
- Karat Killerは4つのONNXモデルのアンサンブルでXAUUSD取引を行います。
ONNXとは?(トレーダーが注目すべき理由)
ONNX(Open Neural Network Exchange)は機械学習モデルのオープンソース形式です。Pythonでモデルを訓練し、.onnx形式にエクスポートすれば、どこでも実行できます。
MetaTrader 5はONNX Runtimeをネイティブサポートしています。外部サーバー、API呼び出し、インターネット接続なしでEA内でMLモデルを実行できます。
ONNX以前は、MT5でのML実行はハードコード、外部サーバー、DLLインポートに限られていました。ONNXはC++速度でネイティブ実行を実現。Microsoft、Meta、Amazonが支援する業界標準です。
ONNXのMetaTrader 5での動作原理
ビルド3600+からのネイティブサポート:
- 訓練:Pythonでモデルを訓練
- エクスポート:.onnx形式に変換
- 埋め込み:MQL5 EAにリソースとして埋め込む
- 実行:
OnnxCreate()、OnnxRun()、OnnxRelease()で実行
推論速度:1ミリ秒未満。ティックごとの分析に十分な速度です。
ONNXがEA開発を革新する理由
- フレームワーク非依存:XGBoost、LightGBM、PyTorch全てが同じ.onnx形式
- 外部依存なし:MT5プロセス内で実行
- ストラテジーテスター完全互換:10年以上のティックデータでバックテスト可能
- コード変更なしでモデル更新:.onnxファイルを差し替えるだけ
- マルチモデルアーキテクチャ:複数ONNXモデルの同時実行
ONNX訓練ワークフロー(ステップバイステップ)
ステップ1:特徴量エンジニアリング——生データを意味のある特徴量に変換。作業の80%はここ。
ステップ2:訓練と検証——ウォークフォワード検証が標準。時系列のランダム分割は厳禁。詳細はML EA:誇大広告vs現実。
ステップ3:ONNXエクスポート——onnxmltoolsで変換。100KB〜5MB。
ステップ4:MQL5統合——リソース埋め込み、OnInit()でロード、OnTick()で予測。
ステップ5:ストラテジーテスター検証——サンプル外期間を含む完全バックテスト。
アンサンブルモデル:なぜ1つのONNXでは不十分か
競争的MLでは、単一モデルはめったに勝ちません。アンサンブルは一貫して優れています。
- XGBoost——非線形関係
- LightGBM——速度と高次元効率
- CatBoost——過学習耐性
- ニューラルネットワーク——複雑な時間パターン
Karat Killer EAは4つのONNXモデルでXAUUSD取引。コンセンサスでのみ取引実行。バックテスト:10年で+7,229%。
ONNX vs MT5の他のAIアプローチ
| アプローチ | 長所 | 短所 | 最適用途 |
|---|---|---|---|
| ONNX Runtime | ネイティブ、高速、バックテスト可能 | ML専門知識が必要 | 本番ML EA |
| 外部API | Python完全対応 | 遅延、信頼性 | 研究 |
| ハードコード | シンプル | 脆弱、限定的 | 単純モデルのみ |
| DLL | 完全な柔軟性 | セキュリティ、MQL5マーケット不可 | 機関システム |
| 「AI」ラベルのみ | マーケティング容易 | 本物のAIではない | マーケティング |
BLODSALGOのONNX活用(実際のアーキテクチャ)
Karat Killer——4モデルXAUUSDアンサンブル:
- XGBoost、LightGBM、CatBoost、ディープニューラルネットワーク
- 60以上のエンジニアリング特徴量
- コンセンサスシステム
- バックテスト:+7,229%
Stability Killer AI——AUDCAD ML:最大ドローダウン4.08%、実績+15.6%。XAUUSDのAIとMLもご覧ください。
自分のEAでONNXを始める
必要条件:Python 3.8+、MT5ビルド3600+、ML基礎知識、5年以上のデータ。
最小コード例:
int handle = OnnxCreate("model.onnx", 0);OnnxSetInputShape(handle, 0, input_shape);OnnxRun(handle, 0, features, prediction);OnnxRelease(handle);
注意点:特徴量の不一致、テンソル形状エラー、過学習、正規化の違い。MetaQuotes ONNX文書を参照。
アルゴリズム取引におけるONNXの未来
MT5でのONNX採用はまだ初期段階。今後の展望:Transformerモデル、強化学習、より大きな特徴セット、自動再訓練。
ONNXの理解はEA評価の実用的スキルです。.onnxファイルを確認し、訓練方法論を質問しましょう。
FAQ:MetaTrader 5のONNXモデル
- どのMT5バージョンがONNXをサポート?
- ビルド3600+から。
- ONNXはEAを遅くする?
- 最小限。予測あたり1ms未満。4モデルアンサンブルでもティックあたり2-3ms。
- ストラテジーテスターで使える?
- はい——ネイティブ対応。最大の利点の一つ。
- どのフレームワークがONNXにエクスポート可能?
- scikit-learn、XGBoost、LightGBM、CatBoost、PyTorch、TensorFlow等。
- EAが本当にONNXを使っているか確認する方法は?
- MetaEditorでResourcesタブを確認。.onnxなし=MLなし。
- VPSで動作する?
- はい。MT5プロセス内で実行、あらゆるシステムに対応。
Risk Disclaimer: Trading foreign exchange, gold (XAUUSD), and other financial instruments involves significant risk of loss and is not suitable for all investors. The information in this article is for educational purposes only and does not constitute financial advice. Past performance of any Expert Advisor does not guarantee future results. Always test strategies on a demo account before trading with real capital, and never risk money you cannot afford to lose.