数学関数

MathAbs

この関数は、指定された数値の絶対値(係数)を返します。

double  MathAbs(
double  value      // 数値
);

パラメータ

value

[in]  数詞

戻り値

0以上の double 型の値

注意事項

MathAbs() 関数の代わりに fabs() の使用が可能です。

MathArccos

この関数は x のアークコサイン( 0 〜 π)をラジアンで返します。

double  MathArccos(
double  val     // -1<val<1
);

パラメータ

val

[in]  アークコサインが計算される、-1 以上1 以下の値

戻り値

ラジアンでの数のアークコサインval が -1 未満か 1 より大きい場合、この関数は NaN(不定値)を返します。

注意事項

MathArccos() 関数の代わりに、acos() が使用可能です。

参照

浮動小数点数型(ダブル、フロート)

MathArcsin

この関数は x のアークサイン( –π/2 〜 π/2 ラジアン)を返します。

double  MathArcsin(
double  val      // -1<value<1
);

パラメータ

val

[in]  アークサインが計算される、-1 以上1 以下の値

戻り値

ラジアンでの val のアークサイン( –π/2 〜 π/2 ラジアン)Ival が -1 未満か 1 より大きい場合、この関数は NaN(不定値)を返します。

注意事項

MathArcsin() 関数の代わりに asin() が使用可能です。

参照

浮動小数点数型(ダブル、フロート)

MathArctan

この関数は、x のアークタンジェントを返します。x が 0 に等しい場合、この関数は 0 を返します。

double  MathArctan(
double  value      // タンジェント
);

パラメータ

value

[in]  タンジェントを表現する数

戻り値

MathArctan は –π/2 〜 π/2 ラジアンの値を返します。

注意事項

MathArctan() 関数の代わりに atan() が使用可能です。

MathCeil

この関数は、double を切り上げされた整数値を返します。

double  MathCeil(
double  val      // 数
);

パラメータ

val

[in]  数詞

戻り値

val 以上の最小の整数を表す数値

注意事項

MathCeil() 関数の代わりに ceil() が使用可能です。

MathCos

この関数は、角度のコサインを返します。

double  MathCos(
double  value      // 数
);

パラメータ

value

[in]  ラジアンで表した角度

戻り値

-1 〜 1 の double 型の値

注意事項

MathCos() の代わりに cos() の使用が可能です。

MathExp

この関数は e の d 乗を返します。

double  MathExp(
double  value      // e の塁乗指数
);

パラメータ

value

[in]  塁乗指数を指定する数

戻り値

double 型の数(オーバーフローでは IINF(無限大)、オーダーロスでは 0)

注意事項

MathExp() の代わりに exp() の使用が可能です。

参照

浮動小数点数型(ダブル、フロート)

MathFloor

この関数は、double を切り下げされた整数値を返します。

double  MathFloor(
double  val     // 数
);

パラメータ

val

[in]  数詞

戻り値

val 以下の最大の整数を表す数値

注意事項

MathFloor() の代わりに floor() の使用が可能です。

MathLog

この関数は自然対数を返します。

double  MathLog(
double  val      // 対数を取る値
);

パラメータ

val

[in]  対数を取る値

戻り値

成功の場合 val の自然対数val が負の場合 NaN (不定値)val が 0 に等しい場合 INF(無限大)

注意事項

MathLog() の代わりに log() の使用が可能です。

参照

浮動小数点数型(ダブル、フロート)

MathLog

数の底が10の対数を返します。

double  MathLog10(
double  val      // 対数を取る値
);

パラメータ

val

[in]  対数を取る数値

戻り値

成功の場合は対数val が負の場合 NaN (不定値)val が 0 に等しい場合 INF(無限大)

注意事項

MathLog10() の代わりに log10() uも使用可能です。

参照

浮動小数点数型(ダブル、フロート)

MathMax

この関数は 2 つの数値の最大値を返します。

double  MathMax(
double  value1,    // 1 番目の値
double  value2      // 2 番目の値
);

パラメータ

