iTime関数の働き・役割
iTime関数は、特定の通貨ペアのチャートにおける特定のバーの開始時間を知るために使われる関数です。iTime関数は、価格の動きを分析する際に、どのタイミングで市場に変動があったのかを正確に把握するために役立ちます。
iTime関数の引数について
iTime関数の引数と戻り値の構成は以下のようになっています。
datetime iTime(
const string symbol, // 銘柄
ENUM_TIMEFRAMES timeframe, // 期間
int shift // シフト
);
最初の引数symbol
は、どの通貨ペアまたは金融商品に関する時間データを取得するかを指定します。
_Symbolあるいは、Symbol関数、NULLなどを記述すると、現在開いているチャートのシンボルが自動的に選ばれます。
二つ目の引数timeframe
は、どの時間枠を基にデータを取得するかを決めます。
データ型はENUM_TIMEFRAMESとなっており、その中の定数リストから希望の時間軸識別子を選択します。
例えば、1時間足のデータを取得したい場合はPERIOD_H1を使います。
最後の引数shift
は、現在のバーから何バー分遡ってデータを取得するかを決めるためのものです。
iTime関数の戻り値について
iTime関数を呼び出すと、指定されたバーの開始時刻をdatetime型で返します。
iTime関数が返す戻り値は通常、UNIXタイム形式の整数値です。
※UNIXタイムというのは、コンピュータの世界で時間を数える一つの方法で、普段我々が接している年月日や時分秒で日時を考えず、ただの一連の数字、つまり「秒数」として扱う表記法になります。
UNIXタイムについての詳細は↓の記事をご参照ください
もし何らかの理由で時刻データを取得できなかった場合、iTime関数は0を返します。エラーの原因を詳しく知りたい場合はGetLastError関数を使用します。
iTime関数を使う際の注意点
iTime関数は、呼び出される度に最新のデータを提供するため、常に通信を行います。そのため、特定のシンボルや時間枠でデータが初めて要求された場合には、その準備に時間がかかることがあります。また、iTime関数は過去の呼び出し結果を記録せず、データのキャッシュも保持しませんので、同じ情報を頻繁にリクエストするとパフォーマンスに影響を与える可能性があります。
iTime関数を使ったサンプルコード
以下に、iTime関数の基本的な使用方法を示すサンプルコードを紹介します。
void OnStart() {
// EURUSDの1時間足チャートで最新バーの開始時刻を取得
datetime latestBarTime = iTime("EURUSD", PERIOD_H1, 0);
// 取得した時刻をプリント
Print("最新バーの開始時刻: ", TimeToString(latestBarTime, TIME_DATE|TIME_MINUTES));
// 5バー前の時刻を取得
datetime pastBarTime = iTime("EURUSD", PERIOD_H1, 5);
// 取得した過去の時刻をプリント
Print("5バー前の開始時刻: ", TimeToString(pastBarTime, TIME_DATE|TIME_MINUTES));
}
このコードは、EURUSDの1時間足チャートにおける最新のバーと、5バー前のバーの開始時刻を取得し、日時形式で表示します。これにより、トレーダーは特定の時点での市場の動きを見ることができ、より情報に基づいた取引決定を行うことが可能になります。
<参照>
タイムスタンプ/OnStart関数/Print関数/TimeCurrent関数//ENUM_TIMEFRAMES/datetime型
UNIXタイム/TimeToString関数/StringToTime関数/TimeToStruct関数/MqlDateTime構造体/TimeLocal関数/TimeCurrent関数
————————————————————————————–
※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる
をメインコンテンツとして展開しています。
第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。