インジケーターの作り方

時刻や時間の表示

スポンサーリンク

datetime

メタトレーダー(MT4)のカスタムインジケーターで、日付や時刻、時間の表示方法です。
MQLでは、日付や時刻、時間は「datetime」の型を使います。
datetimeの変数は、TimeToStr()関数で文字列に変換できます。書式も設定できます。

例1

表示チャートの右から1番目のローソク足の時間(1番新しいローソク足の時間)と2番目のローソク足の時間をコメントで表示する

datetime dt0, dt1;

dt0 = Time[0]; // チャートの右から1番目のローソク足の時間
dt1 = Time[1]; // チャートの右から2番目のローソク足の時間

// Comment()でチャート画面左上に表示
Comment("dt0=",dt0,"\ndt1=",dt1);

結果
MT4 インジケーター 日付 時刻 時間 表示

例2

パソコンの日時をエキスパート画面のログで表示させる例です。
※エキスパート画面にログを表示させる方法は、下記の記事を見てください。

Print関数でエキスパートにログを表示
ログの出力 メタトレーダー MT4のインジケーターでエキスパート画面にログの表示をするには、Print関数を使います。 インジケーターの中でPrint関数を使うとエキスパート画面にログが表示されます。 そのため、Print関数は、インジケー...
datetime dt;

dt = TimeLocal(); // パソコンの日時を取得

// Print()で、エキスパートにログを表示
Print("dt=",dt);

// TimeToStr()で文字列変換と書式を設定できる
Print("TimeToStr使用 dt=",TimeToStr(dt)); // datetime型変数を文字列に変換
Print("日にちのみ=",TimeToStr(dt, TIME_DATE)); // 年月日の表示
Print("時間のみ=",TimeToStr(dt, TIME_MINUTES)); // 時間、分の表示
Print("時間のみ=",TimeToStr(dt, TIME_SECONDS)); // 時間、分、秒の表示
Print("日にちと時間=",TimeToStr(dt, TIME_DATE|TIME_SECONDS)); // 日時の表示

結果
MT4 インジケーター 日付 時刻 時間 表示

プログラム例

新規作成したインジケーターファイルの「OnInit」関数の中に、追加します。

int OnInit()
{
//--- indicator buffers mapping

datetime dt0, dt1;

dt0 = Time[0]; // チャートの右から1番目のローソク足の時間(1番新しいローソク足の時間)
dt1 = Time[1]; // チャートの右から2番目のローソク足の時間

// Comment()でチャート画面左上に表示
Comment("dt0=",dt0,"\ndt1=",dt1);

datetime dt;

dt = TimeLocal(); // パソコンの日時を取得

// Print()で、エキスパートにログを表示
Print("dt=",dt);

// TimeToStr()で文字列変換と書式を設定できる
Print("TimeToStr使用 dt=",TimeToStr(dt)); // datetime型変数を文字列に変換
Print("日にちのみ=",TimeToStr(dt, TIME_DATE)); // 年月日の表示
Print("時間のみ=",TimeToStr(dt, TIME_MINUTES)); // 時間、分の表示
Print("時間のみ=",TimeToStr(dt, TIME_SECONDS)); // 時間、分、秒の表示
Print("日にちと時間=",TimeToStr(dt, TIME_DATE|TIME_SECONDS)); // 日時の表示

//---
return(INIT_SUCCEEDED);
}

コメント