Period関数の働き・役割
![](https://mqlinvestmentlab.com/wp-content/uploads/2024/06/d9ec318498ce684bb0739ef6fdeedc93-1024x585.webp)
Period関数は、現在のチャートの時間軸を取得するために使用されます。この関数を利用することで、チャートが表示している時間軸をプログラムで確認できます。これにより、特定の時間軸に基づいた処理を実装することが可能となります。
Period関数の引数について
Period関数には引数はありません。この関数は現在のチャートの時間軸を取得するために単純に呼び出します。
// Period関数の呼び出し例
ENUM_TIMEFRAMES timeFrame = Period();
Period関数の戻り値について
![](https://mqlinvestmentlab.com/wp-content/uploads/2024/06/e874bd0763efff06e1108d6c5b2024ca-1024x585.webp)
Period関数は、現在のチャートの時間軸を表すENUM_TIMEFRAMES列挙型の値を返します。戻り値は、「_Period」変数の内容と一致します。例えば、H1(1時間)、M15(15分)、D1(1日)などが含まれます。
※ENUM_TIMEFRAMES列挙型の詳細については↓の記事をご参照ください。
Period関数を使う際の注意点
![](https://mqlinvestmentlab.com/wp-content/uploads/2024/06/8e537252e33b6d5d378a8ca39b6046a6-1024x585.webp)
Period関数は、エキスパートアドバイザー、インジケータ、スクリプトに対して有効です。ただし、サービスは特定のチャートに縛られないため、Period関数はサービスに対して0を返します。この点に注意して、利用するシナリオに応じた使い方をする必要があります。
サービスとは?
MQL5におけるサービスは、エキスパートアドバイザーやインジケータ、スクリプトとは異なり、特定のチャートに依存しないプログラムです。サービスはバックグラウンドで動作し、ターミナル全体に対して機能を提供します。例えば、一定の条件を監視したり、特定の時間ごとにタスクを実行することができます。Period関数はチャートに依存するため、サービスから呼び出された場合は0を返します。
Period関数を使ったサンプルコード
![](https://mqlinvestmentlab.com/wp-content/uploads/2024/06/5478b0330fbca34b5c01511769390cd7-1024x585.webp)
以下に、Period関数を使用して現在のチャートの時間軸を取得し、エキスパートログに出力するサンプルコードを示します。
// スクリプトのエントリーポイント
void OnStart()
{
// 現在のチャートの時間軸を取得
ENUM_TIMEFRAMES timeFrame = Period();
// 時間軸の値をエキスパートログに出力
Print("現在のチャートの時間軸: ", EnumToString(timeFrame));
}
サンプルコードに使われた関数や文法要素の簡単な解説
![](https://mqlinvestmentlab.com/wp-content/uploads/2024/06/73a7a4954d2906ba4a942384258a93db-1024x585.webp)
OnStart関数
スクリプトの実行が開始されたときに自動的に呼び出される関数です。スクリプトのエントリーポイントとして機能します。
Period関数
現在のチャートの時間軸を取得する関数です。この例では、Period関数を呼び出して、取得した時間軸をtimeFrame変数に格納しています。
Print関数
エキスパートログにメッセージを出力します。このサンプルでは、取得した時間軸の値をエキスパートログに表示しています。
EnumToString関数
ENUM_TIMEFRAMESの値を文字列に変換する関数です。これにより、時間軸の列挙値を読みやすい形式でログに出力できます。
このように、Period関数を使用することで、現在のチャートの時間軸に基づいた処理を簡単に実装できます。