[R-SIG-Finance] PnL data - PerformanceAnalytics /
Johan Palleschitz
p@||e@ch|tz @end|ng |rom out|ook@com
Sun Feb 7 18:10:30 CET 2021
Good afternoon Brian and thank you for getting back to me, much appreciated!
I have attached the sample data below.
data as:
"xts" "zoo"
Weights calculated as
df_w <- df[,1:3]/rowSums(df[,1:3])
> df
Date
FX
Shares
Commodities
2020-01-02
892
8,609
17,864
2020-01-03
9,971
10,454
3,478
2020-01-04
9,446
19,453
40,373
2020-01-05
- 7,362
15,760
35,030
2020-01-06
- 5,006
13,780
- 1,786
2020-01-07
- 3,760
757
- 34,151
2020-01-08
- 3,739
6,265
- 41,606
2020-01-09
- 5,589
22,874
- 23,932
2020-01-10
- 8,482
18,005
10,922
2020-01-11
- 4,884
2,465
25,374
2020-01-12
- 1,140
16,825
36,941
2020-01-13
- 4,341
1,413
17,187
2020-01-14
- 746
18,655
7,193
2020-01-15
- 497
- 20,688
- 30,418
2020-01-16
- 9,872
- 9,579
6,703
2020-01-17
6,011
- 11,616
16,286
2020-01-18
4,023
- 8,166
45,782
2020-01-19
5,446
- 23,821
26,343
2020-01-20
1,173
- 3,731
1,126
2020-01-21
3,858
- 17,266
27,975
2020-01-22
8,586
- 9,468
38,842
2020-01-23
467
11,088
19,451
2020-01-24
- 9,049
14,817
2,098
2020-01-25
- 2,324
23,952
35,510
2020-01-26
- 6,534
2,902
- 20,131
2020-01-27
- 1,641
7,147
- 6,921
2020-01-28
3,974
13,986
- 24,161
I have tested some functions from PerformanceAnalytics
1. table.Arbitrary(df,
metrics=c("VaR","mean"),
metricsNames=c("modVaR","mean"),
p=.95)
FX Shares Commodities
Average Return -782.1784 4624.844 8569.309
Standard Deviation 5705.4913 13602.512 24924.682
Ok
2. table.Arbitrary(df,
metrics=c("VaR", "ES"),
metricsNames=c("Modified VaR","Modified Expected Shortfall"))
VaR calculation produces unreliable result (risk over 100%) for column: 1 : 9603.44809651169
VaR calculation produces unreliable result (risk over 100%) for column: 1 : 19496.0283854767
VaR calculation produces unreliable result (risk over 100%) for column: 1 : 34970.4906301062,
etc.
FX Shares Commodities
modVaR -1.0000 -1.000 -1.000
mean -782.1784 4624.844 8569.309
modVaR does not make sense. (well, the values are there, after "VaR calculation produces unreliable result (risk over 100%) for column: 1 : "
Mean works fine.
3. table.Distributions, works fine.
4. table.DownsideRisk, give similar error as table.Arbitrary does above for VaR and ES.
VaR calculation produces unreliable result (risk over 100%) for column: 1 : 8879.0654029
ES calculation produces unreliable result (risk over 100%) for column: 1 : 9460.7561265, .... etc
FX Shares Commodities
Historical VaR (95%) -1.000 -1.000 -1.000000e+00
Historical ES (95%) -1.000 -1.000 -1.000000e+00
Modified VaR (95%) -1.000 -1.000 -1.000000e+00
Modified ES (95%) -1.000 -1.000 -1.000000e+00
5. table.RollingPeriods and table.Stats, works fine.
6. chart.Histogram does not work, same error as above.
7. Expected Shortfall
> # first do normal ES calc
> ES(df, p=.95, method="historical")
ES calculation produces unreliable result (risk over 100%) for column: 1 : 9460.7561265
ES calculation produces unreliable result (risk over 100%) for column: 2 : 22254.650985
ES calculation produces unreliable result (risk over 100%) for column: 3 : 37878.379905
FX Shares Commodities
ES -1 -1 -1
> # now use modified Cornish Fisher calc to take non-normal distribution into account
> ES(df, p=.95, method="modified")
ES calculation produces unreliable result (risk over 100%) for column: 1 : 10844.7485269339
ES calculation produces unreliable result (risk over 100%) for column: 2 : 22667.3644584819
ES calculation produces unreliable result (risk over 100%) for column: 3 : 40970.5338686356
FX Shares Commodities
ES -1 -1 -1
When i use weights = df_w (df_w <- df[,1:3]/rowSums(df[,1:3])) i get the following error message.
> ES(df, portfolio_method="component", weights = df_w)
Error in ES(df, portfolio_method = "component", weights = df_w) :
number of items in weights not equal to number of columns in R
So my queation is as follows:
1. Can i use the following chart.* table.* with my data? - chart.Histogram, chart.Boxplot(df), chart.QQPlot(df), chart.VaRSensitivity(df), chart.BarVaR, ...
2. Do i calculate the weights (df_w) correctly? it does not seem to be the case. SHould i even include it?
I would like to be able to visualise boxplots, Histograms with methods, VaRSensitivity and tables/stats per Assetclass and total.
Without being able to understand how to solve this, there seems to be some tweek i miss at an initial state that might solve the "ES / VaR calculation produces unreliable result (risk over 100%) for column: 1(n) "
Any guidance / hints would be greaT
Wish you all a nice start to the week.
Best
Johan
From: Brian G. Peterson<mailto:brian using braverock.com>
Sent: den 5 februari 2021 02:58
To: Johan Palleschitz<mailto:palleschitz using outlook.com>; r-sig-finance using r-project.org<mailto:r-sig-finance using r-project.org>
Subject: Re: [R-SIG-Finance] PnL data - PerformanceAnalytics /
VaR/ES should work with a distribution of cash P&L as well as a distribution of returns.
Can you present an example that isn't behaving as you expect it to?
Regards,
Brian
On Wed, 2021-02-03 at 17:58 +0000, Johan Palleschitz wrote:
Good evening all,
I have PnL data in EUR that i want use for ES, VaR calculationw/reports, as described in the documentation.
I have read the PerformanceAnalytics guideline, searched on SO but i do not find a solution that works for me.
Any suggestion or indication where i should look would be very appreciated!!
Have a nice evening!!
Regards
Johan
_______________________________________________
R-SIG-Finance using r-project.org<mailto:R-SIG-Finance using r-project.org> mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance<https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-sig-finance&data=04%7C01%7C%7C0c54da22c98c449a18c408d8c979972a%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637480871365848685%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BN3HMvLaReZhzErKv8hXDkQDzWAd1ZhcXmZUPlgQzd0%3D&reserved=0>
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should go.
[[alternative HTML version deleted]]
More information about the R-SIG-Finance
mailing list