TimeGMTOffset関数の働き・役割
TimeGMTOffset関数は、MT5を稼働させているコンピュータのローカル時間とグリニッジ標準時(GMT)との差を計算してくれます。
夏時間(DST)の変更も考慮してくれるため、一年を通して確実に時間差を把握することができます。
※グリニッジ標準時(GMT)とはイギリスのグリニッジ天文台を通る経度での時刻で、この時刻を基準に世界各地域のタイムゾーンが決められています
グリニッジ標準時(GMT)についての詳細は↓の記事リンクをご参照ください
※夏時間(DST)とは
より多くの日光を活用し、エネルギー消費を削減するために考案された制度です。通常、春に時計を1時間進め、秋にはもとに戻します。
夏時間(DST)についての詳細は↓の記事をご参照ください
TimeGMTOffset関数の引数について
TimeGMTOffset関数は引数を取らないため、特に引数を指定する必要はありません。単純に TimeGMTOffset関数を呼び出すだけで、GMTとの時間差を秒単位で返してくれます。
TimeGMTOffset関数の戻り値について
TimeGMTOffset関数の戻り値は整数型の値であり、GMTとローカルコンピュータの時間差を秒で表します。
この値を使用して、エキスパートアドバイザーが市場の正確な開閉時間に合わせて機能するように調整することができます。
※TimeLocal関数を使う事によって、ローカルコンピュータ(=ユーザのPC)の時間を取得する事ができます。
TimeLocal関数については↓の記事をご参照ください
※またGMT時間は、TimeGMT関数を使って取得する事ができます。
TimeGMT関数についての詳細は↓の記事をご参照ください
つまり、TimeGMTOffset関数が取得して、戻り値として返す値は(TimeGMT関数–TimeLocal関数 )の計算結果という事になります。
TimeGMTOffset関数を使う際の注意点
TimeGMTOffset関数を使用する際には、サーバーとの時間差が季節によって変わる可能性があることを認識しておく必要があります。
特に夏時間(DST)の開始や終了時は、戻り値が変動するため、その期間中は慎重に確認することが推奨されます。
TimeGMTOffset関数を使ったサンプルコード
以下のサンプルコードは、TimeGMTOffset関数が(TimeGMT関数–TimeLocal関数 )の計算結果と同等であることを示しています。
void OnStart()
{
// GMT時刻とローカル時刻とのオフセットを取得
int gmtOffset = TimeGMTOffset();
// TimeGMTOffset()関数の検証
Print("GMT Offset: ", gmtOffset);
Print("TimeGMT() - TimeLocal(): ",(int)(TimeGMT() - TimeLocal()));
// 検証結果が一致することを確認
if(gmtOffset == (TimeGMT() - TimeLocal()))
{
Print("TimeGMTOffset()は TimeGMT() と TimeLocal()の差分と等しい");
}
else
{
Print("TimeGMTOffset()は TimeGMT() と TimeLocal()の差分と等しくない");
}
}
このコードは、関数の戻り値が実際にGMTとローカル時間との差であることを検証するためのものです。実行すると、エキスパートログにGMTとローカル時間との差分が出力され、二つの値が一致することを確認できます。
<参照>
TimeCurrent関数/TimeLocal関数/TimeToString関数/UNIXタイム/タイムスタンプ/datetime型/iTime関数/StringToTime関数/ENUM_TIMEFRAMES/TimeToStruct関数/TimeGMT関数/MqlDateTime構造体/TimeDaylightSavings関数/タイムゾーン/システムトレード/TimeTradeServer関数/ローカル時間
————————————————————————————–
※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる
をメインコンテンツとして展開しています。
第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。