value1

[in]  1 番目の数値

value2

[in]  2 番目の数値

戻り値

2 つの値のうちの最大値

注意事項

MathMax() の代わりに fmax() の使用が可能です。fmax()、fmin()、MathMax() 及びMathMin() は double 型への型キャストなしで整数型での操作が出来ます。

異なる型のパラメータが関数に渡された場合、ビットサイズの小さいパラメータが自動的にビットサイズの大きいパラメータの型にキャストされます。戻り値の型はビットサイズの大きいパラメータの型と同じです。

同じ型のデータが渡された場合、キャストは行われません。

MathMin

この関数は 2 つの数値の最小値を返します。

double  MathMin(
double  value1,    // 1 番目の値
double  value2      // 2 番目の値
);

パラメータ

value1

[in]  1 番目の数値

value2

[in]  2 番目の数値

戻り値

2 つの値のうちの最小値

注意事項

MathMin() の代わりに fmin() の使用が可能です。fmax()、fmin()、MathMax() 及び MathMin() は double 型への型キャストなしで整数型での操作が出来ます。

異なる型のパラメータが関数に渡された場合、ビットサイズの小さいパラメータが自動的にビットサイズの大きいパラメータの型にキャストされます。戻り値の型はビットサイズの大きいパラメータの型と同じです。

同じ型のデータが渡された場合、キャストは行われません。

MathMod

この関数は 2 つの数の分割後の実際の余りを返します。

double  MathMod(
double  value,      // 被除数値
double  value2      // 除数値
);

パラメータ

value

[in]  被除数値

value2

[in]  除数値

戻り値

MathMod 関数は val = i * y + f での f を val/y の余りとして計算します。ここで i は整数、f とval は同じ符号を有し、f の絶対値は y の絶対値未満です。

注意事項

MathMod() の代わりにfmod() の使用が可能です。

MathPow

この関数は基数を指定された乗まで引き上げます。

double  MathPow(
double  base,        // 底
double  exponent      // 指数値
);

パラメータ

base

[in]  底

exponent

[in]  指数値

戻り値

基数を指定された乗まで引き上げた値

注意事項

MathPow() の代わりに pow() の使用が可能です。

MathRand

0〜32,767 の範囲内で擬似乱数値を返します。

int  MathRand();

戻り値

0〜32,767 の整数

注意事項

最初の呼び出しの前に MathSrand を呼び出して擬似乱数発生器を初期状態に設定する必要があります。

注意事項

MathRand() の代わりに rand() の使用が可能です。

MathRound

この関数は、指定された数値の最も近い整数に丸めた値を返します。

double  MathRound(
double  value      // 丸められる値
);

パラメータ

value

[in]  丸める前の数値

戻り値

最も近い整数に丸めた値

注意事項

MathRound() の代わりに round() の使用が可能です。

MathSin

指定された角度のサインを返します。

double  MathSin(
double  value      // ラジアンでの引数
);

パラメータ

value

[in]  ラジアンで表した角度

戻り値

ラジアンではかられた角度のサイン-1 〜 1の 値

注意事項

MathSin() の代わりに sin() の使用が可能です。

MathSqrt

数の平方根を返します。

double  MathSqrt(
double  value      // 正数値
);

パラメータ

value

[in]  正数値

戻り値

値の平方根値が負の場合 NaN (不定値)

注意事項

MathSqrt() の代わりに sqrt() の使用が可能です。

参照

浮動小数点数型(ダブル、フロート)

MathSrand

擬似ランダム整数の系列を生成するための開始点を設定します。

void  MathSrand(
int  seed      // 数の初期化
);

パラメータ

seed

[in]  乱数列の初値

戻り値

なし

注意事項

MathRand() 関数は、擬似乱数列を生成するために使用されます。特定の初期数を使用して MathSrand() を呼び出すことで、常に同じ擬似乱数列の生成が可能です。

