見出し画像

MagicNumberを指定し、すべてのポジションをクローズする

(筆者より)
下のリンクと併用し、事前にポジションの含み損を確認して、一定以上の損が出ていたら全てのポジションをクローズするなど

↓↓↓↓↓こちら参考↓↓↓↓↓


int MagicNumber_bid = 1111; // bidマジックナンバー
int MagicNumber_ask = 1112; // askマジックナンバー

OnInit()

特になし

OnTick()

position_remove(MagicNumber_bid); //MagicNumber_bidのポジションをすべて決算
position_remove(MagicNumber_ask); //MagicNumber_askのポジションをすべて決算

position_remove(int Order_Mag_num)

//+------------------------------------------------------------------+
//|ポジション決算                                                     |
//+------------------------------------------------------------------+
void position_remove(int Order_Mag_num)
  {
//保有ポジションを一つずつチェックしていく
   for(int i = PositionsTotal() - 1; i >= 0; i--)
     {
      //--- 注文のパラメータ
      ulong position_ticket=PositionGetTicket(i);    // ポジション番号
      ulong magic=PositionGetInteger(POSITION_MAGIC);  // ポジションのMagicNumber

      //選択したポジションの通貨が一致しているかをチェック
      if(PositionGetString(POSITION_SYMBOL) == _Symbol)
        {
         //選択したポジションのマジックナンバーが、引数と同じかどうかチェック
         if(magic == Order_Mag_num)
           {
            mytrade.PositionClose(position_ticket,10);
           }
        }
     }
  }




MQL5コード一覧はコチラ

この記事が気に入ったらサポートをしてみませんか?