<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>時間足 アーカイブ - 自動売買を作ろう！</title>
	<atom:link href="https://mql-programing.com/archives/tag/%E6%99%82%E9%96%93%E8%B6%B3/feed/" rel="self" type="application/rss+xml" />
	<link>https://mql-programing.com/archives/tag/時間足/</link>
	<description>MQLプログラミング学習サイト</description>
	<lastBuildDate>Wed, 01 Apr 2026 04:44:07 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mql-programing.com/main29/wp-content/uploads/2021/02/cropped-ブログアイコン-32x32.jpg</url>
	<title>時間足 アーカイブ - 自動売買を作ろう！</title>
	<link>https://mql-programing.com/archives/tag/時間足/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MQL4】時間足定数（ENUM_TIMEFRAMES）完全ガイド｜PERIOD_M1〜PERIOD_MN1の一覧と実践的な使い方</title>
		<link>https://mql-programing.com/archives/13071/%e3%80%90mql4%e3%80%91%e6%99%82%e9%96%93%e8%b6%b3%e5%ae%9a%e6%95%b0%ef%bc%88enum_timeframes%ef%bc%89%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89%ef%bd%9cperiod_m1%e3%80%9cperiod_mn1%e3%81%ae%e4%b8%80/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sat, 25 Apr 2026 01:00:00 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[ENUM_TIMEFRAMES]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[EA開発]]></category>
		<category><![CDATA[時間足]]></category>
		<category><![CDATA[マルチタイムフレーム]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=13071</guid>

					<description><![CDATA[<p>MQL4でEAやインジケーターを作っていると、「1時間足の移動平均線を取得したい」「日足のローソク足データを参照したい」といった場面が頻繁に出てきます。そんなときに使うのが時間足定数（ENUM_TIMEFRAMES）です [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/13071/%e3%80%90mql4%e3%80%91%e6%99%82%e9%96%93%e8%b6%b3%e5%ae%9a%e6%95%b0%ef%bc%88enum_timeframes%ef%bc%89%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89%ef%bd%9cperiod_m1%e3%80%9cperiod_mn1%e3%81%ae%e4%b8%80/">【MQL4】時間足定数（ENUM_TIMEFRAMES）完全ガイド｜PERIOD_M1〜PERIOD_MN1の一覧と実践的な使い方</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<p>MQL4でEAやインジケーターを作っていると、「1時間足の移動平均線を取得したい」「日足のローソク足データを参照したい」といった場面が頻繁に出てきます。そんなときに使うのが<strong>時間足定数（ENUM_TIMEFRAMES）</strong>です。</p>
<p>この記事では、MQL4で使える時間足定数をすべて一覧で紹介し、基本的な使い方からマルチタイムフレーム分析への応用まで、実践的なコード例とともに解説します。</p>
<h2><span id="toc1">ENUM_TIMEFRAMESとは？</span></h2>
<p>ENUM_TIMEFRAMESは、MetaTraderのチャート時間足を表す<strong>列挙型（enum）</strong>です。列挙型とは、あらかじめ決められた名前付きの定数をグループ化したもので、「どの時間足か」をプログラム上でわかりやすく指定するために使います。</p>
<p>例えば、1時間足を指定するときに数値の <code>60</code> と書くよりも、<code>PERIOD_H1</code> と書いたほうが圧倒的に読みやすいですよね。これが時間足定数を使う最大のメリットです。</p>
<h2><span id="toc2">時間足定数の一覧（MQL4）</span></h2>
<p>MQL4で使用できる時間足定数は、特殊な <code>PERIOD_CURRENT</code> を含めて全部で<strong>10個</strong>です。以下の表にまとめました。</p>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse: collapse; width: 100%; text-align: center;">
<thead>
<tr style="background-color: #f0f0f0;">
<th>定数名</th>
<th>整数値</th>
<th>意味</th>
<th>1本あたりの秒数</th>
</tr>
</thead>
<tbody>
<tr>
<td>PERIOD_CURRENT</td>
<td>0</td>
<td>現在のチャートの時間足</td>
<td>（チャートに依存）</td>
</tr>
<tr>
<td>PERIOD_M1</td>
<td>1</td>
<td>1分足</td>
<td>60秒</td>
</tr>
<tr>
<td>PERIOD_M5</td>
<td>5</td>
<td>5分足</td>
<td>300秒</td>
</tr>
<tr>
<td>PERIOD_M15</td>
<td>15</td>
<td>15分足</td>
<td>900秒</td>
</tr>
<tr>
<td>PERIOD_M30</td>
<td>30</td>
<td>30分足</td>
<td>1,800秒</td>
</tr>
<tr>
<td>PERIOD_H1</td>
<td>60</td>
<td>1時間足</td>
<td>3,600秒</td>
</tr>
<tr>
<td>PERIOD_H4</td>
<td>240</td>
<td>4時間足</td>
<td>14,400秒</td>
</tr>
<tr>
<td>PERIOD_D1</td>
<td>1440</td>
<td>日足</td>
<td>86,400秒</td>
</tr>
<tr>
<td>PERIOD_W1</td>
<td>10080</td>
<td>週足</td>
<td>604,800秒</td>
</tr>
<tr>
<td>PERIOD_MN1</td>
<td>43200</td>
<td>月足</td>
<td>約2,592,000秒</td>
</tr>
</tbody>
</table>
<p>MQL4の整数値は<strong>「分」を基準</strong>にしています。例えば PERIOD_H1 は60分なので整数値が60、PERIOD_D1 は1440分（24時間×60分）なので1440です。この規則を覚えておくと、値の意味がすぐに理解できます。</p>
<h2><span id="toc3">MQL5との違いに注意</span></h2>
<p>MQL4からMQL5へコードを移植する際に、最もハマりやすいポイントの一つがこの時間足定数の整数値の違いです。</p>
<p>MQL5ではビットシフトを用いた全く異なる整数値が割り当てられています。</p>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse: collapse; width: 100%; text-align: center;">
<thead>
<tr style="background-color: #f0f0f0;">
<th>定数名</th>
<th>MQL4の整数値</th>
<th>MQL5の整数値</th>
</tr>
</thead>
<tbody>
<tr>
<td>PERIOD_M1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>PERIOD_M5</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>PERIOD_H1</td>
<td>60</td>
<td>16385</td>
</tr>
<tr>
<td>PERIOD_D1</td>
<td>1440</td>
<td>16408</td>
</tr>
<tr>
<td>PERIOD_W1</td>
<td>10080</td>
<td>32769</td>
</tr>
<tr>
<td>PERIOD_MN1</td>
<td>43200</td>
<td>49153</td>
</tr>
</tbody>
</table>
<p>分足（M1〜M30）まではMQL4とMQL5で同じ値ですが、<strong>H1以上は完全に異なります</strong>。定数名（PERIOD_H1など）を使っていれば問題ありませんが、整数値をハードコードしていると移植時にバグの原因になります。常に定数名を使う習慣をつけましょう。</p>
<h2><span id="toc4">基本的な使い方</span></h2>
<h3><span id="toc5">iMA()で別の時間足の移動平均線を取得する</span></h3>
<p>最もよく使うパターンが、<code>iMA()</code> などのテクニカル指標関数に時間足を指定するケースです。</p>
<pre><code class="language-mql4">// 現在の通貨ペアの1時間足で、20期間の単純移動平均線を取得
double ma_h1 = iMA(NULL, PERIOD_H1, 20, 0, MODE_SMA, PRICE_CLOSE, 0);

// 日足の20期間移動平均線を取得
double ma_d1 = iMA(NULL, PERIOD_D1, 20, 0, MODE_SMA, PRICE_CLOSE, 0);
</code></pre>
<p>第1引数の <code>NULL</code> は現在の通貨ペアを意味し、第2引数に時間足定数を指定します。</p>
<h3><span id="toc6">iClose()で別の時間足の終値を取得する</span></h3>
<pre><code class="language-mql4">// 日足の1本前（昨日）の終値を取得
double yesterday_close = iClose(NULL, PERIOD_D1, 1);

// 4時間足の現在のバーの始値を取得
double h4_open = iOpen(NULL, PERIOD_H4, 0);
</code></pre>
<h3><span id="toc7">Period()で現在の時間足を取得する</span></h3>
<pre><code class="language-mql4">// 現在のチャートの時間足を取得
int current_tf = Period();

// 現在の時間足が1時間足かどうか判定
if(Period() == PERIOD_H1)
{
    Print("現在のチャートは1時間足です");
}
</code></pre>
<p><code>Period()</code> 関数は現在のチャートの時間足を整数値で返します。PERIOD_CURRENTを指定したときと同じ時間足のデータが取得されます。</p>
<h2><span id="toc8">実践テクニック</span></h2>
<h3><span id="toc9">inputパラメーターでドロップダウン選択にする</span></h3>
<p>EAのパラメーターに <code>ENUM_TIMEFRAMES</code> 型を使うと、MetaTraderのパラメーター設定画面で<strong>ドロップダウンリストから時間足を選択</strong>できるようになります。これは非常に便利なテクニックです。</p>
<pre><code class="language-mql4">input ENUM_TIMEFRAMES InpTimeframe = PERIOD_H1; // 分析する時間足
input int             InpMAPeriod  = 20;         // 移動平均線の期間

void OnTick()
{
    double ma = iMA(NULL, InpTimeframe, InpMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
    // ユーザーが選択した時間足のMAを使って売買判断
}
</code></pre>
<p>ユーザーが数値を手入力する必要がなく、選択ミスも防げるので、EA配布時にも親切な設計になります。</p>
<h3><span id="toc10">PeriodSeconds()で時間足を秒数に変換する</span></h3>
<pre><code class="language-mql4">// 現在の時間足の1本あたりの秒数を取得
int seconds = PeriodSeconds(PERIOD_H1);
Print("1時間足の1本 = ", seconds, "秒"); // 3600秒

// 引数を省略すると現在のチャートの時間足が使われる
int current_seconds = PeriodSeconds();
</code></pre>
<p>時間計算を行う場面（例：「次のバーが生成されるまで何秒か」など）で非常に役立ちます。</p>
<h3><span id="toc11">マルチタイムフレーム分析のEAサンプル</span></h3>
<p>実践的な例として、日足のトレンド方向を確認してからエントリーする簡易EAのロジックを紹介します。</p>
<pre><code class="language-mql4">input ENUM_TIMEFRAMES InpEntryTF  = PERIOD_H1;  // エントリー判断の時間足
input ENUM_TIMEFRAMES InpFilterTF = PERIOD_D1;  // トレンドフィルターの時間足
input int             InpMAPeriod = 20;          // MA期間

void OnTick()
{
    // 上位足（日足）のMAでトレンド方向を判定
    double ma_filter = iMA(NULL, InpFilterTF, InpMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
    double price_filter = iClose(NULL, InpFilterTF, 0);
    
    bool uptrend   = (price_filter > ma_filter);
    bool downtrend = (price_filter < ma_filter);
    
    // エントリー足のMAでエントリーシグナルを判定
    double ma_entry = iMA(NULL, InpEntryTF, InpMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
    double price_entry = iClose(NULL, InpEntryTF, 0);
    
    // 日足が上昇トレンド かつ 1時間足で価格がMAを上抜け → 買いシグナル
    if(uptrend &#038;&#038; price_entry > ma_entry)
    {
        // 買い注文のロジック
        Print("買いシグナル検出！");
    }
    
    // 日足が下降トレンド かつ 1時間足で価格がMAを下抜け → 売りシグナル
    if(downtrend && price_entry < ma_entry)
    {
        // 売り注文のロジック
        Print("売りシグナル検出！");
    }
}
</code></pre>
<p>このように、時間足定数を活用すれば<strong>マルチタイムフレーム分析</strong>のロジックを簡潔に書くことができます。</p>
<h2><span id="toc12">よくある注意点・トラブル</span></h2>
<h3><span id="toc13">整数値の直書きは避ける</span></h3>
<p>以下のように整数値を直接書くのは避けましょう。</p>
<pre><code class="language-mql4">// &#x274c; 悪い例：何を意味しているのかわかりにくい
double ma = iMA(NULL, 60, 20, 0, MODE_SMA, PRICE_CLOSE, 0);

// &#x2705; 良い例：PERIOD_H1と書けば一目で1時間足とわかる
double ma = iMA(NULL, PERIOD_H1, 20, 0, MODE_SMA, PRICE_CLOSE, 0);
</code></pre>
<p>可読性が下がるだけでなく、MQL5へ移植する際にバグの原因になります。</p>
<h3><span id="toc14">ヒストリーデータ不足に注意</span></h3>
<p>別の時間足のデータを参照するとき、MetaTraderにその時間足の<strong>ヒストリーデータが十分にダウンロードされていない</strong>場合があります。特にバックテスト時に、上位足のデータが不足していると正しい結果が得られません。</p>
<p>必要な時間足のチャートを一度開いてデータを読み込ませるか、スクリプトで事前にデータの存在を確認する処理を入れておくと安心です。</p>
<h3><span id="toc15">PERIOD_CURRENTと0の違い</span></h3>
<p><code>PERIOD_CURRENT</code> の整数値は <code>0</code> です。関数に <code>0</code> を渡しても <code>PERIOD_CURRENT</code> を渡しても同じ動作になりますが、コードの意図を明確にするために <code>PERIOD_CURRENT</code> を使うことをおすすめします。</p>
<h2><span id="toc16">まとめ</span></h2>
<p>MQL4の時間足定数（ENUM_TIMEFRAMES）について、重要なポイントを整理します。</p>
<ul>
<li><strong>PERIOD_M1〜PERIOD_MN1</strong>の9つの時間足定数と、<strong>PERIOD_CURRENT</strong>（現在のチャートの時間足）が使える</li>
<li>MQL4の整数値は<strong>「分」が基準</strong>（H1=60, D1=1440など）</li>
<li>MQL5では<strong>H1以上の整数値が全く異なる</strong>ため、移植時は必ず定数名を使う</li>
<li><code>input ENUM_TIMEFRAMES</code> でパラメーター化すると、<strong>ドロップダウン選択</strong>が自動生成されて便利</li>
<li><code>PeriodSeconds()</code> で時間足を秒数に変換でき、時間計算に活用できる</li>
<li>マルチタイムフレーム分析では、上位足のデータ（ヒストリー）が十分にあるか確認が必要</li>
</ul>
<p>時間足定数はEA開発で日常的に使う基本中の基本です。まずは <code>iMA()</code> や <code>iClose()</code> に異なる時間足を指定するところから試してみてください。マルチタイムフレーム分析ができるようになると、EA戦略の幅が大きく広がりますよ！</p>
<p>投稿 <a href="https://mql-programing.com/archives/13071/%e3%80%90mql4%e3%80%91%e6%99%82%e9%96%93%e8%b6%b3%e5%ae%9a%e6%95%b0%ef%bc%88enum_timeframes%ef%bc%89%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89%ef%bd%9cperiod_m1%e3%80%9cperiod_mn1%e3%81%ae%e4%b8%80/">【MQL4】時間足定数（ENUM_TIMEFRAMES）完全ガイド｜PERIOD_M1〜PERIOD_MN1の一覧と実践的な使い方</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
