TimeLocal関数の働き・役割
TimeLocal関数はトレーダーが自分の端末におけるローカル時間を取得するために使用されます
TimeLocal関数はプログラムが実行されているコンピュータのシステム時計に基づいた時間を返します。
TimeLocal関数とTimeCurrent関数の違いについて
TimeLocal関数とTimeCurrent関数の主な違いは、それぞれが返す時間の種類にあります。
TimeLocal関数がトレーダーの端末のローカル時間を返すのに対し、TimeCurrent関数はトレードサーバーの現在の時刻を返します。これは、特に異なるタイムゾーンにいるトレーダーにとって重要な情報となります。
例えば、ロンドン市場が開くのは日本時間では夕方になりますが、ニューヨーク市場は深夜まで開いています。これらの情報を把握しプログラムとして管理できれば、トレーディングセッションを適切に計画できます。
※TimeCurrent関数については↓の記事をご参照ください
※タイムゾーンについては↓の記事をご参照ください
TimeLocal関数の引数について
TimeLocal関数は引数を必要としないシンプルな関数ですが、オーバーロードされたバージョンでは、MqlDateTime構造体のインスタンスを引数(参照渡し)として取ることもできます。
このバージョンを使用すると、取得した時間情報を直接MqlDateTime構造体型のインスタンスに格納する事ができます。
※オーバーロードについての詳細は↓の記事をご参照ください
※MqlDateTime構造体についての詳細は↓の記事をご参照ください
※参照渡しについての詳細は↓の記事をご参照ください
※インスタンスについての詳細は↓の記事をご参照ください
TimeLocal関数の戻り値について
TimeLocal関数の戻り値は取得した現在のクライアント端末の日時情報になります。
MqlDateTime構造体を引数にとるヴァージョンの場合、引数に記述したMqlDateTime構造体型インスタンスに格納されている各メンバの値も更新されます
TimeLocal関数を使う際の注意点
TimeLocal関数を使う際は、高精度のタイマーを必要とする場合には適していないことに注意が必要です。
ミリ秒単位での精度が必要な場合は、GetTickCount関数を使用することを検討してください。
※GetTickCount関数については↓の記事をご参照ください
また、ストラテジーテスターでのバックテスト中にはTimeLocal関数は、シミュレーションされたサーバータイムであるTimeCurrent関数と同じ値を返します。
TimeLocal関数を使ったサンプルコード
以下のサンプルコードでは、TimeLocal関数とTimeCurrent関数の違いを示しています。
void OnStart()
{
datetime localTime = TimeLocal();
datetime serverTime = TimeCurrent();
Print("ローカル時間: ", TimeToString(localTime, TIME_DATE|TIME_MINUTES));
Print("サーバー時間: ", TimeToString(serverTime, TIME_DATE|TIME_MINUTES));
}
<参照>
TimeCurrent関数/TimeToString関数/EnumToString関数/UNIXタイム/タイムスタンプ/datetime型/iTime関数/StringToTime関数/ENUM_TIMEFRAMES/TimeToStruct関数/GetTickCount関数/MqlDateTime構造体/GetTickCount関数/タイムゾーン/TimeDaylightSavings関数/TimeGMT関数/TimeGMTOffset関数/TimeTradeServer関数/
————————————————————————————–
※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる
をメインコンテンツとして展開しています。
第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。