- end
- tn = turnover_constraints(opt.tn, opt.sets; datatype = datatype, strict = opt.strict)
- fees = fees_constraints(opt.fees, opt.sets; datatype = datatype, strict = opt.strict)
- plr = phylogeny_constraints(opt.ple, pr; iv = rd.iv, ivpa = rd.ivpa, rd = rd,
- cle_pr = opt.cle_pr)
- ret = factory(opt.ret, pr)
- return ProcessedJuMPOptimiserAttributes(pr, wb, lt, st, lcsr, ctr, gcardr, sgcardr,
- smtx, sgmtx, slt, sst, sglt, sgst, tn, fees,
- plr, ret)
- end
- function no_bounds_optimiser(opt::JuMPOptimiser, args...)
- pnames = Tuple(setdiff(propertynames(opt), (:ret,)))
- return JuMPOptimiser(; ret = no_bounds_returns_estimator(opt.ret, args...),
- NamedTuple{pnames}(getproperty.(opt, pnames))...)
- end
- function processed_jump_optimiser(opt::JuMPOptimiser, rd::ReturnsResult; dims::Int = 1)
- (; pr, wb, lt, st, lcsr, ctr, gcardr, sgcardr, smtx, sgmtx, slt, sst, sglt, sgst, tn, fees, plr, ret) = processed_jump_optimiser_attributes(opt,
- rd;
- dims = dims)
- return JuMPOptimiser(; pe = pr, slv = opt.slv, wb = wb, bgt = opt.bgt, sbgt = opt.sbgt,
- lt = lt, st = st, lcse = lcsr, cte = ctr, gcarde = gcardr,