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")); }
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")); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
public void MaxShares() { var a = new VAccount(28, 4, 3); a.MaxSharesAtPrice(9).ShouldEqual(11); }
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")); }
public void JustEnoughEquityToShort() { var a = new VAccount(10, 4, 3); a.Short("DIA", 4, 7.00); }
public void JustEnoughEquityToBuy() { var a = new VAccount(10, 4, 3); a.Buy("DIA", 4, 7.00); }
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); }