Exemplo n.º 1
0
        public ImportLeech(IInstrumDA instrumDA, IAccountDA accountDA, IConfig config, ITickHistoryDA tickHistoryDA,
                           IReplicationBL replBL)
        {
            _instrumDA     = instrumDA;
            _accountDA     = accountDA;
            _config        = config;
            _tickHistoryDA = tickHistoryDA;
            _replBL        = replBL;

            _instrum_rid_lid   = new Dictionary <int, int>();
            _account_rid_lid   = new Dictionary <int, int>();
            _stoporder_rid_lid = new Dictionary <int, int>();
            _order_rid_lid     = new Dictionary <int, int>();
            _trade_rid_lid     = new Dictionary <int, int>();
        }
Exemplo n.º 2
0
        private void CompareAccounts(IEnumerable <Common.Data.Account> r_accounts, IEnumerable <Common.Data.Account> l_accounts,
                                     IReplicationBL replBL)
        {
            Assert.True(l_accounts.Count() == r_accounts.Count());
            var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account);

            foreach (var r_acc in r_accounts)
            {
                Assert.True(repl_acc.ContainsKey(r_acc.AccountID));
                int l_accID = repl_acc[r_acc.AccountID];
                var l_acc   = l_accounts.FirstOrDefault(r => r.AccountID == l_accID);
                Assert.NotNull(l_acc);
                Assert.True(l_acc.Code == r_acc.Code);
                Assert.True(l_acc.Name == r_acc.Name);
                Assert.True(l_acc.AccountType == r_acc.AccountType);
                Assert.True(l_acc.CommPerc == r_acc.CommPerc);
                Assert.True(l_acc.IsShortEnable == r_acc.IsShortEnable);
            }
        }
Exemplo n.º 3
0
        private void CompareInstrums(IEnumerable <Common.Data.Instrum> r_instrums, IEnumerable <Common.Data.Instrum> l_instrums,
                                     IReplicationBL replBL)
        {
            Assert.True(l_instrums.Count() == r_instrums.Count());
            var repl_ins = replBL.GetReplications(Common.Data.ReplObjects.Instrum);

            foreach (var r_ins in r_instrums)
            {
                Assert.True(repl_ins.ContainsKey(r_ins.InsID));
                int l_insID = repl_ins[r_ins.InsID];
                var l_ins   = l_instrums.FirstOrDefault(r => r.InsID == l_insID);
                Assert.NotNull(l_ins);
                Assert.True(l_ins.Ticker == r_ins.Ticker);
                Assert.True(l_ins.ShortName == r_ins.ShortName);
                Assert.True(l_ins.Name == r_ins.Name);
                Assert.True(l_ins.Decimals == r_ins.Decimals);
                Assert.True(l_ins.LotSize == r_ins.LotSize);
                Assert.True(l_ins.PriceStep == r_ins.PriceStep);
            }
        }
Exemplo n.º 4
0
        private void CompareHoldings(IEnumerable <Holding> r_holdings, IEnumerable <Holding> l_holdings, IReplicationBL replBL)
        {
            Assert.True(r_holdings.Count() == l_holdings.Count());
            var repl_ins = replBL.GetReplications(ReplObjects.Instrum);
            var repl_acc = replBL.GetReplications(ReplObjects.Account);

            // сначала просматриваем все remote-записи
            // для каждой должна найтись одна локальная с тем же инструментом и кол-вом
            foreach (var r_hold in r_holdings)
            {
                int l_accID = repl_acc[r_hold.AccountID];
                int l_insID = repl_ins[r_hold.InsID];
                var l_holds = l_holdings.Where(r => r.AccountID == l_accID && r.InsID == l_insID);
                Assert.True(l_holds.Count() == 1);
                var l_hold = l_holds.ElementAt(0);

                Assert.True(l_hold.LotCount == r_hold.LotCount);
            }

            // теперь просматриваем все ловальные
            // на каждую должна найтись одна remote-запись с тем же инструментом и кол-вом
            foreach (var l_hold in l_holdings)
            {
                int r_accID = repl_acc.FirstOrDefault(r => r.Value == l_hold.AccountID).Key;
                int r_insID = repl_ins.FirstOrDefault(r => r.Value == l_hold.InsID).Key;

                var r_holds = r_holdings.Where(r => r.AccountID == r_accID && r.InsID == r_insID);
                Assert.True(r_holds.Count() == 1);
                var r_hold = r_holds.ElementAt(0);

                Assert.True(r_hold.LotCount == l_hold.LotCount);
            }
        }
