public void AddAllInvestedConstraint()
        {
            var universe = from instrument in this
                           select instrument.ID;

            Constraints.Add(LinearConstraint.Create(universe, Relational.Equal, 1));
        }
        private void setTargetReturnConstraints(double targetReturn)
        {
            // Sum of all weighted returns should be equal to the target return
            var instList = from mr in _samplePortfolio
                           select new KeyValuePair <string, double>(mr.ID, mr.Mean);

            _samplePortfolio.Constraints.Add(LinearConstraint.Create(instList.ToDictionary(a => a.Key, b => b.Value), Relational.Equal, targetReturn));
        }
 public void AddLongOnlyConstraint()
 {
     foreach (var instrument in this)
     {
         // No short positions allowed -> min = 0
         Constraints.Add(LinearConstraint.Create(instrument.ID, Relational.Larger, 0));
     }
 }
 public void AddBoxConstraints(HashSet <string> assets, double lowerlimit, double upperlimit)
 {
     // check if asset in portfolio
     foreach (var asset in assets)
     {
         Constraints.Add(LinearConstraint.Create(asset, Relational.Smaller, upperlimit));
         Constraints.Add(LinearConstraint.Create(asset, Relational.Larger, lowerlimit));
     }
 }
 public void AddGroupConstraints(HashSet <string> assets, double lowerlimit, double upperlimit)
 {
     Constraints.Add(LinearConstraint.Create(assets, Relational.Smaller, upperlimit));
     Constraints.Add(LinearConstraint.Create(assets, Relational.Larger, lowerlimit));
 }
 public void AddBoxConstraint(string asset, double lowerlimit, double upperlimit)
 {
     // check if asset in portfolio
     Constraints.Add(LinearConstraint.Create(asset, Relational.Smaller, upperlimit));
     Constraints.Add(LinearConstraint.Create(asset, Relational.Larger, lowerlimit));
 }