コード例 #1
0
        public IEnumerable <Order> GetLimitOrders(OrderSide side)
        {
            List <Order> listOrders = new List <Order>();

            int total = MetaAPI.OrdersTotal();

            for (int i = total - 1; i >= 0; i--)
            {
                MetaAPI.OrderSelect(i, SelectType.SELECT_BY_POS, SelectModeType.MODE_TRADES);
                if (side == OrderSide.Buy)
                {
                    if (MetaTypeConvertor.ToOrderType(MetaAPI.GetOrderType()) == OrderType.Limit && MetaTypeConvertor.ToOrderSide(MetaAPI.GetOrderType()) == OrderSide.Buy && MagicNumber == MetaAPI.GetOrderMagicNumber())
                    {
                        listOrders.Add(BuildOrderFromCurrent());
                    }
                }
                else
                {
                    if (MetaTypeConvertor.ToOrderType(MetaAPI.GetOrderType()) == OrderType.Limit && MetaTypeConvertor.ToOrderSide(MetaAPI.GetOrderType()) == OrderSide.Sell && MagicNumber == MetaAPI.GetOrderMagicNumber())
                    {
                        listOrders.Add(BuildOrderFromCurrent());
                    }
                }
            }
            return(listOrders);
        }
コード例 #2
0
 public Order GetOrderByID(int orderID)
 {
     if (!MetaAPI.OrderSelect(orderID, SelectType.SELECT_BY_TICKET, SelectModeType.MODE_TRADES))
     {
         return(null);
     }
     return(BuildOrderFromCurrent());
 }