Hello everybody,
I face this streange problem
i try to find opportunity cost measure for my portfolio and i run this code:
function [opcost] = expopportcost(Retwv,Retnv,g)
i = 0;
exponential_utility_wv = -exp(-(1+Retwv).*g)./g;
expected_utility_wv = sum(exponential_utility_wv)/length(Retwv);
for theta = -0.5:0.0001:0.5
exponential_utility_nv = -exp(-(1+Retnv+theta).*g)./g;
i = i+1;
objective_function(i) = abs(expected_utility_wv - sum(exponential_utility_nv/length(Retwv)));
end
[val, position] = min(objective_function);
theta = -0.5 + 0.0001*(position-1);
opcost = theta;
end
Its for exponential utility and Retwv = xlsread("file1.xlsx") and Retnv=xlsread("file2.xlsx") ......the returns for two assets and g=2 (risk averse coefficient) i define the g.
when i run the code with monthly retuns = 38 monthly observations everything is fine!
but when i run the code with daily returns = 755 daily observations always the "val = NaN" and the result is -0.5 which is wrong!!!
i change only the returns in excel files ....i tried to change the format of values in excel but i think this is not problem...
Why this happend? i need help immidiately!
thanks in advance!!

4 件のコメント

Walter Roberson
Walter Roberson 2019 年 4 月 16 日
-0.5 exactly or that minus 0.0001?
Panos Raptis
Panos Raptis 2019 年 4 月 16 日
-0.5
because val = NaN and position = 1
so theta=-0.5
thanks for the reply
Walter Roberson
Walter Roberson 2019 年 4 月 17 日
Can you attach the files?
Panos Raptis
Panos Raptis 2019 年 4 月 17 日
im sorry for the delay response
i attach the files with returns monthly and daily for two assets
g=2
if you run monthly everything its fine
but when you run daily val=NaN and position=1 and theta = -0.5

サインインしてコメントする。

 採用された回答

Walter Roberson
Walter Roberson 2019 年 4 月 17 日

1 投票

Line 265 of your Retnv_daily.xls file contains 'RP' instead of a number and so is being replaced with NaN.
You might want to add the 'omitnan' flag to your sum() calls.

3 件のコメント

Panos Raptis
Panos Raptis 2019 年 4 月 17 日
yes my wrong when i copy the values, but its same the result is -0.5.....i substitute the rp with number
Walter Roberson
Walter Roberson 2019 年 4 月 17 日
With the revised file, I get 0.0025 for the daily.
Panos Raptis
Panos Raptis 2019 年 4 月 17 日
yes you are right ....i will check it again beacuse i have many files with returns and i had the same result.
thanks a lot for your time!!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by