タイプスタンプとは?
タイムスタンプとは、特定の瞬間の日時情報を表す値、及びその値を格納している変数などの事を指します。
タイムスタンプは主に、あるイベントが起こった正確な時刻を記録するために使われます。
コンピューターの世界では、タイムスタンプは年、月、日、時、分、秒で表示されることが多いです。
MQL5でトレーディングを自動化するプログラム、つまりエキスパートアドバイザーを作る際には、タイムスタンプが重要な役割を果たします。
特に、新しい価格の情報が含まれる新しい「バー」が始まる瞬間だけに取引をしたいときに重宝されます
※「バー」とは、特定の時間での価格の動きを示すグラフの一部分で、例えば1分間や1時間の最高価格、最低価格、開始価格、終了価格を表しています。
エキスパートアドバイザーをプログラムする際には、基本的に前のバーが終わった時刻、つまりタイムスタンプを記録しておくことが多いです。
そして、新しいバーのタイムスタンプが前回のものと異なっていれば、それは新しいバーが始まったということを意味し、この情報を使って取引を開始するかどうかを決める条件をチェックします。
このように、タイムスタンプを使うことで、エキスパートアドバイザーは市場が新しい動きを始めた正確な時点を把握し、あらかじめ定めたシステムトレード戦略に沿って取引を行うかどうかを決定することができる、という訳です。
MQL5におけるタイプスタンプの取得例
改めてになりますが、MQL5の文脈において、タイムスタンプは特定の時点での日時情報を保持するための値、ということになります。
タイムスタンプは多くの場合、日時情報を格納するdatetime型の変数に保存され、数字の形式で表されます。
MQL5ではタイムスタンプは、チャートの各バーに関連付けられた正確な時間を示し、通常はUNIXタイムで表されることが多いです。
※datetime型についての詳細は↓の記事をご参照ください
※UNIXタイムについての詳細は↓の記事をご参照ください
MQL5でのタイムスタンプの例を挙げますと、次のようになります:
datetime lastBarTime = iTime(_Symbol, PERIOD_H1, 0);
このコード行は、現在のチャートのシンボル(例えばEURUSD)で、1時間足(PERIOD_H1)の最新バー(0
は最新バーを指す)の開始時刻を取得し、それをlastBarTime
という変数に保存します。
MQL5では、iTime関数を使用してチャートの特定のバーに対応するタイムスタンプを取得することができます。
この値を使って、新しいバーが開始したかどうかを判断することができます。例えば、エキスパートアドバイザーが新しいバーの開始時にのみ取引を行うように設定する場合、タイムスタンプが変わったかどうかを確認することで、その瞬間を捉えることができるようになっています。
<参照>
_Symbol/Symbol関数/ENUM_TIMEFRAMES/iTime関数/StringToTime関数/TimeCurrent関数
————————————————————————————–
※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる
をメインコンテンツとして展開しています。
第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。