예제 #1
0
        public Loan(CapitalStrategy capitalStrategy,
                    double commitment,
                    double outstanding,
                    int riskRating,
                    DateTime?maturity,
                    DateTime?expiry)
        {
            this.commitment      = commitment;
            this.outstanding     = outstanding;
            this.riskRating      = riskRating;
            this.maturity        = maturity;
            this.expiry          = expiry;
            this.capitalStrategy = capitalStrategy;

            if (capitalStrategy is null)
            {
                if (expiry is null)
                {
                    this.capitalStrategy = new CapitalStrategyTermLoan();
                }
                else if (maturity is null)
                {
                    this.capitalStrategy = new CapitalStrategyRevolver();
                }
                else
                {
                    this.capitalStrategy = new CapitalStrategyRCTL();
                }
            }
        }
예제 #2
0
 public Loan(float notional, float outstanding, int rating, DateTime expiry)
 {
     this._strategy    = new TermROC();
     this._notional    = notional;
     this._outstanding = outstanding;
     this._rating      = rating;
     this._expiry      = expiry;
 }
예제 #3
0
 public Loan(CapitalStrategy capitalStrategy, double commitment, int riskRating, DateTime maturity, DateTime expiry)
 {
     this.CapitalStrategy = capitalStrategy;
     this.Commitment      = commitment;
     this.RiskRating      = riskRating;
     this.Maturity        = maturity;
     this.Expiry          = expiry;
 }
예제 #4
0
 public Loan(Single notional, Single outstanding, Int32 rating, DateTime expiry)
 {
     this._strategy    = new TermROC();
     this._notional    = notional;
     this._outstanding = outstanding;
     this._rating      = rating;
     this._expiry      = expiry;
 }
예제 #5
0
 public Loan(float notional, float outstanding, int rating, DateTime expiry, DateTime maturity)
 {
     this._strategy    = new RevolvingTermROC();
     this._notional    = notional;
     this._outstanding = outstanding;
     this._rating      = rating;
     this._expiry      = expiry;
     this._maturity    = maturity;
 }
예제 #6
0
 public static Loan CreateRevolver(
     CapitalStrategy riskAdjustedCapitalStrategy,
     double commitment,
     double outstanding,
     int riskRating,
     DateTime?expiry)
 {
     return(new Loan(riskAdjustedCapitalStrategy, commitment, outstanding, riskRating, null, expiry));
 }
예제 #7
0
 public static Loan CreateRCTL(
     CapitalStrategy riskAdjustedCapitalStrategy,
     double outstanding,
     int riskRating,
     DateTime maturity,
     DateTime expiry)
 {
     return(new Loan(riskAdjustedCapitalStrategy, outstanding, outstanding, riskRating, maturity, expiry));
 }
예제 #8
0
 public Loan(Single notional, Single outstanding, Int32 rating, DateTime expiry, DateTime maturity)
 {
     this._strategy    = new RevolvingTermROC();
     this._notional    = notional;
     this._outstanding = outstanding;
     this._rating      = rating;
     this._expiry      = expiry;
     this._maturity    = maturity;
 }
예제 #9
0
 public Loan(CapitalStrategy strategy, float notional, float outstanding,
             int rating, DateTime expiry, DateTime maturity)
 {
     this._strategy    = strategy;
     this._notional    = notional;
     this._outstanding = outstanding;
     this._rating      = rating;
     this._expiry      = expiry;
     this._maturity    = maturity;
 }
예제 #10
0
 // Example of: catch-all constructor
 public Loan(CapitalStrategy strategy, Single notional, Single outstanding,
             Int32 rating, DateTime expiry, DateTime?maturity)
 {
     this._strategy    = strategy;
     this._notional    = notional;
     this._outstanding = outstanding;
     this._rating      = rating;
     this._expiry      = expiry;
     this._maturity    = maturity;
 }
 public Loan(double notional,
             double outstanding,
             int rating,
             DateTime?expiry)
 {
     this.strategy    = new TermROC();
     this.notional    = notional;
     this.outstanding = outstanding;
     this.rating      = rating;
     this.expiry      = expiry;
 }
 public Loan(double notional,
             double outstanding,
             int rating,
             DateTime?expiry,
             DateTime?maturity)
 {
     this.strategy    = new RevolvingTermROC();
     this.notional    = notional;
     this.outstanding = outstanding;
     this.rating      = rating;
     this.expiry      = expiry;
     this.maturity    = maturity;
 }
 public Loan(CapitalStrategy strategy,
             double notional,
             double outstanding,
             int rating,
             DateTime?expiry,
             DateTime?maturity)
 {
     this.strategy    = strategy;
     this.notional    = notional;
     this.outstanding = outstanding;
     this.rating      = rating;
     this.expiry      = expiry;
     this.maturity    = maturity;
 }
예제 #14
0
        public void Sample()
        {
            var      commitment = 0.00;
            var      riskRating = 0;
            DateTime maturity   = new DateTime();
            Loan     termLoan   = Loan.CreateTermLoan(commitment, riskRating, maturity);

            var  riskAdjustedCapitalStrategy = new CapitalStrategy();
            var  outstanding = 0.0;
            Loan termLoan2   = Loan.CreateTermLoan(
                riskAdjustedCapitalStrategy,
                commitment,
                outstanding,
                riskRating,
                maturity,
                null);

            Loan revolver = Loan.CreateRevolver(commitment, outstanding, riskRating, maturity, null);
        }
예제 #15
0
 public Loan(CapitalStrategy capitalStrategy, double commitment, int riskRating, DateTime?maturity, DateTime?expiry)
     : this(capitalStrategy, commitment, 0.0, riskRating, maturity, expiry)
 {
 }
예제 #16
0
 public static Loan CreateTermLoan(CapitalStrategy riskAdjustedCapitalStrategy, double commitment, double outstanding, int riskRating, DateTime maturity, DateTime?expiry)
 {
     return(new Loan(riskAdjustedCapitalStrategy, commitment, outstanding, riskRating, maturity, null));
 }