コード例 #1
0
        public MaintenanceMargin GetMaintenanceMargin(MaintenanceMarginParameters parameters)
        {
            EnsureSecurityExists(parameters.Security);
            var expected = SecurityModel.GetMaintenanceMargin(parameters);

            if (reentry)
            {
                return(expected);
            }

            reentry = true;
            var actual = PositionGroupModel.GetMaintenanceMargin(new PositionGroupMaintenanceMarginParameters(
                                                                     Portfolio, new PositionGroup(PositionGroupModel, new Position(parameters.Security, parameters.Quantity))
                                                                     ));

            Assert.AreEqual(expected.Value, actual.Value,
                            $"{PositionGroupModel.GetType().Name}:{nameof(GetMaintenanceMargin)}"
                            );

            reentry = false;
            return(expected);
        }