Esempio n. 1
0
        public List <TradeCommandSecurity> Get(int commandId)
        {
            var dbCommand = _dbHelper.GetStoredProcCommand(SP_Get);

            _dbHelper.AddInParameter(dbCommand, "@CommandId", System.Data.DbType.Int32, commandId);

            List <TradeCommandSecurity> items = new List <TradeCommandSecurity>();
            var reader = _dbHelper.ExecuteReader(dbCommand);

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    TradeCommandSecurity item = new TradeCommandSecurity();
                    item.CommandId     = (int)reader["CommandId"];
                    item.SecuCode      = (string)reader["SecuCode"];
                    item.SecuType      = (SecurityType)reader["SecuType"];
                    item.CommandAmount = (int)reader["CommandAmount"];
                    item.EDirection    = (EntrustDirection)reader["CommandDirection"];
                    item.CommandPrice  = (double)(decimal)reader["CommandPrice"];
                    item.CurrentPrice  = (double)(decimal)reader["CurrentPrice"];
                    item.EntrustStatus = (EntrustStatus)reader["EntrustStatus"];

                    items.Add(item);
                }
            }
            reader.Close();
            _dbHelper.Close(dbCommand);

            return(items);
        }
        private List <TradeCommandSecurity> GetSelectCommandSecurities(OpenPositionItem openItem, int commandId, List <OpenPositionSecurityItem> selectedSecuItems)
        {
            List <TradeCommandSecurity> cmdSecuItems = new List <TradeCommandSecurity>();

            foreach (var item in selectedSecuItems)
            {
                if (item.Selection && item.MonitorId == openItem.MonitorId)
                {
                    TradeCommandSecurity secuItem = new TradeCommandSecurity
                    {
                        CommandId     = commandId,
                        SecuCode      = item.SecuCode,
                        SecuType      = item.SecuType,
                        CommandAmount = item.EntrustAmount,
                        CommandPrice  = item.CommandPrice,
                        CurrentPrice  = item.LastPrice,
                        EntrustStatus = EntrustStatus.NoExecuted
                    };

                    if (secuItem.SecuType == SecurityType.Stock)
                    {
                        secuItem.EDirection = EntrustDirection.BuySpot;
                    }
                    else
                    {
                        secuItem.EDirection = EntrustDirection.SellOpen;
                    }

                    cmdSecuItems.Add(secuItem);
                }
            }

            return(cmdSecuItems);
        }
        private List <TradeCommandSecurity> GetSelectCommandSecurities(int instanceId, List <ClosePositionSecurityItem> closeSecuItems)
        {
            List <TradeCommandSecurity> cmdSecuItems = new List <TradeCommandSecurity>();

            //var tempStockItems = _tempstockdao.Get(closePositionItem.TemplateId);
            var selectedSecuItems = closeSecuItems.Where(p => p.InstanceId.Equals(instanceId)).ToList();

            foreach (var item in selectedSecuItems)
            {
                TradeCommandSecurity secuItem = new TradeCommandSecurity
                {
                    SecuCode      = item.SecuCode,
                    SecuType      = item.SecuType,
                    CommandAmount = item.EntrustAmount,
                    CommandPrice  = item.CommandPrice,
                    CurrentPrice  = item.LastPrice,
                    EDirection    = item.EDirection,
                    EntrustStatus = EntrustStatus.NoExecuted
                };

                //var tempStockItem = tempStockItems.Find(p => p.SecuCode.Equals(secuItem.SecuCode));
                //if (tempStockItem != null)
                //{
                //    secuItem.WeightAmount = tempStockItem.Amount;
                //}

                cmdSecuItems.Add(secuItem);
            }

            return(cmdSecuItems);
        }
Esempio n. 4
0
        public int Update(TradeCommandSecurity secItem)
        {
            var dbCommand = _dbHelper.GetStoredProcCommand(SP_Modify);

            _dbHelper.AddInParameter(dbCommand, "@CommandId", System.Data.DbType.Int32, secItem.CommandId);
            _dbHelper.AddInParameter(dbCommand, "@SecuCode", System.Data.DbType.String, secItem.SecuCode);
            _dbHelper.AddInParameter(dbCommand, "@SecuType", System.Data.DbType.Int32, (int)secItem.SecuType);
            _dbHelper.AddInParameter(dbCommand, "@CommandAmount", System.Data.DbType.Int32, secItem.CommandAmount);
            _dbHelper.AddInParameter(dbCommand, "@CommandDirection", System.Data.DbType.Int32, (int)secItem.EDirection);
            _dbHelper.AddInParameter(dbCommand, "@CommandPrice", System.Data.DbType.Double, secItem.CommandPrice);

            return(_dbHelper.ExecuteNonQuery(dbCommand));
        }
