<?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>OrderMagicNumber アーカイブ - 自動売買を作ろう！</title>
	<atom:link href="https://mql-programing.com/archives/tag/ordermagicnumber/feed/" rel="self" type="application/rss+xml" />
	<link>https://mql-programing.com/archives/tag/ordermagicnumber/</link>
	<description>MQLプログラミング学習サイト</description>
	<lastBuildDate>Tue, 31 Mar 2026 12:22:37 +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>OrderMagicNumber アーカイブ - 自動売買を作ろう！</title>
	<link>https://mql-programing.com/archives/tag/ordermagicnumber/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MQL4関数】OrderMagicNumber関数の使い方！マジックナンバーとは？ポジション管理のやり方</title>
		<link>https://mql-programing.com/archives/802/ordermagicnumber/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Fri, 30 Apr 2021 03:16:06 +0000</pubDate>
				<category><![CDATA[【中級編】MQLプログラムの読み方・書き方]]></category>
		<category><![CDATA[注文関係]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[注文]]></category>
		<category><![CDATA[OrderMagicNumber]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=802</guid>

					<description><![CDATA[<p>マジックナンバーとは 裁量のときは、「自分がエントリーしたポジションは、自分で決済」していたと思います。 自動売買を使うからには、「自動売買がエントリーしたポジションは、自動売買で決済」して欲しいですよね！ そこで、マジ [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/802/ordermagicnumber/">【MQL4関数】OrderMagicNumber関数の使い方！マジックナンバーとは？ポジション管理のやり方</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-11 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://mql-programing.com/main29/wp-content/uploads/2021/10/アイコン.png" alt="朝日奈りさ" class="speech-icon-image"/></figure><div class="speech-name">朝日奈りさ</div></div><div class="speech-balloon">
<p>マジックナンバーって何？裁量のときは聞いたことがないけど、自動売買では重要なの？</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc1">マジックナンバーとは</span></h2>



<p>裁量のときは、<strong>「自分がエントリーしたポジションは、自分で決済」</strong>していたと思います。</p>



<p>自動売買を使うからには、<strong>「自動売買がエントリーしたポジションは、自動売買で決済」</strong>して欲しいですよね！</p>



<p>そこで、マジックナンバーを使ってみましょう！</p>



<p>　</p>



<p><strong><span class="marker-under-red">マジックナンバーとは、自動売買がポジションを管理するための番号です。</span></strong></p>



<p>具体的には、「１０」とか「２０」とか、好きな数字を設定することができます。</p>



<p>設定することで、自動売買がエントリーしたポジションに、マジックナンバーが付きます。</p>



<p><strong>マジックナンバーが付いていると、その自動売買がエントリーしたポジションなのかを、自動売買が判別することができるようになります。</strong></p>



<p><strong><span class="marker-under-red">判別できる</span><span class="marker-under-red">ようになる</span><span class="marker-under-red">と、別の自動売買が決済してしまうことや、裁量のポジションを決済してしまうことを防ぐことができるようになるのです。</span></strong></p>



<p>　</p>



<p>例えば、自動売買①と自動売買②を同時に動かしている場合を考えてみましょう。</p>



<ul class="wp-block-list"><li><strong>マジックナンバーが付いていない場合</strong></li></ul>



<pre class="wp-block-preformatted"><span class="marker-under">自動売買は、どちらの自動売買でエントリーしたポジションなのか判別できません。
</span>そのため、自動売買①でエントリーしたのに、自動売買②が決済してしまうことが起こる可能性があります。</pre>



<ul class="wp-block-list"><li><strong>マジックナンバーが付いている場合</strong></li></ul>



<pre class="wp-block-preformatted"><span class="marker-under">自動売買は、どちらの自動売買でエントリーしたポジションなのか判別できます。
</span>そのため、自動売買①でエントリーしたのに、自動売買②が決済してしまうことは起こりません。</pre>



<p>　</p>



<p>このように、マジックナンバーを設定しておくことで、別の自動売買が決済してしまうことを防ぐことができます。</p>



<p>　</p>



<p>ちなみにマジックナンバーは、エントリーするときに設定します。</p>



<p>OrderSend関数の９番目の引数（⑨magic）でマジックナンバーを設定できます。</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/ordersend/" title="【MQL4関数】OrderSend関数の使い方！エントリー注文の出し方とサンプルプログラム" 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/04/OrderSend.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関数】OrderSend関数の使い方！エントリー注文の出し方とサンプルプログラム</div><div class="blogcard-snippet external-blogcard-snippet">目次 OrderSend関数とはOrderSend関数の書き方基本的な書き方OrderSend関数の返り値（戻り値）OrderSend関数の引数①symbol②cmd③volume④price⑤slippage⑥stop</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/550/ordersend/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc2">マジックナンバーを設定する方法</span></h3>



<p>「マジックナンバーを設定したいけどどうしたらいいの？」という方が多いと思います。</p>



<p><strong>マジックナンバーは、自動売買プログラムに直接書いてしまうと良いでしょう。</strong></p>



<p>例えば、以下のように書きます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//大域変数にマジックナンバーの数値を書く
int magicNumber = 10;

//エントリーするときに、マジックナンバーを設定する
//OrderSend関数の９番目の引数に設定
int ticketNum = OrderSend( NULL, OP_BUY, 0.1, Ask, 20, 105.000, 110.000, &quot;自動売買の注文&quot;, magicNumber, 0, clrRed);
</code></pre></div>



<p>　</p>



<p>プログラムを省略していますが、上記のようにマジックナンバーを設定します。</p>



<p><strong><span class="marker-under-red">大域変数にマジックナンバー用の変数を準備し、好きな数値を代入します。</span></strong></p>



<p><strong>そして、エントリーするときにマジックナンバーを設定します。</strong></p>



<p>このような流れで、マジックナンバーを設定すると良いでしょう。</p>



<p>　</p>



<p><strong>ちなみに裁量でエントリーしたポジションには、マジックナンバーを付けることができませんので、ご注意ください。</strong></p>



<p>　</p>



<p>ここまでは、マジックナンバーを設定する方法を解説しました。</p>



<p>ここからはマジックナンバーを使う方法を見ていきましょう。</p>



<p>　</p>



<h2 class="wp-block-heading"><span id="toc3">マジックナンバーを使う方法（OrderMagicNumber関数）</span></h2>



<p>マジックナンバーを設定するだけではなく、使うことで力を発揮します。</p>



<p>マジックナンバーを使うには、<strong>OrderMagicNumber関数</strong>を使います。</p>



<p>　</p>



<p><strong><span class="marker-under-red">OrderMagicNumber関数は、ポジションに付いているマジックナンバーを取得する関数です。</span></strong></p>



<p>マジックナンバーを取得することで、自動売買に設定しているマジックナンバーと、ポジションのマジックナンバーが同じかどうか、判別できます。</p>



<p>例えば、ポジションのマジックナンバーが「１０」で、自動売買のマジックナンバーが「１０」の時、数値が同じなので、自動売買が決済することができます。</p>



<p><strong>マジックナンバーが異なっている場合は、自動売買は決済することができません。</strong></p>



<p>このように、マジックナンバーとOrderMagicNumber関数を使うことで、想定外のポジションを決済してしまうことを防ぐことができます。</p>



<p>　</p>



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



<p>OrderMagicNumber関数の使い方は、基本的な関数と同じです。</p>



<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/function/" title="【MQLプログラミング基礎】関数は難しい？関数の使い方を理解しよう！プログラム例あり" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://mql-programing.com/main29/wp-content/uploads/cocoon-resources/blog-card-cache/624de21c236a113367001dd95952af29.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="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/183/function/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<p>　</p>



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



<p>OrderMagicNumber関数の基本的な書き方は以下の通りです。</p>



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



<p>　</p>



<p>返り値は int型で、引数はありません。</p>



<p>ポジションのマジックナンバーは、返り値として取得することができます。</p>



<p>具体的には「１０」や「２０」など、エントリーするときに設定した数値が返ってきます。</p>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc6">事前にポジションを選択しておく</span></h3>



<p>OrderMagicNumber関数は、引数が無いため、どのポジションのマジックナンバーを取得すれば良いのか、判断することができません。</p>



<p><strong><span class="marker-under-red">そのため、事前にポジションを選択しておく必要があります。</span></strong></p>



<p>ポジションを選択するには、<strong><a href="https://mql-programing.com/orderselect/">OrderSelect関数</a></strong>を使います。</p>



<p>　</p>



<p>必ず <strong>OrderSelect関数 → OrderMagicNumber関数</strong> の順にプログラムするので、以下のようなプログラムになります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//大域変数にマジックナンバーの数値を書く
int magicNumber = 10;

//保有ポジションを一つ選択
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
   //選択したポジションのマジックナンバーが
   //自動売買のマジックナンバーと同じかどうかチェック
   if(OrderMagicNumber() == magicNumber)
   {
      //ここにポジションを決済するプログラムを書く
   }
}</code></pre></div>



<p>　</p>



<p>OrderMagicNumber関数を実行する前に、OrderSelect関数でポジションを選択しておきましょう。</p>



<p>もう少し詳しく解説します。</p>



<p>上記のプログラムの 10行目を見てください。</p>



<ul class="wp-block-list"><li>「OrderMagicNumber( )」はポジションのマジックナンバーです</li><li>「magicNumber」は自動売買のマジックナンバーです</li></ul>



<p>ふたつとも必ず一緒じゃないの？ と思うかもしれませんが、別物です。</p>



<p>自動売買を複数起動している場合、両者は異なります。</p>



<p><strong>というより、異なるようにマジックナンバーを設定してください。</strong></p>



<p><strong><span class="marker-under-red">異なるマジックナンバーを設定することで、別のポジションを決済してしまうことを防いでいます。</span></strong></p>



<p>　</p>



<h2 class="wp-block-heading"><span id="toc7">OrderMagicNumber関数の具体的な使い方</span></h2>



<p>マジックナンバーを設定する方法と、マジックナンバーを使う方法を解説しました。</p>



<p>ここからは、エントリーしてからマジックナンバーを使うところまで、具体的にプログラムを見てみましょう。</p>



<p>早速ですが、プログラムは以下の通りです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//大域変数にマジックナンバーの数値を書く
int magicNumber = 10;

void OnTick()
{
//---

   //エントリーするときに、マジックナンバーを設定する
   //OrderSend関数の９番目の引数に設定
   int ticketNum = OrderSend(NULL, OP_BUY, 0.1, Ask, 20, 105.000, 110.000, &quot;自動売買の注文&quot;, magicNumber, 0, clrRed);

   //保有ポジションを一つずつチェックしていく
   for(int i = OrdersTotal() - 1; i &gt;= 0; i--)
   {
      //保有ポジションを一つ選択
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         //選択したポジションが、実行されている通貨ペアと同じかどうかチェック
         if(OrderSymbol() == Symbol())
         {
            //選択したポジションが、この自動売買のマジックナンバーと同じかチェック
            if(OrderMagicNumber() == magicNumber)
            {
               //ここにポジションを決済するプログラムを書く
               //わかりやすいようにprintしておきます。
               Print(&quot;OrderSymbol : &quot; + OrderSymbol());
               Print(&quot;Symbol : &quot; + Symbol());
               Print(&quot;OrderMagicNumber : &quot; + IntegerToString(OrderMagicNumber()));
            }
         }
      }
   }

}</code></pre></div>



<p>　</p>



<p>注文関係の関数をたくさん使用しています。</p>



<p>簡単に解説すると、以下の通りです。</p>



<ul class="wp-block-list"><li>２行目で、マジックナンバーを決めています。</li><li>１０行目で、マジックナンバーが付いたポジションをエントリーしています。</li><li>２６行目で、ポジションのマジックナンバーをチェックしています。</li></ul>



<p>このように書くことで、全てのポジションをチェックし、その中から自動売買のマジックナンバーと同じポジションだけを、決済することができます。</p>



<p><strong>この書き方は、自動売買を作るときによく使う書き方なので、どこかにコピーしておくと良いでしょう。</strong></p>



<p>　</p>



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



<p>ここからは、OrderMagicNumber関数を使った実用的なプログラム例をいくつかご紹介します。</p>



<p>実際のEA開発でよく使う場面を想定していますので、ぜひ参考にしてください。</p>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc9">応用例１：マジックナンバーで自分のポジション数をカウントする</span></h3>



<p>EAを作るとき、「今、自分のEAが何個ポジションを持っているか？」を知りたい場面は非常に多いです。</p>



<p>例えば、「ポジションが0個のときだけエントリーする」という条件を作るには、まずポジション数を数える必要があります。</p>



<p>以下のプログラムでは、マジックナンバーと通貨ペアを使って、自分のEAのポジション数をカウントしています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>// マジックナンバーの定義
int magicNumber = 12345;

//+------------------------------------------------------------------+
//| 自分のEAが保有しているポジション数をカウントする関数              |
//+------------------------------------------------------------------+
int CountMyPositions()
{
   int count = 0; // カウント用の変数を初期化

   // 全ポジションをループでチェック
   for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
      // ポジションを選択（選択に失敗したらスキップ）
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
         continue;

      // 通貨ペアが一致するかチェック
      if(OrderSymbol() != Symbol())
         continue;

      // マジックナンバーが一致するかチェック
      if(OrderMagicNumber() != magicNumber)
         continue;

      // すべての条件を満たしたらカウントを増やす
      count++;
   }

   return count; // ポジション数を返す
}

//+------------------------------------------------------------------+
//| OnTick関数                                                        |
//+------------------------------------------------------------------+
void OnTick()
{
   // 自分のEAのポジション数を取得
   int myPositions = CountMyPositions();

   // ポジションが0個のときだけエントリーする
   if(myPositions == 0)
   {
      // ここにエントリー条件を書く
      // 例：買いエントリー
      int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 20, 0, 0,
                             "MyEA", magicNumber, 0, clrBlue);

      if(ticket > 0)
         Print("エントリー成功！チケット番号: ", ticket);
      else
         Print("エントリー失敗。エラーコード: ", GetLastError());
   }
   else
   {
      Print("既にポジションを ", myPositions, " 個保有中です。");
   }
}</code></pre></div>



