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)); }