示例#1
0
        public void CreateGetDelete_()
        {
            int ins1ID = _insDA.InsertInstrum("INS1", "", "", 10, 2, 1);
            int ins2ID = _insDA.InsertInstrum("INS2", "", "", 1, 0, 0);

            int id1 = _insStoreDA.CreateInsStore(ins1ID, Timeframes.Min, true);
            int id2 = _insStoreDA.CreateInsStore(ins2ID, Timeframes.Hour, true);
            int id3 = _insStoreDA.CreateInsStore(ins1ID, Timeframes.Min5, false);

            var insStore1     = _insStoreDA.GetInsStoreByID(id1);
            var insStore2     = _insStoreDA.GetInsStore(ins2ID, Timeframes.Hour);
            var actives       = _insStoreDA.GetInsStores(null, null, true);
            var gazpInsStores = _insStoreDA.GetInsStores(ins1ID, null, true);

            Assert.Equal(id1, insStore1.InsStoreID);
            Assert.Equal(id2, insStore2.InsStoreID);
            Assert.Contains(id1, actives.Select(r => r.InsStoreID));
            Assert.Contains(id2, actives.Select(r => r.InsStoreID));
            Assert.DoesNotContain(id3, actives.Select(r => r.InsStoreID));
            Assert.Contains(id1, gazpInsStores.Select(r => r.InsStoreID));
            Assert.DoesNotContain(id3, gazpInsStores.Select(r => r.InsStoreID));

            // cleanup
            _insStoreDA.DeleteInsStoreByID(id1);
            _insStoreDA.DeleteInsStoreByID(id2);
            _insStoreDA.DeleteInsStoreByID(id3);
        }
示例#2
0
        public void InsertGetInstrums_()
        {
            int id1 = _instrumDA.InsertInstrum("TICKER1", "“икер1", "“икер 1", 10, 2, 0.1m);
            int id2 = _instrumDA.InsertInstrum("TICKER2", "“икер2", "“икер 2", 1, 3, 1);

            var list     = _instrumDA.GetInstrumList();
            var instrums = _instrumDA.GetInstrums();

            var item = list.FirstOrDefault(r => r.InsID == id1);
            var ins  = instrums.FirstOrDefault(r => r.InsID == id1);

            Assert.Equal(id1, item.InsID);
            Assert.Equal("TICKER1", item.Ticker);
            Assert.Equal("“икер1", item.ShortName);

            Assert.Equal(id1, ins.InsID);
            Assert.Equal("TICKER1", ins.Ticker);
            Assert.Equal("“икер1", ins.ShortName);
            Assert.Equal("“икер 1", ins.Name);
            Assert.Equal(2, ins.Decimals);
            Assert.Equal(10, ins.LotSize);
            Assert.Equal(0.1m, ins.PriceStep);

            var ins1 = _instrumDA.GetInstrum(id1);
            var ins2 = _instrumDA.GetInstrum(0, "TICKER2");

            Assert.Equal(id1, ins1.InsID);
            Assert.Equal("TICKER1", ins1.Ticker);
            Assert.Equal("“икер1", ins1.ShortName);
            Assert.Equal("“икер 1", ins1.Name);
            Assert.Equal(2, ins1.Decimals);
            Assert.Equal(10, ins1.LotSize);
            Assert.Equal(0.1m, ins1.PriceStep);

            Assert.Equal(id2, ins2.InsID);
            Assert.Equal("TICKER2", ins2.Ticker);
            Assert.Equal("“икер2", ins2.ShortName);
            Assert.Equal("“икер 2", ins2.Name);
            Assert.Equal(3, ins2.Decimals);
            Assert.Equal(1, ins2.LotSize);
            Assert.Equal(1, ins2.PriceStep);

            _instrumDA.DeleteInstrumByID(id1);
            _instrumDA.DeleteInstrumByID(id2);
        }
