<?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/%E6%B1%BA%E6%B8%88%E6%B3%A8%E6%96%87/feed/" rel="self" type="application/rss+xml" />
	<link>https://mql-programing.com/archives/tag/決済注文/</link>
	<description>MQLプログラミング学習サイト</description>
	<lastBuildDate>Tue, 31 Mar 2026 12:24:34 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mql-programing.com/main29/wp-content/uploads/2021/02/cropped-ブログアイコン-32x32.jpg</url>
	<title>決済注文 アーカイブ - 自動売買を作ろう！</title>
	<link>https://mql-programing.com/archives/tag/決済注文/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MQL4関数】OrderClose関数の使い方！決済注文の出し方とサンプルプログラム</title>
		<link>https://mql-programing.com/archives/831/orderclose/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Tue, 04 May 2021 04:25:10 +0000</pubDate>
				<category><![CDATA[【中級編】MQLプログラムの読み方・書き方]]></category>
		<category><![CDATA[注文関係]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[決済注文]]></category>
		<category><![CDATA[OrderClose]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=831</guid>

					<description><![CDATA[<p>OrderClose関数とは 条件に当てはまったときに、ポジションを自動的に決済（クローズ）して欲しいですよね！ そこで、OrderClose関数を使います。 　 OrderClose関数とは、ポジションを１つ選択し、決 [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/831/orderclose/">【MQL4関数】OrderClose関数の使い方！決済注文の出し方とサンプルプログラム</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-11 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://mql-programing.com/main29/wp-content/uploads/2021/10/アイコン.png" alt="朝日奈りさ" class="speech-icon-image"/></figure><div class="speech-name">朝日奈りさ</div></div><div class="speech-balloon">
<p class="wp-block-paragraph">自動売買にポジションを決済させるにはどうしたら良いの？</p>
</div></div>



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



<p class="wp-block-paragraph"><strong>条件に当てはまったときに、ポジションを自動的に決済（クローズ）して欲しいですよね！</strong></p>



<p class="wp-block-paragraph">そこで、OrderClose関数を使います。</p>



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



<p class="wp-block-paragraph"><strong><span class="marker-under-red">OrderClose関数とは、ポジションを１つ選択し、決済注文を出す関数です。</span></strong></p>



<p class="wp-block-paragraph">実行させることで、FX会社に決済注文を出してくれます。</p>



<p class="wp-block-paragraph">決済できるポジションの種類は、以下の通りです。</p>



<ul class="wp-block-list"><li><strong>保有ポジション</strong></li><li><strong>指値ポジション</strong></li><li><strong>逆指値ポジション</strong></li></ul>



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



<p class="wp-block-paragraph"><strong><span class="marker-under-red">つまり、注文を出したポジションであれば、どんなポジションでも決済できます。</span></strong></p>



<p class="wp-block-paragraph">OrderClose関数をプログラムに組み込んで、自動的にポジションを決済させてみましょう。</p>



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



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



<p class="wp-block-paragraph">OrderClose関数の使い方は、基本的な関数と同じです。</p>



<p class="wp-block-paragraph">関数をマスターしていない方はこちらの記事が参考になります。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-自動売買を作ろう！ wp-block-embed-自動売買を作ろう！"><div class="wp-block-embed__wrapper">

<a href="https://mql-programing.com/function/" title="【MQLプログラミング基礎】関数は難しい？関数の使い方を理解しよう！プログラム例あり" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://mql-programing.com/main29/wp-content/uploads/cocoon-resources/blog-card-cache/624de21c236a113367001dd95952af29.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【MQLプログラミング基礎】関数は難しい？関数の使い方を理解しよう！プログラム例あり</div><div class="blogcard-snippet external-blogcard-snippet">関数とは？ 「プログラムは、何度も同じことを書かないといけない」 と思っている方、ぜひ関数を使ってみてください。 関数とは、何度も繰り返すプログラムを、まとめた状態のものです。 事前に、まとまりを作っておくことで、同じプ</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com/archives/183/function/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



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



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



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



<p class="wp-block-paragraph">分かりやすいように、引数を省略しています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>bool orderClose = OrderClose( ①, ②, ③, ④, ⑤);</code></pre></div>



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



<p class="wp-block-paragraph">このように、返り値は bool型で、引数は５つあります。</p>



<p class="wp-block-paragraph">まずは返り値から見ていきましょう。</p>



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



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



<p class="wp-block-paragraph">OrderClose関数の返り値は bool型です。</p>



<p class="wp-block-paragraph"><strong>「<span class="bold-red">true</span>」または「<span class="bold-blue">false</span>」が返ってきます。</strong></p>



<p class="wp-block-paragraph">数値にすると「１」または「０」です。</p>



<p class="wp-block-paragraph">true 、false が返ってくる条件は以下の通りです。</p>



<ul class="wp-block-list"><li><strong><span class="bold-red">true</span> : 決済注文がFX会社に受理されたとき</strong></li><li><strong><span class="bold-blue">false</span> : 決済注文が失敗したとき</strong></li></ul>



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



<p class="wp-block-paragraph">もし falseが返ってきた場合、ポジションは決済されていないので、再度 OrderClose関数を実行する必要があります。</p>



<p class="wp-block-paragraph">ですが、99%以上は正常に受理されるので、そこまで気にする必要はありません。</p>



<p class="wp-block-paragraph">もし決済に失敗していた場合は、手動で決済しましょう。</p>



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



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



<p class="wp-block-paragraph">OrderClose関数の引数は５つあります。</p>



<p class="wp-block-paragraph">まずは、一覧でザッと見てみましょう。</p>



<figure class="wp-block-table alignwide"><table><tbody><tr><td><strong>番号</strong></td><td><strong>データ型</strong></td><td><strong>引数名</strong></td><td><strong>内容</strong></td></tr><tr><td>①</td><td>int</td><td>ticket</td><td>決済するポジションのチケット番号</td></tr><tr><td>②</td><td>double</td><td>lots</td><td>決済するロット数</td></tr><tr><td>③</td><td>double</td><td>price</td><td>希望する決済価格</td></tr><tr><td>④</td><td>int</td><td>slippage</td><td>スリッページの許容量（単位0.1pips）</td></tr><tr><td>⑤</td><td>color</td><td>arrow_color</td><td>チャート上の決済情報の色を設定</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">それぞれ詳しく見ていきながら、一緒に作っていきましょう。</p>



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



<h4 class="wp-block-heading"><span id="toc6">① ticket</span></h4>



<p class="wp-block-paragraph">ticket には、決済したいポジションのチケット番号を入力します。</p>



<p class="wp-block-paragraph">チケット番号を直接入力しても良いのですが、<strong><span class="marker-under-red"><a href="https://mql-programing.com/orderselect/" title="【MQL関数】保有ポジションの選択（OrderSelect関数）のやり方">OrderSelect関数</a>でポジションを選択している場合、OrderTicket関数を使うことができます。</span></strong></p>



<p class="wp-block-paragraph">OrderTicket関数は、選択しているポジションのチケット番号を返す関数です。</p>



<p class="wp-block-paragraph">チケット番号を覚えておく必要がなくなるため、簡単に書くことができます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>bool orderClose = OrderClose( OrderTicket(), ②, ③, ④, ⑤);</code></pre></div>



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



<h4 class="wp-block-heading"><span id="toc7">② lots</span></h4>



<p class="wp-block-paragraph">lots には、決済したいポジションのロット数を入力します。</p>



<p class="wp-block-paragraph">こちらも OrderSelect関数でポジションを選択している場合、OrderLots関数という便利な関数が使えるようになりますので、OrderLots関数を利用すると良いでしょう。</p>



<p class="wp-block-paragraph">OrderLots関数は、ポジションのロット数を返す関数です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>bool orderClose = OrderClose( OrderTicket(), OrderLots(), ③, ④, ⑤);</code></pre></div>



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



<h4 class="wp-block-heading"><span id="toc8">③ price</span></h4>



<p class="wp-block-paragraph">price には、決済する価格を入力します。</p>



<p class="wp-block-paragraph">こちらも同様に、OrderSelect関数でポジションを選択している場合、OrderClosePrice関数が使えますので、OrderClosePrice関数を使いましょう。</p>



<p class="wp-block-paragraph">OrderClosePrice関数は、現在の価格を返す関数です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>bool orderClose = OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), ④, ⑤);</code></pre></div>



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



<h4 class="wp-block-heading"><span id="toc9">④ slippage</span></h4>



<p class="wp-block-paragraph">slippage には、スリッページを入力します。</p>



<p class="wp-block-paragraph">単位は0.1pipisです。</p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">FXでは、希望する決済価格と、実際の決済価格がズレることがあります。</span></strong></p>



<p class="wp-block-paragraph">そのときに許容するズレ幅を入力してください。</p>



<p class="wp-block-paragraph">ここでは、「１０」を入力します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>bool orderClose = OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), 10, ⑤);</code></pre></div>



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



