見出し画像

MagicNumberを引数に、一番良いポジション価格を返す(チェック機能)

//<<<<<>>>>><<<<<>>>>><< マジックナンバー >><<<<<>>>>><<<<<>>>>>
input group "MagicNumber"
input int MagicNumber_bid = 1111; // bidマジックナンバー
input int MagicNumber_ask = 1112; // askマジックナンバー

OnInit()

特になし

OnTick()

Print("最良買いポジション価格  : ", advantage_position_Check(MagicNumber_bid));
Print("最良売りポジション価格  : ", advantage_position_Check(MagicNumber_ask));

advantage_position_Check(int Mag_p)

//+------------------------------------------------------------------+
//| MagicNumberを引数に、一番良いポジション価格を返却する                |
//+------------------------------------------------------------------+
double advantage_position_Check(int Mag_p)
  {
   double best_ = 0;
   for(int i = PositionsTotal() - 1; i >= 0; i--)
     {
      //保有ポジションを一つ選択
      ulong posNumber = PositionGetTicket(i);

      //選択したポジションが、実行されている通貨ペアと同じかどうかチェック
      if(PositionGetInteger(POSITION_MAGIC) == Mag_p)
        {
         if(Mag_p == MagicNumber_bid)
           {
            if(best_ == 0)
               best_ = PositionGetDouble(POSITION_PRICE_OPEN);
            else
               best_ = MathMin(best_,PositionGetDouble(POSITION_PRICE_OPEN));
           }
         else
            if(Mag_p == MagicNumber_ask)
              {
               if(best_ == 0)
                  best_ = PositionGetDouble(POSITION_PRICE_OPEN);
               else
                  best_ = MathMax(best_,PositionGetDouble(POSITION_PRICE_OPEN));
              }
        }
     }
   return best_;
  }




MQL5コード一覧はコチラ


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