<?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/%e5%ae%9a%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mql-programing.com/archives/tag/定数/</link>
	<description>MQLプログラミング学習サイト</description>
	<lastBuildDate>Tue, 31 Mar 2026 13:15:38 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mql-programing.com/main29/wp-content/uploads/2021/02/cropped-ブログアイコン-32x32.jpg</url>
	<title>定数 アーカイブ - 自動売買を作ろう！</title>
	<link>https://mql-programing.com/archives/tag/定数/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MQL4定数】初期化関数の戻り値の定数（ENUM_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[OnInit]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[ENUM_INIT_RETCODE]]></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><strong><span class="marker-under-red">初期化関数の戻り値の定数（ENUM_INIT_RETCODE）は、OnInit関数の戻り値として使われる定数です。</span></strong></p>



<p>初期化が成功したのか、失敗したのかを戻すことができます。</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>主に、<strong>OnInit関数</strong>で使用されます。</p>



<p>OnInit関数の戻り値として記述します。</p>



<p><strong><span class="marker-under-red">システムで自動的に戻る定数ではなく、開発者が戻す定数なので、戻す定数を間違えないように注意しましょう。</span></strong></p>



<p>例えば、以下のように使用します。</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>ほとんどの場合、<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>以下は、初期化関数の戻り値の定数（ENUM_INIT_RETCODE）を活用したEAのサンプルプログラムです。</p>



<p>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>このサンプルでは、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>すべてのチェックに問題がなければ、<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>初期化関数の戻り値の定数は、ENUM_INIT_RETCODEという<a href="https://mql-programing.com/enum/">列挙型</a>に含まれています。</p>



<p>列挙型は、定数群をひとまとめにしたものです。</p>



<p>以下のように使います。</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>上記のようにプログラムすると、initRetcode変数に INIT_SUCCEEDEDの値が代入されます。</p>