<p>　</p>



<p>ポイントは、<strong>CountMyPositions関数</strong>を作っている点です。</p>



<p>この関数は、通貨ペアとマジックナンバーの両方が一致するポジションだけをカウントします。</p>



<p>こうすることで、「ポジションが無いときだけエントリー」という制御が簡単にできるようになります。</p>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc10">応用例２：マジックナンバーを使って自分のポジションだけを全決済する</span></h3>



<p>「特定のEAが持っているポジションだけを全部決済したい」という場面もよくあります。</p>



<p>例えば、損失が一定額を超えたときに、そのEAのポジションだけをすべて閉じるといった使い方です。</p>



<p>以下のプログラムは、マジックナンバーが一致するポジションだけを全決済します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>// マジックナンバーの定義
int magicNumber = 12345;

//+------------------------------------------------------------------+
//| 自分のEAのポジションを全決済する関数                              |
//+------------------------------------------------------------------+
void CloseAllMyPositions()
{
   // 後ろからループすることで、決済後のインデックスずれを防ぐ
   for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
      // ポジションを選択
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
         continue;

      // 通貨ペアが一致するかチェック
      if(OrderSymbol() != Symbol())
         continue;

      // マジックナンバーが一致するかチェック
      if(OrderMagicNumber() != magicNumber)
         continue;

      // ポジションの種類に応じて決済する
      bool result = false;

      if(OrderType() == OP_BUY)
      {
         // 買いポジションの決済（決済価格はBid）
         result = OrderClose(OrderTicket(), OrderLots(), Bid, 20, clrRed);
      }
      else if(OrderType() == OP_SELL)
      {
         // 売りポジションの決済（決済価格はAsk）
         result = OrderClose(OrderTicket(), OrderLots(), Ask, 20, clrBlue);
      }

      // 決済結果をログに出力
      if(result)
         Print("決済成功！チケット番号: ", OrderTicket());
      else
         Print("決済失敗。チケット番号: ", OrderTicket(),
               " エラーコード: ", GetLastError());
   }
}

