サンプルコード 一覧へ戻る

MQL5サンプルコード

【MT5(MQL5)サンプルコード】For 反復演算子

スポンサーリンク

MT4(MQL4)/MT5(MQL5)のFor 反復演算子

 指定条件下の場合に処理をループします。

for(式 1 ; 式 2 ; 式 3 )
  演算子;

変数を式1で初期化し、式2で判定、式2の判定でtrueの場合は演算子を実行し、変数に対して式3を実行します。式2がfalseになった時点でforを抜けます。

MT4→MT5になっても変わらず使えます。

サンプルコード

void OnInit()  
{

   for(int i = 0; i < 5; i++)
   {
      Print("i=",i);
   }

}

結果

i=0
i=1
i=2
i=3
i=4

サンプルコード EAでの使用例 -建玉、未決注文検索を行う-

for構文がよく使われる場面に、建玉や未決注文検索があります。

建玉や未決注文のチケット番号をforの変数でカウントアップし、MagicNumberが一致した建玉や未決注文に対して任意ののコマンドを発行する・・・のように使います。

void OnTick()
  {
   int MagicNumber=123;  //マジックナンバー
   ulong position_ticket=0;
   ulong order_ticket=0;


////////--------建玉の検索はこちら-------///////
   for(int i = PositionsTotal() - 1; i >= 0; i--)
      //----(参考)この書き方でもOK→ for(int i=0;i<PositionsTotal();i++)
      if((position_ticket=PositionGetTicket(i))>0)
         if(PositionGetInteger(POSITION_MAGIC)==MagicNumber)
           {
            /*
             ここにOrderSendなどを記載
            */
           }



////////--------未決注文の検索はこちら-------///////
   for(int i = OrdersTotal() - 1; i >= 0; i--)
     {
      if((order_ticket=OrderGetTicket(i))>0)
         //MagicNumberが同じ未決注文がある場合、括弧内の処理を実行
         if(OrderGetInteger(ORDER_MAGIC) == MagicNumber)
           {
            /*
            ここにOrdersend等を記載する
            */
           }

     }
   return;
  }

コメント

タイトルとURLをコピーしました