<?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>GetLastError アーカイブ - 自動売買を作ろう！</title>
	<atom:link href="https://mql-programing.com/archives/tag/getlasterror/feed/" rel="self" type="application/rss+xml" />
	<link>https://mql-programing.com/archives/tag/getlasterror/</link>
	<description>MQLプログラミング学習サイト</description>
	<lastBuildDate>Wed, 01 Apr 2026 04:13:14 +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>GetLastError アーカイブ - 自動売買を作ろう！</title>
	<link>https://mql-programing.com/archives/tag/getlasterror/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MQL4】デバッグに必須！Print・Alert・Comment・GetLastError・ResetLastErrorの使い方を徹底解説</title>
		<link>https://mql-programing.com/archives/13055/%e3%80%90mql4%e3%80%91%e3%83%87%e3%83%90%e3%83%83%e3%82%b0%e3%81%ab%e5%bf%85%e9%a0%88%ef%bc%81print%e3%83%bbalert%e3%83%bbcomment%e3%83%bbgetlasterror%e3%83%bbresetlasterror%e3%81%ae%e4%bd%bf%e3%81%84/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 01:00:00 +0000</pubDate>
				<category><![CDATA[【中級編】MQLプログラムの読み方・書き方]]></category>
		<category><![CDATA[GetLastError]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[デバッグ]]></category>
		<category><![CDATA[EA開発]]></category>
		<category><![CDATA[Print関数]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=13055</guid>

					<description><![CDATA[<p>MQL4でEA（自動売買）やインジケーターを開発するとき、「思った通りに動かない」「どこでエラーが出ているかわからない」という場面は必ず訪れます。そんなときに頼りになるのがデバッグ用の関数たちです。 この記事では、MQL [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/13055/%e3%80%90mql4%e3%80%91%e3%83%87%e3%83%90%e3%83%83%e3%82%b0%e3%81%ab%e5%bf%85%e9%a0%88%ef%bc%81print%e3%83%bbalert%e3%83%bbcomment%e3%83%bbgetlasterror%e3%83%bbresetlasterror%e3%81%ae%e4%bd%bf%e3%81%84/">【MQL4】デバッグに必須！Print・Alert・Comment・GetLastError・ResetLastErrorの使い方を徹底解説</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<p>MQL4でEA（自動売買）やインジケーターを開発するとき、「思った通りに動かない」「どこでエラーが出ているかわからない」という場面は必ず訪れます。そんなときに頼りになるのが<strong>デバッグ用の関数</strong>たちです。</p>
<p>この記事では、MQL4開発で必須となる以下の5つ（＋α）の関数について、基本的な使い方から実践的な注意点まで徹底的に解説します。</p>
<ul>
<li><strong>Print()</strong> — ログへの出力</li>
<li><strong>Comment()</strong> — チャート上への表示</li>
<li><strong>Alert()</strong> — ポップアップ通知</li>
<li><strong>GetLastError()</strong> — エラーコードの取得</li>
<li><strong>ResetLastError()</strong> — エラーコードのリセット</li>
</ul>
<h2><span id="toc1">Print関数 — エキスパートログへの出力</span></h2>
<h3><span id="toc2">基本的な使い方</span></h3>
<p><strong>Print関数</strong>は、MetaTraderの「エキスパート」タブ（ログ）にメッセージを出力する、最も基本的なデバッグ関数です。開発中に変数の値を確認したり、処理の流れを追跡したりするのに欠かせません。</p>
<pre><code class="language-mql4">void OnTick()
{
    double currentPrice = Ask;
    int spread = MarketInfo(Symbol(), MODE_SPREAD);

    Print("現在のAsk価格: ", currentPrice);
    Print("スプレッド: ", spread, " ポイント");
    Print("通貨ペア: ", Symbol(), " 時間足: ", Period());
}
</code></pre>
<p>Print関数はカンマ区切りで複数の値を渡すことができ、<strong>文字列・整数・小数点数</strong>などさまざまなデータ型を自動的に文字列に変換して出力してくれます。</p>
<h3><span id="toc3">データ型ごとの表示仕様</span></h3>
<p>Print関数で各データ型を出力するときの仕様を覚えておきましょう。</p>
<pre><code class="language-mql4">void OnInit()
{
    // 整数型：そのまま数値で表示
    int intValue = 12345;
    Print("int型: ", intValue);           // → int型: 12345

    // double型：小数点以下の桁数は自動調整
    double dblValue = 1.23456789;
    Print("double型: ", dblValue);        // → double型: 1.23456789

    // bool型：trueまたはfalseで表示
    bool boolValue = true;
    Print("bool型: ", boolValue);         // → bool型: true

    // datetime型：日時形式で表示
    datetime dtValue = TimeCurrent();
    Print("datetime型: ", dtValue);       // → datetime型: 2024.01.15 12:30:00
}
</code></pre>
<h3><span id="toc4">出力先について</span></h3>
<p>Print関数の出力先は2か所あります。</p>
<ul>
<li><strong>エキスパートタブ</strong>：MetaTrader画面下部の「エキスパート」タブにリアルタイム表示</li>
<li><strong>ログファイル</strong>：MQL4/Logs フォルダ内にテキストファイルとしても記録される</li>
</ul>
<p>ログファイルに残るため、後から問題を調査するときにも役立ちます。ただし、<strong>OnTick内で大量にPrintを呼ぶとパフォーマンスに影響する</strong>場合があるので、本番稼働時には不要なPrintは削除またはコメントアウトしましょう。</p>
<h2><span id="toc5">Comment関数 — チャート画面への表示</span></h2>
<h3><span id="toc6">基本的な使い方</span></h3>
<p><strong>Comment関数</strong>は、チャートの<strong>左上</strong>にテキストを表示する関数です。リアルタイムで変数の値を視覚的に確認したいときに便利です。</p>
<pre><code class="language-mql4">void OnTick()
{
    double bid = Bid;
    double ask = Ask;
    int spread = (int)((ask - bid) / Point);

    Comment("Bid: ", bid, "\n",
            "Ask: ", ask, "\n",
            "Spread: ", spread, " points\n",
            "Time: ", TimeToStr(TimeCurrent(), TIME_SECONDS));
}
</code></pre>
<p>改行するには<strong>「\n」</strong>を使います。これにより、複数行にわたる情報をきれいに表示できます。</p>
<h3><span id="toc7">Comment関数の重要な注意点</span></h3>
<p>Comment関数には大きな特徴（欠点）があります。<strong>最後に呼び出したComment関数の内容で上書きされる</strong>という点です。</p>
<pre><code class="language-mql4">void OnTick()
{
    Comment("1行目のメッセージ");
    Comment("2行目のメッセージ");  // ← これだけが表示される！
}
</code></pre>
<p>上記の場合、チャートには「2行目のメッセージ」しか表示されません。複数の情報を表示したい場合は、<strong>1回のComment呼び出しにすべての情報をまとめる</strong>必要があります。</p>
<p>また、Comment関数の表示をクリア（消去）したい場合は、空文字を渡します。</p>
<pre><code class="language-mql4">Comment("");  // チャート左上の表示をクリア
</code></pre>
<h2><span id="toc8">Alert関数 — ポップアップ通知</span></h2>
<h3><span id="toc9">基本的な使い方</span></h3>
<p><strong>Alert関数</strong>は、ポップアップダイアログを表示して、音とともにユーザーに通知する関数です。重要なイベント（エントリーシグナル発生、エラー検知など）の通知に使います。</p>
<pre><code class="language-mql4">void OnTick()
{
    static datetime lastAlertTime = 0;
    datetime currentTime = TimeCurrent();

    // RSIが30以下になったらアラート（同じ足で1回だけ）
    double rsi = iRSI(Symbol(), 0, 14, PRICE_CLOSE, 0);

    if(rsi < 30.0 &#038;&#038; lastAlertTime != iTime(Symbol(), 0, 0))
    {
        Alert(Symbol(), " RSIが30以下です！ RSI=", NormalizeDouble(rsi, 2));
        lastAlertTime = iTime(Symbol(), 0, 0);
    }
}
</code></pre>
<h3><span id="toc10">Alert関数の注意点</span></h3>
<p>Alert関数には以下の注意点があります。</p>
<ul>
<li><strong>バックテストでは動作しない</strong>：ストラテジーテスターでのバックテスト時にはAlertは表示されません。バックテスト中のデバッグにはPrint関数を使いましょう。</li>
<li><strong>日本語の一部が文字化けする場合がある</strong>：環境によっては日本語表示が正しくされないことがあります。重要な情報は英数字で出力するのが安全です。</li>
<li><strong>連続呼び出しに注意</strong>：OnTick内で条件なしにAlertを呼ぶと、ティックごとにポップアップが出て操作不能になります。必ず条件制御を入れましょう。</li>
</ul>
<h2><span id="toc11">GetLastError関数 — エラーコードの取得</span></h2>
<h3><span id="toc12">基本的な使い方</span></h3>
<p><strong>GetLastError関数</strong>は、直前の操作で発生したエラーのコード（番号）を取得する関数です。注文送信やファイル操作などの後にエラーチェックを行う際に使います。</p>
<pre><code class="language-mql4">void OnTick()
{
    int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "Test", 0, 0, clrBlue);

    if(ticket < 0)
    {
        int errorCode = GetLastError();
        Print("注文エラー！ エラーコード: ", errorCode);
    }
    else
    {
        Print("注文成功！ チケット番号: ", ticket);
    }
}
</code></pre>
<h3><span id="toc13">よく見るエラーコード一覧</span></h3>
<p>以下は、MQL4開発でよく遭遇するエラーコードの一覧です。</p>
<table>
<thead>
<tr>
<th>エラーコード</th>
<th>定数名</th>
<th>意味</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>ERR_NO_ERROR</td>
<td>エラーなし</td>
</tr>
<tr>
<td>1</td>
<td>ERR_NO_RESULT</td>
<td>エラーはないが結果が不明</td>
</tr>
<tr>
<td>2</td>
<td>ERR_COMMON_ERROR</td>
<td>一般的なエラー</td>
</tr>
<tr>
<td>6</td>
<td>ERR_NO_CONNECTION</td>
<td>サーバーとの接続がない</td>
</tr>
<tr>
<td>130</td>
<td>ERR_INVALID_STOPS</td>
<td>ストップが無効（SL/TPが近すぎる等）</td>
</tr>
<tr>
<td>131</td>
<td>ERR_INVALID_TRADE_VOLUME</td>
<td>取引量が無効</td>
</tr>
<tr>
<td>134</td>
<td>ERR_NOT_ENOUGH_MONEY</td>
<td>資金不足</td>
</tr>
<tr>
<td>138</td>
<td>ERR_REQUOTE</td>
<td>リクオート</td>
</tr>
<tr>
<td>146</td>
<td>ERR_TRADE_CONTEXT_BUSY</td>
<td>トレードコンテキストがビジー</td>
</tr>
<tr>
<td>4109</td>
<td>ERR_TRADE_NOT_ALLOWED</td>
<td>自動売買が許可されていない</td>
</tr>
</tbody>
</table>
<h3><span id="toc14">【超重要】GetLastErrorは2度呼ぶとリセットされる！</span></h3>
<p>GetLastError関数には<strong>非常に重要な仕様</strong>があります。<strong>一度呼び出すと、内部のエラーコードが0にリセットされてしまう</strong>のです。</p>
<pre><code class="language-mql4">// ★ ダメな例
int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "", 0, 0, clrBlue);
if(ticket < 0)
{
    Print("エラーコード: ", GetLastError());   // ← 1回目：正しいエラーコードが取得できる
    Print("エラーコード: ", GetLastError());   // ← 2回目：0が返る！（リセット済み）
}
</code></pre>
<pre><code class="language-mql4">// ★ 正しい例：変数で受けてから使う
int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "", 0, 0, clrBlue);
if(ticket < 0)
{
    int err = GetLastError();  // まず変数に格納！
    Print("エラーコード: ", err);
    Alert("注文失敗 エラー: ", err);  // 何度でも使える
}
</code></pre>
<p>これはMQL4開発でよくあるミスです。<strong>GetLastError()は必ず一度だけ呼び出して変数に保存</strong>してから使いましょう。</p>
<h2><span id="toc15">ResetLastError関数 — エラーコードのリセット</span></h2>
<p><strong>ResetLastError関数</strong>は、定義済み変数<strong>_LastError</strong>に格納されているエラーコードを<strong>0（エラーなし）にリセット</strong>するための関数です。</p>
<pre><code class="language-mql4">void OnTick()
{
    // エラーコードを事前にリセット
    ResetLastError();

    int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "Test", 0, 0, clrBlue);

    if(ticket < 0)
    {
        int err = GetLastError();
        Print("注文エラー: ", err);
    }
}
</code></pre>
<h3><span id="toc16">なぜリセットが必要なのか？</span></h3>
<p>GetLastError()は「最後に発生したエラー」を返します。つまり、以前の処理で発生したエラーコードが残っている可能性があるのです。特定の処理のエラーだけを正確に検知したい場合は、<strong>処理の直前にResetLastError()を呼ぶのが定石</strong>です。</p>
<pre><code class="language-mql4">// 定石パターン：リセット → 処理 → エラーチェック
ResetLastError();           // ① リセット
bool result = OrderClose(ticket, lots, price, 3, clrRed);  // ② 処理実行
int err = GetLastError();   // ③ エラー取得（変数に格納）
if(err != 0)
{
    Print("決済エラー: ", err);
}
</code></pre>
<h2><span id="toc17">ErrorDescription関数 — エラーコードを文章に変換</span></h2>
<p>エラーコードの番号だけでは、何が起きたのかすぐにはわかりません。そこで便利なのが<strong>ErrorDescription関数</strong>です。この関数を使うと、エラーコードを人間が読める英語の文章に変換できます。</p>
<p>ただし、この関数はMQL4に標準で組み込まれているわけではなく、<strong>stdlib.mqh</strong>というライブラリファイルをインクルードする必要があります。</p>
<pre><code class="language-mql4">#include &lt;stdlib.mqh&gt;  // ErrorDescription関数を使うために必要

void OnTick()
{
    ResetLastError();

    int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "Test", 0, 0, clrBlue);

    if(ticket < 0)
    {
        int err = GetLastError();
        Print("エラーコード: ", err, " 内容: ", ErrorDescription(err));
        // 例：エラーコード: 134 内容: not enough money
    }
}
</code></pre>
<p>エラーの原因がすぐにわかるため、デバッグの効率が格段に上がります。<strong>ぜひstdlib.mqhのインクルードを習慣にしましょう。</strong></p>
<h2><span id="toc18">実践例 — 5つの関数を組み合わせたデバッグ付きEA</span></h2>
<p>ここまで学んだ関数を組み合わせた、実践的なサンプルコードをご紹介します。</p>
<pre><code class="language-mql4">#include &lt;stdlib.mqh&gt;

