Top Page



ファイルの操作をする
ファイル操作です。
これも使い方によっては、ものすごく処理の幅が広がると思います。
このインジケーターはチャート上には、なにも表示しません。
インジケーターをチャートに挿入すると、管理人の場合、以下の場所にファイルが作成されます。
ファイルの作成場所: MT4インストールフォルダ以下の\experts\files フォルダ
  (例)  C:\Program Files\CyberAgent FX MT4\experts\files
ただし、この場所は使用しているOSやMT4の業者によって変わるかもしれません。
注意してください。


ファイル名: TEST01.log (プログラムで設定しています)

作成されたファイルを見てみましょう。
こんな感じです。


◎解説
 今回は、ファイル操作のプログラム自体に慣れることが目的なので初期処理にプログラムします。
 どういうことかというと、起動時に1回だけ処理するということです。
 実際にインジケーターを組む時には、メイン処理に組み込んで、価格変動に合わせてファイル操作を行うことが多いと思います。
 ファイル操作自体は、プログラムを勉強している方なら関数仕様を調べるだけで特に問題ないと思います。
 処理の基本的な考え方は、ほとんど同じだと思います。
 このプログラムでは、サーバーの時間と定数定義したメッセージを書き込む処理を行っています。


◎以下、プログラム
//+----------------------------------------------------------------------------+
//| インジ 1-6 ファイルの操作をする |
//+----------------------------------------------------------------------------+
//----------------
//プロパティの設定
//----------------
//インジケーターをチャートウィンドウに表示する
#property indicator_chart_window

//----------------
//定数の定義
//----------------
#define LOG_NAME "TEST01.log"
#define STR_MSG01 "ファイル操作のテスト"

//+----------------------------------------------------------------------------+
//| 初期処理関数 |
//+----------------------------------------------------------------------------+
//プログラム起動時に1回だけ呼び出される関数
int init()
{
int handle; //ファイルハンドル
//ファイルオープン
handle = FileOpen(LOG_NAME, FILE_CSV|FILE_READ|FILE_WRITE,'\t');
//ログファイル出力
FileSeek(handle,0, SEEK_END);
FileWrite(handle,TimeToStr(Time[0]),STR_MSG01);
//ファイルクローズ
FileClose(handle);

return(0);
}
//+----------------------------------------------------------------------------+
//| 終了処理関数 |
//+----------------------------------------------------------------------------+
//プログラム終了時に呼び出される関数
//今回は特に処理なし
int deinit()
{
return(0);
}

//+----------------------------------------------------------------------------+
//| メイン処理関数 |
//+----------------------------------------------------------------------------+
//価格が更新される度に呼び出される関数
//今回は特に処理なし
int start()
{
return(0);
}

//+----------------------------------------------------------------------------+