示例#3
0
        public void UpdatePeriods_()
        {
            int insID = _insDA.InsertInstrum("INS", "", "", 10, 2, 1);

            var s = _insStoreDA.GetInsStore(insID, Timeframes.Min);

            if (s != null)
            {
                _insStoreDA.DeleteInsStoreByID(s.InsStoreID);
            }
            int id = _insStoreDA.CreateInsStore(insID, Timeframes.Min, true);

            List <InsStorePeriod> periods = new List <InsStorePeriod>();

            periods.Add(new InsStorePeriod(new DateTime(2018, 1, 1), new DateTime(2018, 1, 1), false));
            _insStoreDA.UpdatePeriods(id, periods);
            var periods1 = _insStoreDA.GetPeriods(id).ToList();

            Assert.Equal(new DateTime(2018, 1, 1), periods1.First().StartDate);
            Assert.Equal(new DateTime(2018, 1, 1), periods1.First().EndDate);
            Assert.False(periods1.First().IsLastDirty);

            periods.Add(new InsStorePeriod(new DateTime(2018, 1, 2), new DateTime(2018, 1, 3), true));
            _insStoreDA.UpdatePeriods(id, periods);
            periods1 = _insStoreDA.GetPeriods(id).ToList();

            Assert.Equal(2, periods1.Count);

            periods.RemoveAt(0);
            _insStoreDA.UpdatePeriods(id, periods);
            periods1 = _insStoreDA.GetPeriods(id).ToList();

            Assert.Single(periods1);

            // cleanup
            periods1.Clear();
            _insStoreDA.UpdatePeriods(id, periods1);

            periods1 = _insStoreDA.GetPeriods(id).ToList();

            Assert.Empty(periods1);
        }
示例#4
0
        public TickHistoryTest()
        {
            DbContextOptionsBuilder <DaContext> builder = new DbContextOptionsBuilder <DaContext>();

            builder.UseNpgsql("Username=postgres;Password=123;Host=localhost;Port=5432;Database=pulxer_test");
            _options = builder.Options;

            _tickHistoryDA = new TickHistoryDA(_options);
            _insDA         = new InstrumDA(_options);

            _insID = _insDA.InsertInstrum("III", "", "", 1, 1, 1);
        }
示例#5
0
        public void DeleteAccountData_()
        {
            int accID;

            // create
            var accDA = new AccountDA(_options);
            var insDA = new InstrumDA(_options);
            var posDA = new PositionDA(_options);

            int insID = insDA.InsertInstrum("", "", "", 1, 0, 1);

            accID = accDA.CreateAccount("code", "name", 100, true, AccountTypes.Test).AccountID;
            accDA.CreateCash(accID, 0, 0, 0, 0, 0, 0);
            var order = accDA.CreateOrder(accID, DateTime.Now, insID, Platform.BuySell.Buy, 1, null, Platform.OrderStatus.Active, null, 0);
            var trade = accDA.CreateTrade(accID, order.OrderID, DateTime.Now, insID, Platform.BuySell.Buy, 1, 0, 0, 0);
            var so    = accDA.CreateStopOrder(accID, DateTime.Now, insID, Platform.BuySell.Buy, Platform.StopOrderType.StopLoss, null, 0, null, 0, Platform.StopOrderStatus.Active, null, 0);
            var h     = accDA.CreateHolding(accID, insID, 1);
            var pos   = posDA.CreatePosition(accID, insID, PosTypes.Long, DateTime.Now, 0, 0, null, null);

            posDA.AddPosTrade(pos.PosID, trade.TradeID);

            accDA.DeleteAccountData(accID);

            Assert.Null(accDA.GetCash(accID)); // данные удалились
            Assert.Empty(accDA.GetOrders(accID));
            Assert.Empty(accDA.GetStopOrders(accID));
            Assert.Empty(accDA.GetTrades(accID));
            Assert.Empty(accDA.GetHoldings(accID));
            Assert.Empty(posDA.GetPosTrades(new List <int>()
            {
                pos.PosID
            }));
            Assert.Empty(posDA.GetPositions(accID, false));
            Assert.NotNull(accDA.GetAccountByID(accID)); // а сам account остался

            // cleanup
            insDA.DeleteInstrumByID(insID);
            accDA.DeleteAccount(accID);
        }