― EA開発・機械学習・統計処理の強い味方をわかりやすく解説 ―
MetaTrader5(MQL5)には、最初から高性能な数学・統計ライブラリ「ALGLIB」 が入っています。
しかも「インクルードするだけ」でプロ級の数値計算ができるため、
機械学習EAや統計EAを作る人にとっては必要不可欠な存在です。
この記事では、難しい説明をできるだけ省き、初心者でも理解できる言葉で ALGLIB の重要ポイント をまとめます。

MQL5言語でどれくらい機械学習ができるか調査してみたよ(‘Д’)
1. ALGLIB は「MQL5版の巨大な数学セット」
MQL5 の Math\Alglib\ フォルダには、
線形代数(行列計算)・最適化(パラメータ調整)・FFT・統計・機械学習 など
EAを作る上でほぼ全部そろったツールが入っています。
例えるなら…
ALGLIB = “数学とデータ分析のスイスアーミーナイフ”
必要な機能を1つずつ使えば、
PythonやC++でないと難しい処理も MQL5だけで完結 できます。
2. ALGLIB の中心ファイル(心臓部)
■ alglibinternal.mqh
ALGLIB 全体の「土台」。
どの機能を計算できるか(線形代数、統計、FFTなど)がここにまとまっています。
※ 料理で例えるなら「キッチンそのもの」。
3. 基本インフラ(よく使う下支え部分)
■ alglib.mqh
MQL5 から ALGLIB を簡単に使えるようにまとめた「総合API」。CAlglib クラスを通して多くの関数を呼び出します。
■ ap.mqh
配列の便利処理(サイズ変更、安全なアクセスなど)をまとめた部分。
■ matrix.mqh
行列(2次元の数字の表)のクラス。
線形代数や機械学習では必須。
■ arrayresize.mqh
テンプレート版 ArrayResize。サイズ調整を安全にするツール。
■ delegatefunctions.mqh
「関数を渡すための仕組み」。
最適化や微分方程式で使う「コールバック関数」を作るために使います。
4. 線形代数(行列・ベクトル計算)
EAでフィルターを作ったり機械学習の重み計算をするときに必要。
■ linalg.mqh
Cholesky 分解(行列をバラして高速計算する技法)
SVD(機械学習の次元圧縮などで使われる)
Sparse 行列(スカスカの行列)対応
Python の NumPy 並みのことが MQL5 でできます。
5. FFT(高速フーリエ変換)
■ fasttransforms.mqh
周波数成分を調べるときに使います。
EAでよくある用途:
ボラティリティの周期性を分析
ノイズを除去
チャートの波形解析
FFTプランを再利用するので速度も速い。
6. 数値積分・微分方程式
■ integration.mqh
厳密に積分できない式を「数値的に」計算してくれる部分。
Gauss-Legendre など専門的な方法が使えます。
■ diffequations.mqh
「常微分方程式」を解くツール。
機械学習EAでシグナルの平滑化やモデルの内部計算にも使えます。
7. 特殊関数・統計解析
■ specialfunctions.mqh
ガンマ関数
対数ガンマ
不完全ガンマ
カイ二乗 CDF
金融で必要な統計検定や分布計算がそのまま使えます。
■ statistics.mqh
相関係数(ピアソン)
t検定
Welch検定
有意性検定
EAの「学習結果レポート」に役立ちます。
8. 最適化(パラメータ調整)
EA開発でとても重要。
■ optimization.mqh
L-BFGS(高速なパラメータ最適化)
制約付き最適化
LM法(Levenberg-Marquardt)
複雑な関数の「最適な値」を探す時に使います。
■ solvers.mqh
連立方程式・非線形方程式を解くソルバ。
「NeedF」「NeedJ」など関数の種類によって呼ばれ方が変わります。
9. データ分析・機械学習
AI系EAを作る人はここが一番重要。
● ランダムフォレスト
dataanalysis.mqh の CDecisionForestBuilder
MQL5本体にランダムフォレストが入っていることに驚く人も多いです。
特徴量のサブサンプリング
Gini / OOB / Permutation重要度
決定木の本数調整
Python の scikit-learn みたいなことができます。
● K-means(クラスタリング)
CKMeans
k-means++ 初期化
距離計算の高速化
価格の似た動きをまとめたり、相場の状態を分類する用途で便利。
● 多クラスロジット(分類)
CLogit
複数クラス分類(上昇・下降・横ばいなど)に使えます。
● 多層パーセプトロン(MLP)
CMLPBase
MLPCreate
前処理
パラメータ抽出
ONNX化には向かないですが、MQL内で軽いNNを作ることができます。
● スプライン補間
CSpline1D / LogisticFit4
価格データを滑らかにしたい時に使えます。
ロジスティック曲線フィットも可能。
10. 実際の使い方の流れ
ALGLIBはどの機能もだいたい共通した流れで使えます。1. 状態(オブジェクト)を作る
2. パラメータを設定する
3. Iterate / Run で計算してもらう 4. 結果を取得する
PythonでもC++でもおなじみの手順なので、MQL5でも迷いません。
11. まとめ
ALGLIB は以下の “古典的” 機械学習はできます:
- ロジスティック回帰
- 多クラスロジット
- 決定木
- ランダムフォレスト
- k-means
- スプライン補間
- MLP(小規模な多層パーセプトロン、三層ニューラルネットワーク)
しかし…
- LSTM・GRU・Transformer などの深層学習
- 勾配ブースティング(GBDT)系モデル
は ALGLIB 内には存在しません。

個人的にはMLPとランダムフォレストができればかなり十分!
これだけの機能が最初から入っている言語は非常に珍しく、
MQL5は実は“科学計算が強いトレード言語” でもあります。
EA開発やAIトレードをするなら、このライブラリを知っておくことで
Pythonなしでも高レベルな分析や最適化が可能になります。