<h4 class="wp-block-heading"><span id="toc10">⑤ arrow_color</span></h4>



<p class="wp-block-paragraph">arrow_color には、決済したときにチャート上に表示される矢印の色を設定します。</p>



<p class="wp-block-paragraph">「矢印が表示されるのが邪魔」という方は、「clrNONE」と入力しましょう。</p>



<p class="wp-block-paragraph">clrNONE にすることで、矢印が透明になり、チャート上に見えなくなります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>bool orderClose = OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), 10, clrNONE);</code></pre></div>



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



<h2 class="wp-block-heading"><span id="toc11">OrderClose関数の具体的な使い方（サンプルあり）</span></h2>



<p class="wp-block-paragraph">ここまでは、OrderClose関数の基本的な書き方を解説しました。</p>



<p class="wp-block-paragraph">ここからは、もっと具体的に OrderClose関数の使い方を見ていきましょう。</p>



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



<p class="wp-block-paragraph"><strong><span class="marker-under-red">OrderClose関数は、事前にポジションを選択する必要があるため、OrderSelect関数と組み合わせて使われることが多いです。</span></strong></p>



<p class="wp-block-paragraph">例えば、以下のようなプログラムです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//保有ポジションを一つずつチェックしていく
for(int i = OrdersTotal() - 1; i &gt;= 0; i--)
{
   //保有ポジションを一つ選択
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
   {
      //選択したポジションが、実行されている通貨ペアと同じかどうかチェック
      if(OrderSymbol() == Symbol())
      {
         //選択したポジションが、この自動売買のマジックナンバーと同じかチェック
         if(OrderMagicNumber() == magicNumber)
         {
            //ポジションを決済
            bool orderClose = OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), 10, clrNONE);
         }
      }
   }
}</code></pre></div>



