📘 数学関数とは(MQL4)
MQL4 における 数学関数(Mathematical Functions) とは、
数値計算を行うために MetaTrader 4 が標準で用意している関数群 のことです。
EAやインジケータを作るときに、価格の処理やインジケータ計算でよく利用されます。
例:四捨五入、絶対値、三角関数、乱数生成など。
1️⃣ 基本的な数学関数
関数 | 説明 | 例 |
---|---|---|
MathAbs(x) | 絶対値を返す | MathAbs(-5) = 5 |
MathSqrt(x) | 平方根 | MathSqrt(9) = 3 |
MathPow(x, y) | x の y 乗 | MathPow(2, 3) = 8 |
MathExp(x) | e^x を計算 | MathExp(1) ≈ 2.718 |
MathLog(x) | 自然対数 ln(x) | MathLog(2.718) ≈ 1 |
2️⃣ 丸め処理系
関数 | 説明 | 例 |
---|---|---|
MathFloor(x) | 小数点以下切り捨て | MathFloor(3.9) = 3 |
MathCeil(x) | 小数点以下切り上げ | MathCeil(3.1) = 4 |
MathRound(x) | 四捨五入 | MathRound(3.6) = 4 |
👉 ロット計算や価格を桁に合わせるときに必須。
3️⃣ 三角関数系
(角度は ラジアン 単位)
関数 | 説明 |
---|---|
MathSin(x) | サイン(sin) |
MathCos(x) | コサイン(cos) |
MathTan(x) | タンジェント(tan) |
MathArcsin(x) | アークサイン(arcsin) |
MathArccos(x) | アークコサイン(arccos) |
MathArctan(x) | アークタンジェント(arctan) |
👉 波形のシミュレーションや周期的なインジ作成に使う。
4️⃣ その他便利な関数
関数 | 説明 |
---|---|
MathMin(x, y) | 2つの値の最小値 |
MathMax(x, y) | 2つの値の最大値 |
MathRand() | 乱数(0〜32767の整数) |
MathSrand(seed) | 乱数の種を設定 |
👉 EAで「ランダム売買」を作ったり、シミュレーション的に活用できます。
5️⃣ 使用例コード
void OnStart()
{
double price = 1.23456;
// 小数処理
Print("切り上げ: ", MathCeil(price*100)/100); // 1.24
Print("切り捨て: ", MathFloor(price*100)/100); // 1.23
Print("四捨五入: ", MathRound(price*100)/100); // 1.23
// 数学関数
Print("絶対値: ", MathAbs(-10)); // 10
Print("平方根: ", MathSqrt(16)); // 4
Print("累乗: ", MathPow(2, 5)); // 32
Print("サイン: ", MathSin(3.14159/2)); // ≈1.0
// 乱数
MathSrand(TimeLocal()); // 種をセット
Print("乱数: ", MathRand());
}
✅ まとめ
- 数学関数=MQL4が提供する数値計算用の組み込み関数
- 主なカテゴリは
① 基本(絶対値・平方根・累乗など)
② 丸め(切り上げ/切り捨て/四捨五入)
③ 三角関数(sin, cos, tan など)
④ その他(最大値/最小値/乱数生成) - EAやインジでは 価格の計算・ロット調整・インジケータの内部処理 に欠かせない
コメント