<?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>iMACD アーカイブ - 自動売買を作ろう！</title>
	<atom:link href="https://mql-programing.com/archives/tag/imacd/feed/" rel="self" type="application/rss+xml" />
	<link>https://mql-programing.com/archives/tag/imacd/</link>
	<description>MQLプログラミング学習サイト</description>
	<lastBuildDate>Wed, 01 Apr 2026 02:47:38 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://mql-programing.com/main29/wp-content/uploads/2021/02/cropped-ブログアイコン-32x32.jpg</url>
	<title>iMACD アーカイブ - 自動売買を作ろう！</title>
	<link>https://mql-programing.com/archives/tag/imacd/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MQL4】iMACD関数の使い方を徹底解説！MACDの値を取得してEAに組み込もう【サンプルコード付き】</title>
		<link>https://mql-programing.com/archives/13019/%e3%80%90mql4%e3%80%91imacd%e9%96%a2%e6%95%b0%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%e3%82%92%e5%be%b9%e5%ba%95%e8%a7%a3%e8%aa%ac%ef%bc%81macd%e3%81%ae%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Wed, 08 Apr 2026 01:00:00 +0000</pubDate>
				<category><![CDATA[関数]]></category>
		<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[EA開発]]></category>
		<category><![CDATA[インジケーター関数]]></category>
		<category><![CDATA[MACD]]></category>
		<category><![CDATA[iMACD]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=13019</guid>

					<description><![CDATA[<p>「MACDのクロスで自動売買したい！」──テクニカル分析の定番指標MACDをEAに組み込むなら、まず覚えるべきなのがiMACD関数です。 この記事では、MQL4のiMACD関数の書式・引数の意味から、ゴールデンクロス・デ [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/13019/%e3%80%90mql4%e3%80%91imacd%e9%96%a2%e6%95%b0%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%e3%82%92%e5%be%b9%e5%ba%95%e8%a7%a3%e8%aa%ac%ef%bc%81macd%e3%81%ae%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97/">【MQL4】iMACD関数の使い方を徹底解説！MACDの値を取得してEAに組み込もう【サンプルコード付き】</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<p>「MACDのクロスで自動売買したい！」──テクニカル分析の定番指標MACDをEAに組み込むなら、まず覚えるべきなのが<strong>iMACD関数</strong>です。</p>
<p>この記事では、MQL4の<strong>iMACD関数</strong>の書式・引数の意味から、ゴールデンクロス・デッドクロスの判定ロジック、そして実際に動くEAのサンプルコードまで、ステップバイステップで解説します。初心者の方でも、この記事を読み終える頃にはMACDを使ったEAの原型が作れるようになるはずです。</p>
<h2><span id="toc1">MACDのおさらい</span></h2>
<p>コードの話に入る前に、MACD（Moving Average Convergence Divergence）の基本をおさらいしておきましょう。MACDは以下の<strong>3つの要素</strong>で構成されます。</p>
<h3><span id="toc2">MACDの3つの構成要素</span></h3>
<ul>
<li><strong>メインライン（MACDライン）</strong>：短期EMA（通常12期間）と長期EMA（通常26期間）の差</li>
<li><strong>シグナルライン</strong>：メインラインのEMA（通常9期間）</li>
<li><strong>ヒストグラム</strong>：メインライン − シグナルラインの差をバーで表示したもの</li>
</ul>
<h3><span id="toc3">基本的な売買シグナル</span></h3>
<ul>
<li><strong>ゴールデンクロス（買いシグナル）</strong>：メインラインがシグナルラインを下から上に抜ける</li>
<li><strong>デッドクロス（売りシグナル）</strong>：メインラインがシグナルラインを上から下に抜ける</li>
</ul>
<p>このクロスをプログラムで検出するのが、MACD系EAの基本中の基本です。</p>
<h2><span id="toc4">iMACD関数の書式と引数</span></h2>
<p>MQL4でMACDの値を取得するには、<strong>iMACD関数</strong>を使います。書式は以下のとおりです。</p>
<pre><code class="language-mql4">double iMACD(
   string       symbol,           // 通貨ペア名
   int          timeframe,        // 時間足
   int          fast_ema_period,  // 短期EMAの期間
   int          slow_ema_period,  // 長期EMAの期間
   int          signal_period,    // シグナルラインの期間
   int          applied_price,    // 適用価格
   int          mode,             // 取得するライン
   int          shift             // シフト（何本前のバーか）
);</code></pre>
<h3><span id="toc5">各引数の詳細</span></h3>
<table>
<thead>
<tr>
<th>引数</th>
<th>説明</th>
<th>よく使う値</th>
</tr>
</thead>
<tbody>
<tr>
<td>symbol</td>
<td>通貨ペア名。現在のチャートならNULL</td>
<td>NULL, Symbol()</td>
</tr>
<tr>
<td>timeframe</td>
<td>時間足。0で現在のチャートの時間足</td>
<td>0, PERIOD_H1 など</td>
</tr>
<tr>
<td>fast_ema_period</td>
<td>短期EMAの期間</td>
<td>12</td>
</tr>
<tr>
<td>slow_ema_period</td>
<td>長期EMAの期間</td>
<td>26</td>
</tr>
<tr>
<td>signal_period</td>
<td>シグナルラインの期間</td>
<td>9</td>
</tr>
<tr>
<td>applied_price</td>
<td>計算に使う価格の種類</td>
<td>PRICE_CLOSE</td>
</tr>
<tr>
<td>mode</td>
<td>取得するライン（後述）</td>
<td>MODE_MAIN, MODE_SIGNAL</td>
</tr>
<tr>
<td>shift</td>
<td>何本前のバーの値を取得するか</td>
<td>0（現在）, 1（1本前）</td>
</tr>
</tbody>
</table>
<h3><span id="toc6">modeパラメータの値</span></h3>
<p><strong>mode</strong>には以下の2つの定数を指定できます。</p>
<ul>
<li><strong>MODE_MAIN（0）</strong>：MACDメインラインの値を返す</li>
<li><strong>MODE_SIGNAL（1）</strong>：シグナルラインの値を返す</li>
</ul>
<p>なお、ヒストグラムの値は直接取得する定数がありません。<strong>メインライン − シグナルライン</strong>を自分で計算して求めます。</p>
<h3><span id="toc7">適用価格（applied_price）の定数一覧</span></h3>
<table>
<thead>
<tr>
<th>定数名</th>
<th>値</th>
<th>説明</th>
</tr>
</thead>
<tbody>
<tr>
<td>PRICE_CLOSE</td>
<td>0</td>
<td>終値</td>
</tr>
<tr>
<td>PRICE_OPEN</td>
<td>1</td>
<td>始値</td>
</tr>
<tr>
<td>PRICE_HIGH</td>
<td>2</td>
<td>高値</td>
</tr>
<tr>
<td>PRICE_LOW</td>
<td>3</td>
<td>安値</td>
</tr>
<tr>
<td>PRICE_MEDIAN</td>
<td>4</td>
<td>中央値 (High+Low)/2</td>
</tr>
<tr>
<td>PRICE_TYPICAL</td>
<td>5</td>
<td>代表値 (High+Low+Close)/3</td>
</tr>
<tr>
<td>PRICE_WEIGHTED</td>
<td>6</td>
<td>加重終値 (High+Low+Close+Close)/4</td>
</tr>
</tbody>
</table>
<p>特別な理由がなければ、<strong>PRICE_CLOSE（終値）</strong>を使うのが一般的です。</p>
<h2><span id="toc8">基本的な使い方</span></h2>
<p>まずは最もシンプルな使い方を見てみましょう。現在のチャートでMACDのメインラインとシグナルラインの値を取得するコードです。</p>
<pre><code class="language-mql4">void OnTick()
{
   // 1本前の確定バーからMACDメインラインの値を取得
   double macdMain = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1);
   
   // 1本前の確定バーからシグナルラインの値を取得
   double macdSignal = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 1);
   
   // ヒストグラムの値を計算
   double histogram = macdMain - macdSignal;
   
   // ログに出力して確認
   Print("MACD Main: ", macdMain, " Signal: ", macdSignal, " Histogram: ", histogram);
}</code></pre>
<p><strong>ポイント：</strong>shiftに<strong>1</strong>を指定しているのは、「1本前の確定したバー」の値を取得するためです。shift=0は現在形成中のバーなので値が変動します。売買判定にはshift=1以降の確定した値を使うのが基本です。</p>
<h2><span id="toc9">MACDクロス判定ロジック</span></h2>
<p>MACDのゴールデンクロス・デッドクロスを判定するには、<strong>1本前と2本前</strong>のバーの値を比較します。</p>
<pre><code class="language-mql4">// --- 1本前のバー（直近の確定バー）---
double macdMain1   = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1);
double macdSignal1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 1);