input double LotSize = 0.1;
input int MagicNumber = 12345;

void OnTick()
{
    // 現在の状態をチャートに表示
    Comment("=== デバッグ情報 ===\n",
            "通貨ペア: ", Symbol(), "\n",
            "Bid: ", Bid, "  Ask: ", Ask, "\n",
            "スプレッド: ", MarketInfo(Symbol(), MODE_SPREAD), "\n",
            "保有ポジション: ", CountOrders(), "\n",
            "口座残高: ", AccountBalance(), "\n",
            "更新時刻: ", TimeToStr(TimeCurrent(), TIME_SECONDS));

    // 簡単な売買ロジック（例：移動平均のクロス）
    double maFast = iMA(Symbol(), 0, 10, 0, MODE_SMA, PRICE_CLOSE, 0);
    double maFastPrev = iMA(Symbol(), 0, 10, 0, MODE_SMA, PRICE_CLOSE, 1);
    double maSlow = iMA(Symbol(), 0, 25, 0, MODE_SMA, PRICE_CLOSE, 0);
    double maSlowPrev = iMA(Symbol(), 0, 25, 0, MODE_SMA, PRICE_CLOSE, 1);

    // ゴールデンクロスで買い
    if(maFastPrev <= maSlowPrev &#038;&#038; maFast > maSlow && CountOrders() == 0)
    {
        Print("ゴールデンクロス検出！ 買い注文を送信します。");
        Print("MA(10)=", maFast, " MA(25)=", maSlow);

        ResetLastError();  // エラーをリセット
        int ticket = OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3, 0, 0,
                               "MA Cross Buy", MagicNumber, 0, clrBlue);

        int err = GetLastError();  // 変数に格納（1回だけ呼ぶ！）

        if(ticket >= 0)
        {
            Print("注文成功！ チケット: ", ticket);
        }
        else
        {
            Print("注文失敗！ エラーコード: ", err,
                  " 内容: ", ErrorDescription(err));
            Alert("注文失敗！ Error: ", err, " ", ErrorDescription(err));
        }
    }
}

