exit flag -2
4 次查看(过去 30 天)
显示 更早的评论
Hi, I have the following code which returns exit flag -2. I've tried using different algorithms and different initial starting values. But I'm not sure what to do next. Thanks!
for iPt = 1:nFrontierPts %This is only looping over the FX overlay - I'm adding the exogenous portfolio at the final step
%Max iter and funevals small while debugging - need to increase to deal with exit flag 0
%Currency Specific Frontier
options = optimoptions(@fmincon,'Algorithm','interior-point','MaxIter',1000,'MaxFunEvals',10000);
targetVar_cs = minVar_cs + (iPt-1)*VarIncr_cs;
[tempWts_cs,FVAL_cs,EXITFLAG_cs,OUTPUT_cs] =fmincon(@(w) ERObjective(w,ExpFXret_cs_t),w0_cs,[],[],[],[],LB_cs,UB_cs, @(w) nonlcon2(w,targetVar_cs,teCap,AssetReturns(t-59:t,1),csAssetReturns(t-59:t,2:7),equRet(t-59:t),covCap),options);
% [tempWts_cs,FVAL_cs,EXITFLAG_cs,OUTPUT_cs] =fmincon(@(w) ERObjective(w,ExpFXret_cs_t),w0_cs,[],[],[],[],LB_cs,UB_cs, @(w) nonlcon2(w,targetVar_cs,100,AssetReturns(t-59:t,1),csAssetReturns(t-59:t,2:7),equRet(t-59:t),100),options);
if EXITFLAG_cs ==-2
w0_cs = UB_cs';
options = optimoptions(@fmincon,'Algorithm','sqp','MaxIter',1000,'MaxFunEvals',10000);
[tempWts_cs,FVAL_cs,EXITFLAG_cs,OUTPUT_cs] =fmincon(@(w) ERObjective(w,ExpFXret_cs_t),w0_cs,[],[],[],[],LB_cs,UB_cs, @(w) nonlcon2(w,targetVar_cs,teCap,AssetReturns(t-59:t,1),csAssetReturns(t-59:t,2:7),equRet(t-59:t),covCap),options);
if EXITFLAG_cs==-2
options = optimoptions(@fmincon,'Algorithm','active-set','MaxIter',1000,'MaxFunEvals',10000);
[tempWts_cs,FVAL_cs,EXITFLAG_cs,OUTPUT_cs] =fmincon(@(w) ERObjective(w,ExpFXret_cs_t),w0_cs,[],[],[],[],LB_cs,UB_cs, @(w) nonlcon2(w,targetVar_cs,teCap,AssetReturns(t-59:t,1),csAssetReturns(t-59:t,2:7),equRet(t-59:t),covCap),options);
end
if EXITFLAG_cs==-2
for ct = 1:10
w0_cs = UB_cs'*rand(1);
options = optimoptions(@fmincon,'Algorithm','active-set','MaxIter',1000,'MaxFunEvals',10000);
[tempWts_cs,FVAL_cs,EXITFLAG_cs,OUTPUT_cs] =fmincon(@(w) ERObjective(w,ExpFXret_cs_t),w0_cs,[],[],[],[],LB_cs,UB_cs, @(w) nonlcon2(w,targetVar_cs,teCap,AssetReturns(t-59:t,1),csAssetReturns(t-59:t,2:7),equRet(t-59:t),covCap),options);
if EXITFLAG_cs ~= -2
break;
end
end
end
end
end
I'm not sure what else to do next. Thanks!
21 个评论
Walter Roberson
2018-10-15
(exit flag 2 is "No feasible point was found.")
Probably your non-linear constraints are difficult to satisfy.
It is not easy for us to give more advice without the initial values and code for ERObjective and nonlcon2
DrLoz
2018-10-15
编辑:DrLoz
2018-10-15
Hi Walter, does this help?
function [c, ceq] = nonlcon2(w,volcap,teCap,Aud6040ret,FXret,equRet,covCap)
% nonlcon1: add TE constraint
% nonlcon2: add equity beta/correlation constraint
ret_w = Aud6040ret+FXret*w;
covMat=cov(equRet,FXret*w)*12;
%Inequality Constraints (Less than zero)
c(1) = std(ret_w)*sqrt(12) - volcap; %Vol to be less than 60/40 with country specific hedging strategy
c(2) = std(FXret*w)*sqrt(12) - teCap; %Tracking error to exogenous 60/40 asset allocation constraint
c(3) = covMat(1,2) - covCap; %Covariance of FX overlay to be less than covariance of FX exposure resulting from benchmark hedging strategy
% c = [];
%Equality Constraint
ceq = [];
% ceq = std(ret_w)*sqrt(12) - volcap;
%ceq(1) = (BondRisk-EqRisk)*PctRisk;
end
function [fval] = ERObjective(w,ExpRet)
fval = -ExpRet*w;
Walter Roberson
2018-10-15
So for initial values I should use
nFrontierPts = 1;
minVar_cs = rand();
VarIncr_cs = rand();
w0_cs = rand(6,1); %60x6 array * w must be size 60x1
ExpFXret_cs_t = rand(1, 6); %ExpRet * w must be scalar, and w is 6 x 1 so this must be 1 x 6
LB_cs = randn(1, 6);
UB_cs = abs(LB_cs) + rand(1, 6);
targetVar_cs = rand();
teCap = rand();
max_ass = 70;
t = randi([60 max_ass-1]);
AssetReturns = rand(max_ass, 7);
csAssetReturns = rand(max_ass, 7);
equRet = rand(1, max_ass);
covCap = rand();
?
DrLoz
2018-10-15
THese are my initial values and bounds:
nFrontierPts =
20
minVar_cs =
7.4804e-07
VarIncr_cs =
-3.9370e-08
w0_cs =
1.0e-05 *
0.4445
0.1251
0.2048
0.5538
0.1801
0.1973
ExpFXret_cs_t =
-0.0180 -0.0639 -0.0391 -0.0144 -0.0444 -0.0405
LB_cs =
0 0 0 0 0 0
UB_cs =
0.2743 0.0897 0.0599 0.0316 0.0162 0.0104
targetVar_cs =
7.4804e-07
teCap =
0.0239
covCap =
-0.0021
Walter Roberson
2018-10-15
.. That's a question. You said nothing about the sizes or ranges of the various arrays, so I had to analyze the code to figure out what the sizes should be, but I have no information about the ranges. And I don't really expect random values to correlate well.
Walter Roberson
2018-10-15
Your tolerances are really tight, and it is doubtful that they can be reached.
By substituting symbolic values for w in your nonlinear constraint, you get the constraints (approximated)
3.464101615137755*(0.01694915254237288*abs(0.02886816362771872*W1 - 0.03919406352959544*W2 - 0.01471540136021817*W3 + 0.001764295435917194*W4 + 0.02169337934246846*W5 + 0.003808776033319812*W6 - 0.007810693788828932)^2 + 0.01694915254237288*abs(0.02855036042080595*W1 + 0.05246672670654582*W2 + 0.01344316226620105*W3 + 0.05689676429094718*W4 + 0.02513266972362289*W5 + 0.01493600721644268*W6 + 0.006573339283632679)^2 + 0.01694915254237288*abs(0.1008818933232127*W1 + 0.03363397981747138*W2 + 0.09193710929326652*W3 + 0.06260122318826636*W4 + 0.0314784317932701*W5 - 0.01638339436670971*W6 - 0.0362581320732622)^2 + 0.01694915254237288*abs(0.009944527705669346*W1 + 0.004801202173645304*W2 + 0.03746771896868998*W3 + 0.04024934172509101*W4 - 0.009168549520271511*W5 + 0.07719767506189507*W6 - 0.01752969683179822)^2 + 0.01694915254237288*abs(0.001443991565420401*W1 + 0.009336049413569379*W2 + 0.01642127430543069*W3 - 0.01760146926307485*W4 + 0.06357473155100584*W5 + 0.02317444687843411*W6 - 0.009756550245816604)^2 + 0.01694915254237288*abs(0.06386285687709857*W1 + 0.03216806993093482*W2 + 0.03733988696681619*W3 + 0.05808236721427315*W4 + 0.03579942317781597*W5 - 0.004628231701378556*W6 - 0.02568921578155649)^2 + 0.01694915254237288*abs(0.1637096021144607*W1 + 0.06431269847065455*W2 + 0.232211118801498*W3 + 0.06894874064470538*W4 + 0.0386202329205308*W5 + 0.1252409436547383*W6 - 0.09657637505125539)^2 + 0.01694915254237288*abs(0.070467758765154*W1 + 0.005039429448805956*W2 + 0.08544372221730149*W3 + 0.02197201985753841*W4 + 0.0259575410724639*W5 + 0.0005507631252086938*W6 - 0.03480264849756702)^2 + 0.01694915254237288*abs(0.00009767920594915454*W1 - 0.002344294880547639*W2 + 0.03711707855930765*W3 + 0.00483001928496737*W4 - 0.004560979806947093*W5 + 0.0007797227047124304*W6 - 0.004590387658694567)^2 + 0.01694915254237288*abs(0.01069903165890184*W1 - 0.01591310058623983*W2 + 0.03116878745387571*W3 + 0.02216149003455678*W4 + 0.01005456699799805*W5 + 0.004097689286192633*W6 + 0.002063401415436799)^2 + 0.01694915254237288*abs(0.001360938054981699*W2 - 0.004697382636704596*W1 + 0.00796215864036113*W3 - 0.02769392943175905*W4 - 0.02065530264663334*W5 + 0.00009188255972420641*W6 + 0.03210173899669516)^2 + 0.01694915254237288*abs(0.02147919509426887*W1 + 0.04967523403587983*W2 + 0.004574993153138882*W3 + 0.02089555764946435*W4 + 0.008364072833520079*W5 + 0.05465864399232639*W6 - 0.0173887004394178)^2 + 0.01694915254237288*abs(0.01053879537020961*W2 - 0.01335690571895142*W1 + 0.02128161380304675*W3 + 0.009715067362178451*W4 - 0.00409195917243104*W5 - 0.01744772201190397*W6 + 0.0125760864740233)^2 + 0.01694915254237288*abs(0.004613012626886746*W1 + 0.01279167251159617*W2 - 0.02261524565034841*W3 + 0.004714555441240696*W4 - 0.01146464856401379*W5 + 0.009068086926069481*W6 + 0.005816171087468841)^2 + 0.01694915254237288*abs(0.008714953183499454*W1 + 0.02467649678914332*W2 - 0.002113740479597927*W3 + 0.05293642609160639*W4 - 0.008093406863126714*W5 + 0.02478805726830163*W6 - 0.01200860133889904)^2 + 0.01694915254237288*abs(0.009356529420095148*W2 - 0.01842066629845896*W1 - 0.04097180554439187*W3 + 0.0008109601687445696*W4 + 0.01593669157010873*W5 - 0.03990493268042156*W6 + 0.007767448121098935)^2 + 0.01694915254237288*abs(0.03675987811621339*W1 + 0.0267677261170123*W2 + 0.03299204879710223*W3 + 0.02015164250031051*W4 + 0.01844290288900468*W5 + 0.02171165920971024*W6 - 0.02863963427756737)^2 + 0.01694915254237288*abs(0.01970217439079637*W1 - 0.01153316632893588*W2 + 0.04586317454692194*W3 + 0.01086909741888479*W4 + 0.002600131096182242*W5 - 0.008331068828564873*W6 - 0.02599386882117953)^2 + 0.01694915254237288*abs(0.01738464430445396*W1 + 0.008138446520113994*W2 + 0.01841051171356863*W3 - 0.0003549281839545818*W4 - 0.01241626814822922*W5 + 0.005290320568326172*W6 - 0.01532518460600704)^2 + 0.01694915254237288*abs(0.0007080707274939128*W1 + 0.01571896844807583*W2 - 0.01164908599804523*W3 + 0.01034580887364392*W4 - 0.02739758150760346*W5 + 0.01741575509731348*W6 - 0.04891144590277257)^2 + 0.01694915254237288*abs(0.02413262620627333*W1 - 0.02064897381491306*W2 - 0.05103433808968146*W3 + 0.01026435982902011*W4 + 0.02607308067454012*W5 - 0.008873788536872977*W6 + 0.01768482292562261)^2 + 0.01694915254237288*abs(0.06651952597416343*W1 - 0.03541481294911939*W2 + 0.018732931926384*W3 + 0.1152631439344755*W4 + 0.05049041486163024*W5 - 0.06304357864392114*W6 - 0.007451690392748649)^2 + 0.01694915254237288*abs(0.02153799254550616*W1 + 0.04422940792410311*W2 + 0.01373271323502815*W3 + 0.03590135205744508*W4 + 0.03824231158959929*W5 + 0.03943289428943315*W6 + 0.01259271173448739)^2 + 0.01694915254237288*abs(0.0717409791567266*W1 + 0.004668159722943009*W2 + 0.05347797804619644*W3 + 0.0195776598052941*W4 + 0.03936132432209754*W5 + 0.04133345983698927*W6 - 0.03090593363542517)^2 + 0.01694915254237288*abs(0.09657826715945107*W1 + 0.01571544797081934*W2 + 0.100432340144781*W3 + 0.09617273145565445*W4 + 0.08725383366515311*W5 + 0.01209452300468334*W6 - 0.03844215465488828)^2 + 0.01694915254237288*abs(0.008205755614250419*W1 + 0.02451384853872283*W2 - 0.04554785127616386*W3 + 0.02571331112252121*W4 + 0.01012366048490227*W5 + 0.01770004250771912*W6 + 0.01405875797119326)^2 + 0.01694915254237288*abs(0.04730605195656722*W1 + 0.02231075431262044*W2 + 0.07019703195027168*W3 + 0.0251992351735952*W4 + 0.03169533687847153*W5 + 0.02766700002858129*W6 - 0.01179722528059325)^2 + 0.01694915254237288*abs(0.01990904417022955*W1 + 0.01257948064757184*W2 - 0.001553445057516832*W3 + 0.02060348454891173*W4 + 0.01637651213666353*W5 - 0.009213775962750019*W6 - 0.01531287918276451)^2 + 0.01694915254237288*abs(0.07675846419670106*W1 + 0.02997639671899546*W2 + 0.09506455291229428*W3 + 0.07392825387771304*W4 + 0.06492076833202558*W5 + 0.055292815255988*W6 - 0.04147173977469168)^2 + 0.01694915254237288*abs(0.04445628667505274*W1 + 0.0451927398822294*W2 + 0.04536829115820803*W3 + 0.009528929502412544*W4 - 0.01117507648879752*W5 + 0.04994402302580141*W6 - 0.04582373592017678)^2 + 0.01694915254237288*abs(0.03511086104418825*W1 + 0.01222483262253007*W2 + 0.01519705758928299*W3 + 0.03005925775667203*W4 + 0.02017964095510976*W5 + 0.0009838003227123286*W6 + 0.009305891398178395)^2 + 0.01694915254237288*abs(0.03167144235429219*W1 + 0.01501248308608252*W2 + 0.01854407487268968*W3 + 0.01379518151441924*W4 - 0.04571970230315487*W5 + 0.01967977718481455*W6 - 0.04516663450600488)^2 + 0.01694915254237288*abs(0.02062678364226011*W1 + 0.0287471584998519*W2 + 0.07316802271921027*W3 + 0.02157885454130878*W4 - 0.01425129164017187*W5 + 0.00614409706634094*W6 - 0.033947254887092)^2 + 0.01694915254237288*abs(0.09291853992042099*W1 + 0.03564336641889741*W2 + 0.07895923204055603*W3 + 0.01542179478356823*W4 + 0.05557052912962496*W5 + 0.03951972740886073*W6 + 0.02060317154796509)^2 + 0.01694915254237288*abs(0.03068083387529287*W1 + 0.004481926838663865*W2 + 0.02259161346734443*W3 + 0.01795008279303581*W4 + 0.006191976388562455*W5 + 0.03983644146444127*W6 - 0.006569421445265661)^2 + 0.01694915254237288*abs(0.05852351269317634*W1 + 0.01141742941119108*W2 + 0.03895911804021065*W3 + 0.0134632636713636*W4 + 0.03190474502824164*W5 + 0.0005404305666641333*W6 - 0.007143288844499157)^2 + 0.01694915254237288*abs(0.007351466116568027*W2 - 0.002744092368167093*W1 + 0.08070136826717774*W3 + 0.009656192658019171*W4 + 0.0344816366307748*W5 + 0.007520494113197044*W6 + 0.04505940766613334)^2 + 0.01694915254237288*abs(0.01774539921618855*W1 - 0.001038117044324529*W2 - 0.02430172683174207*W3 + 0.01339682855518195*W4 + 0.02356065275932056*W5 - 0.02453008372812855*W6 + 0.05433962935367405)^2 + 0.01694915254237288*abs(0.01422999148685899*W1 + 0.00811154474464739*W2 + 0.0229023186701592*W3 - 0.01773257107535245*W4 + 0.02939326454724505*W5 + 0.008614005424517005*W6 + 0.01455559199487116)^2 + 0.01694915254237288*abs(0.07988302531680714*W1 + 0.04255412700524384*W2 + 0.09958224847621659*W3 + 0.06213093505626047*W4 + 0.07864722184644252*W5 + 0.05701718833217712*W6 - 0.06581721877353225)^2 + 0.01694915254237288*abs(0.03976964395545513*W1 + 0.04171074031032727*W2 + 0.0147283638633409*W3 + 0.04806033319211359*W4 + 0.03062828804891377*W5 + 0.03767065691454358*W6 + 0.009119733703566463)^2 + 0.01694915254237288*abs(0.02187649009169988*W2 - 0.0008708627629635442*W1 + 0.000645029398526988*W3 + 0.02056945797945245*W4 + 0.001368802453779746*W5 + 0.01084112710461711*W6 + 0.01390151494002642)^2 + 0.01694915254237288*abs(0.09883784473949696*W1 + 0.02786747463804919*W2 + 0.06881421102385962*W3 + 0.001787444081364078*W4 + 0.007431345470142618*W5 + 0.03417390687223425*W6 - 0.01753818715216062)^2 + 0.01694915254237288*abs(0.01269965081111655*W2 - 0.006372856437174658*W1 - 0.07083798506604063*W3 + 0.006174279909978018*W4 + 0.006098107686905393*W5 + 0.006811474495690591*W6 + 0.01906262378045479)^2 + 0.01694915254237288*abs(0.0300307654600832*W1 + 0.03881263854402153*W2 + 0.07651566535041584*W3 + 0.0238818035595951*W4 + 0.01322822667289574*W5 + 0.0741498722542096*W6 - 0.02885959161555577)^2 + 0.01694915254237288*abs(0.08663745146844481*W1 + 0.0505143870948255*W2 + 0.1057912237691433*W3 + 0.05169978521196713*W4 + 0.03744007910851359*W5 + 0.0555552505902806*W6 - 0.04380691989679501)^2 + 0.01694915254237288*abs(0.02272880768513409*W1 + 0.06446656714912356*W2 + 0.05734536362869006*W3 + 0.02440153079080457*W4 - 0.0143362593885688*W5 + 0.06683179101301179*W6 - 0.01522531603641933)^2 + 0.01694915254237288*abs(0.04106554194433897*W1 + 0.01902369380630933*W2 + 0.007176824787647549*W3 + 0.05742440613446706*W4 + 0.01940767541003335*W5 + 0.02330414834268506*W6 - 0.02823965936763612)^2 + 0.01694915254237288*abs(0.02303682116615236*W1 + 0.02216294830708219*W2 + 0.04887160656807747*W3 - 0.01615221673861241*W4 + 0.0004364875809205822*W5 - 0.02722208829187605*W6 - 0.02757853653765512)^2 + 0.01694915254237288*abs(0.02186690145853986*W1 + 0.02747736010074244*W2 - 0.02344962372301732*W3 - 0.004106753612478174*W4 + 0.01352986107272541*W5 - 0.04394316612113153*W6 + 0.01519501356801259)^2 + 0.01694915254237288*abs(0.003658019308915174*W1 + 0.0189640407344436*W2 + 0.01201269451553751*W3 - 0.004828204757109798*W4 + 0.007224338524628275*W5 + 0.02979886464320074*W6 + 0.002367141739534034)^2 + 0.01694915254237288*abs(0.02714227056037189*W1 - 0.001580288180818921*W2 + 0.02966903457573703*W3 + 0.00598819109032903*W4 + 0.01050571944190854*W5 - 0.01679695803207653*W6 - 0.01320834443851661)^2 + 0.01694915254237288*abs(0.009647696036338184*W1 + 0.01201657592918461*W2 + 0.03078168790750854*W3 + 0.00752507913211772*W4 - 0.004219437441703785*W5 + 0.02148067402142711*W6 - 0.006982495025288621)^2 + 0.01694915254237288*abs(0.006643264589449395*W2 - 0.01356666494521429*W1 + 0.02495696052099853*W3 - 0.01181219581776135*W4 + 0.01237951066004357*W5 + 0.003231539612815922*W6 + 0.01786206023749115)^2 + 0.01694915254237288*abs(0.08865234512085652*W1 + 0.01492985268638401*W2 + 0.1126044951091742*W3 + 0.04295748112475387*W4 + 0.06207727202256225*W5 + 0.01742142085389659*W6 - 0.04395458372847656)^2 + 0.01694915254237288*abs(0.007427875772974859*W2 - 0.001373830505684394*W1 + 0.006405223055394406*W3 - 0.02262951055810488*W4 + 0.003719920206690049*W5 + 0.01074196001641798*W6 - 0.0111897654915931)^2 + 0.01694915254237288*abs(0.01080930116484092*W1 - 0.02488816117353245*W2 + 0.015239595777126*W3 + 0.003206867420322533*W4 + 0.006785536461568272*W5 - 0.02048685150945678*W6 + 0.0007355850513886606)^2 + 0.01694915254237288*abs(0.02905721305567356*W1 + 0.02841750527579865*W2 + 0.02591283182092389*W3 + 0.02102079191746823*W4 + 0.005657597731049853*W5 - 0.0008183338529095733*W6 - 0.02206339253037922)^2 + 0.01694915254237288*abs(0.08246047322210136*W1 + 0.006477885181060537*W2 + 0.07855880497071929*W3 + 0.05590772703907129*W4 + 0.04766182200749685*W5 + 0.05344205647378235*W6 - 0.03084950438817905)^2 + 0.01694915254237288*abs(0.02981846512621948*W3 - 0.01129701039935573*W2 - 0.004078084838608044*W1 + 0.01259153543717576*W4 + 0.007142905549828057*W5 - 0.01381147224345163*W6 + 0.00182754627427228)^2)^(1/2) - 0.00000074804 <= 0
3.464101615137755*(0.01694915254237288*abs(0.0717409791567266*W1 + 0.004668159722943009*W2 + 0.05347797804619644*W3 + 0.0195776598052941*W4 + 0.03936132432209754*W5 + 0.04133345983698927*W6)^2 + 0.01694915254237288*abs(0.070467758765154*W1 + 0.005039429448805956*W2 + 0.08544372221730149*W3 + 0.02197201985753841*W4 + 0.0259575410724639*W5 + 0.0005507631252086938*W6)^2 + 0.01694915254237288*abs(0.00009767920594915454*W1 - 0.002344294880547639*W2 + 0.03711707855930765*W3 + 0.00483001928496737*W4 - 0.004560979806947093*W5 + 0.0007797227047124304*W6)^2 + 0.01694915254237288*abs(0.01970217439079637*W1 - 0.01153316632893588*W2 + 0.04586317454692194*W3 + 0.01086909741888479*W4 + 0.002600131096182242*W5 - 0.008331068828564873*W6)^2 + 0.01694915254237288*abs(0.01990904417022955*W1 + 0.01257948064757184*W2 - 0.001553445057516832*W3 + 0.02060348454891173*W4 + 0.01637651213666353*W5 - 0.009213775962750019*W6)^2 + 0.01694915254237288*abs(0.008714953183499454*W1 + 0.02467649678914332*W2 - 0.002113740479597927*W3 + 0.05293642609160639*W4 - 0.008093406863126714*W5 + 0.02478805726830163*W6)^2 + 0.01694915254237288*abs(0.004613012626886746*W1 + 0.01279167251159617*W2 - 0.02261524565034841*W3 + 0.004714555441240696*W4 - 0.01146464856401379*W5 + 0.009068086926069481*W6)^2 + 0.01694915254237288*abs(0.01069903165890184*W1 - 0.01591310058623983*W2 + 0.03116878745387571*W3 + 0.02216149003455678*W4 + 0.01005456699799805*W5 + 0.004097689286192633*W6)^2 + 0.01694915254237288*abs(0.0007080707274939128*W1 + 0.01571896844807583*W2 - 0.01164908599804523*W3 + 0.01034580887364392*W4 - 0.02739758150760346*W5 + 0.01741575509731348*W6)^2 + 0.01694915254237288*abs(0.008205755614250419*W1 + 0.02451384853872283*W2 - 0.04554785127616386*W3 + 0.02571331112252121*W4 + 0.01012366048490227*W5 + 0.01770004250771912*W6)^2 + 0.01694915254237288*abs(0.02153799254550616*W1 + 0.04422940792410311*W2 + 0.01373271323502815*W3 + 0.03590135205744508*W4 + 0.03824231158959929*W5 + 0.03943289428943315*W6)^2 + 0.01694915254237288*abs(0.001360938054981699*W2 - 0.004697382636704596*W1 + 0.00796215864036113*W3 - 0.02769392943175905*W4 - 0.02065530264663334*W5 + 0.00009188255972420641*W6)^2 + 0.01694915254237288*abs(0.02147919509426887*W1 + 0.04967523403587983*W2 + 0.004574993153138882*W3 + 0.02089555764946435*W4 + 0.008364072833520079*W5 + 0.05465864399232639*W6)^2 + 0.01694915254237288*abs(0.05852351269317634*W1 + 0.01141742941119108*W2 + 0.03895911804021065*W3 + 0.0134632636713636*W4 + 0.03190474502824164*W5 + 0.0005404305666641333*W6)^2 + 0.01694915254237288*abs(0.01422999148685899*W1 + 0.00811154474464739*W2 + 0.0229023186701592*W3 - 0.01773257107535245*W4 + 0.02939326454724505*W5 + 0.008614005424517005*W6)^2 + 0.01694915254237288*abs(0.04730605195656722*W1 + 0.02231075431262044*W2 + 0.07019703195027168*W3 + 0.0251992351735952*W4 + 0.03169533687847153*W5 + 0.02766700002858129*W6)^2 + 0.01694915254237288*abs(0.001038117044324529*W2 - 0.01774539921618855*W1 + 0.02430172683174207*W3 - 0.01339682855518195*W4 - 0.02356065275932056*W5 + 0.02453008372812855*W6)^2 + 0.01694915254237288*abs(0.03068083387529287*W1 + 0.004481926838663865*W2 + 0.02259161346734443*W3 + 0.01795008279303581*W4 + 0.006191976388562455*W5 + 0.03983644146444127*W6)^2 + 0.01694915254237288*abs(0.04445628667505274*W1 + 0.0451927398822294*W2 + 0.04536829115820803*W3 + 0.009528929502412544*W4 - 0.01117507648879752*W5 + 0.04994402302580141*W6)^2 + 0.01694915254237288*abs(0.03167144235429219*W1 + 0.01501248308608252*W2 + 0.01854407487268968*W3 + 0.01379518151441924*W4 - 0.04571970230315487*W5 + 0.01967977718481455*W6)^2 + 0.01694915254237288*abs(0.02187649009169988*W2 - 0.0008708627629635442*W1 + 0.000645029398526988*W3 + 0.02056945797945245*W4 + 0.001368802453779746*W5 + 0.01084112710461711*W6)^2 + 0.01694915254237288*abs(0.02413262620627333*W1 - 0.02064897381491306*W2 - 0.05103433808968146*W3 + 0.01026435982902011*W4 + 0.02607308067454012*W5 - 0.008873788536872977*W6)^2 + 0.01694915254237288*abs(0.09657826715945107*W1 + 0.01571544797081934*W2 + 0.100432340144781*W3 + 0.09617273145565445*W4 + 0.08725383366515311*W5 + 0.01209452300468334*W6)^2 + 0.01694915254237288*abs(0.07675846419670106*W1 + 0.02997639671899546*W2 + 0.09506455291229428*W3 + 0.07392825387771304*W4 + 0.06492076833202558*W5 + 0.055292815255988*W6)^2 + 0.01694915254237288*abs(0.02272880768513409*W1 + 0.06446656714912356*W2 + 0.05734536362869006*W3 + 0.02440153079080457*W4 - 0.0143362593885688*W5 + 0.06683179101301179*W6)^2 + 0.01694915254237288*abs(0.0300307654600832*W1 + 0.03881263854402153*W2 + 0.07651566535041584*W3 + 0.0238818035595951*W4 + 0.01322822667289574*W5 + 0.0741498722542096*W6)^2 + 0.01694915254237288*abs(0.007351466116568027*W2 - 0.002744092368167093*W1 + 0.08070136826717774*W3 + 0.009656192658019171*W4 + 0.0344816366307748*W5 + 0.007520494113197044*W6)^2 + 0.01694915254237288*abs(0.02344962372301732*W3 - 0.02747736010074244*W2 - 0.02186690145853986*W1 + 0.004106753612478174*W4 - 0.01352986107272541*W5 + 0.04394316612113153*W6)^2 + 0.01694915254237288*abs(0.03511086104418825*W1 + 0.01222483262253007*W2 + 0.01519705758928299*W3 + 0.03005925775667203*W4 + 0.02017964095510976*W5 + 0.0009838003227123286*W6)^2 + 0.01694915254237288*abs(0.09291853992042099*W1 + 0.03564336641889741*W2 + 0.07895923204055603*W3 + 0.01542179478356823*W4 + 0.05557052912962496*W5 + 0.03951972740886073*W6)^2 + 0.01694915254237288*abs(0.04106554194433897*W1 + 0.01902369380630933*W2 + 0.007176824787647549*W3 + 0.05742440613446706*W4 + 0.01940767541003335*W5 + 0.02330414834268506*W6)^2 + 0.01694915254237288*abs(0.02303682116615236*W1 + 0.02216294830708219*W2 + 0.04887160656807747*W3 - 0.01615221673861241*W4 + 0.0004364875809205822*W5 - 0.02722208829187605*W6)^2 + 0.01694915254237288*abs(0.02062678364226011*W1 + 0.0287471584998519*W2 + 0.07316802271921027*W3 + 0.02157885454130878*W4 - 0.01425129164017187*W5 + 0.00614409706634094*W6)^2 + 0.01694915254237288*abs(0.009647696036338184*W1 + 0.01201657592918461*W2 + 0.03078168790750854*W3 + 0.00752507913211772*W4 - 0.004219437441703785*W5 + 0.02148067402142711*W6)^2 + 0.01694915254237288*abs(0.03976964395545513*W1 + 0.04171074031032727*W2 + 0.0147283638633409*W3 + 0.04806033319211359*W4 + 0.03062828804891377*W5 + 0.03767065691454358*W6)^2 + 0.01694915254237288*abs(0.02714227056037189*W1 - 0.001580288180818921*W2 + 0.02966903457573703*W3 + 0.00598819109032903*W4 + 0.01050571944190854*W5 - 0.01679695803207653*W6)^2 + 0.01694915254237288*abs(0.08246047322210136*W1 + 0.006477885181060537*W2 + 0.07855880497071929*W3 + 0.05590772703907129*W4 + 0.04766182200749685*W5 + 0.05344205647378235*W6)^2 + 0.01694915254237288*abs(0.01269965081111655*W2 - 0.006372856437174658*W1 - 0.07083798506604063*W3 + 0.006174279909978018*W4 + 0.006098107686905393*W5 + 0.006811474495690591*W6)^2 + 0.01694915254237288*abs(0.09883784473949696*W1 + 0.02786747463804919*W2 + 0.06881421102385962*W3 + 0.001787444081364078*W4 + 0.007431345470142618*W5 + 0.03417390687223425*W6)^2 + 0.01694915254237288*abs(0.07988302531680714*W1 + 0.04255412700524384*W2 + 0.09958224847621659*W3 + 0.06213093505626047*W4 + 0.07864722184644252*W5 + 0.05701718833217712*W6)^2 + 0.01694915254237288*abs(0.08663745146844481*W1 + 0.0505143870948255*W2 + 0.1057912237691433*W3 + 0.05169978521196713*W4 + 0.03744007910851359*W5 + 0.0555552505902806*W6)^2 + 0.01694915254237288*abs(0.004078084838608044*W1 + 0.01129701039935573*W2 - 0.02981846512621948*W3 - 0.01259153543717576*W4 - 0.007142905549828057*W5 + 0.01381147224345163*W6)^2 + 0.01694915254237288*abs(0.08865234512085652*W1 + 0.01492985268638401*W2 + 0.1126044951091742*W3 + 0.04295748112475387*W4 + 0.06207727202256225*W5 + 0.01742142085389659*W6)^2 + 0.01694915254237288*abs(0.003658019308915174*W1 + 0.0189640407344436*W2 + 0.01201269451553751*W3 - 0.004828204757109798*W4 + 0.007224338524628275*W5 + 0.02979886464320074*W6)^2 + 0.01694915254237288*abs(0.01080930116484092*W1 - 0.02488816117353245*W2 + 0.015239595777126*W3 + 0.003206867420322533*W4 + 0.006785536461568272*W5 - 0.02048685150945678*W6)^2 + 0.01694915254237288*abs(0.007427875772974859*W2 - 0.001373830505684394*W1 + 0.006405223055394406*W3 - 0.02262951055810488*W4 + 0.003719920206690049*W5 + 0.01074196001641798*W6)^2 + 0.01694915254237288*abs(0.006643264589449395*W2 - 0.01356666494521429*W1 + 0.02495696052099853*W3 - 0.01181219581776135*W4 + 0.01237951066004357*W5 + 0.003231539612815922*W6)^2 + 0.01694915254237288*abs(0.02905721305567356*W1 + 0.02841750527579865*W2 + 0.02591283182092389*W3 + 0.02102079191746823*W4 + 0.005657597731049853*W5 - 0.0008183338529095733*W6)^2 + 0.01694915254237288*abs(0.02886816362771872*W1 - 0.03919406352959544*W2 - 0.01471540136021817*W3 + 0.001764295435917194*W4 + 0.02169337934246846*W5 + 0.003808776033319812*W6)^2 + 0.01694915254237288*abs(0.02855036042080595*W1 + 0.05246672670654582*W2 + 0.01344316226620105*W3 + 0.05689676429094718*W4 + 0.02513266972362289*W5 + 0.01493600721644268*W6)^2 + 0.01694915254237288*abs(0.1008818933232127*W1 + 0.03363397981747138*W2 + 0.09193710929326652*W3 + 0.06260122318826636*W4 + 0.0314784317932701*W5 - 0.01638339436670971*W6)^2 + 0.01694915254237288*abs(0.001443991565420401*W1 + 0.009336049413569379*W2 + 0.01642127430543069*W3 - 0.01760146926307485*W4 + 0.06357473155100584*W5 + 0.02317444687843411*W6)^2 + 0.01694915254237288*abs(0.009944527705669346*W1 + 0.004801202173645304*W2 + 0.03746771896868998*W3 + 0.04024934172509101*W4 - 0.009168549520271511*W5 + 0.07719767506189507*W6)^2 + 0.01694915254237288*abs(0.06386285687709857*W1 + 0.03216806993093482*W2 + 0.03733988696681619*W3 + 0.05808236721427315*W4 + 0.03579942317781597*W5 - 0.004628231701378556*W6)^2 + 0.01694915254237288*abs(0.1637096021144607*W1 + 0.06431269847065455*W2 + 0.232211118801498*W3 + 0.06894874064470538*W4 + 0.0386202329205308*W5 + 0.1252409436547383*W6)^2 + 0.01694915254237288*abs(0.009356529420095148*W2 - 0.01842066629845896*W1 - 0.04097180554439187*W3 + 0.0008109601687445696*W4 + 0.01593669157010873*W5 - 0.03990493268042156*W6)^2 + 0.01694915254237288*abs(0.01738464430445396*W1 + 0.008138446520113994*W2 + 0.01841051171356863*W3 - 0.0003549281839545818*W4 - 0.01241626814822922*W5 + 0.005290320568326172*W6)^2 + 0.01694915254237288*abs(0.03675987811621339*W1 + 0.0267677261170123*W2 + 0.03299204879710223*W3 + 0.02015164250031051*W4 + 0.01844290288900468*W5 + 0.02171165920971024*W6)^2 + 0.01694915254237288*abs(0.01053879537020961*W2 - 0.01335690571895142*W1 + 0.02128161380304675*W3 + 0.009715067362178451*W4 - 0.00409195917243104*W5 - 0.01744772201190397*W6)^2 + 0.01694915254237288*abs(0.06651952597416343*W1 - 0.03541481294911939*W2 + 0.018732931926384*W3 + 0.1152631439344755*W4 + 0.05049041486163024*W5 - 0.06304357864392114*W6)^2)^(1/2) - 0.0239 <= 0
0.0021 - 0.009297155142165595*W2 - 0.02916361600811235*W3 - 0.01287926224525597*W4 - 0.006723535156931461*W5 - 0.0138267870327616*W6 - 0.02357251266548311*W1 <= 0
In the first and second of those, you are adding a number of non-negative terms -- terms forced to be non-negative by the various abs() and ^2 . Then at the end you subtract 0.00000074804 from the first (which is your targetVar_cs) and 0.0239 from the second (which is your teCap). The first of those is going to be difficult to satisfy.
The third constraint puts some lower bounds on variables. If you make it the equality, you can solve for W1, and substitute into the first constraint. Once done, you can use repeated solving of the derivatives for 0 to find a set of values that (hopefully) minimizes the first constraint. If my calculations are correct, then about 0.08-ish is the minima -- but I need to cross-check that. If that is correct, then it is not possible to satisfy the constraint -- though possibly you could do better than 0.08-ish. I need to keep testing.
DrLoz
2018-10-15
Thanks so much Walter! It will take me a little while to understand what you've written!!!
Walter Roberson
2018-10-15
编辑:Walter Roberson
2018-10-15
With further testing, I find that within the bounds you have established, it is difficult for c(1) of your nonlinear bounds to be smaller than about 0.06960, but for nonlinear constraints, all of the c values must be <= 0.
At the moment the smallest c(1) in my tests is found at [0.27095896530759056, 0.0879588055366868626, 0.0567802973620968668, 0.0280586544904970411, 0.0012036650345792555, 0.00935621223782138849] where it has a value of 0.0696019946898777109 . This is about 10^5 times larger than the cutoff you are asking for.
Walter Roberson
2018-10-15
If you leave the lower bound at 0 but remove the upper bound, then you can do a bit better. I am not sure yet how much better you can do.
Walter Roberson
2018-10-15
Not a lot better. The c(1) value still does not get below about 0.0662 (needs to be negative or 0).
I guess negative porfolio ratings are not acceptable? I think you can reach the constraints with negative portfolios ;-)
Walter Roberson
2018-10-15
Ah, when I permit negatives as well, I still can't get c(1) below about 0.06065 in the range I tried (out to -10000). It is looking as if there might simply be no position at all that satisfies c(1) .
DrLoz
2018-10-15
ok thanks for all your help Walter. I will have to try something else! You've saved me loads of time though. I really appreciate the help. :o)
Walter Roberson
2018-10-16
Okay, I will look at it when I am able. I have some dental work when in the morning, so I am not sure whether I will feel up to doing anything for a couple of days.
回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!发生错误
由于页面发生更改,无法完成操作。请重新加载页面以查看其更新后的状态。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
亚太
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)