// --- 2本前のバー ---
double macdMain2   = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2);
double macdSignal2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 2);

// ゴールデンクロス判定：2本前ではメインがシグナル以下 → 1本前でメインがシグナルを超えた
bool goldenCross = (macdMain2 <= macdSignal2) &#038;&#038; (macdMain1 > macdSignal1);

// デッドクロス判定：2本前ではメインがシグナル以上 → 1本前でメインがシグナルを下回った
bool deadCross = (macdMain2 >= macdSignal2) && (macdMain1 < macdSignal1);</code></pre>
<p>この「2時点を比較してクロスを検出する」パターンは、移動平均線やRSIなど他のインジケーターでも応用できる重要なテクニックです。</p>
<h2><span id="toc10">実践！MACDクロスEAのサンプルコード</span></h2>
<p>ここからは、MACDのゴールデンクロスで買い、デッドクロスで売り（ドテン方式）のEAを作ってみましょう。実際にMT4で動作する完全なコードです。</p>
<pre><code class="language-mql4">//+------------------------------------------------------------------+
//|                                              MACD_Cross_EA.mq4   |
//|                        MACDクロスで売買するシンプルなEA            |
//+------------------------------------------------------------------+
#property strict

// --- 入力パラメータ ---
input int    FastEMA        = 12;          // 短期EMA期間
input int    SlowEMA        = 26;          // 長期EMA期間
input int    SignalPeriod    = 9;           // シグナル期間
input double LotSize        = 0.1;         // ロット数
input int    MagicNumber    = 20240101;    // マジックナンバー
input int    Slippage       = 3;           // スリッページ（ポイント）

