public void VerifyClosedMarketLeverageAltVersion() { var leverage = 3m; var expected = 100 * 100m / leverage + 1; var model = new PatternDayTradingMarginModel(leverage, 4m); // Market is Closed on Tuesday, Feb, 16th 2016 at Midnight var security = CreateSecurity(Midnight); var order = new MarketOrder(security.Symbol, 100, security.LocalTime); Assert.AreEqual((double)leverage, (double)model.GetLeverage(security), 1e-3); Assert.AreEqual((double)expected, (double)model.GetInitialMarginRequiredForOrder(security, order), 1e-3); // Market is Closed on Monday, Feb, 15th 2016 at Noon (US President Day) security = CreateSecurity(NoonHoliday); order = new MarketOrder(security.Symbol, 100, security.LocalTime); Assert.AreEqual((double)leverage, (double)model.GetLeverage(security), 1e-3); Assert.AreEqual((double)expected, (double)model.GetInitialMarginRequiredForOrder(security, order), 1e-3); // Market is Closed on Sunday, Feb, 14th 2016 at Noon security = CreateSecurity(NoonWeekend); order = new MarketOrder(security.Symbol, 100, security.LocalTime); Assert.AreEqual((double)leverage, (double)model.GetLeverage(security), 1e-3); Assert.AreEqual((double)expected, (double)model.GetInitialMarginRequiredForOrder(security, order), 1e-3); }
public void VerifyOpenMarketLeverageAltVersion() { // Market is Open on Tuesday, Feb, 16th 2016 at Noon var leverage = 5m; var expected = 100 * 100m / leverage + 1; var model = new PatternDayTradingMarginModel(2m, leverage); var security = CreateSecurity(Noon); var order = new MarketOrder(security.Symbol, 100, security.LocalTime); Assert.AreEqual((double)leverage, (double)model.GetLeverage(security), 1e-3); Assert.AreEqual((double)expected, (double)model.GetInitialMarginRequiredForOrder(security, order), 1e-3); }