12 개월 (1 년) 동안 내 포트폴리오를 재조정하기 위해 Mean-variance optimization을 사용하는 코드를 작성해야합니다. 유일한 것은 각 리 밸런싱 후에 어떻게 자산 수를 늘릴 지 결정해야한다는 것입니다. 반올림 할 때, 새로운 포트폴리오 가치 (거래 비용을 뺀 이후)와 기존 포트폴리오 가치의 차이가 약 $ 3000.00의 최대 한도까지 양수인지 확인해야합니다.MATLAB : 내 벡터를 반복하고 위아래로 반올림하는 방법
예를 들어, 자산의 나의 초기 수 있었다 :
첫 번째 기간 동안 자산의 나의 새로운 재조정 수x_int = [4500, 6000, 0, 0, 0, 500, 1550, 0, 1000, 0];
이었다
x_new = [2490.67, 4401.78, 1502.30, 0, 1010.45, 2803.85, 3489.77, 0, 650.98, 1001.87];
내 초기 포트폴리오 값이 $ 1,897,560.30
했다 첫 번째 기간 동안의 내 재조정 된 포트폴리오 가치는 1,658,923.76 달러 (모든 자산 수치를 반올림 한 후)와 2,001,876.95 달러로 나타났습니다 (모든 자산 수치를 반올림 한 후 저녁을 먹다).
내 x_new
값을 반복하여 각 개별 자산 수를 반올림 및 반 내림하고 내 둥근 자산이 나에게 초기 포트폴리오에서 뺄 때 새로운 포트폴리오 가치를 부여하는지 확인하십시오. 값이 내 기준을 충족합니다
고마워요!
어떻게 반올림하여 큰 차이가 있습니까? 'round (2490.67) = 2491'이기 때문에이 [round'] (https://www.mathworks.com/help/matlab/ref/round.html) 함수에 대해 말하는 것이 아닙니다. –
예, 반올림은 주식 가격에 따라 큰 차이를 만들 수 있습니다. 주가가 $ 250.00의 가치가 있다면 1000 또는 1001 주를 갖는 것이 중요한 가격 차이가됩니다. round 함수가 10 진수 값에 따라 반올림하기 때문에 ceil과 floor 함수를 사용했습니다. (내가 원하지 않는) –
당신이 찾고있는 것이 확실하지 않습니다 : sum (round (x_new)) - sum (x_new)'? –