<p>　</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>　</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 decoding="async" src="https://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/09/enum.jpg?fit=1200%2C675&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></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/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 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="160" height="90" /></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/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>　</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>
		<item>
		<title>【MQL4定数】エラーコード定数​（ERR_○○）</title>
		<link>https://mql-programing.com/archives/2839/error_code_constant/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sun, 08 May 2022 03:22:19 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[ERR_]]></category>
		<category><![CDATA[_LastError]]></category>
		<category><![CDATA[GetLastError]]></category>
		<category><![CDATA[ErrorDescription]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2839</guid>

					<description><![CDATA[<p>エラーコード定数​（ERR_○○） エラーコード定数​（ERR_○○）は、プログラム実行時のエラー内容を知るための定数です。 例えば、注文が通らなかった場合、ERR_INVALID_TRADE_VOLUMEなどのエラー定 [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2839/error_code_constant/">【MQL4定数】エラーコード定数​（ERR_○○）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">エラーコード定数​（ERR_○○）</span></h2>



<p>エラーコード定数​（ERR_○○）は、<strong><span class="marker-under-red">プログラム実行時のエラー内容を知るための定数です。</span></strong></p>



<p>例えば、注文が通らなかった場合、ERR_INVALID_TRADE_VOLUMEなどのエラー定数が使用されます。</p>



<p>エラーコードは、システムが自動的に<strong>_LastError変数</strong>に格納するものなので、プログラムに記述する必要はありませんが、<strong>デバッグするときに非常に便利</strong>なので、覚えておくと良いでしょう。</p>



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



<p>エラーコード定数は、以下の関数で使います。</p>



<ul class="wp-block-list"><li><strong>GetLastError関数：最近のエラーコードを返す関数</strong></li><li><strong>ErrorDescription関数：エラーコードの内容を返す関数</strong></li></ul>



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



<h3 class="wp-block-heading"><span id="toc2">エラーコード定数​（ERR_○○）</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>ERR_NO_ERROR</td><td>0</td><td>エラーはありません<br>No error returned</td></tr><tr><td>ERR_NO_RESULT</td><td>1</td><td>エラーはありませんが、結果が不明です<br>No error returned, but the result is unknown</td></tr><tr><td>ERR_COMMON_ERROR</td><td>2</td><td>一般的なエラー<br>Common error</td></tr><tr><td>ERR_INVALID_TRADE_PARAMETERS</td><td>3</td><td>無効な取引パラメータ<br>Invalid trade parameters</td></tr><tr><td>ERR_SERVER_BUSY</td><td>4</td><td>トレードサーバーがビジー状態です<br>Trade server is busy</td></tr><tr><td>ERR_OLD_VERSION</td><td>5</td><td>クライアントターミナルのバージョンが古い<br>Old version of the client terminal</td></tr><tr><td>ERR_NO_CONNECTION</td><td>6</td><td>トレードサーバーに接続していません<br>No connection with trade server</td></tr><tr><td>ERR_NOT_ENOUGH_RIGHTS</td><td>7</td><td>権限が十分ではありません<br>Not enough rights</td></tr><tr><td>ERR_TOO_FREQUENT_REQUESTS</td><td>8</td><td>要求が頻繁過ぎます<br>Too frequent requests</td></tr><tr><td>ERR_MALFUNCTIONAL_TRADE</td><td>9</td><td>異常な取引操作です<br>Malfunctional trade operation</td></tr><tr><td>ERR_ACCOUNT_DISABLED</td><td>64</td><td>許可されていないアカウントです<br>Account disabled</td></tr><tr><td>ERR_INVALID_ACCOUNT</td><td>65</td><td>無効なアカウントです<br>Invalid account</td></tr><tr><td>ERR_TRADE_TIMEOUT</td><td>128</td><td>トレードタイムアウト<br>Trade timeout</td></tr><tr><td>ERR_INVALID_PRICE</td><td>129</td><td>無効な価格です<br>Invalid price</td></tr><tr><td>ERR_INVALID_STOPS</td><td>130</td><td>無効なストップ設定です<br>Invalid stops</td></tr><tr><td>ERR_INVALID_TRADE_VOLUME</td><td>131</td><td>無効なトレード量(lot数)です<br>Invalid trade volume</td></tr><tr><td>ERR_MARKET_CLOSED</td><td>132</td><td>市場が閉じています<br>Market is closed</td></tr><tr><td>ERR_TRADE_DISABLED</td><td>133</td><td>トレード無効設定になっています<br>Trade is disabled</td></tr><tr><td>ERR_NOT_ENOUGH_MONEY</td><td>134</td><td>証拠金が不足しています<br>Not enough money</td></tr><tr><td>ERR_PRICE_CHANGED</td><td>135</td><td>価格が変更されました<br>Price changed</td></tr><tr><td>ERR_OFF_QUOTES</td><td>136</td><td>レートが提示されていません<br>Off quotes</td></tr><tr><td>ERR_BROKER_BUSY</td><td>137</td><td>ブローカーがビジー状態です<br>Broker is busy</td></tr><tr><td>ERR_REQUOTE</td><td>138</td><td>レート再提示<br>Requote</td></tr><tr><td>ERR_ORDER_LOCKED</td><td>139</td><td>注文がロックされています<br>Order is locked</td></tr><tr><td>ERR_LONG_POSITIONS_ONLY_ALLOWED</td><td>140</td><td>ロングエントリーのみ許可されています<br>Buy orders only allowed</td></tr><tr><td>ERR_TOO_MANY_REQUESTS</td><td>141</td><td>要求が多過ぎます<br>Too many requests</td></tr><tr><td>ERR_TRADE_MODIFY_DENIED</td><td>145</td><td>変更注文が市場提示価格に近すぎる為、拒否されました。<br>Modification denied because order is too close to market</td></tr><tr><td>ERR_TRADE_CONTEXT_BUSY</td><td>146</td><td>トレードコンテキストがビジーです<br>Trade context is busy</td></tr><tr><td>ERR_TRADE_EXPIRATION_DENIED</td><td>147</td><td>有効期限設定はブローカーによって拒否されました<br>Expirations are denied by broker</td></tr><tr><td>ERR_TRADE_TOO_MANY_ORDERS</td><td>148</td><td>保留中の注文量がブローカーによって設定された上限に達しています<br>The amount of open and pending orders has reached the limit set by the broker</td></tr><tr><td>ERR_TRADE_HEDGE_PROHIBITED</td><td>149</td><td>両建ては無効になっています<br>An attempt to open an order opposite to the existing one when hedging is disabled</td></tr><tr><td>ERR_TRADE_PROHIBITED_BY_FIFO</td><td>150</td><td>FIFOルールに違反したポジション決済をしようとしています<br>An attempt to close an order contravening the FIFO rule</td></tr><tr><td>ERR_NO_MQLERROR</td><td>4000</td><td>エラーはありません<br>No error returned</td></tr><tr><td>ERR_WRONG_FUNCTION_POINTER</td><td>4001</td><td>不正な関数ポインタ<br>Wrong function pointer</td></tr><tr><td>ERR_ARRAY_INDEX_OUT_OF_RANGE</td><td>4002</td><td>配列インデックスの範囲外指定。<br>Array index is out of range.</td></tr><tr><td>ERR_NO_MEMORY_FOR_CALL_STACK</td><td>4003</td><td>関数呼び出しの為のスタックメモリがありません<br>No memory for function call stack</td></tr><tr><td>ERR_RECURSIVE_STACK_OVERFLOW</td><td>4004</td><td>スタックオーバーフロー<br>Recursive stack overflow</td></tr><tr><td>ERR_NOT_ENOUGH_STACK_FOR_PARAM</td><td>4005</td><td>引数の為のスタックが不十分<br>Not enough stack for parameter</td></tr><tr><td>ERR_NO_MEMORY_FOR_PARAM_STRING</td><td>4006</td><td>文字列引数の為のメモリ不足<br>No memory for parameter string</td></tr><tr><td>ERR_NO_MEMORY_FOR_TEMP_STRING</td><td>4007</td><td>文字列の為のメモリ不足<br>No memory for temp string</td></tr><tr><td>ERR_NOT_INITIALIZED_STRING</td><td>4008</td><td>文字列は初期化されません<br>Not initialized string</td></tr><tr><td>ERR_NOT_INITIALIZED_ARRAYSTRING</td><td>4009</td><td>配列文字列は初期化されません<br>Not initialized string in array</td></tr><tr><td>ERR_NO_MEMORY_FOR_ARRAYSTRING</td><td>4010</td><td>配列文字列の為のメモリ不足<br>No memory for array string</td></tr><tr><td>ERR_TOO_LONG_STRING</td><td>4011</td><td>文字列が長過ぎです<br>Too long string</td></tr><tr><td>ERR_REMAINDER_FROM_ZERO_DIVIDE</td><td>4012</td><td>ゼロ除算(余剰)をしています<br>Remainder from zero divide</td></tr><tr><td>ERR_ZERO_DIVIDE</td><td>4013</td><td>ゼロ除算をしています<br>Zero divide</td></tr><tr><td>ERR_UNKNOWN_COMMAND</td><td>4014</td><td>不明なコマンド<br>Unknown command</td></tr><tr><td>ERR_WRONG_JUMP</td><td>4015</td><td>不正なジャンプ<br>Wrong jump (never generated error).</td></tr><tr><td>ERR_NOT_INITIALIZED_ARRAY</td><td>4016</td><td>配列は初期化されません<br>Not initialized array</td></tr><tr><td>ERR_DLL_CALLS_NOT_ALLOWED</td><td>4017</td><td>DLL呼び出しが許可されていません。許可するには、EAプロパティのチェックボックスで設定します<br>DLL calls are not allowed</td></tr><tr><td>ERR_CANNOT_LOAD_LIBRARY</td><td>4018</td><td>ライブラリをロードできません<br>Cannot load library</td></tr><tr><td>ERR_CANNOT_CALL_FUNCTION</td><td>4019</td><td>関数を呼び出せません<br>Cannot call function</td></tr><tr><td>ERR_EXTERNAL_CALLS_NOT_ALLOWED</td><td>4020</td><td>外部関数の呼び出しが許可されていません。許可するには、EAプロパティのチェックボックスで設定します<br>Expert function calls are not allowed</td></tr><tr><td>ERR_NO_MEMORY_FOR_RETURNED_STR</td><td>4021</td><td>関数の文字列型の戻り値の為のメモリが足りません<br>Not enough memory for temp string returned from function</td></tr><tr><td>ERR_SYSTEM_BUSY</td><td>4022</td><td>システムビジー<br>System is busy (never generated error)</td></tr><tr><td>ERR_DLLFUNC_CRITICALERROR</td><td>4023</td><td>DLL呼び出しの致命的なエラー<br>DLL-function call critical error</td></tr><tr><td>ERR_INTERNAL_ERROR</td><td>4024</td><td>内部エラー<br>Internal error</td></tr><tr><td>ERR_OUT_OF_MEMORY</td><td>4025</td><td>メモリ不足<br>Out of memory</td></tr><tr><td>ERR_INVALID_POINTER</td><td>4026</td><td>無効なポインタ<br>Invalid pointer</td></tr><tr><td>ERR_FORMAT_TOO_MANY_FORMATTERS</td><td>4027</td><td>フォーマット関数で引数が多過ぎます<br>Too many formatters in the format function</td></tr><tr><td>ERR_FORMAT_TOO_MANY_PARAMETERS</td><td>4028</td><td>パラメータカウントが上限を超えています<br>Parameters count exceeds formatters count</td></tr><tr><td>ERR_ARRAY_INVALID</td><td>4029</td><td>無効な配列<br>Invalid array</td></tr><tr><td>ERR_CHART_NOREPLY</td><td>4030</td><td>チャートから返信がありません<br>No reply from chart</td></tr><tr><td>ERR_INVALID_FUNCTION_PARAMSCNT</td><td>4050</td><td>無効な関数の引数数<br>Invalid function parameters count</td></tr><tr><td>ERR_INVALID_FUNCTION_PARAMVALUE</td><td>4051</td><td>無効な関数の引数値<br>Invalid function parameter value</td></tr><tr><td>ERR_STRING_FUNCTION_INTERNAL</td><td>4052</td><td>文字列関数の内部エラー<br>String function internal error</td></tr><tr><td>ERR_SOME_ARRAY_ERROR</td><td>4053</td><td>配列エラー<br>Some array error</td></tr><tr><td>ERR_INCORRECT_SERIESARRAY_USING</td><td>4054</td><td>不正な時系列配列使用<br>Incorrect series array using</td></tr><tr><td>ERR_CUSTOM_INDICATOR_ERROR</td><td>4055</td><td>カスタムインジケータエラー<br>Custom indicator error</td></tr><tr><td>ERR_INCOMPATIBLE_ARRAYS</td><td>4056</td><td>互換性の無い配列<br>Arrays are incompatible</td></tr><tr><td>ERR_GLOBAL_VARIABLES_PROCESSING</td><td>4057</td><td>グローバル変数処理エラー<br>Global variables processing error</td></tr><tr><td>ERR_GLOBAL_VARIABLE_NOT_FOUND</td><td>4058</td><td>グローバル変数が見つかりません<br>Global variable not found</td></tr><tr><td>ERR_FUNC_NOT_ALLOWED_IN_TESTING</td><td>4059</td><td>関数がテストモードで許可されていません<br>Function is not allowed in testing mode</td></tr><tr><td>ERR_FUNCTION_NOT_CONFIRMED</td><td>4060</td><td>関数が呼び出し許可されていません<br>Function is not allowed for call</td></tr><tr><td>ERR_SEND_MAIL_ERROR</td><td>4061</td><td>メール送信エラー<br>Send mail error</td></tr><tr><td>ERR_STRING_PARAMETER_EXPECTED</td><td>4062</td><td>文字列引数が必要<br>String parameter expected</td></tr><tr><td>ERR_INTEGER_PARAMETER_EXPECTED</td><td>4063</td><td>整数引数が必要<br>Integer parameter expected</td></tr><tr><td>ERR_DOUBLE_PARAMETER_EXPECTED</td><td>4064</td><td>double引数が必要<br>Double parameter expected</td></tr><tr><td>ERR_ARRAY_AS_PARAMETER_EXPECTED</td><td>4065</td><td>配列引数が必要<br>Array as parameter expected</td></tr><tr><td>ERR_HISTORY_WILL_UPDATED</td><td>4066</td><td>要求したヒストリーデータが更新中<br>Requested history data is in updating state</td></tr><tr><td>ERR_TRADE_ERROR</td><td>4067</td><td>内部トレードエラー<br>Internal trade error</td></tr><tr><td>ERR_RESOURCE_NOT_FOUND</td><td>4068</td><td>リソースが見つかりません<br>Resource not found</td></tr><tr><td>ERR_RESOURCE_NOT_SUPPORTED</td><td>4069</td><td>リソースがサポートされていません<br>Resource not supported</td></tr><tr><td>ERR_RESOURCE_DUPLICATED</td><td>4070</td><td>リソースが重複しています<br>Duplicate resource</td></tr><tr><td>ERR_INDICATOR_CANNOT_INIT</td><td>4071</td><td>カスタムインジケータを初期化できません<br>Custom indicator cannot initialize</td></tr><tr><td>ERR_INDICATOR_CANNOT_LOAD</td><td>4072</td><td>カスタムインジケータをロードできません<br>Cannot load custom indicator</td></tr><tr><td>ERR_NO_HISTORY_DATA</td><td>4073</td><td>ヒストリーデータがありません<br>No history data</td></tr><tr><td>ERR_NO_MEMORY_FOR_HISTORY</td><td>4074</td><td>ヒストリーデータの為のメモリがありません<br>No memory for history data</td></tr><tr><td>ERR_NO_MEMORY_FOR_INDICATOR</td><td>4075</td><td>インジケータ計算の為のメモリがありません<br>Not enough memory for indicator calculation</td></tr><tr><td>ERR_END_OF_FILE</td><td>4099</td><td>ファイルの終わり<br>End of file</td></tr><tr><td>ERR_SOME_FILE_ERROR</td><td>4100</td><td>ファイルエラー<br>Some file error</td></tr><tr><td>ERR_WRONG_FILE_NAME</td><td>4101</td><td>不正なファイル名<br>Wrong file name</td></tr><tr><td>ERR_TOO_MANY_OPENED_FILES</td><td>4102</td><td>ファイルを開き過ぎています<br>Too many opened files</td></tr><tr><td>ERR_CANNOT_OPEN_FILE</td><td>4103</td><td>ファイルが開けません<br>Cannot open file</td></tr><tr><td>ERR_INCOMPATIBLE_FILEACCESS</td><td>4104</td><td>互換性の無いファイルアクセス<br>Incompatible access to a file</td></tr><tr><td>ERR_NO_ORDER_SELECTED</td><td>4105</td><td>オーダー選択されていません<br>No order selected</td></tr><tr><td>ERR_UNKNOWN_SYMBOL</td><td>4106</td><td>不明なシンボル<br>Unknown symbol</td></tr><tr><td>ERR_INVALID_PRICE_PARAM</td><td>4107</td><td>無効な価格<br>Invalid price</td></tr><tr><td>ERR_INVALID_TICKET</td><td>4108</td><td>無効なチケット<br>Invalid ticket</td></tr><tr><td>ERR_TRADE_NOT_ALLOWED</td><td>4109</td><td>トレードが許可されていません。許可するには、EAプロパティのチェックボックスで設定します<br>Trade is not allowed. Enable checkbox &#8220;Allow live trading&#8221; in the Expert Advisor properties</td></tr><tr><td>ERR_LONGS_NOT_ALLOWED</td><td>4110</td><td>買い注文は許可されていません。許可するには、EAプロパティで設定します<br>Longs are not allowed. Check the Expert Advisor properties</td></tr><tr><td>ERR_SHORTS_NOT_ALLOWED</td><td>4111</td><td>売り注文は許可されていません。許可するには、EAプロパティで設定します<br>Shorts are not allowed. Check the Expert Advisor properties</td></tr><tr><td>ERR_TRADE_EXPERT_DISABLED_BY_SERVER</td><td>4112</td><td>EA・スクリプトによる自動売買はトレードサーバーで許可されていません<br>Automated trading by Expert Advisors/Scripts disabled by trade server</td></tr><tr><td>ERR_OBJECT_ALREADY_EXISTS</td><td>4200</td><td>オブジェクトが既に存在しています<br>Object already exists</td></tr><tr><td>ERR_UNKNOWN_OBJECT_PROPERTY</td><td>4201</td><td>不明なオブジェクトプロパティ<br>Unknown object property</td></tr><tr><td>ERR_OBJECT_DOES_NOT_EXIST</td><td>4202</td><td>オブジェクトが存在していません<br>Object does not exist</td></tr><tr><td>ERR_UNKNOWN_OBJECT_TYPE</td><td>4203</td><td>不明なオブジェクトタイプ<br>Unknown object type</td></tr><tr><td>ERR_NO_OBJECT_NAME</td><td>4204</td><td>オブジェクト名がありません<br>No object name</td></tr><tr><td>ERR_OBJECT_COORDINATES_ERROR</td><td>4205</td><td>オブジェクト調整エラー<br>Object coordinates error</td></tr><tr><td>ERR_NO_SPECIFIED_SUBWINDOW</td><td>4206</td><td>サブウインドウを指定出来ません<br>No specified subwindow</td></tr><tr><td>ERR_SOME_OBJECT_ERROR</td><td>4207</td><td>グラフィカルオブジェクトエラー<br>Graphical object error</td></tr><tr><td>ERR_CHART_PROP_INVALID</td><td>4210</td><td>不正なチャートプロパティ<br>Unknown chart property</td></tr><tr><td>ERR_CHART_NOT_FOUND</td><td>4211</td><td>チャートが見つかりません<br>Chart not found</td></tr><tr><td>ERR_CHARTWINDOW_NOT_FOUND</td><td>4212</td><td>チャートサブウインドウが見つかりません<br>Chart subwindow not found</td></tr><tr><td>ERR_CHARTINDICATOR_NOT_FOUND</td><td>4213</td><td>チャートインジケータが見つかりません<br>Chart indicator not found</td></tr><tr><td>ERR_SYMBOL_SELECT</td><td>4220</td><td>シンボル選択エラー<br>Symbol select error</td></tr><tr><td>ERR_NOTIFICATION_ERROR</td><td>4250</td><td>通知エラー<br>Notification error</td></tr><tr><td>ERR_NOTIFICATION_PARAMETER</td><td>4251</td><td>通知パラメータエラー<br>Notification parameter error</td></tr><tr><td>ERR_NOTIFICATION_SETTINGS</td><td>4252</td><td>通知無効<br>Notifications disabled</td></tr><tr><td>ERR_NOTIFICATION_TOO_FREQUENT</td><td>4253</td><td>通知を頻繁に送り過ぎ<br>Notification send too frequent</td></tr><tr><td>ERR_FTP_NOSERVER</td><td>4260</td><td>FTPサーバーが指定されていません<br>FTP server is not specified</td></tr><tr><td>ERR_FTP_NOLOGIN</td><td>4261</td><td>FTPログインが指定されていません<br>FTP login is not specified</td></tr><tr><td>ERR_FTP_CONNECT_FAILED</td><td>4262</td><td>FTP接続に失敗しました<br>FTP connection failed</td></tr><tr><td>ERR_FTP_CLOSED</td><td>4263</td><td>FTP接続が閉じられました<br>FTP connection closed</td></tr><tr><td>ERR_FTP_CHANGEDIR</td><td>4264</td><td>サーバー上でFTPパスが見つかりません<br>FTP path not found on server</td></tr><tr><td>ERR_FTP_FILE_ERROR</td><td>4265</td><td>FTPサーバーで送信するディレクトリ(MQL4\Files)にファイルがありません<br>File not found in the MQL4\Files directory to send on FTP server</td></tr><tr><td>ERR_FTP_ERROR</td><td>4266</td><td>FTPデータ送信中のエラー<br>Common error during FTP data transmission</td></tr><tr><td>ERR_FILE_TOO_MANY_OPENED</td><td>5001</td><td>ファイルを開き過ぎ<br>Too many opened files</td></tr><tr><td>ERR_FILE_WRONG_FILENAME</td><td>5002</td><td>不正なファイル名<br>Wrong file name</td></tr><tr><td>ERR_FILE_TOO_LONG_FILENAME</td><td>5003</td><td>ファイル名が長すぎます<br>Too long file name</td></tr><tr><td>ERR_FILE_CANNOT_OPEN</td><td>5004</td><td>ファイルを開けません<br>Cannot open file</td></tr><tr><td>ERR_FILE_BUFFER_ALLOCATION_ERROR</td><td>5005</td><td>テキストファイルのバッファ割り当てエラー<br>Text file buffer allocation error</td></tr><tr><td>ERR_FILE_CANNOT_DELETE</td><td>5006</td><td>ファイルを削除できません<br>Cannot delete file</td></tr><tr><td>ERR_FILE_INVALID_HANDLE</td><td>5007</td><td>無効なファイルハンドル(ファイルがオープン・クローズされていない)<br>Invalid file handle (file closed or was not opened)</td></tr><tr><td>ERR_FILE_WRONG_HANDLE</td><td>5008</td><td>不正なファイルハンドル(ハンドルインデックスがハンドルテーブル外)<br>Wrong file handle (handle index is out of handle table)</td></tr><tr><td>ERR_FILE_NOT_TOWRITE</td><td>5009</td><td><a href="https://mql-programing.com/file_constant/" title="【MQL4定数】ファイル定数（FILE_○○）">FILE_WRITE</a>フラグ付きでオープンする必要があります<br>File must be opened with FILE_WRITE flag</td></tr><tr><td>ERR_FILE_NOT_TOREAD</td><td>5010</td><td><a href="https://mql-programing.com/file_constant/">FILE_READ</a>フラグ付きでオープンする必要があります<br>File must be opened with FILE_READ flag</td></tr><tr><td>ERR_FILE_NOT_BIN</td><td>5011</td><td><a href="https://mql-programing.com/file_constant/">FILE_BIN</a>フラグ付きでオープンする必要があります<br>File must be opened with FILE_BIN flag</td></tr><tr><td>ERR_FILE_NOT_TXT</td><td>5012</td><td><a href="https://mql-programing.com/file_constant/">FILE_TXT</a>フラグ付きでオープンする必要があります<br>File must be opened with FILE_TXT flag</td></tr><tr><td>ERR_FILE_NOT_TXTORCSV</td><td>5013</td><td><a href="https://mql-programing.com/file_constant/">FILE_TXT</a>又は<a href="https://mql-programing.com/file_constant/">FILE_CSV</a>フラグ付きでオープンする必要があります<br>File must be opened with FILE_TXT or FILE_CSV flag</td></tr><tr><td>ERR_FILE_NOT_CSV</td><td>5014</td><td><a href="https://mql-programing.com/file_constant/">FILE_CSV</a>フラグ付きでオープンする必要があります<br>File must be opened with FILE_CSV flag</td></tr><tr><td>ERR_FILE_READ_ERROR</td><td>5015</td><td>ファイル読み込みエラー<br>File read error</td></tr><tr><td>ERR_FILE_WRITE_ERROR</td><td>5016</td><td>ファイル書き込みエラー<br>File write error</td></tr><tr><td>ERR_FILE_BIN_STRINGSIZE</td><td>5017</td><td>バイナリファイルの為に文字列サイズを指定する必要があります<br>String size must be specified for binary file</td></tr><tr><td>ERR_FILE_INCOMPATIBLE</td><td>5018</td><td>互換性の無いファイル(.txt:文字列ファイル, .bin：他ファイル)<br>Incompatible file (for string arrays-TXT, for others-BIN)</td></tr><tr><td>ERR_FILE_IS_DIRECTORY</td><td>5019</td><td>ファイルではありません。ディレクトリです。<br>File is directory not file</td></tr><tr><td>ERR_FILE_NOT_EXIST</td><td>5020</td><td>ファイルが存在しません<br>File does not exist</td></tr><tr><td>ERR_FILE_CANNOT_REWRITE</td><td>5021</td><td>ファイルを書き換える事は出来ません<br>File cannot be rewritten</td></tr><tr><td>ERR_FILE_WRONG_DIRECTORYNAME</td><td>5022</td><td>不正なディレクトリ名<br>Wrong directory name</td></tr><tr><td>ERR_FILE_DIRECTORY_NOT_EXIST</td><td>5023</td><td>ディレクトリが存在しません<br>Directory does not exist</td></tr><tr><td>ERR_FILE_NOT_DIRECTORY</td><td>5024</td><td>指定されたファイルはディレクトリではありません<br>Specified file is not directory</td></tr><tr><td>ERR_FILE_CANNOT_DELETE_DIRECTORY</td><td>5025</td><td>ディレクトリを削除する事は出来ません<br>Cannot delete directory</td></tr><tr><td>ERR_FILE_CANNOT_CLEAN_DIRECTORY</td><td>5026</td><td>ディレクトリ内のデータを削除する事は出来ません<br>Cannot clean directory</td></tr><tr><td>ERR_FILE_ARRAYRESIZE_ERROR</td><td>5027</td><td>配列サイズ変更エラー<br>Array resize error</td></tr><tr><td>ERR_FILE_STRINGRESIZE_ERROR</td><td>5028</td><td>文字列サイズ変更エラー<br>String resize error</td></tr><tr><td>ERR_FILE_STRUCT_WITH_OBJECTS</td><td>5029</td><td>構造体に文字列または動的配列が含まれています<br>Structure contains strings or dynamic arrays</td></tr><tr><td>ERR_WEBREQUEST_INVALID_ADDRESS</td><td>5200</td><td>無効なURL<br>Invalid URL</td></tr><tr><td>ERR_WEBREQUEST_CONNECT_FAILED</td><td>5201</td><td>指定されたURLへの接続に失敗しました<br>Failed to connect to specified URL</td></tr><tr><td>ERR_WEBREQUEST_TIMEOUT</td><td>5202</td><td>タイムアウト<br>Timeout exceeded</td></tr><tr><td>ERR_WEBREQUEST_REQUEST_FAILED</td><td>5203</td><td>HTTPリクエスト失敗<br>HTTP request failed</td></tr><tr><td>ERR_USER_ERROR_FIRST</td><td>65536</td><td>ユーザー定義エラーは、このコードから始まります<br>User defined errors start with this code</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">エラーコード定数​（ERR_○○）の使い方</span></h2>



<p><strong><span class="marker-under-red">エラーが起こったとき、システムが自動的に_LastError変数に、適切なエラーコード定数を格納します。</span></strong></p>



<p>_LastError変数の値を取得するために、<strong>GetLastError関数</strong>を使います。</p>



<p>GetLastError関数を使うことで、エラーコードの番号を知ることができます。</p>



<p>エラーコードの番号を知ることができれば、エラーの内容を<strong>ErrorDescription関数</strong>を使って表示させることができるので、デバッグするときにとても役立ちます。</p>



<p>例えば、以下のように使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>#property strict

//ライブラリをインクルード
#include &lt;stdlib.mqh&gt;

//+------------------------------------------------------------------+
//| スクリプトスタート
//+------------------------------------------------------------------+
void OnStart()
{
    int ea_ticket_res;

    // エラーになるようにLot:0で発注
    ea_ticket_res = OrderSend(  // オーダー送信
        Symbol(),               // 通貨ペア
        OP_BUY,                 // オーダータイプ[OP_BUY / OP_SELL]
        0.00000,                // ロット[0.01単位]
        Ask,                    // オーダープライスレート
        20,                     // スリップ上限    (int)[分解能 0.1pips]
        0,                      // ストップレート
        0,                      // リミットレート
        &quot;エラーテスト&quot;,          // オーダーコメント
        999,                    // マジックナンバー(管理用)
        0,                      // オーダーリミット時間
        clrRed                  // オーダーアイコンカラー
    );

    //オーダーエラー
    if ( ea_ticket_res == -1 ) { 

        int error_code;
        string error_detail;

        // エラーコード取得
        error_code = GetLastError(); 

        // エラー内容取得
        error_detail = ErrorDescription(error_code);

        if ( error_code != ERR_NO_ERROR ) {
            printf( &quot;エラーコード:%d 内容:%s&quot; , error_code , error_detail);
        }
    }
}</code></pre></div>



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



<p>上記のプログラムを実行することで、以下のような結果を得ることができます。</p>



<p>「エラーコード: 4051 詳細：invalid function parameter value」</p>



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



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



<p>以下は、エラーコード定数を活用して、注文エラー発生時にエラー内容をログに出力するEAのサンプルプログラムです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>#property strict

//ライブラリをインクルード
#include &lt;stdlib.mqh&gt;

//+------------------------------------------------------------------+
//| Expert initialization function                                     |
//+------------------------------------------------------------------+
int OnInit()
{
    Print(&quot;EA初期化完了&quot;);
    return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                   |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
    Print(&quot;EA終了&quot;);
}

//+------------------------------------------------------------------+
//| Expert tick function                                               |
//+------------------------------------------------------------------+
void OnTick()
{
    static bool ordered = false;

    // 一度だけ注文を試みる
    if ( !ordered ) {
        ordered = true;

        int ticket;

        // わざとロット数を0にしてエラーを発生させる
        ticket = OrderSend(
            Symbol(),           // 通貨ペア
            OP_BUY,             // 買い注文
            0.00000,            // ロット数（0でエラー発生）
            Ask,                // 現在のAsk価格
            20,                 // スリッページ
            0,                  // ストップロス
            0,                  // テイクプロフィット
            &quot;エラーテスト&quot;,      // コメント
            12345,              // マジックナンバー
            0,                  // 有効期限
            clrBlue             // 矢印の色
        );

        // エラー処理
        if ( ticket == -1 ) {
            int err = GetLastError();
            string desc = ErrorDescription(err);

            // エラーコードと内容をログに出力
            Print(&quot;注文失敗 - エラーコード: &quot;, err, &quot; 内容: &quot;, desc);

            // エラーの種類に応じた処理
            if ( err == ERR_INVALID_TRADE_VOLUME ) {
                Print(&quot;ロット数が不正です。ロット数を確認してください。&quot;);
            }
            else if ( err == ERR_NOT_ENOUGH_MONEY ) {
                Print(&quot;証拠金が不足しています。&quot;);
            }
            else if ( err == ERR_TRADE_NOT_ALLOWED ) {
                Print(&quot;自動売買が許可されていません。設定を確認してください。&quot;);
            }
            else if ( err == ERR_INVALID_STOPS ) {
                Print(&quot;ストップロスまたはテイクプロフィットの値が不正です。&quot;);
            }
            else if ( err == ERR_SERVER_BUSY || err == ERR_BROKER_BUSY ) {
                Print(&quot;サーバーがビジー状態です。後でリトライしてください。&quot;);
            }
            else {
                Print(&quot;その他のエラーが発生しました。&quot;);
            }
        }
        else {
            Print(&quot;注文成功 - チケット番号: &quot;, ticket);
        }
    }
}</code></pre></div>



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



<p>このサンプルプログラムでは、わざとロット数を0にして注文エラーを発生させ、<strong>GetLastError関数</strong>でエラーコードを取得し、<strong>ErrorDescription関数</strong>でエラーの詳細を表示しています。さらに、エラーコード定数を使って条件分岐を行い、エラーの種類に応じたメッセージを出力しています。</p>



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



<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>　</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://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/09/enum.jpg?fit=1200%2C675&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></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 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://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="160" height="90" /></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/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>　</p>
<p>投稿 <a href="https://mql-programing.com/archives/2839/error_code_constant/">【MQL4定数】エラーコード定数​（ERR_○○）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】オブジェクトのポインタ定数（ENUM_POINTER_TYPE）</title>
		<link>https://mql-programing.com/archives/2832/enum_pointer_type/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sun, 08 May 2022 02:02:51 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[ENUM_POINTER_TYPE]]></category>
		<category><![CDATA[CheckPointer]]></category>
		<category><![CDATA[MQL]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2832</guid>

					<description><![CDATA[<p>オブジェクトのポインタ定数（ENUM_POINTER_TYPE） オブジェクトのポインタ定数（ENUM_POINTER_TYPE）は、オブジェクトのポインタの種類を確認するための定数です。 例えば、オブジェクトがどのよう [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2832/enum_pointer_type/">【MQL4定数】オブジェクトのポインタ定数（ENUM_POINTER_TYPE）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">オブジェクトのポインタ定数（ENUM_POINTER_TYPE）</span></h2>



<p>オブジェクトのポインタ定数（ENUM_POINTER_TYPE）は、<strong><span class="marker-under-red">オブジェクトのポインタの種類を確認するための定数です。</span></strong></p>



<p>例えば、オブジェクトがどのように作成されたのかを確認したいときに使われます。</p>



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



<p>オブジェクトのポインタ定数は、以下の関数の戻り値として使います。</p>



<ul class="wp-block-list"><li><strong>CheckPointer関数：オブジェクトのポインタの種類を確認する関数</strong></li></ul>



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



<h3 class="wp-block-heading"><span id="toc2">オブジェクトのポインタ定数（ENUM_POINTER_TYPE）</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>POINTER_INVALID</td><td>不正なポインタ</td></tr><tr><td>POINTER_DYNAMIC</td><td>new演算子で作成されたオブジェクトポインタ</td></tr><tr><td>POINTER_AUTOMATIC</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">オブジェクトのポインタ定数（ENUM_POINTER_TYPE）の使い方</span></h2>



<p>主に、<strong>CheckPointer関数の戻り値</strong>として使用されます。</p>



<p>例えば、以下のように使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//適当なクラスを作成
class CItem{

};

//+------------------------------------------------------------------+
//| 初期化                         
//|------------------------------------------------------------------|
void OnInit(){
    //変数を宣言
    CItem*               temp_class;
    ENUM_POINTER_TYPE temp_ret;

    //オブジェクトを作成
    temp_class = new CItem;
    temp_ret   = CheckPointer(temp_class);

    //表示して確認
    if( temp_ret == POINTER_DYNAMIC) {
        Print( "new演算子で作成されたオブジェクト。","ポインタ：",temp_class , " チェック結果:",temp_ret );
    } else {
        Print( "他要因で作成されたオブジェクト。"   ,"ポインタ：",temp_class , " チェック結果:",temp_ret );
    }
}</code></pre></div>



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



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



<p>以下は、オブジェクトのポインタ定数（ENUM_POINTER_TYPE）を使って、new演算子で作成したオブジェクトと自動的に作成したオブジェクトのポインタの種類をそれぞれ確認するサンプルプログラムです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//適当なクラスを作成
class CItem{
public:
    int value;
    CItem(){ value = 0; }
};

//+------------------------------------------------------------------+
//| スクリプト開始関数                         
//|------------------------------------------------------------------|
void OnStart(){

    //--- new演算子で作成（POINTER_DYNAMIC）
    CItem* dynamicObj = new CItem;
    ENUM_POINTER_TYPE dynamicType = CheckPointer(dynamicObj);

    if(dynamicType == POINTER_DYNAMIC){
        Print("dynamicObj は new演算子で作成されたオブジェクトです。 種類：", EnumToString(dynamicType));
    } else if(dynamicType == POINTER_AUTOMATIC){
        Print("dynamicObj は自動的に作成されたオブジェクトです。 種類：", EnumToString(dynamicType));
    } else {
        Print("dynamicObj は不正なポインタです。 種類：", EnumToString(dynamicType));
    }

    //--- 自動的に作成（POINTER_AUTOMATIC）
    CItem autoObj;
    ENUM_POINTER_TYPE autoType = CheckPointer(GetPointer(autoObj));

    if(autoType == POINTER_DYNAMIC){
        Print("autoObj は new演算子で作成されたオブジェクトです。 種類：", EnumToString(autoType));
    } else if(autoType == POINTER_AUTOMATIC){
        Print("autoObj は自動的に作成されたオブジェクトです。 種類：", EnumToString(autoType));
    } else {
        Print("autoObj は不正なポインタです。 種類：", EnumToString(autoType));
    }

    //--- 不正なポインタの確認
    delete dynamicObj;
    ENUM_POINTER_TYPE deletedType = CheckPointer(dynamicObj);

    if(deletedType == POINTER_INVALID){
        Print("削除後の dynamicObj は不正なポインタです。 種類：", EnumToString(deletedType));
    }
}</code></pre></div>



<p>このプログラムでは、3つのケースを確認しています。</p>



<ol class="wp-block-list"><li><strong>POINTER_DYNAMIC</strong>：new演算子で作成したオブジェクトのポインタを確認</li><li><strong>POINTER_AUTOMATIC</strong>：自動的に作成したオブジェクトのポインタをGetPointer関数で取得し確認</li><li><strong>POINTER_INVALID</strong>：delete演算子で削除済みのオブジェクトのポインタを確認</li></ol>



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



<h2 class="wp-block-heading"><span id="toc5">【補足】オブジェクトのポインタ定数の列挙型（ENUM_POINTER_TYPE）</span></h2>



<p>オブジェクトのポインタ定数は、ENUM_POINTER_TYPE​という<a href="https://mql-programing.com/enum/">列挙型</a>に含まれています。</p>



<p>列挙型は、定数群をひとまとめにしたものです。</p>



<p>以下のように使います。</p>



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



<p>上記のようにプログラムすると、pointerType変数に POINTER_DYNAMICの値が代入されます。</p>



<p>　</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>　</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://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/09/enum.jpg?fit=1200%2C675&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></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 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://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="160" height="90" /></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/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>　</p>
<p>投稿 <a href="https://mql-programing.com/archives/2832/enum_pointer_type/">【MQL4定数】オブジェクトのポインタ定数（ENUM_POINTER_TYPE）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】ファイルのシーク位置定数（ENUM_FILE_POSITION）</title>
		<link>https://mql-programing.com/archives/2825/enum_file_position/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sun, 08 May 2022 01:38:28 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[ENUM_FILE_POSITION]]></category>
		<category><![CDATA[FileSeek]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2825</guid>

					<description><![CDATA[<p>ファイルのシーク位置定数（ENUM_FILE_POSITION） ファイルのシーク位置定数（ENUM_FILE_POSITION）は、ファイルのどこからどこまでを読み込むのかを、設定するための定数です。 例えば、ファイル [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2825/enum_file_position/">【MQL4定数】ファイルのシーク位置定数（ENUM_FILE_POSITION）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">ファイルのシーク位置定数（ENUM_FILE_POSITION）</span></h2>



<p>ファイルのシーク位置定数（ENUM_FILE_POSITION）は、<strong><span class="marker-under-red">ファイルのどこからどこまでを読み込むのかを、設定するための定数です。</span></strong></p>



<p>例えば、ファイルのヘッダー部分を読み飛ばすために、「ファイルの先頭から100文字までは無視する」という設定が可能です。</p>



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



<p>ファイルのシーク位置定数を使うには、以下の関数を使います。</p>



<ul class="wp-block-list"><li><strong>FileSeek関数：ファイルのシーク位置を設定する関数</strong></li></ul>



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



<h3 class="wp-block-heading"><span id="toc2">ファイルのシーク位置定数（ENUM_FILE_POSITION）</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>SEEK_SET</td><td>ファイルの先頭</td></tr><tr><td>SEEK_CUR</td><td>現在のファイルのシーク位置</td></tr><tr><td>SEEK_END</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>主に、<strong>FileSeek関数</strong>で使用されます。</p>



<p>FileSeek関数の第3引数(origin)として、ファイルのシーク位置定数が使用されます。</p>



<p>例えば、以下のように使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void OnInit()
  {
   //ファイルパスを指定
   string path = "folder/data.csv";

   //ファイルを読み込み可能・CSV形式で読み込む
   int handle = FileOpen(path,FILE_READ|FILE_CSV);
   
   //ファイルの読み込みエラーチェック
   if(handle != INVALID_HANDLE)
     {
      //文字列番号をランダムに選ぶ
      ulong ind = MathRand() % 100;

      //位置を文字列の始めにシフトする
      if(FileSeek(handle, ind, SEEK_SET) == true)
        {
         //ind 番号で文字列を読んで出力する
         PrintFormat("String text with %d number: \"%s\"", ind, FileReadString(handle));
        }

      //ファイルを閉じる
      FileClose(handle);
     }
  }</code></pre></div>



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



<h2 class="wp-block-heading"><span id="toc4">各定数ごとのサンプルプログラム</span></h2>



<h3 class="wp-block-heading"><span id="toc5">SEEK_SET（ファイルの先頭から指定位置へシーク）</span></h3>



<p>SEEK_SETは、ファイルの先頭を基準にしてシーク位置を移動します。以下の例では、ファイルの先頭から50バイト目に移動してから読み込みを行います。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void OnStart()
  {
   string path = "test_data.bin";

   //ファイルをバイナリ形式・読み込みモードで開く
   int handle = FileOpen(path, FILE_READ | FILE_BIN);

   if(handle != INVALID_HANDLE)
     {
      //ファイルの先頭から50バイト目にシークする
      if(FileSeek(handle, 50, SEEK_SET))
        {
         //現在のシーク位置を取得して出力
         Print("SEEK_SET後の位置: ", FileTell(handle));

         //データを読み込む
         string data = FileReadString(handle, 10);
         Print("読み込んだデータ: ", data);
        }
      else
        {
         Print("FileSeek(SEEK_SET)に失敗しました");
        }

      FileClose(handle);
     }
   else
     {
      Print("ファイルオープンに失敗しました: ", GetLastError());
     }
  }</code></pre></div>



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



<h3 class="wp-block-heading"><span id="toc6">SEEK_CUR（現在位置から相対的にシーク）</span></h3>



<p>SEEK_CURは、現在のシーク位置を基準にして移動します。以下の例では、データを一部読み込んだ後、さらに20バイト先に移動して読み込みを行います。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void OnStart()
  {
   string path = "test_data.bin";

   //ファイルをバイナリ形式・読み込みモードで開く
   int handle = FileOpen(path, FILE_READ | FILE_BIN);

   if(handle != INVALID_HANDLE)
     {
      //まず先頭から10バイト読み込む
      string firstData = FileReadString(handle, 10);
      Print("最初の10バイト: ", firstData);
      Print("現在の位置: ", FileTell(handle));

      //現在位置からさらに20バイト先にシークする
      if(FileSeek(handle, 20, SEEK_CUR))
        {
         Print("SEEK_CUR後の位置: ", FileTell(handle));

         //データを読み込む
         string data = FileReadString(handle, 10);
         Print("読み込んだデータ: ", data);
        }
      else
        {
         Print("FileSeek(SEEK_CUR)に失敗しました");
        }

      FileClose(handle);
     }
   else
     {
      Print("ファイルオープンに失敗しました: ", GetLastError());
     }
  }</code></pre></div>



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



<h3 class="wp-block-heading"><span id="toc7">SEEK_END（ファイルの末尾を基準にシーク）</span></h3>



<p>SEEK_ENDは、ファイルの末尾を基準にして移動します。以下の例では、ファイルの末尾から30バイト手前に移動して、末尾付近のデータを読み込みます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void OnStart()
  {
   string path = "test_data.bin";

   //ファイルをバイナリ形式・読み込みモードで開く
   int handle = FileOpen(path, FILE_READ | FILE_BIN);

   if(handle != INVALID_HANDLE)
     {
      //ファイルサイズを取得して出力
      ulong fileSize = FileSize(handle);
      Print("ファイルサイズ: ", fileSize, " バイト");

      //ファイルの末尾から30バイト手前にシークする
      if(FileSeek(handle, -30, SEEK_END))
        {
         Print("SEEK_END後の位置: ", FileTell(handle));

         //末尾付近のデータを読み込む
         string data = FileReadString(handle, 30);
         Print("末尾付近のデータ: ", data);
        }
      else
        {
         Print("FileSeek(SEEK_END)に失敗しました");
        }

      FileClose(handle);
     }
   else
     {
      Print("ファイルオープンに失敗しました: ", GetLastError());
     }
  }</code></pre></div>



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



<h2 class="wp-block-heading"><span id="toc8">【補足】ファイルのシーク位置定数の列挙型（ENUM_FILE_POSITION）</span></h2>



<p>ファイルのシーク位置定数は、ENUM_FILE_POSITION​という<a href="https://mql-programing.com/enum/">列挙型</a>に含まれています。</p>



<p>列挙型は、定数群をひとまとめにしたものです。</p>



<p>以下のように使います。</p>



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



<p>上記のようにプログラムすると、filePosition変数に SEEK_SETの値が代入されます。</p>



<p>　</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>　</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://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/09/enum.jpg?fit=1200%2C675&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></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 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://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="160" height="90" /></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/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>　</p>
<p>投稿 <a href="https://mql-programing.com/archives/2825/enum_file_position/">【MQL4定数】ファイルのシーク位置定数（ENUM_FILE_POSITION）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】ファイル情報取得定数：Integer型（ENUM_FILE_PROPERTY_INTEGER）</title>
		<link>https://mql-programing.com/archives/2817/enum_file_property_integer/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sat, 07 May 2022 20:21:49 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[ENUM_FILE_PROPERTY_INTEGER]]></category>
		<category><![CDATA[FileGetInteger]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2817</guid>

					<description><![CDATA[<p>ファイル情報取得定数：Integer型（ENUM_FILE_PROPERTY_INTEGER） ファイル情報取得定数：Integer型（ENUM_FILE_PROPERTY_INTEGER）は、読み込んだファイルの情報を [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2817/enum_file_property_integer/">【MQL4定数】ファイル情報取得定数：Integer型（ENUM_FILE_PROPERTY_INTEGER）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">ファイル情報取得定数：Integer型（ENUM_FILE_PROPERTY_INTEGER）</span></h2>



<p>ファイル情報取得定数：Integer型（ENUM_FILE_PROPERTY_INTEGER）は、<strong><span class="marker-under-red">読み込んだファイルの情報を取得するための定数です。</span></strong></p>



<p>ファイルサイズや更新日などを取得することができるようになります。</p>



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



<p>ファイル情報取得定数：Integer型を使うには、以下の関数を使います。</p>



<ul class="wp-block-list"><li><strong>FileGetInteger関数：ファイルの情報を取得する関数</strong></li></ul>



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



<h3 class="wp-block-heading"><span id="toc2">ファイル情報取得定数：Integer型（ENUM_FILE_PROPERTY_INTEGER）</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>FILE_EXISTS</td><td>ファイルの存在確認</td></tr><tr><td>FILE_CREATE_DATE</td><td>作成日</td></tr><tr><td>FILE_MODIFY_DATE</td><td>更新日</td></tr><tr><td>FILE_ACCESS_DATE</td><td>最終アクセス日</td></tr><tr><td>FILE_SIZE</td><td>ファイルサイズ(バイト単位)</td></tr><tr><td>FILE_POSITION</td><td>ファイルのポインタ位置</td></tr><tr><td>FILE_END</td><td>ファイルの終わり記号を取得</td></tr><tr><td>FILE_LINE_END</td><td>行の終わり記号を取得</td></tr><tr><td>FILE_IS_COMMON</td><td>ファイルは共有フォルダで開かれている(<a href="https://mql-programing.com/file_constant/" title="FILE_COMMON">FILE_COMMON</a>参照)</td></tr><tr><td>FILE_IS_TEXT</td><td>ファイルはテキスト形式(<a href="https://mql-programing.com/file_constant/">FILE_TXT</a>参照)</td></tr><tr><td>FILE_IS_BINARY</td><td>ファイルはバイナリ形式(<a href="https://mql-programing.com/file_constant/">FILE_BIN</a>参照)</td></tr><tr><td>FILE_IS_CSV</td><td>ファイルはCSV形式(<a href="https://mql-programing.com/file_constant/">FILE_CSV</a>参照)</td></tr><tr><td>FILE_IS_ANSI</td><td>ファイルはANSI形式(<a href="https://mql-programing.com/file_constant/">FILE_ANSI</a>参照)</td></tr><tr><td>FILE_IS_READABLE</td><td>ファイルは読み取り可能(<a href="https://mql-programing.com/file_constant/">FILE_READ</a>参照)</td></tr><tr><td>FILE_IS_WRITABLE</td><td>ファイルは書き込み可能(<a href="https://mql-programing.com/file_constant/">FILE_WRITE</a>参照)</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">ファイル情報取得定数：Integer型の使い方</span></h2>



<p>主に、<strong>FileGetInteger関数</strong>で使用されます。</p>



<p>FileGetInteger関数の第2引数(property_id)として、ファイル情報取得定数：Integer型が使用されます。</p>



<p>例えば、以下のように使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void OnInit()
  {
   //ファイルパスを指定
   string path = &quot;folder/data.csv&quot;;

   //ファイルを読み込み可能・CSV形式で読み込む
   int handle = FileOpen(path,FILE_READ|FILE_CSV);
   
   //ファイルの読み込みエラーチェック
   if(handle != INVALID_HANDLE)
     {
      //読み込んだファイルのサイズを取得
      long fileInfo = FileGetInteger(handle,FILE_SIZE);

      //ファイルサイズを表示
      Print(fileInfo);

      //ファイルを閉じる
      FileClose(handle);
     }
  }</code></pre></div>



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



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



<p>以下は、ファイル情報取得定数：Integer型の各定数を使って、ファイルの各種情報を取得・表示するサンプルプログラムです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//| ファイル情報取得定数：Integer型 サンプルプログラム               |
//+------------------------------------------------------------------+
void OnInit()
  {
   //ファイルパスを指定
   string path = &quot;test_data.csv&quot;;

   //テスト用ファイルを作成して書き込む
   int writeHandle = FileOpen(path, FILE_WRITE | FILE_CSV);
   if(writeHandle != INVALID_HANDLE)
     {
      FileWrite(writeHandle, &quot;Date&quot;, &quot;Open&quot;, &quot;High&quot;, &quot;Low&quot;, &quot;Close&quot;);
      FileWrite(writeHandle, &quot;2024.01.01&quot;, &quot;1.1000&quot;, &quot;1.1050&quot;, &quot;1.0950&quot;, &quot;1.1020&quot;);
      FileWrite(writeHandle, &quot;2024.01.02&quot;, &quot;1.1020&quot;, &quot;1.1080&quot;, &quot;1.0990&quot;, &quot;1.1060&quot;);
      FileClose(writeHandle);
      Print(&quot;テスト用ファイルを作成しました&quot;);
     }

   //ファイルを読み込み可能・CSV形式で開く
   int handle = FileOpen(path, FILE_READ | FILE_CSV);

   //ファイルの読み込みエラーチェック
   if(handle != INVALID_HANDLE)
     {
      //--- FILE_EXISTS：ファイルの存在確認
      long fileExists = FileGetInteger(handle, FILE_EXISTS);
      Print(&quot;FILE_EXISTS（ファイル存在確認）: &quot;, fileExists);

      //--- FILE_CREATE_DATE：作成日
      long createDate = FileGetInteger(handle, FILE_CREATE_DATE);
      Print(&quot;FILE_CREATE_DATE（作成日）: &quot;, TimeToStr((datetime)createDate, TIME_DATE | TIME_SECONDS));

      //--- FILE_MODIFY_DATE：更新日
      long modifyDate = FileGetInteger(handle, FILE_MODIFY_DATE);
      Print(&quot;FILE_MODIFY_DATE（更新日）: &quot;, TimeToStr((datetime)modifyDate, TIME_DATE | TIME_SECONDS));

      //--- FILE_ACCESS_DATE：最終アクセス日
      long accessDate = FileGetInteger(handle, FILE_ACCESS_DATE);
      Print(&quot;FILE_ACCESS_DATE（最終アクセス日）: &quot;, TimeToStr((datetime)accessDate, TIME_DATE | TIME_SECONDS));

      //--- FILE_SIZE：ファイルサイズ（バイト単位）
      long fileSize = FileGetInteger(handle, FILE_SIZE);
      Print(&quot;FILE_SIZE（ファイルサイズ）: &quot;, fileSize, &quot; バイト&quot;);

      //--- FILE_POSITION：ファイルのポインタ位置
      long filePosition = FileGetInteger(handle, FILE_POSITION);
      Print(&quot;FILE_POSITION（ポインタ位置）: &quot;, filePosition);

      //--- FILE_END：ファイルの終わり記号を取得
      long fileEnd = FileGetInteger(handle, FILE_END);
      Print(&quot;FILE_END（ファイル終端か）: &quot;, fileEnd);

      //--- FILE_LINE_END：行の終わり記号を取得
      long fileLineEnd = FileGetInteger(handle, FILE_LINE_END);
      Print(&quot;FILE_LINE_END（行終端か）: &quot;, fileLineEnd);

      //--- FILE_IS_COMMON：共有フォルダで開かれているか
      long fileIsCommon = FileGetInteger(handle, FILE_IS_COMMON);
      Print(&quot;FILE_IS_COMMON（共有フォルダか）: &quot;, fileIsCommon);

      //--- FILE_IS_TEXT：テキスト形式か
      long fileIsText = FileGetInteger(handle, FILE_IS_TEXT);
      Print(&quot;FILE_IS_TEXT（テキスト形式か）: &quot;, fileIsText);

      //--- FILE_IS_BINARY：バイナリ形式か
      long fileIsBinary = FileGetInteger(handle, FILE_IS_BINARY);
      Print(&quot;FILE_IS_BINARY（バイナリ形式か）: &quot;, fileIsBinary);

      //--- FILE_IS_CSV：CSV形式か
      long fileIsCsv = FileGetInteger(handle, FILE_IS_CSV);
      Print(&quot;FILE_IS_CSV（CSV形式か）: &quot;, fileIsCsv);

      //--- FILE_IS_ANSI：ANSI形式か
      long fileIsAnsi = FileGetInteger(handle, FILE_IS_ANSI);
      Print(&quot;FILE_IS_ANSI（ANSI形式か）: &quot;, fileIsAnsi);

      //--- FILE_IS_READABLE：読み取り可能か
      long fileIsReadable = FileGetInteger(handle, FILE_IS_READABLE);
      Print(&quot;FILE_IS_READABLE（読み取り可能か）: &quot;, fileIsReadable);

      //--- FILE_IS_WRITABLE：書き込み可能か
      long fileIsWritable = FileGetInteger(handle, FILE_IS_WRITABLE);
      Print(&quot;FILE_IS_WRITABLE（書き込み可能か）: &quot;, fileIsWritable);

      //ファイルを閉じる
      FileClose(handle);
      Print(&quot;ファイルを閉じました&quot;);
     }
   else
     {
      Print(&quot;ファイルの読み込みに失敗しました。エラーコード: &quot;, GetLastError());
     }
  }</code></pre></div>



<p>このサンプルでは、まずテスト用のCSVファイルを作成し、その後ファイルを読み込みモードで開いて、すべてのENUM_FILE_PROPERTY_INTEGER定数を使用してファイル情報を取得・表示しています。</p>



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



<h2 class="wp-block-heading"><span id="toc5">【補足】ファイル情報取得定数：Integer型の列挙型（ENUM_FILE_PROPERTY_INTEGER）</span></h2>



<p>ファイル情報取得定数：Integer型は、ENUM_FILE_PROPERTY_INTEGER​という<a href="https://mql-programing.com/enum/">列挙型</a>に含まれています。</p>



<p>列挙型は、定数群をひとまとめにしたものです。</p>



<p>以下のように使います。</p>



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



<p>上記のようにプログラムすると、filePropertyInteger変数に FILE_SIZEの値が代入されます。</p>



<p>　</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>　</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://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/09/enum.jpg?fit=1200%2C675&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></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 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://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="160" height="90" /></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/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>　</p>
<p>投稿 <a href="https://mql-programing.com/archives/2817/enum_file_property_integer/">【MQL4定数】ファイル情報取得定数：Integer型（ENUM_FILE_PROPERTY_INTEGER）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】ファイル定数（FILE_○○）</title>
		<link>https://mql-programing.com/archives/2810/file_constant/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sat, 07 May 2022 13:31:21 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[FILE_]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2810</guid>

					<description><![CDATA[<p>ファイル定数（FILE_○○） ファイル定数は、プログラムでファイルを開くときに使用されます。 ファイルを開くとき、いくつかの条件を指定することができます。 条件を指定することで、セキュリティを高めたり、ファイルを正しく [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2810/file_constant/">【MQL4定数】ファイル定数（FILE_○○）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">ファイル定数（FILE_○○）</span></h2>



<p><strong><span class="marker-under-red">ファイル定数は、プログラムでファイルを開くときに使用されます。</span></strong></p>



<p>ファイルを開くとき、いくつかの条件を指定することができます。</p>



<p>条件を指定することで、セキュリティを高めたり、ファイルを正しく読み込むことができるようになります。</p>



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



<p>ファイル定数は以下の関数で使用されます。</p>



<ul class="wp-block-list"><li><strong>FileOpen関数：ファイルを開く</strong></li><li><strong>FileCopy関数：ファイルをコピーする</strong></li><li><strong>FileMove関数：ファイルを移動させる</strong></li><li><strong>FileIsExist関数：ファイルの存在を確認する</strong></li></ul>



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



<h3 class="wp-block-heading"><span id="toc2">ファイル定数（FILE_○○）</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>FILE_READ</td><td>ファイルを読み込み可能で開く</td></tr><tr><td>FILE_WRITE</td><td>ファイルを書き込み可能で開く</td></tr><tr><td>FILE_BIN</td><td>バイナリファイルを開く</td></tr><tr><td>FILE_CSV</td><td>CSVファイルを開く</td></tr><tr><td>FILE_TXT</td><td>テキストファイルを開く</td></tr><tr><td>FILE_ANSI</td><td>ANSIファイルを開く</td></tr><tr><td>FILE_UNICODE</td><td>UNICODEファイルを開く</td></tr><tr><td>FILE_SHARE_READ</td><td>複数のプログラムから読み込み可能で開く</td></tr><tr><td>FILE_SHARE_WRITE</td><td>複数のプログラムから書き込み可能で開く</td></tr><tr><td>FILE_REWRITE</td><td>ファイルを上書き可能で開く</td></tr><tr><td>FILE_COMMON</td><td>ファイルパス(\Terminal\Common\Files)</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">ファイル定数（FILE_○○）の使い方</span></h2>



<p>ファイル定数は、主に<strong>FileOpen関数</strong>で使用します。</p>



<p>ファイルを開くときの条件を指定するために、ファイル定数を使います。</p>



<p>また、条件は複数指定することが可能です。</p>



<p>複数指定する場合は、<strong><span class="marker-under-red">FILE_READ | FILE_WRITE | FILE_CSV</span></strong> のように「|」でつなぐように記述してください。</p>



<p>例えば、以下のように使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void OnInit() {
    //ファイル名
    const string filename = "test.csv";
    //ファイルハンドラ
    int filehandle;             

    //ファイルを開く(読み込み可能・書き込み可能・CSVファイル)
    filehandle = FileOpen( filename , FILE_READ | FILE_WRITE | FILE_CSV );
}</code></pre></div>



<p>上記のように記述することで、ファイルを開くときに条件を指定することができます。</p>



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



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



<p>以下は、ファイル定数を使ってCSVファイルにデータを書き込み、その後読み込むサンプルプログラムです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//| ファイル定数を使ったサンプルプログラム                            |
//+------------------------------------------------------------------+
void OnInit()
{
    const string filename = "sample_data.csv";
    int filehandle;

    //--- CSVファイルに書き込み ---
    filehandle = FileOpen(filename, FILE_WRITE | FILE_CSV, ",");

    if(filehandle != INVALID_HANDLE)
    {
        // ヘッダーを書き込む
        FileWrite(filehandle, "日時", "通貨ペア", "Bid", "Ask");

        // データを書き込む
        FileWrite(filehandle, TimeToStr(TimeCurrent()), Symbol(), Bid, Ask);

        // ファイルを閉じる
        FileClose(filehandle);

        Print("ファイルへの書き込みが完了しました。");
    }
    else
    {
        Print("ファイルを開けませんでした。エラーコード: ", GetLastError());
    }

    //--- CSVファイルから読み込み ---
    filehandle = FileOpen(filename, FILE_READ | FILE_CSV, ",");

    if(filehandle != INVALID_HANDLE)
    {
        // ファイルの終わりまで読み込む
        while(!FileIsEnding(filehandle))
        {
            string col1 = FileReadString(filehandle);
            string col2 = FileReadString(filehandle);
            string col3 = FileReadString(filehandle);
            string col4 = FileReadString(filehandle);

            Print(col1, " | ", col2, " | ", col3, " | ", col4);
        }

        // ファイルを閉じる
        FileClose(filehandle);

        Print("ファイルの読み込みが完了しました。");
    }
    else
    {
        Print("ファイルを開けませんでした。エラーコード: ", GetLastError());
    }

    //--- FILE_COMMONを使った例 ---
    // 共通フォルダにテキストファイルを作成
    filehandle = FileOpen(filename, FILE_WRITE | FILE_TXT | FILE_COMMON);

    if(filehandle != INVALID_HANDLE)
    {
        FileWriteString(filehandle, "共通フォルダに書き込みました。\r\n");
        FileWriteString(filehandle, "このファイルは複数のターミナルからアクセスできます。\r\n");
        FileClose(filehandle);

        Print("共通フォルダへの書き込みが完了しました。");
    }

    //--- FILE_SHARE_READを使った例 ---
    // 他のプログラムからも読み込み可能な状態でファイルを開く
    filehandle = FileOpen(filename, FILE_READ | FILE_CSV | FILE_SHARE_READ, ",");

    if(filehandle != INVALID_HANDLE)
    {
        Print("共有読み込みモードでファイルを開きました。");
        FileClose(filehandle);
    }
}</code></pre></div>



<p>上記のプログラムでは、以下の3つの処理を行っています。</p>



<ol class="wp-block-list"><li><strong>FILE_WRITE | FILE_CSV</strong> を使ってCSVファイルにデータを書き込む</li><li><strong>FILE_READ | FILE_CSV</strong> を使ってCSVファイルからデータを読み込む</li><li><strong>FILE_WRITE | FILE_TXT | FILE_COMMON</strong> を使って共通フォルダにテキストファイルを作成する</li></ol>



<p>ファイル定数を組み合わせることで、用途に応じたファイル操作が可能になります。</p>



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



<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>　</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="160" height="90" /></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/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>　</p>
<p>投稿 <a href="https://mql-programing.com/archives/2810/file_constant/">【MQL4定数】ファイル定数（FILE_○○）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】暗号化定数（ENUM_CRYPT_METHOD）</title>
		<link>https://mql-programing.com/archives/2798/enum_crypt_method/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sat, 07 May 2022 12:53:21 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[CryptEncode]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[ENUM_CRYPT_METHOD]]></category>
		<category><![CDATA[CryptDecode]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2798</guid>

					<description><![CDATA[<p>暗号化定数（ENUM_CRYPT_METHOD） 暗号化定数（ENUM_CRYPT_METHOD）は、テキストなどを暗号化し、セキュリティを高めるために使用されます。 プログラムでパスワードを使用するときに、パスワードを [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2798/enum_crypt_method/">【MQL4定数】暗号化定数（ENUM_CRYPT_METHOD）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">暗号化定数（ENUM_CRYPT_METHOD）</span></h2>



<p>暗号化定数（ENUM_CRYPT_METHOD）は、テキストなどを暗号化し、セキュリティを高めるために使用されます。</p>



<p>プログラムでパスワードを使用するときに、パスワードを暗号化をすると良いでしょう。</p>



<p>暗号化することで、セキュリティが高くなり、より信頼できる自動売買を作成することができます。</p>



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



<p>暗号化、復号化するには、以下の関数を使用してください。</p>



<p><strong><span class="marker-under-red">暗号化するには、CryptEncode関数を使います。</span></strong></p>



<p><strong><span class="marker-under-red">暗号化を復号するには、CryptDecode関数を使います。</span></strong></p>



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



<h3 class="wp-block-heading"><span id="toc2">暗号化定数（ENUM_CRYPT_METHOD）</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>CRYPT_BASE64</td><td>BASE64変換</td></tr><tr><td>CRYPT_AES128</td><td>128ビット(16バイト)キ―AES暗号化</td></tr><tr><td>CRYPT_AES256</td><td>256ビット(32バイト)キ―AES暗号化</td></tr><tr><td>CRYPT_DES</td><td>56ビット(7バイト)キ―DES暗号化</td></tr><tr><td>CRYPT_HASH_SHA1</td><td>SHA-1ハッシュ計算</td></tr><tr><td>CRYPT_HASH_SHA256</td><td>SHA-256ハッシュ計算</td></tr><tr><td>CRYPT_HASH_MD5</td><td>MD5ハッシュ計算</td></tr><tr><td>CRYPT_ARCH_ZIP</td><td>ZIPアーカイブ</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>主に、<strong>CryptEncode関数、CryptDecode関数</strong>で使用されます。</p>



<p>それぞれの関数の引数として使用されます。</p>



<p>例えば、以下のように使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void OnStart()
 {
  //暗号化するテキスト
  string text="Hello World";

  //暗号化するための鍵
  string keystr="ABCDEFG";

  //暗号化に使用する配列
  uchar src[],dst[],key[];

  //鍵をchar型の配列に変換
  StringToCharArray(keystr,key);

  //テキストをchar型の配列に変換
  StringToCharArray(text,src);

  //暗号化前のテキストを表示
  PrintFormat("Initial data: size=%d, string='%s'",ArraySize(src),CharArrayToString(src));

  //src[] を key[] を使って、56ビット(7バイト)キ―DESで暗号化
  //暗号化した結果を dst[] に格納
  int res=CryptEncode(CRYPT_DES,src,key,dst);

  //エラーをチェック
  if(res>0)
    {
    //dst[] を key[] を使って、56ビット(7バイト)キ―DESで復号化
    //復号化した結果を src[] に格納
    res=CryptDecode(CRYPT_DES,dst,key,src);

    //エラーをチェック 
    if(res>0)
       {
        //復号化されたテキストを表示
        PrintFormat("Decoded data: size=%d, string='%s'",ArraySize(src),CharArrayToString(src));
       }
    }
 }</code></pre></div>



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



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



<p>以下は、暗号化定数を使って文字列をAES256で暗号化し、復号化するサンプルプログラムです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//| 暗号化定数サンプルプログラム                                        |
//+------------------------------------------------------------------+
void OnStart()
 {
  //--- 暗号化するテキスト
  string text = "MQL4プログラミングで暗号化テスト";

  //--- 32バイトの鍵（AES256用）
  string keystr = "12345678901234567890123456789012";

  //--- 配列の宣言
  uchar src[], dst[], dec[], key[];

  //--- 文字列を配列に変換
  StringToCharArray(keystr, key);
  StringToCharArray(text, src);

  //--- 暗号化前のテキストを表示
  PrintFormat("【暗号化前】size=%d, text='%s'", ArraySize(src), CharArrayToString(src));

  //--- AES256で暗号化
  int encResult = CryptEncode(CRYPT_AES256, src, key, dst);

  if(encResult > 0)
    {
     PrintFormat("【暗号化成功】暗号化後のデータサイズ=%d", ArraySize(dst));

     //--- 暗号化データを16進数文字列で表示
     string hexStr = "";
     for(int i = 0; i < ArraySize(dst); i++)
       {
        hexStr += StringFormat("%02X", dst[i]);
       }
     PrintFormat("【暗号化データ(HEX)】%s", hexStr);

     //--- AES256で復号化
     int decResult = CryptDecode(CRYPT_AES256, dst, key, dec);

     if(decResult > 0)
       {
        PrintFormat("【復号化成功】size=%d, text='%s'", ArraySize(dec), CharArrayToString(dec));
       }
     else
       {
        PrintFormat("【復号化失敗】エラーコード=%d", GetLastError());
       }
    }
  else
    {
     PrintFormat("【暗号化失敗】エラーコード=%d", GetLastError());
    }

  //--- ハッシュ計算の例（SHA256）
  uchar hash[];
  uchar dummy[];
  int hashResult = CryptEncode(CRYPT_HASH_SHA256, src, dummy, hash);

  if(hashResult > 0)
    {
     string hashStr = "";
     for(int i = 0; i < ArraySize(hash); i++)
       {
        hashStr += StringFormat("%02X", hash[i]);
       }
     PrintFormat("【SHA-256ハッシュ】%s", hashStr);
    }
 }</code></pre></div>



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



<h2 class="wp-block-heading"><span id="toc5">【補足】暗号化定数の列挙型（ENUM_CRYPT_METHOD）</span></h2>



<p>暗号化定数は、ENUM_CRYPT_METHOD​という<a href="https://mql-programing.com/enum/">列挙型</a>に含まれています。</p>



<p>列挙型は、定数群をひとまとめにしたものです。</p>



<p>以下のように使います。</p>



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



<p>上記のようにプログラムすると、cryptMethod変数に CRYPT_DESの値が代入されます。</p>



<p>　</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>　</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://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/09/enum.jpg?fit=1200%2C675&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></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 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://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="160" height="90" /></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/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>　</p>
<p>投稿 <a href="https://mql-programing.com/archives/2798/enum_crypt_method/">【MQL4定数】暗号化定数（ENUM_CRYPT_METHOD）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】その他定数</title>
		<link>https://mql-programing.com/archives/2790/other_constant/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sat, 07 May 2022 08:15:44 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[NULL]]></category>
		<category><![CDATA[EMPTY]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2790</guid>

					<description><![CDATA[<p>その他定数 その他定数は、プログラムの状態を定数にしたものです。 他の定数と違い、特別な意味をもつ定数が多いことが特徴です。 その他定数 定数 数値 説明 NULL 0 全てのデータ型のゼロ値 EMPTY -1 パラメー [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2790/other_constant/">【MQL4定数】その他定数</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">その他定数</span></h2>



<p><strong><span class="marker-under-red">その他定数は、プログラムの状態を定数にしたものです。</span></strong></p>



<p>他の定数と違い、特別な意味をもつ定数が多いことが特徴です。</p>



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



<h3 class="wp-block-heading"><span id="toc2">その他定数</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>NULL</td><td>0</td><td>全てのデータ型のゼロ値</td></tr><tr><td>EMPTY</td><td>-1</td><td>パラメータの空の値</td></tr><tr><td>EMPTY_VALUE</td><td>2147483647</td><td>インジケータバッファの空の値</td></tr><tr><td>CLR_NONE<br>clrNONE</td><td>-1</td><td>無色の値</td></tr><tr><td>CHARTS_MAX</td><td>100</td><td>ターミナルで同時に開けるチャートの最大数</td></tr><tr><td>INVALID_HANDLE</td><td>-1</td><td>無効なハンドル</td></tr><tr><td>IS_DEBUG_MODE</td><td>0以外：デバッグモードON<br>0：デバッグモードOFF</td><td>MQL4プログラムのデバッグモードフラグ</td></tr><tr><td>IS_PROFILE_MODE</td><td>0以外：プロファイリングモードON<br>0：プロファイリングモードOFF</td><td>MQL4プログラムのプロファイリングモードフラグ</td></tr><tr><td>WHOLE_ARRAY</td><td>0</td><td>全ての配列要素を処理する</td></tr><tr><td>WRONG_VALUE</td><td>1</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>その他定数の中で、一番多く使う定数が、NULLです。</p>



<p>NULLは全てのデータ型のゼロ値として扱われるため、変数の初期化などに使われることが多い定数です。</p>



<p>例えば、以下のように使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void OnInit() {
    int dataInt = NULL;
    double dataDouble = NULL;
    string dataString = NULL;
}</code></pre></div>



<p>上記のように記述することで、どんな変数でも初期化することができます。</p>



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



<h2 class="wp-block-heading"><span id="toc4">その他定数を使ったプログラム例</span></h2>



<p>以下は、その他定数を実際に使用したプログラム例です。各定数の値をエキスパートログに出力して確認します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//| その他定数の確認プログラム                                         |
//+------------------------------------------------------------------+
void OnInit()
{
    // NULLによる初期化
    int    dataInt    = NULL;
    double dataDouble = NULL;
    string dataString = NULL;

    Print("=== NULLによる初期化 ===");
    Print("int型のNULL値: ", dataInt);       // 0
    Print("double型のNULL値: ", dataDouble); // 0.0
    Print("string型のNULL値: ", dataString); // (空文字)

    // EMPTY と EMPTY_VALUE の確認
    Print("=== EMPTY / EMPTY_VALUE ===");
    Print("EMPTYの値: ", EMPTY);             // -1
    Print("EMPTY_VALUEの値: ", EMPTY_VALUE); // 2147483647

    // CLR_NONE の確認
    Print("=== CLR_NONE ===");
    Print("CLR_NONEの値: ", CLR_NONE);       // -1

    // CHARTS_MAX の確認
    Print("=== CHARTS_MAX ===");
    Print("最大チャート数: ", CHARTS_MAX);    // 100

    // INVALID_HANDLE の確認
    Print("=== INVALID_HANDLE ===");
    Print("無効ハンドルの値: ", INVALID_HANDLE); // -1

    // デバッグモード / プロファイリングモードの確認
    Print("=== デバッグ / プロファイリング ===");
    if(IS_DEBUG_MODE)
        Print("現在デバッグモードで実行中です");
    else
        Print("デバッグモードではありません");

    if(IS_PROFILE_MODE)
        Print("現在プロファイリングモードで実行中です");
    else
        Print("プロファイリングモードではありません");

    // WHOLE_ARRAY の使用例
    Print("=== WHOLE_ARRAY ===");
    double srcArray[] = {1.1, 2.2, 3.3, 4.4, 5.5};
    double dstArray[];
    // WHOLE_ARRAY を指定して配列全体をコピー
    ArrayCopy(dstArray, srcArray, 0, 0, WHOLE_ARRAY);
    Print("コピーされた配列の要素数: ", ArraySize(dstArray)); // 5
}</code></pre></div>



<h3 class="wp-block-heading"><span id="toc5">実行結果</span></h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-txt" data-lang="実行結果"><code>=== NULLによる初期化 ===
int型のNULL値: 0
double型のNULL値: 0.0
string型のNULL値: 
=== EMPTY / EMPTY_VALUE ===
EMPTYの値: -1
EMPTY_VALUEの値: 2147483647
=== CLR_NONE ===
CLR_NONEの値: -1
=== CHARTS_MAX ===
最大チャート数: 100
=== INVALID_HANDLE ===
無効ハンドルの値: -1
=== デバッグ / プロファイリング ===
デバッグモードではありません
プロファイリングモードではありません
=== WHOLE_ARRAY ===
コピーされた配列の要素数: 5</code></pre></div>



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



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



<p>その他定数は、MQL4プログラミングにおいて特別な意味をもつ定数です。</p>



<p>特に<strong>NULL</strong>は変数の初期化、<strong>EMPTY_VALUE</strong>はインジケータバッファで値が存在しないことを示す場合、<strong>WHOLE_ARRAY</strong>は配列全体を処理対象にする場合など、それぞれの用途をしっかり理解しておきましょう。</p>



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



<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>　</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="160" height="90" /></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/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>　</p>
<p>投稿 <a href="https://mql-programing.com/archives/2790/other_constant/">【MQL4定数】その他定数</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】メッセージボックスの定数​</title>
		<link>https://mql-programing.com/archives/2780/messagebox_constant/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sat, 07 May 2022 07:23:36 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[MessageBox]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2780</guid>

					<description><![CDATA[<p>メッセージボックスの定数​ メッセージボックスの定数​は、MessageBox関数を使用するときに使われます。 MessageBox関数は、チャート以外のウィンドウを表示させることができる関数です。 例えば、注意事項を表 [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2780/messagebox_constant/">【MQL4定数】メッセージボックスの定数​</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">メッセージボックスの定数​</span></h2>



<p class="has-drop-cap"><strong><span class="marker-under-red">メッセージボックスの定数​は、MessageBox関数を使用するときに使われます。</span></strong></p>



<p>MessageBox関数は、チャート以外のウィンドウを表示させることができる関数です。</p>



<p>例えば、注意事項を表示させたいときや、YES/NOを選択させたいときに使うと良いでしょう。</p>



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



<p>MessageBox関数の出力と引数で分けて見てみましょう。</p>



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



<h3 class="wp-block-heading"><span id="toc2">メッセージボックスの定数​（出力用）</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>IDOK</td><td>1</td><td>OKボタンが押された</td></tr><tr><td>IDCANCEL</td><td>2</td><td>キャンセルボタンが押された</td></tr><tr><td>IDABORT</td><td>3</td><td>中止ボタンが押された</td></tr><tr><td>IDRETRY</td><td>4</td><td>再試行ボタンが押された</td></tr><tr><td>IDIGNORE</td><td>5</td><td>無視ボタンが押された</td></tr><tr><td>IDYES</td><td>6</td><td>YESボタンが押された</td></tr><tr><td>IDNO</td><td>7</td><td>NOボタンが押された</td></tr><tr><td>IDTRYAGAIN</td><td>10</td><td>再実行ボタンが押された</td></tr><tr><td>IDCONTINUE</td><td>11</td><td>続行ボタンが押された</td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading"><span id="toc3">メッセージボックスの定数​（引数用）</span></h3>



<p>メッセージボックスのオプション引数は、3つに分かれています。</p>



<p>それぞれ確認していきます。</p>



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



<h4 class="wp-block-heading"><span id="toc4">メッセージボックスのオプション引数（1番目）</span></h4>



<p>メッセージボックスのボタンの数や種類を設定する定数です。</p>



<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>MB_OK</td><td>0x00000000</td><td>ボタン1つのメッセージボックスを作成<br>[OK]</td></tr><tr><td>MB_OKCANCEL</td><td>0x00000001</td><td>ボタン2つのメッセージボックスを作成<br>[OK] [キャンセル]</td></tr><tr><td>MB_ABORTRETRYIGNORE</td><td>0x00000002</td><td>ボタン3つのメッセージボックスを作成<br>[中止] [再試行] [無視]</td></tr><tr><td>MB_YESNOCANCEL</td><td>0x00000003</td><td>ボタン3つのメッセージボックスを作成<br>[YES] [NO] [キャンセル]</td></tr><tr><td>MB_YESNO</td><td>0x00000004</td><td>ボタン2つのメッセージボックスを作成<br>[YES] [NO]</td></tr><tr><td>MB_RETRYCANCEL</td><td>0x00000005</td><td>ボタン2つのメッセージボックスを作成<br>[再試行] [キャンセル]</td></tr><tr><td>MB_CANCELTRYCONTINUE</td><td>0x00000006</td><td>ボタン3つのメッセージボックスを作成<br>[キャンセル] [再実行] [続行]</td></tr></tbody></table></figure>



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



<h4 class="wp-block-heading"><span id="toc5">メッセージボックスのオプション引数（2番目）</span></h4>



<p>メッセージボックスのアイコンを設定する定数です。</p>



<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>MB_ICONSTOP</td><td>0x00000010</td><td>ストップアイコン</td></tr><tr><td>MB_ICONERROR</td><td>0x00000010</td><td>エラーアイコン</td></tr><tr><td>MB_ICONHAND</td><td>0x00000010</td><td>ハンドアイコン</td></tr><tr><td>MB_ICONQUESTION</td><td>0x00000020</td><td>クエスチョンアイコン</td></tr><tr><td>MB_ICONEXCLAMATION</td><td>0x00000030</td><td>感嘆符アイコン</td></tr><tr><td>MB_ICONWARNING</td><td>0x00000030</td><td>警告アイコン</td></tr><tr><td>MB_ICONINFORMATION</td><td>0x00000040</td><td>インフォメーションアイコン</td></tr><tr><td>MB_ICONASTERISK</td><td>0x00000040</td><td>アスタリスクアイコン</td></tr></tbody></table></figure>



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



<h4 class="wp-block-heading"><span id="toc6">メッセージボックスのオプション引数（3番目）</span></h4>



<p>メッセージボックスのデフォルトで選択されているボタンを設定する定数です。</p>



<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>MB_DEFBUTTON1</td><td>0x00000000</td><td>1番目のボタンをデフォルトに設定</td></tr><tr><td>MB_DEFBUTTON2</td><td>0x00000100</td><td>2番目のボタンをデフォルトに設定</td></tr><tr><td>MB_DEFBUTTON3</td><td>0x00000200</td><td>3番目のボタンをデフォルトに設定</td></tr><tr><td>MB_DEFBUTTON4</td><td>0x00000300</td><td>4番目のボタンをデフォルトに設定</td></tr></tbody></table></figure>



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



<h2 class="wp-block-heading"><span id="toc7">メッセージボックスの定数​の使い方</span></h2>



<p>メッセージボックスの定数​は、<strong><span class="marker-under-red">MessageBox関数</span></strong>で使用されます。</p>



<p>MessageBox関数のオプション引数として、メッセージボックスの定数が使われます。</p>



<p>例えば、以下のように使用します。</p>



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



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="MQL4"><code>//+------------------------------------------------------------------+
//| メッセージボックスの定数 サンプルプログラム                        |
//+------------------------------------------------------------------+
void OnInit()
{
    // メッセージボックスの出力を格納する変数
    int msgret;

    // ボタン3つのメッセージボックスを作成
    // インフォメーションアイコン
    // 2番目のボタンをデフォルトに設定
    msgret = MessageBox("テストメッセージ",
                        "ヘッダ",
                        MB_ICONINFORMATION | MB_YESNOCANCEL | MB_DEFBUTTON2);

    // 押されたボタンによって表示を変える
    if(msgret == IDYES)
    {
        Print("はい");
    }
    else if(msgret == IDNO)
    {
        Print("いいえ");
    }
    else if(msgret == IDCANCEL)
    {
        Print("キャンセル");
    }
    else
    {
        Print("他");
    }
}</code></pre></div>



<p>　</p>



<p>上記のように記述することで、以下のようなメッセージボックスが表示されます。</p>



<p>※文字化けする可能性がありますので、<a href="https://mql-programing.com/codepage/" title="【MQL4定数】文字コードの定数​（CP_○○）">文字コードを指定する</a>と改善されます。</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="349" height="191" src="https://mql-programing.com/main29/wp-content/uploads/2022/05/msgbox.jpg" alt="メッセージボックスの表示例" class="wp-image-2783" srcset="https://mql-programing.com/main29/wp-content/uploads/2022/05/msgbox.jpg 349w, https://mql-programing.com/main29/wp-content/uploads/2022/05/msgbox-300x164.jpg 300w" sizes="(max-width: 349px) 100vw, 349px" /></figure></div>



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



<h3 class="wp-block-heading"><span id="toc9">プログラムの解説</span></h3>



<p>上記のサンプルプログラムでは、MessageBox関数の第3引数にメッセージボックスの定数を組み合わせて指定しています。</p>



<p>複数の定数を組み合わせるには、<strong>「|」（OR演算子）</strong>を使用します。</p>



<p>この例では以下の3つの定数を組み合わせています。</p>



<ul class="wp-block-list"><li><strong>MB_ICONINFORMATION</strong>：インフォメーションアイコンを表示</li><li><strong>MB_YESNOCANCEL</strong>：[YES] [NO] [キャンセル] の3つのボタンを表示</li><li><strong>MB_DEFBUTTON2</strong>：2番目のボタン（NO）をデフォルトで選択状態にする</li></ul>



<p>MessageBox関数の戻り値は、ユーザーが押したボタンに対応する出力用の定数（IDYES、IDNO、IDCANCELなど）が返されます。</p>



<p>戻り値をif文で判定することで、ユーザーが押したボタンに応じた処理を実行できます。</p>



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



<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>　</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="160" height="90" /></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/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>　</p>
<p>投稿 <a href="https://mql-programing.com/archives/2780/messagebox_constant/">【MQL4定数】メッセージボックスの定数​</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