//+------------------------------------------------------------------+
//| 新しいバーが形成されたか判定する関数                                |
//+------------------------------------------------------------------+
bool IsNewBar()
{
   static datetime lastBarTime = 0;
   datetime currentBarTime = iTime(NULL, 0, 0);
   
   if(lastBarTime != currentBarTime)
   {
      lastBarTime = currentBarTime;
      return true;
   }
   return false;
}

//+------------------------------------------------------------------+
//| 自分のEAが持つポジションの種類を返す関数                           |
//| 戻り値: 1=買いポジあり, -1=売りポジあり, 0=ポジなし                |
//+------------------------------------------------------------------+
int GetMyPosition()
{
   for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
         {
            if(OrderType() == OP_BUY)  return 1;
            if(OrderType() == OP_SELL) return -1;
         }
      }
   }
   return 0;
}

//+------------------------------------------------------------------+
//| 自分のEAが持つポジションを全決済する関数                           |
//+------------------------------------------------------------------+
void CloseMyPositions(int posType)
{
   for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
         {
            if(posType == 1 && OrderType() == OP_BUY)
               OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, clrNone);
            if(posType == -1 && OrderType() == OP_SELL)
               OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clrNone);
         }
      }
   }
}

//+------------------------------------------------------------------+
//| メインのティック処理                                               |
//+------------------------------------------------------------------+
void OnTick()
{
   // 新しいバーが形成されたときだけ処理する
   if(!IsNewBar()) return;
   
   // --- MACDの値を取得 ---
   double macdMain1   = iMACD(NULL, 0, FastEMA, SlowEMA, SignalPeriod, PRICE_CLOSE, MODE_MAIN, 1);
   double macdSignal1 = iMACD(NULL, 0, FastEMA, SlowEMA, SignalPeriod, PRICE_CLOSE, MODE_SIGNAL, 1);
   double macdMain2   = iMACD(NULL, 0, FastEMA, SlowEMA, SignalPeriod, PRICE_CLOSE, MODE_MAIN, 2);
   double macdSignal2 = iMACD(NULL, 0, FastEMA, SlowEMA, SignalPeriod, PRICE_CLOSE, MODE_SIGNAL, 2);
   
   // --- クロス判定 ---
   bool goldenCross = (macdMain2 <= macdSignal2) &#038;&#038; (macdMain1 > macdSignal1);
   bool deadCross   = (macdMain2 >= macdSignal2) && (macdMain1 < macdSignal1);
   
   // --- 現在のポジション状態を取得 ---
   int myPos = GetMyPosition();
   
   // --- ゴールデンクロス → 買いエントリー ---
   if(goldenCross)
   {
      // 売りポジションがあれば先に決済
      if(myPos == -1) CloseMyPositions(-1);
      
      // 買いポジションがなければ新規注文
      if(GetMyPosition() != 1)
      {
         int ticket = OrderSend(Symbol(), OP_BUY, LotSize, Ask, Slippage, 0, 0,
                                "MACD GC Buy", MagicNumber, 0, clrBlue);
         if(ticket < 0)
            Print("Buy OrderSend Error: ", GetLastError());
         else
            Print("Buy Order Success! Ticket: ", ticket);
      }
   }
   
   // --- デッドクロス → 売りエントリー ---
   if(deadCross)
   {
      // 買いポジションがあれば先に決済
      if(myPos == 1) CloseMyPositions(1);
      
      // 売りポジションがなければ新規注文
      if(GetMyPosition() != -1)
      {
         int ticket = OrderSend(Symbol(), OP_SELL, LotSize, Bid, Slippage, 0, 0,
                                "MACD DC Sell", MagicNumber, 0, clrRed);
         if(ticket < 0)
            Print("Sell OrderSend Error: ", GetLastError());
         else
            Print("Sell Order Success! Ticket: ", ticket);
      }
   }
}</code></pre>
<h3><span id="toc11">サンプルEAのポイント解説</span></h3>
<ul>
<li><strong>IsNewBar関数</strong>：新しいバーが形成されたときだけ処理を実行します。これにより無駄な重複注文を防ぎます。</li>
<li><strong>MagicNumber</strong>：このEAが出した注文を識別するための番号です。他のEAや手動注文と区別できます。</li>
<li><strong>ドテン方式</strong>：ゴールデンクロスで買いに転換、デッドクロスで売りに転換する仕組みです。反対ポジションを先に決済してから新規注文を出します。</li>
<li><strong>GetMyPosition関数</strong>：自分のEAが持つポジションの状態を調べる関数です。ポジション管理はEA開発で必須のテクニックです。</li>
</ul>
<h2><span id="toc12">応用：ゼロラインフィルターでダマシを減らす</span></h2>
<p>MACDクロスだけだと「ダマシ」（偽のシグナル）が多くなりがちです。精度を上げるテクニックとして、<strong>ゼロラインフィルター</strong>があります。</p>
<p>考え方はシンプルです。</p>
<ul>
<li><strong>買いシグナル</strong>：ゴールデンクロス かつ MACDメインラインが<strong>ゼロより下</strong>で発生したとき（底からの反転を狙う）</li>
<li><strong>売りシグナル</strong>：デッドクロス かつ MACDメインラインが<strong>ゼロより上</strong>で発生したとき（天井からの反転を狙う）</li>
</ul>
<p>コードに組み込むなら、クロス判定の条件に1行追加するだけです。</p>
<pre><code class="language-mql4">// ゼロラインフィルター付きのゴールデンクロス判定
bool filteredGoldenCross = goldenCross && (macdMain1 < 0);