GetTickCount()は、オペレーティングシステムの開始の瞬間から増加し内蔵ミリ秒のカウンタがオーバーフローするまで49日以内に繰り返されないので、非経常な列の受信を確保するには MathSrand(GetTickCount()) が使用されるべきです。TimeCurrent() 関数は最終ティックの時刻を戻し、週末などには長時間変わらないことがあるので、MathSrand(TimeCurrent()) の使用は不適切です。

指標及びエキスパートアドバイザーのための MathSrand() を使用した乱数発生器の初期化は、OnTick() 及び OnCalculate() 内での発生器の複数にわたった再起動を避けるために OnInit() ハンドラ内でよりよく行われます。

MathSrand() 関数の代わりに srand() が使用可能です。

例:

#property description “The indicator shows the central limit theorem, which states:”
#property description “The sum of a sufficiently large number of weakly dependent random variables, “
#property description “having approximately equal magnitude (none of the summands dominates,”
#property description “or makes a determining contribution to the sum), has a distribution close to normal.”
 
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//— グラフィック構成のプロパティ
#property indicator_label1 “Label”
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1 clrRoyalBlue
#property indicator_style1 STYLE_SOLID
#property indicator_width1  5
//— 入力変数
input int     sample_number=10;
//— 分布を描画するための指標バッファ
double         LabelBuffer[];
//— ティックカウンタ
double         ticks_counter;
//+——————————————————————+
//| カスタム指標を初期化する関数                                            |
//+——————————————————————+
void OnInit()
{
//— 配列と指標バッファを関連付ける
SetIndexBuffer(0,LabelBuffer,INDICATOR_DATA);
//— 指標バッファを現在から過去に向ける
ArraySetAsSeries(LabelBuffer,true);
//— 擬似乱数生成器を初期化する
MathSrand(GetTickCount());
//— ティックカウンタを初期化する
ticks_counter=0;
}
//+——————————————————————+
//| カスタム指標の反復関数                                                |
//+——————————————————————+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//— ゼロカウンタで指標バッファをリセットする
if(ticks_counter==0) ArrayInitialize(LabelBuffer,0);
//— カウンタを増加
ticks_counter++;
//— 定期的に配信を復活させるために、ティックカウンターをリセットする必要がある
if(ticks_counter>100)
{
Print(“We’ve reset the indicator values, let’s start filling the cells once again”);
ticks_counter=0;
}
//— 0〜7の3つの数の和としてランダムな値のサンプルを取得する
for(int i=0;i<sample_number;i++)
{
//— 乱数が他の 3 つの数の和であるセルのインデックスの計算
int rand_index=0;
//— 0〜7 の 3 つの乱数を取得
for(int k=0;k<3;k++)
{
//— 7 による除算で余りは 0〜6 の値を返す
rand_index+=MathRand()%7;
}
//— セル番号 rand_index の値を 1 で増やす
LabelBuffer[rand_index]++;
}
//— OnCalculate() ハンドルを終了する
return(rates_total);
}

MathTan

この関数は数のタンジェントを返します。

double  MathTan(
double  rad      // ラジアンでの引数
);

パラメータ

rad

[in]  ラジアンで表した角度

戻り値

rad のタンジェントrad が 263 以上または -263 以下の場合、結果内の重大な損失が起こり、不特定の数が戻されます。

注意事項

MathTan() の代わりにtan() の使用が可能です。

参照

浮動小数点数型(ダブル、フロート)

MathIsValidNumber

実数の有効性をチェックします。

bool  MathIsValidNumber(
double  number      // チェックする数
);

パラメータ

number

[in]  チェックする数

戻り値

チェックされた値が有効な実数である場合は true、チェックされた値が正または負の無限大、または「非数」(NaN)の場合は false

例:

  double abnormal=MathArcsin(2.0);
if(!MathIsValidNumber(abnormal)) Print(“Attention! MathArcsin(2.0) = “,abnormal);

参照

浮動小数点数型(ダブル、フロート)

MathExp1

MathExp(x)-1の式の値を返します。

double  MathExp1(
double  value      // e の塁乗指数
);

パラメータ

value

