【MQL】PCのローカル時間を取得するWinAPI関数→GetLocalTime関数
MQLでPCのローカル時間を取得する関数はTimeLocal関数ですが、テスターではサーバータイムであるTimeCurrent関数と等しい値となってしまいます('Д')
この問題を解決するためにWindowsAPIのKernel32.dllにあるGetLocalTime関数を使用してテスター中でもPCのローカル時間を取得できるかやってみました('ω')
#import "Kernel32.dll"
void GetLocalTime(SYSTEMTIME &systime);
#import
struct SYSTEMTIME
{
ushort wYear;
ushort wMonth;
ushort wDayOfWeek;
ushort wDay;
ushort wHour;
ushort wMinute;
ushort wSecond;
ushort wMilliseconds;
};
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
SYSTEMTIME sysTime;
GetLocalTime(sysTime);
datetime nowtime = StringToTime((string)sysTime.wYear + "." + (string)sysTime.wMonth + "." + (string)sysTime.wDay + " " + (string)sysTime.wHour + ":" + (string)sysTime.wMinute + ":" + (string)sysTime.wSecond);
Comment(nowtime);
}
テスター中でもPC時間が出力できるようになりました。
でも一つ一つ文字として取得して結合なんてナンセンスですよね。
もっといい方法無いでしょうか??
いい解決方法あれば教えてください。
この記事が気に入ったらサポートをしてみませんか?