//+------------------------------------------------------------------+
//| OnTick関数                                                        |
//+------------------------------------------------------------------+
void OnTick()
{
   // 例：合計損益が -10000円を下回ったら全決済する
   double totalProfit = 0;

   for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
         continue;
      if(OrderSymbol() != Symbol())
         continue;
      if(OrderMagicNumber() != magicNumber)
         continue;

      // そのポジションの損益を合計に加算
      totalProfit += OrderProfit() + OrderSwap() + OrderCommission();
   }

   // 合計損益が -10000 を下回ったら全決済
   if(totalProfit < -10000)
   {
      Print("合計損益が ", totalProfit, " 円のため、全決済を実行します。");
      CloseAllMyPositions();
   }
}</code></pre></div>



<p>　</p>



<p>このプログラムのポイントは２つあります。</p>



<ul class="wp-block-list"><li><strong>ループを後ろから回している</strong>：ポジションを決済するとインデックスがずれるため、後ろから処理することでエラーを防ぎます。</li><li><strong>買いと売りで決済価格が異なる</strong>：買いポジションはBidで、売りポジションはAskで決済します。</li></ul>



<p>マジックナンバーでフィルタリングしているので、他のEAや裁量のポジションに影響を与えることはありません。</p>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc11">応用例３：外部パラメータでマジックナンバーを変更できるようにする</span></h3>