// ゼロラインフィルター付きのデッドクロス判定
bool filteredDeadCross = deadCross &#038;&#038; (macdMain1 > 0);</code></pre>
<p>たった1行の条件追加ですが、トレンドの初動を捉えやすくなり、レンジ相場でのダマシを軽減できます。バックテストで効果を確認してみてください。</p>
<h2><span id="toc13">注意点・よくあるつまずきポイント</span></h2>
<h3><span id="toc14">1. MT4とMT5でMACDの表示が異なる</span></h3>
<p>MT4のMACDインジケーターでは、<strong>メインラインがヒストグラム（バー）</strong>で表示され、シグナルラインが点線で表示されます。一方MT5では、メインラインもシグナルラインも<strong>ライン</strong>で表示され、別途ヒストグラムが描画されます。見た目は違いますが、iMACD関数で取得できる値の意味は同じです。</p>
<h3><span id="toc15">2. ヒストグラムは自分で計算する</span></h3>
<p>iMACD関数にはヒストグラムを直接取得するモードがありません。ヒストグラムが必要な場合は、以下のように計算してください。</p>
<pre><code class="language-mql4">double histogram = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1)
                 - iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 1);</code></pre>
<h3><span id="toc16">3. マルチタイムフレーム分析に使える</span></h3>
<p>iMACD関数の第2引数（timeframe）を変えれば、現在のチャートと違う時間足のMACDを取得できます。例えば、5分足チャート上で1時間足のMACDを確認してフィルターに使う、といった活用が可能です。</p>
<pre><code class="language-mql4">// 1時間足のMACDメインラインを取得
double macdH1 = iMACD(NULL, PERIOD_H1, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1);</code></pre>
<h3><span id="toc17">4. 引数の順番に注意</span></h3>
<p>iMACD関数は引数が8つもあるため、順番を間違えやすいです。特に<strong>mode</strong>と<strong>shift</strong>を逆にするミスはよくあります。迷ったら公式リファレンスで確認する習慣をつけましょう。</p>
<h2><span id="toc18">まとめ</span></h2>
<p>この記事では、MQL4の<strong>iMACD関数</strong>について以下のポイントを解説しました。</p>
<ul>
<li>iMACD関数は<strong>8つの引数</strong>を持ち、MACDのメインラインとシグナルラインの値を取得できる</li>
<li>クロス判定は<strong>shift=1とshift=2</strong>の値を比較して行う</li>
<li>EA開発では<strong>新規バー判定</strong>・<strong>マジックナンバー管理</strong>・<strong>ポジション管理関数</strong>が重要</li>
<li><strong>ゼロラインフィルター</strong>を追加するだけでダマシを軽減できる</li>
<li>MT4とMT5でMACDの<strong>表示方法が異なる</strong>点に注意</li>
</ul>
<p>今回のサンプルEAはシンプルな構成ですが、ストップロスやテイクプロフィット、トレーリングストップなどを追加していくことで、より実践的なEAに育てていくことができます。まずはバックテストで動作を確認し、少しずつカスタマイズしてみてください！</p>
<p>投稿 <a href="https://mql-programing.com/archives/13019/%e3%80%90mql4%e3%80%91imacd%e9%96%a2%e6%95%b0%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%e3%82%92%e5%be%b9%e5%ba%95%e8%a7%a3%e8%aa%ac%ef%bc%81macd%e3%81%ae%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97/">【MQL4】iMACD関数の使い方を徹底解説！MACDの値を取得してEAに組み込もう【サンプルコード付き】</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】ライン定数（MODE）</title>
		<link>https://mql-programing.com/archives/1950/enum_mode_line/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sun, 10 Oct 2021 05:17:35 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[iBands]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[iEnvelopes]]></category>
		<category><![CDATA[iEnvelopesOnArray]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[iFractals]]></category>
		<category><![CDATA[iGator]]></category>
		<category><![CDATA[iAlligator]]></category>
		<category><![CDATA[iStochastic]]></category>
		<category><![CDATA[iIchimoku]]></category>
		<category><![CDATA[MODE]]></category>
		<category><![CDATA[iMACD]]></category>
		<category><![CDATA[iRVI]]></category>
		<category><![CDATA[iADX]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=1950</guid>

					<description><![CDATA[<p>ライン定数（MODE） ライン定数は、ロジック関数の引数として使用します。 ロジック関数（iMACD関数など）は、取得するラインを設定することができます。 その設定をするために、ライン定数を使うと良いでしょう。 例えば、 [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/1950/enum_mode_line/">【MQL4定数】ライン定数（MODE）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">ライン定数（MODE）</span></h2>



<p class="wp-block-paragraph">ライン定数は、ロジック関数の引数として使用します。</p>



<p class="wp-block-paragraph"><strong>ロジック関数（iMACD関数など）は、取得するラインを設定することができます。</strong></p>



<p class="wp-block-paragraph">その設定をするために、ライン定数を使うと良いでしょう。</p>



<p class="wp-block-paragraph">例えば、iMACD関数で使うと、取得する値はメインラインなのか、シグナルラインなのかを設定をすることができます。</p>



<p class="wp-block-paragraph">　</p>



<p class="wp-block-paragraph">それぞれ、<strong><span class="marker-under-red">mode引数の入力値</span></strong>として、ライン定数を使うことができます。</p>



<p class="wp-block-paragraph">　</p>



<h3 class="wp-block-heading"><span id="toc2">iMACD関数、iRVI関数、iStochastic関数で使用</span></h3>



<figure class="wp-block-table alignfull is-style-stripes"><table><tbody><tr><td><b>定数</b></td><td><strong>値</strong></td><td><strong>説明</strong></td></tr><tr><td>MODE_MAIN</td><td>0</td><td>メインライン</td></tr><tr><td>MODE_SIGNAL</td><td>1</td><td>シグナルライン</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">　</p>



<h3 class="wp-block-heading"><span id="toc3">iADX関数で使用</span></h3>



<figure class="wp-block-table alignfull is-style-stripes"><table><tbody><tr><td><strong>定数</strong></td><td><strong>値</strong></td><td><strong>説明</strong></td></tr><tr><td>MODE_MAIN</td><td>0</td><td>メインライン（ADX）</td></tr><tr><td>MODE_PLUSDI</td><td>1</td><td>+DIライン</td></tr><tr><td>MODE_MINUSDI</td><td>2</td><td>-DIライン</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">　</p>



<h3 class="wp-block-heading"><span id="toc4">iBands関数、iEnvelopes関数、iEnvelopesOnArray関数、iFractals関数、iGator関数で使用</span></h3>



<figure class="wp-block-table alignfull is-style-stripes"><table><tbody><tr><td><strong>定数</strong></td><td><strong>値</strong></td><td><strong>説明</strong></td></tr><tr><td>MODE_UPPER</td><td>1</td><td>上ライン</td></tr><tr><td>MODE_LOWER</td><td>2</td><td>下ライン</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">　</p>



<h3 class="wp-block-heading"><span id="toc5">iAlligator関数で使用</span></h3>



<figure class="wp-block-table alignfull is-style-stripes"><table><tbody><tr><td><strong>定数</strong></td><td><strong>値</strong></td><td><strong>説明</strong></td></tr><tr><td>MODE_GATORJAW</td><td>1</td><td>顎ライン</td></tr><tr><td>MODE_GATORTEETH</td><td>2</td><td>歯ライン</td></tr><tr><td>MODE_GATORLIPS</td><td>3</td><td>口ライン</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">　</p>



<h3 class="wp-block-heading"><span id="toc6">iIchimoku関数で使用</span></h3>



<figure class="wp-block-table alignfull is-style-stripes"><table><tbody><tr><td><strong>定数</strong></td><td><strong>値</strong></td><td><strong>説明</strong></td></tr><tr><td>MODE_TENKANSEN</td><td>1</td><td>転換線</td></tr><tr><td>MODE_KIJUNSEN</td><td>2</td><td>基準線</td></tr><tr><td>MODE_SENKOUSPANA</td><td>3</td><td>先行スパンA</td></tr><tr><td>MODE_SENKOUSPANB</td><td>4</td><td>先行スパンB</td></tr><tr><td>MODE_CHIKOUSPAN</td><td>5</td><td>遅行スパン</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">　</p>



<h2 class="wp-block-heading"><span id="toc7">ライン定数（MODE）の使い方</span></h2>



<p class="wp-block-paragraph">主に、ロジック関数で使用されます。</p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">それぞれ、mode引数の入力値として、ライン定数を使うことができます。</span></strong></p>



<p class="wp-block-paragraph">上記の定数を入力しましょう。</p>



<p class="wp-block-paragraph">すると、その定数に対応したラインの値を取得することができます。</p>



<p class="wp-block-paragraph">例えば、以下のように使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>  //iMACD関数
  //メインラインのMACDの値を取得する
   double macd = iMACD(Symbol(), PERIOD_CURRENT, 14, 25, 9, PRICE_CLOSE, MODE_MAIN, 0);</code></pre></div>



<p class="wp-block-paragraph">　</p>



<h2 class="wp-block-heading"><span id="toc8">プログラム例</span></h2>



<p class="wp-block-paragraph">以下は、ライン定数を使って複数のインジケーター値を取得するプログラム例です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void OnTick()
{
   //-------------------------------------------
   // iMACD関数でライン定数を使用する例
   //-------------------------------------------
   // メインライン（MACD線）の値を取得
   double macdMain = iMACD(Symbol(), PERIOD_CURRENT, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);
   // シグナルラインの値を取得
   double macdSignal = iMACD(Symbol(), PERIOD_CURRENT, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 0);

   // メインラインがシグナルラインを上抜けた場合
   if(macdMain > macdSignal)
   {
      Print("MACDゴールデンクロス: メイン=", macdMain, " シグナル=", macdSignal);
   }

   //-------------------------------------------
   // iStochastic関数でライン定数を使用する例
   //-------------------------------------------
   // メインライン（%K）の値を取得
   double stochMain = iStochastic(Symbol(), PERIOD_CURRENT, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);
   // シグナルライン（%D）の値を取得
   double stochSignal = iStochastic(Symbol(), PERIOD_CURRENT, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);

   Print("Stochastic: %%K=", stochMain, " %%D=", stochSignal);

   //-------------------------------------------
   // iBands関数でライン定数を使用する例
   //-------------------------------------------
   // メインライン（中央線）の値を取得
   double bandsMain  = iBands(Symbol(), PERIOD_CURRENT, 20, 2, 0, PRICE_CLOSE, MODE_MAIN, 0);
   // 上ラインの値を取得
   double bandsUpper = iBands(Symbol(), PERIOD_CURRENT, 20, 2, 0, PRICE_CLOSE, MODE_UPPER, 0);
   // 下ラインの値を取得
   double bandsLower = iBands(Symbol(), PERIOD_CURRENT, 20, 2, 0, PRICE_CLOSE, MODE_LOWER, 0);

   Print("Bands: 上=", bandsUpper, " 中央=", bandsMain, " 下=", bandsLower);

   //-------------------------------------------
   // iIchimoku関数でライン定数を使用する例
   //-------------------------------------------
   // 転換線の値を取得
   double tenkan  = iIchimoku(Symbol(), PERIOD_CURRENT, 9, 26, 52, MODE_TENKANSEN, 0);
   // 基準線の値を取得
   double kijun   = iIchimoku(Symbol(), PERIOD_CURRENT, 9, 26, 52, MODE_KIJUNSEN, 0);
   // 先行スパンAの値を取得
   double spanA   = iIchimoku(Symbol(), PERIOD_CURRENT, 9, 26, 52, MODE_SENKOUSPANA, 0);
   // 先行スパンBの値を取得
   double spanB   = iIchimoku(Symbol(), PERIOD_CURRENT, 9, 26, 52, MODE_SENKOUSPANB, 0);
   // 遅行スパンの値を取得
   double chikou  = iIchimoku(Symbol(), PERIOD_CURRENT, 9, 26, 52, MODE_CHIKOUSPAN, 0);

   Print("一目均衡表: 転換線=", tenkan, " 基準線=", kijun);

   //-------------------------------------------
   // iAlligator関数でライン定数を使用する例
   //-------------------------------------------
   // 顎ライン（Jaw）の値を取得
   double jaw  = iAlligator(Symbol(), PERIOD_CURRENT, 13, 8, 8, 5, 5, 3, MODE_SMA, PRICE_MEDIAN, MODE_GATORJAW, 0);
   // 歯ライン（Teeth）の値を取得
   double teeth = iAlligator(Symbol(), PERIOD_CURRENT, 13, 8, 8, 5, 5, 3, MODE_SMA, PRICE_MEDIAN, MODE_GATORTEETH, 0);
   // 口ライン（Lips）の値を取得
   double lips  = iAlligator(Symbol(), PERIOD_CURRENT, 13, 8, 8, 5, 5, 3, MODE_SMA, PRICE_MEDIAN, MODE_GATORLIPS, 0);

   Print("Alligator: 顎=", jaw, " 歯=", teeth, " 口=", lips);
}</code></pre></div>



<p class="wp-block-paragraph">　</p>



<p class="wp-block-paragraph">上記のプログラムでは、各インジケーター関数のmode引数にライン定数を指定することで、それぞれ対応するラインの値を取得しています。</p>



<p class="wp-block-paragraph">　</p>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a href="https://mql-programing.com/sample_program/" class="btn btn-l btn-circle" target="_self">サンプルプログラムはこちら</a></div>



<p class="wp-block-paragraph">　</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-自動売買を作ろう！ wp-block-embed-自動売買を作ろう！"><div class="wp-block-embed__wrapper">

<a href="https://mql-programing.com/make_autotrade_by_myself/" title="【MQL4プログラミング】自動売買の作り方！FXで使えるテンプレートあり" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://mql-programing.com/main29/wp-content/uploads/cocoon-resources/blog-card-cache/a4e701a9f8569faadbe992111b709637.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【MQL4プログラミング】自動売買の作り方！FXで使えるテンプレートあり</div><div class="blogcard-snippet external-blogcard-snippet">はじめに この記事は、MQLプログラミング基礎を理解している方向けに作成しております。 もしMQLプログラミングがわからないという方は、先に以下の記事を読んでおくことをオススメします。 カテゴリー：MQLプログラミング基</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com/archives/1605/make_autotrade_by_myself/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-自動売買を作ろう！ wp-block-embed-自動売買を作ろう！"><div class="wp-block-embed__wrapper">

<a href="https://mql-programing.com/mql-reference/" title="MQL4リファレンス【全データ一覧】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-160x90.jpg 160w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-300x169.jpg 300w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-1024x576.jpg 1024w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-768x432.jpg 768w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-120x68.jpg 120w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-320x180.jpg 320w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス.jpg 1120w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">MQL4リファレンス【全データ一覧】</div><div class="blogcard-snippet internal-blogcard-snippet">/*! elementor - v3.6.5 - 27-04-2022 */.e-container.e-container--row .elementor-spacer-inner{width:var(--spacer-size)}.e-</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<p class="wp-block-paragraph">　</p>
<p>投稿 <a href="https://mql-programing.com/archives/1950/enum_mode_line/">【MQL4定数】ライン定数（MODE）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