<p class="wp-block-paragraph"><a href="https://mql-programing.com/ea-sample-code/" title="【MQL4 EA】サンプルプログラム！初心者がベースにすべきソースコード">サンプルプログラムはこちら</a></p>



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



<p class="wp-block-paragraph">OrderSelect関数以外にも、注文系の関数をたくさん使っています。</p>



<p class="wp-block-paragraph">使っている関数の一覧は以下の通りです。</p>



<p class="wp-block-paragraph">全て OrderClose関数を使うために必要な関数です。</p>



<ul class="wp-block-list"><li>OrdersTotal関数</li><li>OrderSelect関数</li><li>OrderSymbol関数</li><li>OrderMagicNumber関数</li><li>OrderTicket関数</li><li>OrderLots関数</li><li>OrderClosePrice関数</li></ul>



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



<p class="wp-block-paragraph">これらの関数は MT4に標準装備されているので、書くだけで使えます。</p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">ちなみに上記のプログラムを実行すると、全てのポジションが決済されてしまうので、if文で適宜条件を付け加えてください。</span></strong></p>



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



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



<p class="wp-block-paragraph">ここからは、OrderClose関数を使った実践的な応用プログラム例を紹介します。</p>



<p class="wp-block-paragraph">実際のEA開発でよく使われるパターンですので、ぜひ参考にしてください。</p>



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



