MQL4 MQL4 の注文関数

OrderCloseBy()

できること
反対方向のポジション同士で相殺決済する
対応
MQL4

OrderCloseBy() とは

MQL4 で、同じ銘柄の買いポジションと売りポジションを相殺して決済する関数です。両建てをまとめて解消するときに使い、別々に決済するよりスプレッド1回分が節約できます。

OrderCloseBy() の書式と引数

bool OrderCloseBy(
   int ticket,
   int opposite,
   color arrow_color=clrNONE
)
引数型省略時説明
ticketint必須決済するポジションのチケット番号。
oppositeint必須反対方向のポジションのチケット番号。
arrow_colorcolorclrNONEチャートに表示する矢印の色。

戻り値

成功すると true。ロットが違う場合は、多いほうの残りが新しいチケットで残ります。

OrderCloseBy() の使い方(コード例)

int buyTicket = -1, sellTicket = -1;
for(int i = OrdersTotal() - 1; i >= 0; i--)
{
   if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES) || OrderSymbol() != _Symbol) continue;
   if(OrderType() == OP_BUY)  buyTicket = OrderTicket();
   if(OrderType() == OP_SELL) sellTicket = OrderTicket();
}
if(buyTicket > 0 && sellTicket > 0 && !OrderCloseBy(buyTicket, sellTicket))
   Print("相殺決済 失敗 error=", GetLastError());

OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。

MQL4 と MQL5 の違い

MQL5(ヘッジ口座)では CTrade の PositionCloseBy() を使います。

OrderCloseBy() でよく出るエラー

関連する関数

MQL4 の注文関数の関数一覧

← MQL関数リファレンスで、ほかの関数を探す

サイバーシグナルインジケーターと8大特典プレゼント

MT4/MT5自動売買EAサイバーラッシュ無料プレゼント

MT4/MT5自動売買EAサイバードラゴン無料プレゼント

グルグルトレイン(グルトレ)EAを無料プレゼント

ライントレードEAサイバートレナビを無料プレゼント

ゴトー日の東京仲値が狙える自動売買EA

LINE友だち追加

注目記事ランキング

  1. 1

    【サクソバンクチャート】月曜日の早朝から動く為替レート

  2. 2

    【MT4/MT5対応】チャート上に手書きできる描画インジケーターの無料配布

  3. 3

    【サンデーダウ・サンデードル円】土日に動く中東レートの表示方法と見方を解説

  4. 4

    【先着50名】グルトレEAを無料プレゼントしています!

  5. 5

    保護中: 【勝率UP!】曜日や日・月別為替相場の動きでFXを見極める

  6. 6

    【MT4/MT5対応】「sign_alert」シグナルアラートやメール送信するインジケーターの無料配布

  7. 7

    無料メールマガジン「マナブ式FX」|毎朝6時、今日の為替相場予想が届く

  8. 8

    【原油・金】WTIとゴールドの商品レート一覧と見やすいチャート

  9. 9

    VQインジケーターとは?MT4/MT5版を無料配布【設定例つき】

  10. 10

    【バイナリーオプション攻略法】全勝!+497,363円の利益が出た手法とは?

TOP
CLOSE