<?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/%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mql-programing.com/archives/tag/関数/</link>
	<description>MQLプログラミング学習サイト</description>
	<lastBuildDate>Wed, 08 Apr 2026 11:29:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</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関数】iAlligator関数の使い方！アリゲーターでトレンド判定EAを作ろう</title>
		<link>https://mql-programing.com/archives/13104/%e3%80%90mql4%e9%96%a2%e6%95%b0%e3%80%91ialligator%e9%96%a2%e6%95%b0%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%ef%bc%81%e3%82%a2%e3%83%aa%e3%82%b2%e3%83%bc%e3%82%bf%e3%83%bc%e3%81%a7%e3%83%88%e3%83%ac/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sat, 02 May 2026 01:00:00 +0000</pubDate>
				<category><![CDATA[関数]]></category>
		<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[iAlligator]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[インジケーター]]></category>
		<category><![CDATA[アリゲーター]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=13104</guid>

					<description><![CDATA[<p>iAlligator関数を使えば、アリゲーターインジケーターの3本のライン（顎・歯・唇）の値をMQL4プログラムから取得できます。アリゲーターはトレンドの有無と方向を視覚的に判断できるインジケーターで、EAのエントリーフ [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/13104/%e3%80%90mql4%e9%96%a2%e6%95%b0%e3%80%91ialligator%e9%96%a2%e6%95%b0%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%ef%bc%81%e3%82%a2%e3%83%aa%e3%82%b2%e3%83%bc%e3%82%bf%e3%83%bc%e3%81%a7%e3%83%88%e3%83%ac/">【MQL4関数】iAlligator関数の使い方！アリゲーターでトレンド判定EAを作ろう</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>iAlligator関数を使えば、アリゲーターインジケーターの3本のライン（顎・歯・唇）の値をMQL4プログラムから取得できます。</strong>アリゲーターはトレンドの有無と方向を視覚的に判断できるインジケーターで、EAのエントリーフィルターとして非常に人気があります。この記事では iAlligator の構文から実践的なEAサンプルまでPREP法で解説します。</p>
<h2><span id="toc1">iAlligator関数とは？なぜトレンド判定に使われるのか</span></h2>
<p>アリゲーター（Alligator）はビル・ウィリアムズが考案したインジケーターです。移動平均線を時間軸でずらした3本のラインで構成されており、ラインが開くとトレンド発生、収束するとレンジ相場という状態を示します。</p>
<p>MQL4では <code>iAlligator()</code> 関数でこの3本のライン値をリアルタイムに取得できるため、「トレンドが発生しているときだけエントリーする」というフィルターロジックをEAに組み込めます。</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>ライン名</th>
<th>別名</th>
<th>設定（デフォルト）</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jaw（顎）</td>
<td>青ライン</td>
<td>13期間SMMA・8バーシフト</td>
</tr>
<tr>
<td>Teeth（歯）</td>
<td>赤ライン</td>
<td>8期間SMMA・5バーシフト</td>
</tr>
<tr>
<td>Lips（唇）</td>
<td>緑ライン</td>
<td>5期間SMMA・3バーシフト</td>
</tr>
</tbody>
</table>
</figure>
<h2><span id="toc2">iAlligator() の構文と引数</span></h2>
<pre><code class="language-mql4">double iAlligator(
    string symbol,          // 通貨ペア（NULLで現在のチャート）
    int    timeframe,       // 時間足（0で現在の時間足）
    int    jaw_period,      // 顎の期間（デフォルト13）
    int    jaw_shift,       // 顎のシフト（デフォルト8）
    int    teeth_period,    // 歯の期間（デフォルト8）
    int    teeth_shift,     // 歯のシフト（デフォルト5）
    int    lips_period,     // 唇の期間（デフォルト5）
    int    lips_shift,      // 唇のシフト（デフォルト3）
    int    ma_method,       // 移動平均の種類（MODE_SMMA推奨）
    int    applied_price,   // 適用価格（PRICE_MEDIAN推奨）
    int    mode,            // 取得するライン
    int    shift            // 何本前のバーか（0=現在）
);</code></pre>
<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_GATORJAW</td>
<td>1</td>
<td>顎（Jaw）ラインの値</td>
</tr>
<tr>
<td>MODE_GATORTEETH</td>
<td>2</td>
<td>歯（Teeth）ラインの値</td>
</tr>
<tr>
<td>MODE_GATORLIPS</td>
<td>3</td>
<td>唇（Lips）ラインの値</td>
</tr>
</tbody>
</table>
</figure>
<h2><span id="toc4">基本的な使い方：3本のライン値を取得する</span></h2>
<p>iAlligator関数でアリゲーターの各ラインを取得する最もシンプルなコードです。</p>
<pre><code class="language-mql4">// アリゲーターのデフォルト設定で3本のライン値を取得
double jaw   = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW,   1);
double teeth = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, 1);
double lips  = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORLIPS,  1);

Print("顎(Jaw): ",   jaw);
Print("歯(Teeth): ", teeth);
Print("唇(Lips): ",  lips);</code></pre>
<h2><span id="toc5">実践例1：アリゲーターでトレンドフィルターを作る</span></h2>
<p>アリゲーターの3本のラインの並び順でトレンドを判定します。唇 &gt; 歯 &gt; 顎なら上昇トレンド、顎 &gt; 歯 &gt; 唇なら下降トレンドと判断できます。</p>
<pre><code class="language-mql4">// トレンド判定関数
// 戻り値: 1=上昇トレンド / -1=下降トレンド / 0=レンジ（睡眠中）
int GetAlligatorTrend()
{
    double jaw   = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW,   1);
    double teeth = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, 1);
    double lips  = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORLIPS,  1);

    // 唇 > 歯 > 顎 → 上昇トレンド
    if(lips > teeth && teeth > jaw)
        return 1;

    // 顎 > 歯 > 唇 → 下降トレンド
    if(jaw > teeth && teeth > lips)
        return -1;

    // それ以外 → レンジ（アリゲーターが眠っている状態）
    return 0;
}

