void AddModifyLimitOrder(int open, int slPIPS, int tp, OrderSide side)
        {
            open = MathPrice.RoundToDown(open);
            tp   = MathPrice.RoundToDown(tp);
            int sl = side == OrderSide.Buy ? open - slPIPS : open + slPIPS;

            List <Order> limitOrders = SelectMulti(side, OrderOperation.GetLimitOrders());

            if (limitOrders.Count != 0)
            {
                foreach (Order currOrder in limitOrders)
                {
                    Meta.OrderModify(currOrder.ID, open, sl, tp, currOrder.Type);
                }
            }
            else if (SelectMulti(side, OrderOperation.GetMarketOrders()).Count == 0)
            {
                try
                {
                    Meta.OrderSend(base.Symbol, OrderType.Limit, side, LotFunction(), open, sl, tp, "");
                }
                catch (Exception exc)
                {
                    logger.AddMessage(exc.ToString());
                }
            }
        }
Beispiel #2
0
        void ModifyMarketOrders(OrderSide side, int tp, int sl)
        {
            tp = MathPrice.RoundToDown(tp);

            IEnumerable <Order> marketOrders = OrderOperation.GetMarketOrders(side);

            if (marketOrders.Count() != 0)
            {
                try
                {
                    foreach (Order currOrder in marketOrders)
                    {
                        Meta.OrderModify(currOrder.ID, currOrder.OpenPrice, sl == 0?currOrder.SL:sl, tp == 0?currOrder.TP:tp, currOrder.Type);
                    }
                }
                catch (Exception exc)
                {
                    logger.AddMessage(exc.ToString());
                }
            }
        }
        void ModifyMarketOrders(OrderSide side, int tp)
        {
            tp = MathPrice.RoundToDown(tp);

            List <Order> marketOrders = SelectMulti(side, OrderOperation.GetMarketOrders());

            if (marketOrders.Count != 0)
            {
                try
                {
                    foreach (Order currOrder in marketOrders)
                    {
                        Meta.OrderModify(currOrder.ID, currOrder.OpenPrice, currOrder.SL, tp, currOrder.Type);
                    }
                }
                catch (Exception exc)
                {
                    logger.AddMessage(exc.ToString());
                }
            }
        }
        void ModifyMarketOrders(OrderSide side, int tp, string comment, string symbol)
        {
            tp = MathPrice.RoundToDown(tp);

            IEnumerable <Order> marketOrders = OrderOperation.GetMarketOrders(side);

            if (marketOrders.Count() != 0)
            {
                try
                {
                    foreach (Order currOrder in marketOrders)
                    {
                        if ((currOrder.Comment == comment || TralTP <= 0) && symbol.ToLowerInvariant() == currOrder.Symbol.ToLowerInvariant())
                        {
                            Meta.OrderModify(currOrder.ID, currOrder.OpenPrice, currOrder.SL, tp, currOrder.Type);
                        }
                    }
                }
                catch (Exception exc)
                {
                    logger.AddMessage(exc.ToString());
                }
            }
        }