ここでは、日付と時刻においてMT4用のソースコードとMT5用のソースコードを共通化するための方法について記載します。
日付と時刻関数一覧
MQL4とMQL5での有無を〇(あり)、✕(なし)で示しています。
MQL4、MQL5共に存在するNo1~8についてはそのままの利用で互換性があります。
それ以外の関数については共通化の考慮が必要です。
互換性ありの関数については、本サイトで共通化の解説は行っていません。
No | 関数 | MQL4有無 | MQL5有無 | 用途 |
---|---|---|---|---|
1 | TimeCurrent() | 〇 | 〇 | 最後に受信したサーバ時間を取得します 互換性あり |
3 | TimeLocal() | 〇 | 〇 | コンピュータのローカル時間を取得します 互換性あり |
4 | TimeGMT() | 〇 | 〇 | サマータイムを考慮してGMT時間を取得します 互換性あり |
5 | TimeDaylightSavings() | 〇 | 〇 | 夏時間への補正を秒単位で返します 互換性あり |
6 | TimeGMTOffset() | 〇 | 〇 | コンピュータのローカル時間とサマータイムを考慮したGMT時間との差を秒単位で返します 互換性あり |
7 | TimeToStruct() | 〇 | 〇 | datetime型をMqlDateTime構造体型に変換します 互換性あり |
8 | StructToTime() | 〇 | 〇 | MqlDateTime構造体型をdatetime型に変換します 互換性あり |
9 | Day() | 〇 | ✕ | 最後に受信したサーバ時間の日を取得します |
10 | DayOfWeek() | 〇 | ✕ | 最後に受信したサーバ時間の曜日値を取得します |
11 | DayOfYear() | 〇 | ✕ | 最後に受信したサーバ時間の経過日数(1年の)を取得します |
12 | Hour() | 〇 | ✕ | 最後に受信したサーバ時間の時を取得します |
13 | Minute() | 〇 | ✕ | 最後に受信したサーバ時間の分を取得します |
14 | Month() | 〇 | ✕ | 最後に受信したサーバ時間の月を取得します |
15 | Seconds() | 〇 | ✕ | 最後に受信したサーバ時間の秒を取得します |
16 | TimeDay() | 〇 | ✕ | 指定した日付の日を取得します |
17 | TimeDayOfWeek() | 〇 | ✕ | 指定した日付の曜日数値を取得します |
18 | TimeDayOfYear() | 〇 | ✕ | 指定した日付の経過日数(1年の)を取得します |
19 | TimeHour() | 〇 | ✕ | 指定した日付の時を取得します |
20 | TimeMinute() | 〇 | ✕ | 指定した日付の分を取得します |
21 | TimeMonth() | 〇 | ✕ | 指定した日付の月を取得します |
22 | TimeSeconds() | 〇 | ✕ | 指定した日付の秒を取得します |
23 | TimeYear() | 〇 | ✕ | 指定した日付の年を取得します |
24 | Year() | 〇 | ✕ | 最後に受信したサーバ時間の年を取得します |
余談
ヒナタ
MQL5でかなりの数の関数がなくなってるね
ITサービス屋
無くても自分で何とかなる関数は削除されてるんだよね
ヒナタ
Day()とかHour()って何気にユースケースあるよね
ITサービス屋
わざわざ消さなくてもいい気がするけど、
内部処理作り直しとかでもして途中で嫌になったのかしら?
とても内部処理作り直すほどの処理じゃなさそうだけど・・・
ヒナタ
それって、手〇き・・・💤
コメント