// 保有ポジション数をカウントする関数
int CountOrders()
{
    int count = 0;
    for(int i = OrdersTotal() - 1; i >= 0; i--)
    {
        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
            if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
                count++;
        }
    }
    return count;
}
</code></pre>
<p>このサンプルでは、以下のようにデバッグ関数を使い分けています。</p>
<ul>
<li><strong>Comment</strong>：リアルタイムの状態監視（チャート上に常時表示）</li>
<li><strong>Print</strong>：処理の流れやシグナル検出の記録（ログに残る）</li>
<li><strong>Alert</strong>：注文失敗などの重要イベントの即時通知</li>
<li><strong>ResetLastError → GetLastError</strong>：正確なエラーコード取得の定石パターン</li>
<li><strong>ErrorDescription</strong>：エラー内容の可読化</li>
</ul>
<h2><span id="toc19">まとめ — デバッグ関数の使い分け</span></h2>
<p>最後に、各関数の特徴と使い分けを表で整理します。</p>
<table>
<thead>
<tr>
<th>関数名</th>
<th>出力先</th>
<th>主な用途</th>
<th>注意点</th>
</tr>
</thead>
<tbody>
<tr>
<td>Print()</td>
<td>エキスパートログ</td>
<td>変数の値確認、処理フロー追跡</td>
<td>大量出力でパフォーマンス低下</td>
</tr>
<tr>
<td>Comment()</td>
<td>チャート左上</td>
<td>リアルタイムの状態監視</td>
<td>最後の呼び出しで上書きされる</td>
</tr>
<tr>
<td>Alert()</td>
<td>ポップアップ</td>
<td>重要イベントの即時通知</td>
<td>バックテスト非対応・日本語文字化けの可能性</td>
</tr>
<tr>
<td>GetLastError()</td>
<td>—</td>
<td>エラーコード取得</td>
<td><strong>2度呼ぶとリセットされる</strong>（変数で受ける）</td>
</tr>
<tr>
<td>ResetLastError()</td>
<td>—</td>
<td>エラーコードの初期化</td>
<td>処理前にリセットするのが定石</td>
</tr>
</tbody>
</table>
<p>デバッグ関数を上手に使いこなすことは、MQL4開発の効率を大きく左右します。特に<strong>「GetLastErrorは変数で一度受けてから使う」</strong>と<strong>「処理前にResetLastErrorでリセットする」</strong>の2つは、ぜひ今日から実践してください。</p>
<p>デバッグの精度が上がれば、EA開発のスピードも自然と上がっていきますよ！</p>
<p>投稿 <a href="https://mql-programing.com/archives/13055/%e3%80%90mql4%e3%80%91%e3%83%87%e3%83%90%e3%83%83%e3%82%b0%e3%81%ab%e5%bf%85%e9%a0%88%ef%bc%81print%e3%83%bbalert%e3%83%bbcomment%e3%83%bbgetlasterror%e3%83%bbresetlasterror%e3%81%ae%e4%bd%bf%e3%81%84/">【MQL4】デバッグに必須！Print・Alert・Comment・GetLastError・ResetLastErrorの使い方を徹底解説</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[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[ERR_]]></category>
		<category><![CDATA[_LastError]]></category>
		<category><![CDATA[GetLastError]]></category>
		<category><![CDATA[ErrorDescription]]></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 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/2839/error_code_constant/">【MQL4定数】エラーコード定数​（ERR_○○）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