Esempio n. 5
0
 public ArchiveTradeCommandSecurity(TradeCommandSecurity tradeCommandSecurity)
     : base(tradeCommandSecurity)
 {
 }
        private int UpdateItem(CommandManagementItem cmdMngItem, List <ModifySecurityItem> modifiedSecuItems, DateTime startDate, DateTime endDate, string notes)
        {
            //var oldInstance = _tradeInstanceBLL.GetInstance(cmdMngItem.InstanceId);
            //if (oldInstance == null || oldInstance.InstanceId != cmdMngItem.InstanceId)
            //{
            //    return -1;
            //}

            //TODO: add the StartDate, EndDate
            TradeCommand cmdItem = new TradeCommand
            {
                CommandId      = cmdMngItem.CommandId,
                ECommandStatus = Model.EnumType.CommandStatus.Modified,
                DStartDate     = startDate,
                DEndDate       = endDate,
                ModifiedDate   = DateTime.Now,
                Notes          = !string.IsNullOrEmpty(notes)?notes: cmdMngItem.Notes,
            };

            List <TradeCommandSecurity> tradeModifiedSecuItems = new List <TradeCommandSecurity>();
            List <TradeCommandSecurity> tradeCancelSecuItems   = new List <TradeCommandSecurity>();
            var selectedModifiedSecuItems = modifiedSecuItems.Where(p => p.Selection).ToList();

            foreach (var secuItem in selectedModifiedSecuItems)
            {
                TradeCommandSecurity tradeSecuItem = new TradeCommandSecurity
                {
                    CommandId     = cmdItem.CommandId,
                    SecuCode      = secuItem.SecuCode,
                    SecuType      = secuItem.SecuType,
                    EDirection    = secuItem.EDirection,
                    CommandAmount = secuItem.NewCommandAmount,
                    CommandPrice  = secuItem.NewCommandPrice,
                    CurrentPrice  = secuItem.LastPrice,
                };

                if (secuItem.Selection)
                {
                    tradeModifiedSecuItems.Add(tradeSecuItem);
                }
                else
                {
                    tradeCancelSecuItems.Add(tradeSecuItem);
                }
            }

            int result = _tradeCommandBLL.Update(cmdItem, tradeModifiedSecuItems, tradeCancelSecuItems);

            if (result > 0)
            {
                //TODO: add more parameters
                TradeInstance tradeInstance = new TradeInstance
                {
                    InstanceId      = cmdMngItem.InstanceId,
                    InstanceCode    = cmdMngItem.InstanceCode,
                    FuturesContract = cmdMngItem.BearContract,
                    //MonitorUnitId = oldInstance.MonitorUnitId,
                    //StockDirection = oldInstance.StockDirection,
                    //FuturesDirection = oldInstance.FuturesDirection,
                    //FuturesPriceType = oldInstance.FuturesPriceType,
                };

                List <TradeInstanceSecurity> modifiedInstSecuItems = new List <TradeInstanceSecurity>();
                List <TradeInstanceSecurity> cancelInstSecuItems   = new List <TradeInstanceSecurity>();
                foreach (var secuItem in selectedModifiedSecuItems)
                {
                    int modifiedAmount = secuItem.NewCommandAmount - secuItem.OriginCommandAmount;

                    TradeInstanceSecurity tradeInstSecuItem = new TradeInstanceSecurity
                    {
                        SecuCode           = secuItem.SecuCode,
                        SecuType           = secuItem.SecuType,
                        InstructionPreBuy  = 0,
                        InstructionPreSell = 0,
                    };

                    //TODO::::::how to handle the case???
                    switch (secuItem.EDirection)
                    {
                    case Model.EnumType.EntrustDirection.BuySpot:
                    {
                        tradeInstSecuItem.InstructionPreBuy = modifiedAmount;
                    }
                    break;

                    case Model.EnumType.EntrustDirection.SellSpot:
                    {
                        tradeInstSecuItem.InstructionPreSell = modifiedAmount;
                    }
                    break;

                    case Model.EnumType.EntrustDirection.SellOpen:
                    {
                        tradeInstSecuItem.InstructionPreSell = modifiedAmount;
                    }
                    break;

                    case Model.EnumType.EntrustDirection.BuyClose:
                    {
                        tradeInstSecuItem.InstructionPreBuy = modifiedAmount;
                    }
                    break;
                    }

                    if (secuItem.Selection)
                    {
                        modifiedInstSecuItems.Add(tradeInstSecuItem);
                    }
                    else
                    {
                        cancelInstSecuItems.Add(tradeInstSecuItem);
                    }
                }

                result = _tradeInstanceBLL.Update(tradeInstance, modifiedInstSecuItems, cancelInstSecuItems);
            }

            return(result);
        }