MQLだと日本時間を簡単に取れない
MQLを使っているとGMTを取る関数は用意されているものの、JSTを取る関数は用意されていません。
そこで、JSTを取る為の関数を用意しました。
やり方としては、MT4で取得できる現在時間とGMTとの差分を取り、現在時間に足してやるという方法です。
こうすることで、MT4側では証券会社が設定したローカルな現在時間との差分を埋めて、日本時間にすることが出来るというわけです。
//+——————————————————————+ | |
//| 日本時間との差分取得 | | |
//+——————————————————————+ | |
int GetDiffHour() | |
{ | |
datetime DiffTime = TimeCurrent() – TimeGMT(); | |
int DiffHour = TimeHour(DiffTime); | |
// TimeCurrentとTimeGMTの秒数がずれることがあるので、59分とかは繰り上げる | |
if (TimeMinute(DiffTime) > 30) { | |
DiffHour += 1; | |
} | |
return 9 – DiffHour; // JSTとの差分 | |
} | |
//+——————————————————————+ | |
//| JST取得 | | |
//+——————————————————————+ | |
int GetJSTHour(datetime CTime) | |
{ | |
return TimeHour(CTime) + GetDiffHour(); | |
} |
為替をやっていると変動しやすい曜日や時間帯などあるので、こういった便利関数を用意しておくと、MQLも書きやすいのかもしれませんね。