[in]  塁乗を指定する数値。

戻り値

double型の値(オーバーフローでは IINF(無限大)、オーダーロスでは 0)

注意事項

xの値が0に近いと、MathExp1(x) 関数は MathExp(x)-1 関数よりはるかに正確な値を生成します。

MathExp1() 関数の代わりに expm1() 関数が使用可能です。

参照

浮動小数点数型(ダブル、フロート)

MathLog1p

MathLog(1+x)の式の値を返します。

double  MathLog1p(
double  value      // 対数を取る値
);

パラメータ

value

[in]  対数が取られる値

戻り値

成功の場合 value (value + 1) の自然対数。value < -1 の場合 NaN(不定値)。value が 0 に等しい場合 INF(無限大)。

注意事項

xの値が0に近いと、MathLog1p(x) 関数は MathLog(1+x) 関数よりはるかに正確な値を生成します。

MathLog1p() 関数の代わりに log1p() 関数が使用可能です。

参照

浮動小数点数型(ダブル、フロート)

MathArccosh

双曲線逆余弦(アークコサイン)を返します。

double  MathArccosh(
double  value     // 1 <= value <
);

パラメータ

value

[in]  アークコサインが計算される値

戻り値

数の双曲線逆余弦。valueが +1 未満の場合、この関数は NaN(不定値)を返します。

注意事項

MathArccosh() 関数の代わりに acosh() 関数が使用可能です。

参照

浮動小数点数型(ダブル、フロート)

MathArcsinh

双曲線逆正弦(アークサイン)を返します。

double  MathArcsinh(
double  value      // –< value < +
);

パラメータ

val

[in]   アークサインが計算される値

戻り値

数の双曲線逆正弦。

注意事項

MathArcsinh() 関数の代わりに asinh() 関数が使用可能です。

参照

浮動小数点数型(ダブル、フロート)

MathArctanh

双曲線逆正接(アークタンジェント)を返します。

double  MathArctanh(
double  value      // -1 < value < 1
);

パラメータ

value

[in]   -1 < value < 1 の範囲での、タンジェントを表現する数

戻り値

数の双曲線逆正接。

注意事項

MathArctanh() 関数の代わりに atanh() 関数が使用可能です。

MathCosh

数の双曲線余弦(コサイン)を返します。

double  MathCosh(
double  value      // 数
);

パラメータ

value

[in]  値。

戻り値

数のコサインで+1から正の無限大の範囲内の値。

注意事項

MathCosh() 関数の代わりにcosh() 関数が使用可能です。

MathSinh

数の双曲線正弦(サイン)を返します。

double  MathSinh(
double  value      // 数
);

パラメータ

value

[in]  値。

戻り値

数の双曲線正弦(サイン)。

注意事項

MathSinh() 関数の代わりに sinh() 関数が使用可能です。

MathTanh

数の双曲線正接(タンジェント)を返します。

double  MathTanh(
double  value      // 数
);

パラメータ

value

[in]  値。

戻り値

数の双曲線正接(タンジェント)で-1 〜 +1 。

注意事項

MathTanh() 関数の代わりに tanh() 関数が使用可能です。

参照

浮動小数点数型(ダブル、フロート)

MathSwap

ushort型値のバイト順を変更します。

ushort  MathSwap(
ushort  value      // 値
);

パラメータ

value

[in]  バイト順を変更する値

戻り値

バイト順が反転されたushort値

MathSwap

uint型値のバイト順を変更します。

uint  MathSwap(
uint  value      // 値
);

パラメータ

value

[in]  バイト順を変更する値

戻り値

バイト順が反転されたuint値

MathSwap

ulong型値のバイト順を変更します。

ulong  MathSwap(
ulong  value      // 値
);

パラメータ

value

[in]  バイト順を変更する値

戻り値

バイト順が反転されたulong値

参照

ネットワーク関数、SocketRead、SocketSend、 SocketTlsRead、SocketTlsReadAvailable、 SocketTlsSend

Originally posted 2019-07-29 23:05:24.

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">