【mql4】~MT4でデータの正規化~
スポンサーリンク
KeyKです。
昨日紹介したローソク足の0~1変換のため、mql4で正規化を実装してみます。
正規化とは・・・
正規化とは、上限値を1、下限値を0とした値の範囲に入るようにスケール変換することです。具体的な数式は以下のようになります。
mql4で正規化の実装
mql4で正規化のプログラムを作成してみました!
void OnStart() { //--- double Array[5] = {4, 1, 6, 3, 9}; double MinMaxArray[5]; double Min_Value = Array[ArrayMinimum(Array, WHOLE_ARRAY, 0)]; double Max_Value = Array[ArrayMaximum(Array, WHOLE_ARRAY, 0)]; for(int i=0; i < ArrayRange(Array, 0); i++){ MinMaxArray[i] = (Array[i] - Min_Value) / (Max_Value - Min_Value); Print(MinMaxArray[i]); } return; }
出力結果
0.375 0.0 0.625 0.25 1.0
正しく計算出来ていますね。これを関数化して正規化関数とすれば、計算しやすくなります。ちなみに、mql4に正規化の関数があるかどうか調べていないです。自分で1から作ろうと思ったので。