void OnTick()
{
    int trend = GetAlligatorTrend();
    if(trend == 1)
        Comment("アリゲーター: 上昇トレンド");
    else if(trend == -1)
        Comment("アリゲーター: 下降トレンド");
    else
        Comment("アリゲーター: レンジ（様子見）");
}</code></pre>
<h2><span id="toc6">実践例2：アリゲーターをフィルターにしたEA</span></h2>
<p>iAlligator関数のトレンド判定と iMA（移動平均）のゴールデンクロスを組み合わせた実践的なEAです。アリゲーターがトレンドを示しているときだけエントリーするため、ダマシを減らせます。</p>
<pre><code class="language-mql4">extern int    MagicNumber = 20001;
extern double Lots        = 0.1;
extern int    FastMA      = 5;
extern int    SlowMA      = 20;

void OnTick()
{
    // ラインが3本とも開いているか（絶対値で判定）
    double jaw   = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW,   1);
    double teeth = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, 1);
    double lips  = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORLIPS,  1);

    bool upTrend   = (lips > teeth && teeth > jaw);
    bool downTrend = (jaw  > teeth && teeth > lips);

    // MAクロス判定
    double fastMA_cur  = iMA(NULL, 0, FastMA, 0, MODE_EMA, PRICE_CLOSE, 1);
    double fastMA_prev = iMA(NULL, 0, FastMA, 0, MODE_EMA, PRICE_CLOSE, 2);
    double slowMA_cur  = iMA(NULL, 0, SlowMA, 0, MODE_EMA, PRICE_CLOSE, 1);
    double slowMA_prev = iMA(NULL, 0, SlowMA, 0, MODE_EMA, PRICE_CLOSE, 2);

    bool goldenCross = (fastMA_prev < slowMA_prev &#038;&#038; fastMA_cur > slowMA_cur);
    bool deadCross   = (fastMA_prev > slowMA_prev && fastMA_cur < slowMA_cur);

    if(OrdersTotal() > 0) return;

    // アリゲーターが上昇トレンド ＋ ゴールデンクロス → 買い
    if(upTrend && goldenCross)
    {
        OrderSend(Symbol(), OP_BUY, Lots, Ask, 20, 0, 0,
                  "Alligator+MA", MagicNumber, 0, clrBlue);
    }

    // アリゲーターが下降トレンド ＋ デッドクロス → 売り
    if(downTrend && deadCross)
    {
        OrderSend(Symbol(), OP_SELL, Lots, Bid, 20, 0, 0,
                  "Alligator+MA", MagicNumber, 0, clrRed);
    }
}</code></pre>
<h2><span id="toc7">iAlligator使用時の注意点</span></h2>
<ul>
<li><strong>シフトに注意：</strong>アリゲーターは各ラインが未来方向にシフトされるため、チャート上の表示位置とバーインデックスがずれます。shift=1（1本前）を使って確定済みのバーを参照するのが基本です。</li>
<li><strong>レンジ相場では使わない：</strong>3本のラインが絡み合っている（アリゲーターが眠っている）状態でのエントリーはダマシが増えます。必ず上記のトレンド判定と組み合わせてください。</li>
<li><strong>applied_price はPRICE_MEDIAN：</strong>ビル・ウィリアムズのオリジナル設定は中値（(High+Low)/2）です。PRICE_CLOSEで計算するとチャートの表示と一致しないことがあります。</li>
</ul>
<h2><span id="toc8">まとめ</span></h2>
<p><strong>iAlligator関数は、アリゲーターインジケーターの顎・歯・唇の3本のライン値をMQL4から直接取得できる関数です。</strong>ラインの並び順を見るだけでトレンドの有無・方向を判定できるため、EA開発のフィルターとして非常に使いやすいのが特徴です。</p>
<p>レンジ相場（アリゲーターが眠っている状態）ではエントリーを避け、トレンドが明確に出たときだけ他のシグナルと組み合わせるのがiAlligator活用のポイントです。</p>
<p>投稿 <a href="https://mql-programing.com/archives/13104/%e3%80%90mql4%e9%96%a2%e6%95%b0%e3%80%91ialligator%e9%96%a2%e6%95%b0%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%ef%bc%81%e3%82%a2%e3%83%aa%e3%82%b2%e3%83%bc%e3%82%bf%e3%83%bc%e3%81%a7%e3%83%88%e3%83%ac/">【MQL4関数】iAlligator関数の使い方！アリゲーターでトレンド判定EAを作ろう</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<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[エンベロープ]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[iEnvelopes]]></category>
		<category><![CDATA[MQL4]]></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>
		<item>
		<title>【MQLプログラミング基礎】関数は難しい？関数の使い方を理解しよう！プログラム例あり</title>
		<link>https://mql-programing.com/archives/183/function/</link>
					<comments>https://mql-programing.com/archives/183/function/#respond</comments>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Tue, 16 Feb 2021 07:02:09 +0000</pubDate>
				<category><![CDATA[【初級編】MQLプログラミング基礎]]></category>
		<category><![CDATA[関数]]></category>
		<category><![CDATA[メソッド]]></category>
		<category><![CDATA[プログラミング基礎]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=183</guid>

					<description><![CDATA[<p>関数とは？ 「プログラムは、何度も同じことを書かないといけない」 と思っている方、ぜひ関数を使ってみてください。 関数とは、何度も繰り返すプログラムを、まとめた状態のものです。 事前に、まとまりを作っておくことで、同じプ [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/183/function/">【MQLプログラミング基礎】関数は難しい？関数の使い方を理解しよう！プログラム例あり</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-11 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://mql-programing.com/main29/wp-content/uploads/2021/10/アイコン.png" alt="朝日奈りさ" class="speech-icon-image"/></figure><div class="speech-name">朝日奈りさ</div></div><div class="speech-balloon">
<p class="wp-block-paragraph">関数をマスターすると、プログラムを書くスピードがアップするよ！</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc1">関数とは？</span></h2>



<p class="wp-block-paragraph"><span class="marker-under-red"><strong>「プログラムは、何度も同じことを書かないといけない」</strong></span></p>



<p class="wp-block-paragraph">と思っている方、ぜひ関数を使ってみてください。</p>



<p class="wp-block-paragraph">関数とは、何度も繰り返すプログラムを、まとめた状態のものです。</p>



<p class="wp-block-paragraph">事前に、まとまりを作っておくことで、<strong>同じプログラムを何度も書く必要がなくなります。</strong></p>



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


<div class="danger-box">※「変数」と「関数」は全くの別物です。<br>　名前が似ていますが、注意してください。</div>


<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content">関連記事</span></div>



<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/variable/" title="【MQLプログラミング基礎】変数とは？使い方を詳しく解説！プログラム例あり" 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://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2020/10/変数とは.png?fit=2240%2C1260&#038;ssl=1" 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">【MQLプログラミング基礎】変数とは？使い方を詳しく解説！プログラム例あり</div><div class="blogcard-snippet external-blogcard-snippet">目次 変数とは？変数の使い方変数に保存されているデータの変更方法MQLプログラミングでの変数の使い方MQLプログラム例（MT4で動作可能）まとめ 変数とは？ 変数は、数字や文字などの、データを保存するための入れ物です。</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/47/variable/" 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>



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



<p class="wp-block-paragraph">たとえば、以下のようなプログラムのまとまりを<strong><span class="marker-under-red">関数</span></strong>と呼びます。</p>



<p class="wp-block-paragraph">足し算をする関数です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//MyFunctionという関数を作成します。
int MyFunction(int number)
  {

　　//numberという変数を読み込んで、suujiと足し算します。
   int suuji = 100;
   suuji = suuji + number;

　　//足し算の結果を返却します。
   return  suuji
  }</code></pre></div>



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



<p class="wp-block-paragraph">上記の例では、MyFunctionという関数を作成しました。</p>



<p class="wp-block-paragraph">ちなみに、「MyFunction」じゃなくても、<strong><span class="marker-under-red">関数の名前はなんでもOK</span></strong>です。</p>



<p class="wp-block-paragraph">「朝日奈りさSpecial」とかでOKです。（ダサい）</p>



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



<p class="wp-block-paragraph">さて、ここからは上記の例を参考にしながら、関数の使い方について詳しく見ていきましょう。</p>



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



<h2 class="wp-block-heading"><span id="toc2">関数のプログラム例</span></h2>



<p class="wp-block-paragraph">関数は、プログラム全体で見ると以下のように書きます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//|                                           SampleMQL_function.mq4 |
//|                                    Copyright 2021, 朝日奈りさFXchannel |
//|                                      https://mql-programing.com/ |
//+------------------------------------------------------------------+
#property copyright &quot;Copyright 2021, 朝日奈りさFXchannel&quot;
#property link      &quot;https://mql-programing.com/&quot;
#property version   &quot;1.00&quot;
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int suuji = MyFunction(10);
   Comment(&quot;\n&quot;,&quot;OnInit()という関数を実行します。&quot;,
   &quot;suujiの結果は&quot;,suuji,&quot;です。&quot;);

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Comment(&quot;\n&quot;,&quot;OnDeinit()という関数を実行します。&quot;);
   

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int suuji = MyFunction(20);
   Comment(&quot;\n&quot;,&quot;OnTick()という関数を実行します。&quot;,
   &quot;suujiの結果は&quot;,suuji,&quot;です。&quot;);

  }
//+------------------------------------------------------------------+

//MyFunctionという関数を作成します。
int MyFunction(int number)
  {

   //numberという変数を読み込んで、suujiと足し算します。
   int suuji = 100;
   suuji = suuji + number;

   //足し算の結果を返却します。
   return  suuji;
  }
//+------------------------------------------------------------------+
</code></pre></div>



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



<p class="wp-block-paragraph">かなり分かりにくいと思いますが、一番下に関数を書いています。46~56行目です。</p>



<p class="wp-block-paragraph">このようにOnInit,OnDeinit,OnTickとは、別の関数として、新しい関数を作ることができます。</p>



<p class="wp-block-paragraph">OnInit,OnDeinit,OnTickについては以下の記事を参考にしてください。</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/mql-basic-structure/" title="【MQLプログラミング】自動売買（EA）の実行タイミングとは？MQLプログラム例あり" 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 decoding="async" src="https://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2020/10/MQLプログラミング-1.jpg?fit=1120%2C630&#038;ssl=1" 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">【MQLプログラミング】自動売買（EA）の実行タイミングとは？MQLプログラム例あり</div><div class="blogcard-snippet external-blogcard-snippet">目次 自動売買プログラム（EA）の構造パターンとは大域・大域変数初期化関数（OnInit）プログラム例終了関数（OnDeinit）プログラム例メイン関数（OnTick）プログラム例まとめ 自動売買プログラム（EA）の構造</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com/archives/106/mql-basic-structure/" 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>



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



<h2 class="wp-block-heading"><span id="toc3">関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph">上記のプログラムの16行目を見てください。以下のプログラムが書かれています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>int suuji = MyFunction(10);</code></pre></div>



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



<p class="wp-block-paragraph">MyFunctionを使っています。</p>



<p class="wp-block-paragraph">細かく見ていくと、<strong>「suuji」というint型の変数を宣言</strong>しています。</p>



<p class="wp-block-paragraph">その<strong>「suuji」にMyFunctionの計算結果を代入している</strong>といったプログラムです。</p>



<p class="wp-block-paragraph">関数はこのように使うことが多いので、このパターンを覚えておくと良いでしょう。</p>



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



<p class="wp-block-paragraph"><strong><span class="marker-under-red">「あれ？MyFunction(int number)じゃないの？」</span></strong>と疑問に思った方は、プログラミングのセンスがあります。</p>



<p class="wp-block-paragraph">なぜMyFunction(int number)ではなく、MyFunction(10)と書いているのかを、関数の構造を見ながら解説します。</p>



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



<h2 class="wp-block-heading"><span id="toc4">関数の構造と書き方</span></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://mql-programing.com/main29/wp-content/uploads/2021/02/関数3-1024x576.jpg" alt="" class="wp-image-227" srcset="https://mql-programing.com/main29/wp-content/uploads/2021/02/関数3-1024x576.jpg 1024w, https://mql-programing.com/main29/wp-content/uploads/2021/02/関数3-300x169.jpg 300w, https://mql-programing.com/main29/wp-content/uploads/2021/02/関数3-768x432.jpg 768w, https://mql-programing.com/main29/wp-content/uploads/2021/02/関数3-120x68.jpg 120w, https://mql-programing.com/main29/wp-content/uploads/2021/02/関数3-160x90.jpg 160w, https://mql-programing.com/main29/wp-content/uploads/2021/02/関数3-320x180.jpg 320w, https://mql-programing.com/main29/wp-content/uploads/2021/02/関数3.jpg 1120w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">関数の構造のポイントは以下の３点です。</p>



<ul class="wp-block-list"><li>引数</li><li>関数の内容</li><li>戻り値（返り値）</li></ul>



<p class="wp-block-paragraph">それぞれ見ていきましょう。</p>



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



<h3 class="wp-block-heading"><span id="toc5">引数とメリット</span></h3>



<p class="wp-block-paragraph">引数とは、関数の内容で使用する値を、外部から持ってくるために存在します。</p>



<p class="wp-block-paragraph">どういうことかというと、関数の中で変数を宣言しなくて良くなります。</p>



<p class="wp-block-paragraph">メリットは、その関数を使って同じ計算をしたいとき、値を変えてもう一度計算させることができることです。</p>



<p class="wp-block-paragraph">例えば、100+10を計算させたい時、「100+10」とそのまま書いてしまうと、結果は110にしかなりません。</p>



<p class="wp-block-paragraph">しかし関数を使うことで、100+10の「10」の部分を「20」に変えて、「100+20」も計算させることができます。</p>



<p class="wp-block-paragraph">つまり<strong>同じMyFunctionという関数を使って、「100+10」も「100+20」も計算できるのです。</strong></p>



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



<h4 class="wp-block-heading"><span id="toc6">引数の書き方</span></h4>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">引数は、関数名の右横に宣言します。</span></strong></p>



<p class="wp-block-paragraph">上記の例を抜粋すると、以下の部分です。47行目です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>int MyFunction(int number)</code></pre></div>



<p class="wp-block-paragraph">「MyFunction」という関数名の右横に(int number)を書いています。</p>



<p class="wp-block-paragraph">このnumberを<strong><span class="marker-under">引数</span></strong>と言います。</p>



<p class="wp-block-paragraph">ちなみにint numberという書き方は、変数の書き方と同じなので、わかりやすいと思います。</p>



<p class="wp-block-paragraph">引数は、関数の内容で使用される変数です。別の値を代入することもできます。</p>



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



<h3 class="wp-block-heading"><span id="toc7">関数の内容</span></h3>



<p class="wp-block-paragraph">関数の内容は、計算させるルールを書きます。</p>



<p class="wp-block-paragraph">上記の例だと、<strong><span class="marker-under-red">「100+引数」というルールを書いています。</span></strong></p>



<p class="wp-block-paragraph">何度も計算させたいことを書くと良いでしょう。</p>


<div class="info-box"><span class="fz-24px"><strong>関数の内容を書くコツ</strong></span><br />プログラムを書く順番として、関数を書くのは、完成の一歩手前です。<br />最初は上からプログラムを書いていって、何度も同じ計算をしている場合、関数にまとめるとスッキリします。<br />また、関数にしておくことで、次に作るプログラムに応用できるので、プログラムの作成がどんどん楽になっていきます。</div>


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



<h3 class="wp-block-heading"><span id="toc8">戻り値（返り値）</span></h3>



<p class="wp-block-paragraph">最後に戻り値です。返り値とも呼ばれます。</p>



<p class="wp-block-paragraph">戻り値は、<strong><span class="marker-under"><span class="marker-under-red">関数の計算結果を出力する時に使います。</span></span></strong></p>



<p class="wp-block-paragraph">これによって、<strong>関数で計算させるだけでなく、計算結果を引き継ぐことができます。</strong></p>



<p class="wp-block-paragraph">少しずつ見ていきましょう。</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>//関数を作成
int MyFunction(int number)
  {

   //関数の内容を書く

   //戻り値を出力
   return  suuji;
  }</code></pre></div>



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



<p class="wp-block-paragraph">ポイントは2つあります。</p>



<ul class="wp-block-list"><li><strong><span class="marker-under-red">戻り値の型の宣言</span></strong></li><li><strong><span class="marker-under-red">戻り値の値を出力</span></strong></li></ul>



<p class="wp-block-paragraph">それぞれ解説します。</p>



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



<h4 class="wp-block-heading"><span id="toc9">戻り値の型の宣言</span></h4>



<p class="wp-block-paragraph">まず2行目の「int MyFunction(int number)」ですが、一番左に「int」が宣言されています。</p>



<p class="wp-block-paragraph">これはMyFunctionという関数が計算した結果、int型の変数を出力することを表しています。</p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">つまり、戻り値の型は「int型」になるのです。</span></strong></p>



<p class="wp-block-paragraph">ちなみに変数の型であれば、なんでも設定することができます。</p>



<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/all-data-type/" title="【MQLリファレンス】データ型一覧　プログラム例あり" 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 loading="lazy" decoding="async" src="https://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2020/10/MQLプログラミング.jpg?fit=1120%2C630&#038;ssl=1" 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">【MQLリファレンス】データ型一覧　プログラム例あり</div><div class="blogcard-snippet external-blogcard-snippet">目次 データ型とは整数型(char, short, int, long, uchar, ushort, uint, ulong)使用例注意点とサンプルプログラム論理型(bool)使用例注意点とサンプルプログラムリテラル型</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com/archives/76/all-data-type/" 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>



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



<h4 class="wp-block-heading"><span id="toc10">戻り値の値を出力</span></h4>



<p class="wp-block-paragraph">上記のプログラムの8行目をご覧ください。</p>



<p class="wp-block-paragraph">suujiという変数を「return」しています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>return  suuji;</code></pre></div>



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



<p class="wp-block-paragraph">returnとは、変数や値を戻す（返す or 出力する）ために使うものです。</p>



<p class="wp-block-paragraph">ほとんどの場合、プログラムの最後に書かれています。</p>



<p class="wp-block-paragraph">このように書くことで、MyFunction関数は、int型のsuujiを戻すことができます。</p>



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



<h4 class="wp-block-heading"><span id="toc11">「戻す」とは？</span></h4>



<p class="wp-block-paragraph">先ほどから何度も「戻す」という言葉を使っていますが、プログラミング界では一般的な言葉です。</p>



<p class="wp-block-paragraph">関数を使うときに、「処理が戻ってくる」という意味から使われています。</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>int suuji = MyFunction(10);</code></pre></div>



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



<p class="wp-block-paragraph">MyFunctionに「10」を入力し、計算した結果をsuujiに代入します。</p>



<p class="wp-block-paragraph">「MyFunctionに「10」を入力する」段階で、処理が一時的にMyFunctionに飛びます。</p>



<p class="wp-block-paragraph">そしてMyFunctionの処理が終わった後（suujiが出力された後）、処理が戻ってきます。</p>



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



<p class="wp-block-paragraph">この辺りは言葉で解説するのは難しいので、プログラム例を載せておきます。</p>



<p class="wp-block-paragraph">この2つのプログラムの違いは、関数を使っているか使っていないかですが、全く同じ処理をします。</p>



<p class="wp-block-paragraph">ぜひ見比べてみてください。</p>



<p class="wp-block-paragraph">16~17行目あたりが違っています。</p>



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



<p class="wp-block-paragraph"><strong><span class="marker-under-red">関数を使っていない場合</span></strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//|                                           SampleMQL_function.mq4 |
//|                                    Copyright 2021, 朝日奈りさFXchannel |
//|                                      https://mql-programing.com/ |
//+------------------------------------------------------------------+
#property copyright &quot;Copyright 2021, 朝日奈りさFXchannel&quot;
#property link      &quot;https://mql-programing.com/&quot;
#property version   &quot;1.00&quot;
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int suuji = 100;
   suuji = suuji + 10;

   Comment(&quot;\n&quot;,&quot;OnInit()という関数を実行します。&quot;,
   &quot;suujiの結果は&quot;,suuji,&quot;です。&quot;);

//---
   return(INIT_SUCCEEDED);
  }</code></pre></div>



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



<p class="wp-block-paragraph"><strong><span class="marker-under-red">関数を使った場合</span></strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//|                                           SampleMQL_function.mq4 |
//|                                    Copyright 2021, 朝日奈りさFXchannel |
//|                                      https://mql-programing.com/ |
//+------------------------------------------------------------------+
#property copyright &quot;Copyright 2021, 朝日奈りさFXchannel&quot;
#property link      &quot;https://mql-programing.com/&quot;
#property version   &quot;1.00&quot;
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int suuji = MyFunction(10);

   Comment(&quot;\n&quot;,&quot;OnInit()という関数を実行します。&quot;,
   &quot;suujiの結果は&quot;,suuji,&quot;です。&quot;);

//---
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+

//MyFunctionという関数を作成します。
int MyFunction(int number)
  {

   //numberという変数を読み込んで、suujiと足し算します。
   int suuji = 100;
   suuji = suuji + number;

   //足し算の結果を返却します。
   return  suuji;
  }
//+------------------------------------------------------------------+
</code></pre></div>



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



<h2 class="wp-block-heading"><span id="toc12">まとめ</span></h2>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">関数は計算のルールをまとめたプログラムです。</span></strong></p>



<p class="wp-block-paragraph">今回は足し算のルールを作ってみました。</p>



<p class="wp-block-paragraph">関数には3つのポイントがあり、これをマスターすれば関数を使いこなすことができるでしょう。</p>



<ul class="wp-block-list"><li><strong>引数</strong></li><li><strong>関数の内容</strong></li><li><strong>戻り値（返り値）</strong></li></ul>



<p class="wp-block-paragraph">関数は正直難しいです。</p>



<p class="wp-block-paragraph">初心者のかたは、関数を使うことは意識せず、まずはプログラムを作ってみましょう。</p>



<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 loading="lazy" decoding="async" src="https://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/09/make_autotrade_by_myself.jpg?fit=1200%2C675&#038;ssl=1" 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">目次 はじめにFX自動売買とはFX自動売買を作るための準備FX自動売買の作り方口座凍結の対策をするプログラムテンプレートを作る決済ロジックをプログラミングするプログラムテンプレートを作るエントリーロジックをプログラミング</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 loading="lazy" 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/sample_program/" 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 loading="lazy" decoding="async" width="160" height="90" src="https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-160x90.png 160w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-300x169.png 300w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-1024x576.png 1024w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-768x432.png 768w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-1536x864.png 1536w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-2048x1152.png 2048w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-120x68.png 120w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-320x180.png 320w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧.png 1200w" 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">朝日奈りさ作成したMQL4サンプルプログラムの一覧です。当サイトは、MQL4のサンプルプログラムを公開しています。プログラムの内容を見たり、変更したりできます。　当サイトはMQLプログラミングを学習するサイトです。ご利用の際には、プライバシ</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>投稿 <a href="https://mql-programing.com/archives/183/function/">【MQLプログラミング基礎】関数は難しい？関数の使い方を理解しよう！プログラム例あり</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mql-programing.com/archives/183/function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
