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

<image>
	<url>https://mql-programing.com/main29/wp-content/uploads/2021/02/cropped-ブログアイコン-32x32.jpg</url>
	<title>ENUM_INIT_RETCODE アーカイブ - 自動売買を作ろう！</title>
	<link>https://mql-programing.com/archives/tag/enum_init_retcode/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MQL4関数】OnInit関数とは？自動売買の初期化に使われるイベント関数</title>
		<link>https://mql-programing.com/archives/2903/oninit/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sun, 15 May 2022 02:51:39 +0000</pubDate>
				<category><![CDATA[関数]]></category>
		<category><![CDATA[【中級編】MQLプログラムの読み方・書き方]]></category>
		<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[その他]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[ENUM_INIT_RETCODE]]></category>
		<category><![CDATA[OnInit]]></category>
		<category><![CDATA[イベント関数]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2903</guid>

					<description><![CDATA[<p>OnInit関数とは 「自動売買の変数を初期化したい！」 という方は、OnInit関数を使ってみましょう！ OnInit関数は、イベント関数の一つで、自動売買が起動したときに、自動的に一度だけ実行される関数です。 そのた [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2903/oninit/">【MQL4関数】OnInit関数とは？自動売買の初期化に使われるイベント関数</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">OnInit関数は、自動売買の初期化に使われるイベント関数です。<strong>OnInit関数は、自動売買を起動すると、自動的に一度だけ実行される関数です。</strong>そのため、変数の初期化などの処理に使うと良いでしょう。</p>
</div></div>



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



<p class="wp-block-paragraph"><strong>「自動売買の変数を初期化したい！」</strong></p>



<p class="wp-block-paragraph">という方は、OnInit関数を使ってみましょう！</p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">OnInit関数は、イベント関数の一つで、自動売買が起動したときに、自動的に一度だけ実行される関数です。</span></strong></p>



<p class="wp-block-paragraph">そのため、自動売買開発者の多くの方が、変数の初期化などの処理に使っています。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">また、OnInit関数は、自動売買（エキスパートアドバイザ）を新規作成すると、自動的にプログラミングされています。</span></strong></p>



<p class="wp-block-paragraph">自動的にプログラミングされているのは、主に以下の3つなので、確認しておくと良いでしょう。</p>



<ul class="wp-block-list"><li><a href="https://mql-programing.com/oninit/"><strong>OnInit関数</strong></a></li><li><a href="https://mql-programing.com/ondeinit/" title="【MQL4関数】OnDeinit関数とは？アンイニシャルコード発生時に実行されるイベント関数"><strong>OnDeinit関数</strong></a></li><li><strong><a href="https://mql-programing.com/ontick/">OnTick関数</a></strong></li></ul>



<p class="wp-block-paragraph">今回は、OnInit関数に注目して解説していきます。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc2">自動売買を新規作成したときのプログラム</span></h3>



<p class="wp-block-paragraph"><strong>自動売買を新規作成すると、以下のようなプログラムが自動作成されます。</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//|                                             newExpertAdviser.mq4 |
//|                                     Copyright 2022, Asahina Risa |
//|                                      https://mql-programing.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, Asahina Risa"
#property link      "https://mql-programing.com/"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+</code></pre></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">このように、すでに<strong>OnInit関数・OnDeinit関数・OnTick関数</strong>が記述されています。</p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">OnInit関数は、13行目にあります。</span></strong></p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc3">OnInit関数の特徴</span></h3>



<p class="wp-block-paragraph">OnInit関数はイベント関数なので、イベントが起こったときに実行されます。</p>



<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">そのため、OnInit関数は、変数などのパラメータの初期化をするために使用されることが多いです。</p>



<p class="wp-block-paragraph">別名<strong>「初期化関数」</strong>（initialization function）とも呼ばれる関数です。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



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



<p class="wp-block-paragraph">OnInit関数の使い方は、基本的な関数と同じです。</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/function/" 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://mql-programing.com/main29/wp-content/uploads/cocoon-resources/blog-card-cache/624de21c236a113367001dd95952af29.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">【MQLプログラミング基礎】関数は難しい？関数の使い方を理解しよう！プログラム例あり</div><div class="blogcard-snippet external-blogcard-snippet">関数とは？ 「プログラムは、何度も同じことを書かないといけない」 と思っている方、ぜひ関数を使ってみてください。 関数とは、何度も繰り返すプログラムを、まとめた状態のものです。 事前に、まとまりを作っておくことで、同じプ</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/183/function/" 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>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">基本的な書き方</span></h3>



<p class="wp-block-paragraph">OnInit関数はとてもシンプルな関数です。</p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">引数なしで実行できます。</span></strong></p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">戻り値はint型</span></strong>ですが、以下のプログラムの4行目にあるように、「<a href="https://mql-programing.com/enum_init_retcode/">INIT_SUCCEEDED</a>」という定数を戻すことが多いです。</p>



<p class="wp-block-paragraph"><strong>INIT_SUCCEEDED定数は、「OnInit関数が正常に終了しました。」</strong>ということを表している定数なので、このまま使用して問題ありません。</p>



<p class="wp-block-paragraph">逆に異常終了した場合は、<a href="https://mql-programing.com/enum_init_retcode/">INIT_FAILED</a>定数を使用しましょう。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">OnInit関数の基本的な書き方は以下の通りです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>int OnInit()
  {
   //初期化したい変数などを記述
   return(INIT_SUCCEEDED);
  }</code></pre></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">戻り値は int型なので、returnで値を戻すようにしましょう。</p>



<p class="wp-block-paragraph">戻す値は、定数が用意されています。</p>



<p class="wp-block-paragraph">OnInit関数の戻り値はこちらの記事が詳しいので、よろしければどうぞ。</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/enum_init_retcode/" title="【MQL4定数】初期化関数の戻り値の定数（ENUM_INIT_RETCODE）" 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://s.wordpress.com/mshots/v1/https%3A%2F%2Fmql-programing.com%2Fenum_init_retcode%2F?w=320&#038;h=180" 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定数】初期化関数の戻り値の定数（ENUM_INIT_RETCODE）</div><div class="blogcard-snippet external-blogcard-snippet">初期化関数の戻り値の定数（ENUM_INIT_RETCODE） 初期化関数の戻り値の定数（ENUM_INIT_RETCODE）は、OnInit関数の戻り値として使われる定数です。 初期化が成功したのか、失敗したのかを戻す</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/2908/enum_init_retcode/" 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>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">戻り値</span></h3>



<p class="wp-block-paragraph">int型（<a href="https://mql-programing.com/enum_init_retcode/">ENUM_INIT_RETCODE</a>）</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">引数</span></h3>



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



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc8">OnInit関数のサンプルプログラム</span></h2>



<p class="wp-block-paragraph">サンプルプログラムは、こちらになります。</p>



<p class="wp-block-paragraph">このプログラムには4つの機能を実装しております。</p>



<ul class="wp-block-list"><li><strong>パラメータの異常検知</strong></li><li><strong>メモリの異常検知</strong></li><li><strong>関数の異常検知</strong></li><li><strong>正常終了</strong></li></ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//異常値を検出するためのパラメータ
input int ma_period=10;

int OnInit()
  {


   //パラメータが異常かどうかをチェック
   if(ma_period &lt;= 0)
     {
      //パラメータが異常なので、INIT_PARAMETERS_INCORRECT定数を戻す
      return (INIT_PARAMETERS_INCORRECT);
     }


   //メモリに異常がないかチェック
   int memory = TerminalInfoInteger(TERMINAL_MEMORY_TOTAL);
   if(memory &lt; 2000)
     {
      //メモリが異常なので、INIT_AGENT_NOT_SUITABLE定数を戻す
      return (INIT_AGENT_NOT_SUITABLE);
     }


   //その他異常がないかチェック
   double ma = iMA(Symbol(), PERIOD_CURRENT, 14, 0, MODE_SMA, PRICE_CLOSE, 0);
   if(ma &lt;= 0)
     {
      //値が異常なので、INIT_FAILED定数を戻す
      return(INIT_FAILED);
     }


   //正常なので、INIT_SUCCEEDED定数を戻す
   return(INIT_SUCCEEDED);
  }</code></pre></div>



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



<p class="wp-block-paragraph">このサンプルプログラムでは、OnInit関数の中で以下の処理を行っています。</p>



<ul class="wp-block-list"><li><strong>9行目：</strong>入力パラメータ「ma_period」が0以下の場合、INIT_PARAMETERS_INCORRECT定数を返して異常終了します。</li><li><strong>18行目：</strong>TerminalInfoInteger関数でメモリ情報を取得し、2000MB未満であればINIT_AGENT_NOT_SUITABLE定数を返します。</li><li><strong>27行目：</strong>iMA関数で移動平均値を取得し、値が0以下であればINIT_FAILED定数を返します。</li><li><strong>35行目：</strong>すべてのチェックを通過した場合、INIT_SUCCEEDED定数を返して正常終了します。</li></ul>



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



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



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



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



<p class="wp-block-paragraph"><strong><span class="marker-under-red">OnInit関数は、自動売買を起動すると一度だけ実行されるイベント関数です。</span></strong></p>



<p class="wp-block-paragraph">自動売買を、チャートにドラッグアンドドロップすると実行されます。</p>



<p class="wp-block-paragraph">そのため、パラメータの初期化などに使用されることが多いので、サンプルプログラムを参考にして、プログラミングしてみてください。</p>



<p class="wp-block-paragraph">ちなみに、OnInit関数は、自動的に実行されますが、<strong>手動で実行することも可能です。</strong></p>



<p class="wp-block-paragraph">他の関数と同じように、OnInit関数を呼び出すことで、実行できますので、プログラムの途中で初期化したいときに実行すると良いでしょう。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></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/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>



<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://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 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/mql-reference/?elementor-preview=1202&#038;ver=1634090664#toc78" 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/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>投稿 <a href="https://mql-programing.com/archives/2903/oninit/">【MQL4関数】OnInit関数とは？自動売買の初期化に使われるイベント関数</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】初期化関数の戻り値の定数（ENUM_INIT_RETCODE）</title>
		<link>https://mql-programing.com/archives/2908/enum_init_retcode/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sun, 15 May 2022 02:34:58 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[ENUM_INIT_RETCODE]]></category>
		<category><![CDATA[OnInit]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2908</guid>

					<description><![CDATA[<p>初期化関数の戻り値の定数（ENUM_INIT_RETCODE） 初期化関数の戻り値の定数（ENUM_INIT_RETCODE）は、OnInit関数の戻り値として使われる定数です。 初期化が成功したのか、失敗したのかを戻す [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2908/enum_init_retcode/">【MQL4定数】初期化関数の戻り値の定数（ENUM_INIT_RETCODE）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">初期化関数の戻り値の定数（ENUM_INIT_RETCODE）</span></h2>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">初期化関数の戻り値の定数（ENUM_INIT_RETCODE）は、OnInit関数の戻り値として使われる定数です。</span></strong></p>



<p class="wp-block-paragraph">初期化が成功したのか、失敗したのかを戻すことができます。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc2">初期化関数の戻り値の定数（ENUM_INIT_RETCODE）</span></h3>



<figure class="wp-block-table alignfull is-style-stripes"><table><tbody><tr><td><strong>定数</strong></td><td><strong>説明</strong></td></tr><tr><td>INIT_SUCCEEDED</td><td>初期化成功</td></tr><tr><td>INIT_FAILED</td><td>初期化失敗</td></tr><tr><td>INIT_PARAMETERS_INCORRECT</td><td>パラメータに異常値が代入されている</td></tr><tr><td>INIT_AGENT_NOT_SUITABLE</td><td>メモリ不足などの問題が発生</td></tr></tbody></table></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc3">初期化関数の戻り値の定数の使い方</span></h2>



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



<p class="wp-block-paragraph">OnInit関数の戻り値として記述します。</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>//異常値を検出するためのパラメータ
input int ma_period=10;

int OnInit()
  {


   //パラメータが異常かどうかをチェック
   if(ma_period &lt;= 0)
     {
      //パラメータが異常なので、INIT_PARAMETERS_INCORRECT定数を戻す
      return (INIT_PARAMETERS_INCORRECT);
     }


   //メモリに異常がないかチェック
   int memory = TerminalInfoInteger(TERMINAL_MEMORY_TOTAL);
   if(memory &lt; 2000)
     {
      //メモリが異常なので、INIT_AGENT_NOT_SUITABLE定数を戻す
      return (INIT_AGENT_NOT_SUITABLE);
     }


   //その他異常がないかチェック
   double ma = iMA(Symbol(), PERIOD_CURRENT, 14, 0, MODE_SMA, PRICE_CLOSE, 0);
   if(ma &lt;= 0)
     {
      //値が異常なので、INIT_FAILED定数を戻す
      return(INIT_FAILED);
     }


   //正常なので、INIT_SUCCEEDED定数を戻す
   return(INIT_SUCCEEDED);
  }</code></pre></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">ほとんどの場合、<strong><span class="marker-under-red">成功（INIT_SUCCEEDED）と異常（INIT_FAILED）の定数</span></strong>を使えば良いので、この2つを覚えておくと良いでしょう。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc4">サンプルプログラム</span></h2>



<p class="wp-block-paragraph">以下は、初期化関数の戻り値の定数（ENUM_INIT_RETCODE）を活用したEAのサンプルプログラムです。</p>



<p class="wp-block-paragraph">OnInit関数内で各種チェックを行い、適切な定数を返しています。初期化に成功した場合のみOnTick関数で移動平均線の値をログに出力します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//| ENUM_INIT_RETCODE サンプルプログラム                              |
//+------------------------------------------------------------------+
#property strict

//--- 入力パラメータ
input int    InpMaPeriod   = 14;    // 移動平均の期間
input double InpLotSize    = 0.1;   // ロットサイズ

//--- グローバル変数
double g_maValue;

//+------------------------------------------------------------------+
//| 初期化関数                                                        |
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- パラメータが異常かどうかをチェック
   if(InpMaPeriod &lt;= 0)
     {
      Print("エラー: 移動平均の期間が不正です。期間=", InpMaPeriod);
      return(INIT_PARAMETERS_INCORRECT);
     }

   //--- ロットサイズが異常かどうかをチェック
   if(InpLotSize &lt;= 0 || InpLotSize &gt; 10.0)
     {
      Print("エラー: ロットサイズが不正です。ロット=", InpLotSize);
      return(INIT_PARAMETERS_INCORRECT);
     }

   //--- メモリに異常がないかチェック
   int memory = TerminalInfoInteger(TERMINAL_MEMORY_TOTAL);
   if(memory &lt; 2000)
     {
      Print("エラー: メモリが不足しています。メモリ=", memory, "MB");
      return(INIT_AGENT_NOT_SUITABLE);
     }

   //--- 移動平均の値を取得してチェック
   g_maValue = iMA(Symbol(), PERIOD_CURRENT, InpMaPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
   if(g_maValue &lt;= 0)
     {
      Print("エラー: 移動平均の値が取得できませんでした。");
      return(INIT_FAILED);
     }

   //--- すべてのチェックに問題なし
   Print("初期化成功: 移動平均期間=", InpMaPeriod, " ロット=", InpLotSize);
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| ティック関数                                                      |
//+------------------------------------------------------------------+
void OnTick()
  {
   //--- 移動平均の最新値を取得
   g_maValue = iMA(Symbol(), PERIOD_CURRENT, InpMaPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);

   //--- 現在の価格と移動平均の値をログに出力
   double currentPrice = Close[0];
   Print("現在価格=", currentPrice, " 移動平均=", g_maValue);

   //--- 価格が移動平均より上か下かを判定
   if(currentPrice &gt; g_maValue)
     {
      Print("現在価格は移動平均より上です（買いシグナル）");
     }
   else
     {
      Print("現在価格は移動平均より下です（売りシグナル）");
     }
  }

//+------------------------------------------------------------------+
//| 終了関数                                                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Print("EAを終了します。理由コード=", reason);
  }</code></pre></div>



<p class="wp-block-paragraph">このサンプルでは、OnInit関数内で以下の4つのチェックを行っています。</p>



<ul class="wp-block-list">
<li><strong>移動平均の期間チェック</strong>：0以下の場合は<code>INIT_PARAMETERS_INCORRECT</code>を返す</li>
<li><strong>ロットサイズのチェック</strong>：0以下または10を超える場合は<code>INIT_PARAMETERS_INCORRECT</code>を返す</li>
<li><strong>メモリのチェック</strong>：メモリが不足している場合は<code>INIT_AGENT_NOT_SUITABLE</code>を返す</li>
<li><strong>移動平均値の取得チェック</strong>：値が取得できない場合は<code>INIT_FAILED</code>を返す</li>
</ul>



<p class="wp-block-paragraph">すべてのチェックに問題がなければ、<code>INIT_SUCCEEDED</code>を返して正常に初期化が完了します。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc5">【補足】初期化関数の戻り値の定数の列挙型（ENUM_INIT_RETCODE）</span></h2>



<p class="wp-block-paragraph">初期化関数の戻り値の定数は、ENUM_INIT_RETCODEという<a href="https://mql-programing.com/enum/">列挙型</a>に含まれています。</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>ENUM_INIT_RETCODE initRetcode = INIT_SUCCEEDED;</code></pre></div>



<p class="wp-block-paragraph">上記のようにプログラムすると、initRetcode変数に INIT_SUCCEEDEDの値が代入されます。</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/enum/" 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://mql-programing.com/main29/wp-content/uploads/cocoon-resources/blog-card-cache/ed11fa32d13f5e46898c7d986ed3a3ff.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">【MQLプログラミング基礎】列挙型とは？配列との違いを理解して使いこなそう！</div><div class="blogcard-snippet external-blogcard-snippet">列挙型とは？ 「文字を数値に変換できたら便利なのになぁ」 という方は、列挙型を使ってみましょう！ 列挙型は、「文字列と数値」の組み合わせを設定できる型です。 例えば、列挙型に「December」と入力すると「12」が返っ</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/1399/enum/" 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/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://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 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/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 loading="lazy" 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/2908/enum_init_retcode/">【MQL4定数】初期化関数の戻り値の定数（ENUM_INIT_RETCODE）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
