インジケータの値をファイル出力する(MQL5)

概要

インジケータの出力値を分析したい時や、売買履歴等を出力したい時にはファイル関数を使用して
テキストファイル等に結果を出力します。

MQL5 にもファイル関数が用意されており、それを利用して上記要件に対応することができます。

手順

大まかな流れとしては、FileOpen -> FileWrite -> FileClose で良いのですが、
単純にFileWrite -> FileClose するだけだと上書き扱いとなってしまい
インジケータの値を順次追記する事ができず、常に最新の1レコード分のみをファイル出力するだけになってしまいますので、
FileSeek 関数で、ファイルポインタをファイル末尾に移動させてから書込を行います。

以下、サンプルです。

void output_file(int i, int rates_total){
   string category = ""; 
   string label_text = "";
   int file_handle = FileOpen(output_directory_name + "//" + INDICATOR_NAME + "//" + file_name,FILE_READ|FILE_WRITE|FILE_CSV); 
   if(file_handle!=INVALID_HANDLE) {     
      output_text = TimeToString(iTime(currency_pair_name, time_frame_current, i)) + ", " +
                             DoubleToString(rate_buffer[i], Digits()) + ", "  + 
                             DoubleToString(buffer[i], 0);
            
      FileSeek(file_handle, 0, SEEK_END);
      FileWrite(file_handle, output_text );
      FileFlush(file_handle);
      FileClose(file_handle);
   }
}

参考例

zigzagの傾向分析

インジケータの値を出力し、BIツールで分析する例です。
単純にEA開発しバックテストで統計を取り優位性を評価するよりも、
まずは先にデータの分布や傾向を捉えてから開発に入った方が方向性を見定めやすくなるのでオススメです。

 

関連記事

おすすめの記事