<?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/%e3%82%a4%e3%83%b3%e3%82%b8%e3%82%b1%e3%83%bc%e3%82%bf%e3%83%bc/feed/" rel="self" type="application/rss+xml" />
	<link>https://mql-programing.com/archives/tag/インジケーター/</link>
	<description>MQLプログラミング学習サイト</description>
	<lastBuildDate>Sat, 04 Apr 2026 10:08:06 +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関数】iEnvelopes関数の使い方！エンベロープでトレンドフィルターEAを作ろう</title>
		<link>https://mql-programing.com/archives/13096/%e3%80%90mql4%e9%96%a2%e6%95%b0%e3%80%91ienvelopes%e9%96%a2%e6%95%b0%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%ef%bc%81%e3%82%a8%e3%83%b3%e3%83%99%e3%83%ad%e3%83%bc%e3%83%97%e3%81%a7%e3%83%88%e3%83%ac/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Fri, 01 May 2026 01:00:00 +0000</pubDate>
				<category><![CDATA[関数]]></category>
		<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[iEnvelopes]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[エンベロープ]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=13096</guid>

					<description><![CDATA[<p>エンベロープ（Envelopes）は移動平均線の上下に一定割合のバンドを描くインジケーターです。価格がバンドを超えたときの反転狙い、またはバンドを突破したときのトレンドフォローなど、さまざまな手法で活用されます。 MQL [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/13096/%e3%80%90mql4%e9%96%a2%e6%95%b0%e3%80%91ienvelopes%e9%96%a2%e6%95%b0%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%ef%bc%81%e3%82%a8%e3%83%b3%e3%83%99%e3%83%ad%e3%83%bc%e3%83%97%e3%81%a7%e3%83%88%e3%83%ac/">【MQL4関数】iEnvelopes関数の使い方！エンベロープでトレンドフィルターEAを作ろう</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<p>エンベロープ（Envelopes）は移動平均線の上下に一定割合のバンドを描くインジケーターです。価格がバンドを超えたときの反転狙い、またはバンドを突破したときのトレンドフォローなど、さまざまな手法で活用されます。</p>
<p>MQL4では <code>iEnvelopes()</code> 関数を使ってエンベロープの値を取得できます。</p>
<h2><span id="toc1">iEnvelopes() の構文</span></h2>
<pre><code class="language-mql4">double iEnvelopes(
    string  symbol,       // 通貨ペア（NULLで現在のチャート）
    int     timeframe,    // 時間足（0で現在の時間足）
    int     ma_period,    // 移動平均の期間
    int     ma_method,    // 移動平均の種類
    int     ma_shift,     // 移動平均のシフト
    int     applied_price,// 適用価格
    double  deviation,    // 偏差（%）
    int     mode,         // バンドの種類（上・下）
    int     shift         // 何本前のバーか（0=現在）
);</code></pre>
<h2><span id="toc2">引数の詳細</span></h2>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>引数</th>
<th>説明</th>
<th>よく使う値</th>
</tr>
</thead>
<tbody>
<tr>
<td>symbol</td>
<td>通貨ペア</td>
<td>NULL（現在のチャート）</td>
</tr>
<tr>
<td>timeframe</td>
<td>時間足</td>
<td>0（現在の時間足）</td>
</tr>
<tr>
<td>ma_period</td>
<td>移動平均の期間</td>
<td>20〜50</td>
</tr>
<tr>
<td>ma_method</td>
<td>移動平均の種類</td>
<td>MODE_SMA / MODE_EMA</td>
</tr>
<tr>
<td>ma_shift</td>
<td>MAのシフト</td>
<td>0（通常）</td>
</tr>
<tr>
<td>applied_price</td>
<td>適用価格</td>
<td>PRICE_CLOSE</td>
</tr>
<tr>
<td>deviation</td>
<td>バンドの偏差（%）</td>
<td>0.1〜0.5</td>
</tr>
<tr>
<td>mode</td>
<td>上下バンドの指定</td>
<td>MODE_UPPER / MODE_LOWER</td>
</tr>
<tr>
<td>shift</td>
<td>何本前のバーか</td>
<td>0（現在）/ 1（1本前）</td>
</tr>
</tbody>
</table>
</figure>
<h3><span id="toc3">mode の値</span></h3>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>定数</th>
<th>値</th>
<th>説明</th>
</tr>
</thead>
<tbody>
<tr>
<td>MODE_UPPER</td>
<td>1</td>
<td>上バンド（移動平均 + 偏差%）</td>
</tr>
<tr>
<td>MODE_LOWER</td>
<td>2</td>
<td>下バンド（移動平均 &#8211; 偏差%）</td>
</tr>
</tbody>
</table>
</figure>
<h2><span id="toc4">基本的な使い方</span></h2>
<pre><code class="language-mql4">// 20期間SMA、偏差0.2%のエンベロープを取得する
double upperBand = iEnvelopes(NULL, 0, 20, MODE_SMA, 0, PRICE_CLOSE, 0.2, MODE_UPPER, 0);
double lowerBand = iEnvelopes(NULL, 0, 20, MODE_SMA, 0, PRICE_CLOSE, 0.2, MODE_LOWER, 0);

Print("上バンド: ", upperBand);
Print("下バンド: ", lowerBand);</code></pre>
<h2><span id="toc5">実践例1：エンベロープのブレイクアウトでエントリー</span></h2>
<p>価格が上バンドを上抜けたら買い、下バンドを下抜けたら売りのシグナルとして使う例です。</p>
<pre><code class="language-mql4">extern int    MagicNumber = 11001;
extern double Lots        = 0.1;
extern int    MA_Period   = 20;
extern double Deviation   = 0.2;  // バンド幅（%）

//+------------------------------------------------------------------+
//| エンベロープ ブレイクアウトEA                                       |
//+------------------------------------------------------------------+
void OnTick()
{
    // すでにポジションがある場合はスキップ
    if(OrdersTotal() > 0) return;

    double upperBand = iEnvelopes(NULL, 0, MA_Period, MODE_SMA, 0, PRICE_CLOSE, Deviation, MODE_UPPER, 1);
    double lowerBand = iEnvelopes(NULL, 0, MA_Period, MODE_SMA, 0, PRICE_CLOSE, Deviation, MODE_LOWER, 1);
    double prevClose = iClose(NULL, 0, 2);  // 2本前の終値
    double lastClose = iClose(NULL, 0, 1);  // 1本前の終値

    // 上バンドを上抜け → 買いエントリー
    if(prevClose < upperBand &#038;&#038; lastClose > upperBand)
    {
        OrderSend(Symbol(), OP_BUY, Lots, Ask, 20, 0, 0,
                  "Envelope Breakout", MagicNumber, 0, clrBlue);
    }

    // 下バンドを下抜け → 売りエントリー
    if(prevClose > lowerBand && lastClose < lowerBand)
    {
        OrderSend(Symbol(), OP_SELL, Lots, Bid, 20, 0, 0,
                  "Envelope Breakout", MagicNumber, 0, clrRed);
    }
}</code></pre>
<h2><span id="toc6">実践例2：エンベロープをトレンドフィルターとして使う</span></h2>
<p>価格が上バンドより上にある＝上昇トレンドと判断し、他のシグナルと組み合わせるフィルターとして活用する例です。</p>
<pre><code class="language-mql4">// トレンドフィルター関数
// 戻り値: 1=上昇トレンド / -1=下降トレンド / 0=レンジ
int GetTrend()
{
    double upperBand = iEnvelopes(NULL, 0, 20, MODE_SMA, 0, PRICE_CLOSE, 0.2, MODE_UPPER, 1);
    double lowerBand = iEnvelopes(NULL, 0, 20, MODE_SMA, 0, PRICE_CLOSE, 0.2, MODE_LOWER, 1);
    double lastClose = iClose(NULL, 0, 1);

    if(lastClose > upperBand) return  1;  // 上昇トレンド
    if(lastClose < lowerBand) return -1;  // 下降トレンド
    return 0;                             // レンジ（バンド内）
}

void OnTick()
{
    int trend = GetTrend();

    if(trend == 1)
        Comment("トレンド: 上昇（買いシグナルのみ有効）");
    else if(trend == -1)
        Comment("トレンド: 下降（売りシグナルのみ有効）");
    else
        Comment("トレンド: レンジ（様子見）");
}</code></pre>
<h2><span id="toc7">実践例3：反転狙い（逆張り）</span></h2>
<p>価格がバンドに触れたら反転を狙う逆張り戦略です。</p>
<pre><code class="language-mql4">extern int    MagicNumber = 11002;
extern double Lots        = 0.1;
extern int    MA_Period   = 30;
extern double Deviation   = 0.3;

void OnTick()
{
    if(OrdersTotal() > 0) return;

    double upperBand = iEnvelopes(NULL, 0, MA_Period, MODE_EMA, 0, PRICE_CLOSE, Deviation, MODE_UPPER, 1);
    double lowerBand = iEnvelopes(NULL, 0, MA_Period, MODE_EMA, 0, PRICE_CLOSE, Deviation, MODE_LOWER, 1);
    double high1     = iHigh(NULL, 0, 1);
    double low1      = iLow(NULL, 0, 1);

    // 上バンドに高値が触れた → 売り（反転狙い）
    if(high1 >= upperBand)
    {
        OrderSend(Symbol(), OP_SELL, Lots, Bid, 20, 0, 0,
                  "Envelope Mean Reversion", MagicNumber, 0, clrRed);
    }

    // 下バンドに安値が触れた → 買い（反転狙い）
    if(low1 <= lowerBand)
    {
        OrderSend(Symbol(), OP_BUY, Lots, Ask, 20, 0, 0,
                  "Envelope Mean Reversion", MagicNumber, 0, clrBlue);
    }
}</code></pre>
<h2><span id="toc8">偏差（deviation）の目安</span></h2>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>通貨ペア</th>
<th>推奨偏差</th>
<th>補足</th>
</tr>
</thead>
<tbody>
<tr>
<td>USDJPY</td>
<td>0.1〜0.3%</td>
<td>ボラティリティが低め</td>
</tr>
<tr>
<td>EURUSD</td>
<td>0.1〜0.2%</td>
<td>標準的な設定</td>
</tr>
<tr>
<td>GBPJPY</td>
<td>0.3〜0.5%</td>
<td>ボラティリティが高め</td>
</tr>
</tbody>
</table>
</figure>
<p>偏差が小さすぎるとノイズが多くなり、大きすぎるとシグナルが少なくなります。バックテストで最適な値を見つけましょう。</p>
<h2><span id="toc9">まとめ</span></h2>
<ul>
<li><code>iEnvelopes()</code> は移動平均の上下にバンドを描くインジケーター関数</li>
<li><strong>MODE_UPPER</strong> で上バンド、<strong>MODE_LOWER</strong> で下バンドの値を取得</li>
<li>ブレイクアウト（トレンドフォロー）と反転狙い（逆張り）の両方に応用できる</li>
<li><code>deviation</code> パラメーターはバックテストで通貨ペアに合わせて調整する</li>
</ul>
<p>投稿 <a href="https://mql-programing.com/archives/13096/%e3%80%90mql4%e9%96%a2%e6%95%b0%e3%80%91ienvelopes%e9%96%a2%e6%95%b0%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%ef%bc%81%e3%82%a8%e3%83%b3%e3%83%99%e3%83%ad%e3%83%bc%e3%83%97%e3%81%a7%e3%83%88%e3%83%ac/">【MQL4関数】iEnvelopes関数の使い方！エンベロープでトレンドフィルターEAを作ろう</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