<h3 class="wp-block-heading"><span id="toc13">応用例①：指定pips以上の利益で利確する</span></h3>



<p class="wp-block-paragraph">最もよく使われるパターンの一つが、<strong>含み益が指定したpips数に達したら自動的に利確する</strong>プログラムです。</p>



<p class="wp-block-paragraph">OrderOpenPrice関数でエントリー価格を取得し、現在の価格との差をpipsに換算して判定しています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//| 指定pips以上の含み益で自動利確するプログラム例                     |
//+------------------------------------------------------------------+

// 外部パラメータ：利確するpips数を設定
extern int    magicNumber    = 12345;
extern double TakeProfitPips = 30.0;  // 30pipsで利確

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;

      // 現在の含み益をpipsで計算する
      double profitPips = 0;

      if(OrderType() == OP_BUY)
      {
         // 買いポジションの場合：現在のBid価格 - エントリー価格
         profitPips = (Bid - OrderOpenPrice()) / Point / 10;
      }
      else if(OrderType() == OP_SELL)
      {
         // 売りポジションの場合：エントリー価格 - 現在のAsk価格
         profitPips = (OrderOpenPrice() - Ask) / Point / 10;
      }

      // 含み益が指定pips以上なら決済する
      if(profitPips >= TakeProfitPips)
      {
         bool result = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 10, clrLime);

         // 決済結果をログに出力（デバッグ用）
         if(result)
            Print("利確成功！ チケット:", OrderTicket(), " 利益pips:", profitPips);
         else
            Print("利確失敗… エラーコード:", GetLastError());
      }
   }
}</code></pre></div>



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



<p class="wp-block-paragraph"><strong>ポイントは、pipsの計算方法です。</strong>買いポジションと売りポジションで計算式が逆になるので注意しましょう。</p>



<p class="wp-block-paragraph">また、<code>Point</code> は通貨ペアの最小価格変動を表す定数で、5桁のブローカーでは「0.00001」になるため、10で割ることでpips単位に変換しています。</p>



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



<h3 class="wp-block-heading"><span id="toc14">応用例②：指定pips以上の損失で損切りする</span></h3>



<p class="wp-block-paragraph">利確の反対に、<strong>含み損が指定したpips数に達したら自動的に損切りする</strong>プログラムです。</p>



<p class="wp-block-paragraph">ストップロスをサーバー側に設定しなくても、EA側で損切り制御ができるので便利です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//| 指定pips以上の含み損で自動損切りするプログラム例                   |
//+------------------------------------------------------------------+

extern int    magicNumber   = 12345;
extern double StopLossPips  = 20.0;  // 20pipsで損切り

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;

      // 含み損をpipsで計算する（マイナス値になる）
      double lossPips = 0;

      if(OrderType() == OP_BUY)
      {
         // 買いポジション：Bid - エントリー価格（含み損ならマイナス）
         lossPips = (Bid - OrderOpenPrice()) / Point / 10;
      }
      else if(OrderType() == OP_SELL)
      {
         // 売りポジション：エントリー価格 - Ask（含み損ならマイナス）
         lossPips = (OrderOpenPrice() - Ask) / Point / 10;
      }

      // 含み損が指定pips以上（マイナス方向）なら損切りする
      if(lossPips <= -StopLossPips)
      {
         bool result = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 10, clrRed);

         if(result)
            Print("損切り実行！ チケット:", OrderTicket(), " 損失pips:", lossPips);
         else
            Print("損切り失敗… エラーコード:", GetLastError());
      }
   }
}</code></pre></div>



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



<p class="wp-block-paragraph"><strong>ポイントは、損失の判定に「<code>&lt;= -StopLossPips</code>」とマイナスを使っている点です。</strong>含み損はマイナスの値になるので、「指定pips以上のマイナスかどうか」で判定しています。</p>



<p class="wp-block-paragraph">矢印の色を <code>clrRed</code>（赤）にしておくと、チャート上で損切りポイントが一目でわかるので便利です。</p>



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



