Esempio n. 1
0
        public void CannotCoverMoreThanYouShorted()
        {
            var a = new VAccount(10000, 4, 3);

            a.Short("DIA", 4, 7.00);
            new Action(() => a.Cover("DIA", 5, 7.00)).ShouldThrow <Exception>(x => x.Message.ShouldContain("Can't cover"));
        }
Esempio n. 2
0
        public void CannotSellMoreThanYouHave()
        {
            var a = new VAccount(10000, 4, 3);

            a.Buy("DIA", 4, 7.00);
            new Action(() => a.Sell("DIA", 5, 7.00)).ShouldThrow <Exception>(x => x.Message.ShouldContain("Can't sell"));
        }
Esempio n. 3
0
        public void MultipleShorts()
        {
            var a = new VAccount(10000, 4, 3);

            a.Short("DIA", 10, 2.00);
            a.Short("DIA", 10, 3.00);
            a.Cover("DIA", 20, 1.50);
            a.Equity.ShouldEqual(10011);
        }
Esempio n. 4
0
        public void MultipleBuys()
        {
            var a = new VAccount(10000, 4, 3);

            a.Buy("DIA", 10, 1.00);
            a.Buy("DIA", 10, 2.00);
            a.Sell("DIA", 20, 2.50);
            a.Equity.ShouldEqual(10011);
        }
Esempio n. 5
0
        public void Initialization()
        {
            var a = new VAccount(10000, 4, 3);

            a.Equity.ShouldEqual(10000);
            a.Invested.ShouldEqual(0);
            a.TradeCost.ShouldEqual(3);
            a.MarginFactor.ShouldEqual(4);
            a.BuyingPower.ShouldEqual(40000);
        }
Esempio n. 6
0
        public void MultipleCovers()
        {
            var a = new VAccount(10000, 4, 3);

            a.Short("DIA", 20, 5.00);
            a.Cover("DIA", 10, 2.00);
            a.Equity.ShouldEqual(10024);
            a.Cover("DIA", 10, 3.00);
            a.Equity.ShouldEqual(10041);
        }
Esempio n. 7
0
        public void ShortPosition()
        {
            var a = new VAccount(10000, 4, 3);

            a.Short("DIA", 30, 5.00);
            a.Equity.ShouldEqual(9997);
            a.Invested.ShouldEqual(150);
            a.BuyingPower.ShouldEqual(39838);

            a.Cover("DIA", 30, 4.00);
            a.Equity.ShouldEqual(10024);
            a.Invested.ShouldEqual(0);
            a.BuyingPower.ShouldEqual(40096);
        }
Esempio n. 8
0
        public void LongPosition()
        {
            var a = new VAccount(10000, 4, 3);

            a.Buy("DIA", 10, 1.50);
            a.Equity.ShouldEqual(9997);
            a.Invested.ShouldEqual(15);
            a.BuyingPower.ShouldEqual(39973);

            a.Sell("DIA", 10, 2.50);
            a.Equity.ShouldEqual(10004);
            a.Invested.ShouldEqual(0);
            a.BuyingPower.ShouldEqual(40016);
        }
Esempio n. 9
0
        private void UpdateCache(Account account)
        {
            var department = Core.DepartmentManager.GetModel(account.DepartmentId);
            var rank       = Core.RankManager.GetModel(account.RankId);
            var vAccount   = new VAccount
            {
                AccountId  = account.AccountId,
                CreateTime = account.CreateTime,
                Username   = account.Username,
                Deleted    = account.Deleted,
                Department = department == null ? null : department.Name,
                Rank       = rank == null ? null : rank.Name,
                TrueName   = account.TrueName,
                Status     = account.Status
            };

            UpdateCache(vAccount);
        }
Esempio n. 10
0
        public void MaxShares()
        {
            var a = new VAccount(28, 4, 3);

            a.MaxSharesAtPrice(9).ShouldEqual(11);
        }
Esempio n. 11
0
        public void NotEnoughEquityToShort()
        {
            var a = new VAccount(10, 4, 3);

            new Action(() => a.Short("DIA", 4, 7.01)).ShouldThrow <Exception>(x => x.Message.ShouldEqual("Insufficient buying power"));
        }
Esempio n. 12
0
        public void JustEnoughEquityToShort()
        {
            var a = new VAccount(10, 4, 3);

            a.Short("DIA", 4, 7.00);
        }
Esempio n. 13
0
        public void JustEnoughEquityToBuy()
        {
            var a = new VAccount(10, 4, 3);

            a.Buy("DIA", 4, 7.00);
        }
Esempio n. 14
0
 public void UpdateCache(VAccount account)
 {
     Cache.HSet("account_id", account.AccountId.ToString(), account);
     Cache.HSet("account_display_name", account.Department + "_" + account.Rank + "_" + account.TrueName, account);
     Cache.HSet("account_name", account.TrueName, account);
 }