public void FundsAreSettledImmediately() { var securities = new SecurityManager(TimeKeeper); var transactions = new SecurityTransactionManager(securities); var portfolio = new SecurityPortfolioManager(securities, transactions); var model = new ImmediateSettlementModel(); var config = CreateTradeBarConfig(); var security = new Security(SecurityExchangeHoursTests.CreateUsEquitySecurityExchangeHours(), config); portfolio.SetCash(1000); Assert.AreEqual(1000, portfolio.Cash); Assert.AreEqual(0, portfolio.UnsettledCash); var timeUtc = Noon.ConvertToUtc(TimeZones.NewYork); model.ApplyFunds(portfolio, security, timeUtc, "USD", 1000); Assert.AreEqual(2000, portfolio.Cash); Assert.AreEqual(0, portfolio.UnsettledCash); model.ApplyFunds(portfolio, security, timeUtc, "USD", -500); Assert.AreEqual(1500, portfolio.Cash); Assert.AreEqual(0, portfolio.UnsettledCash); model.ApplyFunds(portfolio, security, timeUtc, "USD", 1000); Assert.AreEqual(2500, portfolio.Cash); Assert.AreEqual(0, portfolio.UnsettledCash); }
/// <summary> /// Construct a new security vehicle based on the user options. /// </summary> public Security(SecurityExchangeHours exchangeHours, SubscriptionDataConfig config, decimal leverage) { _config = config; Cache = new SecurityCache(); Exchange = new SecurityExchange(exchangeHours); DataFilter = new SecurityDataFilter(); PortfolioModel = new SecurityPortfolioModel(); TransactionModel = new SecurityTransactionModel(); MarginModel = new SecurityMarginModel(leverage); SettlementModel = new ImmediateSettlementModel(); Holdings = new SecurityHolding(this); }
/// <summary> /// Construct a new security vehicle based on the user options. /// </summary> public Security(SecurityExchangeHours exchangeHours, SubscriptionDataConfig config, decimal leverage) { _config = config; Cache = new SecurityCache(); Exchange = new SecurityExchange(exchangeHours); DataFilter = new SecurityDataFilter(); PortfolioModel = new SecurityPortfolioModel(); TransactionModel = new SecurityTransactionModel(); MarginModel = new SecurityMarginModel(leverage); SettlementModel = new ImmediateSettlementModel(); Holdings = new SecurityHolding(this); }