<h3 class="wp-block-heading"><span id="toc15">応用例③：移動平均線のクロスで決済する</span></h3>



<p class="wp-block-paragraph">テクニカル指標を使った決済条件も、EA開発では非常によく使われます。</p>



<p class="wp-block-paragraph">ここでは、<strong>短期移動平均線と長期移動平均線のクロスをシグナルにして、ポジションを決済する</strong>プログラムを紹介します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//| 移動平均線のクロスで決済するプログラム例                           |
//+------------------------------------------------------------------+

extern int magicNumber = 12345;
extern int ShortMAPeriod = 5;    // 短期移動平均線の期間
extern int LongMAPeriod  = 25;   // 長期移動平均線の期間

void OnTick()
{
   // 現在の足の短期MA・長期MAを取得
   double shortMA_now  = iMA(Symbol(), 0, ShortMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
   double longMA_now   = iMA(Symbol(), 0, LongMAPeriod,  0, MODE_SMA, PRICE_CLOSE, 0);

   // 1本前の足の短期MA・長期MAを取得（クロス判定に使用）
   double shortMA_prev = iMA(Symbol(), 0, ShortMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
   double longMA_prev  = iMA(Symbol(), 0, LongMAPeriod,  0, MODE_SMA, PRICE_CLOSE, 1);

   // デッドクロス判定：短期MAが長期MAを上から下に抜けた
   bool deadCross  = (shortMA_prev > longMA_prev) && (shortMA_now <= longMA_now);

   // ゴールデンクロス判定：短期MAが長期MAを下から上に抜けた
   bool goldenCross = (shortMA_prev < longMA_prev) &#038;&#038; (shortMA_now >= longMA_now);

   // 保有ポジションをチェック
   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;

      // 買いポジションを持っていて、デッドクロスが発生したら決済
      if(OrderType() == OP_BUY && deadCross)
      {
         bool result = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 10, clrYellow);
         if(result)
            Print("デッドクロスで買いポジション決済！ チケット:", OrderTicket());
      }

      // 売りポジションを持っていて、ゴールデンクロスが発生したら決済
      if(OrderType() == OP_SELL && goldenCross)
      {
         bool result = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 10, clrYellow);
         if(result)
            Print("ゴールデンクロスで売りポジション決済！ チケット:", OrderTicket());
      }
   }
}</code></pre></div>



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



<p class="wp-block-paragraph"><strong>ポイントは、クロスの判定方法です。</strong>「1本前の足」と「現在の足」の移動平均線の位置関係を比較することで、クロスが発生した瞬間を検出しています。</p>



<p class="wp-block-paragraph">買いポジションはデッドクロス（下落シグナル）で決済し、売りポジションはゴールデンクロス（上昇シグナル）で決済するのが基本的な考え方です。</p>



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



<h2 class="wp-block-heading"><span id="toc16">OrderClose関数を使うときの注意点</span></h2>



<p class="wp-block-paragraph">最後に、OrderClose関数を使うときに注意すべきポイントをまとめます。</p>



<ul class="wp-block-list"><li><strong>OrderSelect関数でポジションを事前に選択しておくこと</strong>（OrderTicket関数やOrderLots関数を使うため）</li><li><strong>for文のループは後ろから回すこと</strong>（決済するとインデックスがずれるため）</li><li><strong>通貨ペアとマジックナンバーのチェックを忘れないこと</strong>（他のEAのポジションを決済してしまう恐れがあるため）</li><li><strong>決済の成功・失敗をログに出力すること</strong>（トラブル時の原因特定に役立つため）</li></ul>



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



<p class="wp-block-paragraph">これらのポイントを押さえておけば、OrderClose関数を安全に使いこなすことができます。</p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">ぜひサンプルプログラムを参考にして、自分だけのオリジナルEAを作ってみてください！</span></strong></p>
<p>投稿 <a href="https://mql-programing.com/archives/831/orderclose/">【MQL4関数】OrderClose関数の使い方！決済注文の出し方とサンプルプログラム</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