<p>同じEAを複数のチャートに適用する場合、それぞれ異なるマジックナンバーを設定する必要があります。</p>



<p>そのようなとき、外部パラメータ（extern や input）を使うと、チャートに適用するときにマジックナンバーを自由に変更できるようになります。</p>



<p>以下のプログラムは、外部パラメータでマジックナンバーを設定する例です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>// 外部パラメータとしてマジックナンバーを定義
// EAをチャートに適用するときに、数値を変更できる
input int MagicNumber = 12345;

//+------------------------------------------------------------------+
//| OnTick関数                                                        |
//+------------------------------------------------------------------+
void OnTick()
{
   // 保有ポジションをチェック
   for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
         continue;

      if(OrderSymbol() != Symbol())
         continue;

      // 外部パラメータのマジックナンバーと比較
      if(OrderMagicNumber() != MagicNumber)
         continue;

      // マジックナンバーが一致するポジションの情報を表示
      Print("チケット番号: ", OrderTicket(),
            " マジックナンバー: ", OrderMagicNumber(),
            " 損益: ", OrderProfit());
   }
}</code></pre></div>



<p>　</p>



<p><strong>input</strong> を使って宣言することで、EAをチャートに適用するときのパラメータ画面で数値を変更できます。</p>



<p>例えば、USDJPYのチャートではマジックナンバーを「12345」に、EURUSDのチャートでは「12346」に設定するといった使い方ができます。</p>