Exemplo n.º 5
0
        private void CompareTrades(IEnumerable <Trade> r_trades, IEnumerable <Trade> l_trades, IReplicationBL replBL)
        {
            Assert.True(l_trades.Count() == r_trades.Count());
            var repl     = replBL.GetReplications(Common.Data.ReplObjects.Trade);
            var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account);
            var repl_ins = replBL.GetReplications(Common.Data.ReplObjects.Instrum);
            var repl_ord = replBL.GetReplications(Common.Data.ReplObjects.Order);

            foreach (var r_trd in r_trades)
            {
                Assert.True(repl.ContainsKey(r_trd.TradeID));
                int l_trdID = repl[r_trd.TradeID];
                var l_trd   = l_trades.FirstOrDefault(r => r.TradeID == l_trdID);

                Assert.NotNull(l_trd);

                Assert.True(l_trd.AccountID == repl_acc[r_trd.AccountID]);
                Assert.True(l_trd.BuySell == r_trd.BuySell);
                Assert.True(l_trd.Comm == r_trd.Comm);
                Assert.True(l_trd.InsID == repl_ins[r_trd.InsID]);
                Assert.True(l_trd.LotCount == r_trd.LotCount);

                int l_orderID = repl_ord[r_trd.OrderID];
                Assert.True(l_trd.OrderID == l_orderID);

                Assert.True(l_trd.Price == r_trd.Price);
                Assert.True(l_trd.Time == r_trd.Time);
                Assert.True(l_trd.TradeID == l_trdID);
                Assert.True(l_trd.TradeNo == r_trd.TradeNo);
            }
        }
Exemplo n.º 6
0
        private void CompareStopOrders(IEnumerable <StopOrder> r_stopOrders, IEnumerable <StopOrder> l_stopOrders, IReplicationBL replBL)
        {
            Assert.True(l_stopOrders.Count() == r_stopOrders.Count());
            var repl     = replBL.GetReplications(Common.Data.ReplObjects.StopOrder);
            var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account);
            var repl_ins = replBL.GetReplications(Common.Data.ReplObjects.Instrum);

            foreach (var r_so in r_stopOrders)
            {
                Assert.True(repl.ContainsKey(r_so.StopOrderID));
                int l_soID = repl[r_so.StopOrderID];
                var l_so   = l_stopOrders.FirstOrDefault(r => r.StopOrderID == l_soID);

                Assert.NotNull(l_so);

                Assert.True(l_so.AccountID == repl_acc[r_so.AccountID]);
                Assert.True(l_so.AlertPrice == r_so.AlertPrice);
                Assert.True(l_so.BuySell == r_so.BuySell);
                Assert.True(l_so.CompleteTime == r_so.CompleteTime);
                Assert.True(l_so.EndTime == r_so.EndTime);
                Assert.True(l_so.InsID == repl_ins[r_so.InsID]);
                Assert.True(l_so.LotCount == r_so.LotCount);
                Assert.True(l_so.Price == r_so.Price);
                Assert.True(l_so.Status == r_so.Status);
                Assert.True(l_so.StopOrderID == l_soID);
                Assert.True(l_so.StopOrderNo == r_so.StopOrderNo);
                Assert.True(l_so.StopType == r_so.StopType);
                Assert.True(l_so.Time == r_so.Time);
            }
        }
Exemplo n.º 7
0
        private void CompareOrders(IEnumerable <Order> r_orders, IEnumerable <Order> l_orders, IReplicationBL replBL)
        {
            Assert.True(l_orders.Count() == r_orders.Count());
            var repl     = replBL.GetReplications(Common.Data.ReplObjects.Order);
            var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account);
            var repl_ins = replBL.GetReplications(Common.Data.ReplObjects.Instrum);
            var repl_so  = replBL.GetReplications(Common.Data.ReplObjects.StopOrder);

            foreach (var r_ord in r_orders)
            {
                Assert.True(repl.ContainsKey(r_ord.OrderID));
                int l_ordID = repl[r_ord.OrderID];
                var l_ord   = l_orders.FirstOrDefault(r => r.OrderID == l_ordID);

                Assert.NotNull(l_ord);

                Assert.True(l_ord.AccountID == repl_acc[r_ord.AccountID]);
                Assert.True(l_ord.BuySell == r_ord.BuySell);
                Assert.True(l_ord.InsID == repl_ins[r_ord.InsID]);
                Assert.True(l_ord.LotCount == r_ord.LotCount);
                Assert.True(l_ord.OrderID == l_ordID);
                Assert.True(l_ord.OrderNo == r_ord.OrderNo);
                Assert.True(l_ord.Price == r_ord.Price);
                Assert.True(l_ord.Status == r_ord.Status);

                int?l_stopOrderID = null;
                if (r_ord.StopOrderID != null)
                {
                    l_stopOrderID = repl_so[r_ord.StopOrderID.Value];
                }
                Assert.True(l_ord.StopOrderID == l_stopOrderID);

                Assert.True(l_ord.Time == r_ord.Time);
            }
        }