多能工生産技術者の日常

20歳からFXの自動売買を開発しています。24歳からは株式投資等で純資産1000万円を目指します。


スポンサードリンク

【mql4】~MT4でデータの正規化~

スポンサーリンク

KeyKです。
昨日紹介したローソク足の0~1変換のため、mql4で正規化を実装してみます。

正規化とは・・・

正規化とは、上限値を1、下限値を0とした値の範囲に入るようにスケール変換することです。具体的な数式は以下のようになります。

f:id:KeyK:20191102223046j:plain


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から作ろうと思ったので。

データ前処理の補足情報

エンジニアが機械学習人工知能に携わる時間の6~8割はデータの前処理に費やすという記事を見ました。人工知能の開発に結構時間がかかったので、この2、3倍もデータ整形に時間がかかると思うと気が遠くなります。。。
コツコツと地道に頑張っていきます。


f:id:KeyK:20191010221855j:plain





     

プライバシーポリシー お問い合わせ