<p><strong><span class="marker-under-red">同じEAでもマジックナンバーが異なれば、お互いのポジションに干渉しないため、安全に運用できます。</span></strong></p>



<p>　</p>



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



<p>今回は、マジックナンバーとOrderMagicNumber関数について解説しました。</p>



<p>ポイントをまとめると以下の通りです。</p>



<ul class="wp-block-list"><li><strong>マジックナンバー</strong>は、自動売買がポジションを管理するための番号です。</li><li>マジックナンバーは、<strong>OrderSend関数の９番目の引数</strong>で設定します。</li><li><strong>OrderMagicNumber関数</strong>で、ポジションに付いているマジックナンバーを取得できます。</li><li>OrderMagicNumber関数を使う前に、<strong>OrderSelect関数</strong>でポジションを選択しておく必要があります。</li><li>複数のEAを同時に動かす場合は、<strong>異なるマジックナンバー</strong>を設定しましょう。</li><li>外部パラメータ（<strong>input</strong>）を使うと、マジックナンバーを柔軟に変更できます。</li></ul>



<p>　</p>



<p>マジックナンバーは、EA開発において必須の知識です。</p>



<p>正しく設定・活用することで、安全にポジションを管理できるようになりますので、ぜひ今回の内容を参考にしてみてください。</p>
<p>投稿 <a href="https://mql-programing.com/archives/802/ordermagicnumber/">【MQL4関数】OrderMagicNumber関数の使い方！マジックナンバーとは？ポジション管理のやり方</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
