コード例 #1
0
        public static ORDER_BILL ProcessPriceForOrderClosing(MarketOrder order, Account account,
                                                             TradeSharpConnection ctx)
        {
            AccountGroup.MarkupType markType;
            var spreadDelta = AcccountMarkupDictionary.GetMarkupAbs(account.Group, order.Symbol, out markType);
            var markupExit  = 0f;

            if (spreadDelta > 0 && markType != AccountGroup.MarkupType.NoMarkup)
            {
                markupExit = spreadDelta;
                if (markType == AccountGroup.MarkupType.Markup)
                {
                    order.PriceExit -= spreadDelta * order.Side;
                }
            }

            var bill = ctx.ORDER_BILL.FirstOrDefault(b => b.Position == order.ID);

            if (bill != null)
            {
                bill.MarkupExit = markupExit;
            }
            //else
            //    Logger.Debug("Markup: ProcessPriceForOrderClosing - can not find the bill for pos " + order.ID);

            return(bill);
        }
コード例 #2
0
        /// <summary>
        /// добавить маркапы и прочее шкурилово
        ///
        /// вызывается на открытии рыночного ордера, срабатывании отложенного
        /// (для всех - единая точка входа - SaveOrder & Notify Client)
        /// </summary>
        public static OrderBill ProcessOrderOpening(MarketOrder order, Account account)
        {
            AccountGroup.MarkupType markType;
            var spreadDelta = AcccountMarkupDictionary.GetMarkupAbs(account.Group, order.Symbol, out markType);
            var bill        = new OrderBill(0, markType, 0);

            if (spreadDelta > 0 && markType != AccountGroup.MarkupType.NoMarkup)
            {
                if (markType == AccountGroup.MarkupType.Markup)
                {
                    order.PriceEnter += spreadDelta * order.Side;
                }
                bill.MarkupEnter = spreadDelta;
            }

            return(bill);
        }