diff --git a/.gitignore b/.gitignore index 1320f90e..6839a0e9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ site +old/ diff --git a/config/en/mkdocs.yml b/config/en/mkdocs.yml index 78bad175..c99ce551 100644 --- a/config/en/mkdocs.yml +++ b/config/en/mkdocs.yml @@ -81,8 +81,6 @@ markdown_extensions: - pymdownx.inlinehilite - pymdownx.snippets - pymdownx.superfences - - toc: - permalink: "#" - attr_list - md_in_html - tables @@ -118,7 +116,8 @@ nav: - Purchase value: concepts/purchase-value.md - Performance: - Performance: concepts/performance/index.md - - IRR example: concepts/irr-example.md + - Money-weighted return: concepts/performance/money-weighted.md + - Time-weighted return: concepts/performance/time-weighted.md - Common procedures: - Common procedures: procedures/index.md - Importing CSV-files: procedures/importing.md diff --git a/docs/en/assets/demo-portfolio-03-calculation.xlsx b/docs/en/assets/demo-portfolio-03-calculation.xlsx new file mode 100644 index 00000000..d480e2da Binary files /dev/null and b/docs/en/assets/demo-portfolio-03-calculation.xlsx differ diff --git a/docs/en/assets/performance-calculation-test-01.xlsx b/docs/en/assets/performance-calculation-test-01.xlsx index 8e111554..052b54dd 100644 Binary files a/docs/en/assets/performance-calculation-test-01.xlsx and b/docs/en/assets/performance-calculation-test-01.xlsx differ diff --git a/docs/en/assets/test.csv b/docs/en/assets/test.csv new file mode 100644 index 00000000..426cdd65 --- /dev/null +++ b/docs/en/assets/test.csv @@ -0,0 +1,1097 @@ +Date;Value;Inbound Transferals;Outbound Transferals;Delta in %;Cumulated Performance in % +2020-06-12;0.00;0.00;0.00;0.00;0.00 +2020-06-13;0.00;0.00;0.00;0.00;0.00 +2020-06-14;0.00;0.00;0.00;0.00;0.00 +2020-06-15;0.00;0.00;0.00;0.00;0.00 +2020-06-16;0.00;0.00;0.00;0.00;0.00 +2020-06-17;0.00;0.00;0.00;0.00;0.00 +2020-06-18;0.00;0.00;0.00;0.00;0.00 +2020-06-19;0.00;0.00;0.00;0.00;0.00 +2020-06-20;0.00;0.00;0.00;0.00;0.00 +2020-06-21;0.00;0.00;0.00;0.00;0.00 +2020-06-22;0.00;0.00;0.00;0.00;0.00 +2020-06-23;0.00;0.00;0.00;0.00;0.00 +2020-06-24;0.00;0.00;0.00;0.00;0.00 +2020-06-25;0.00;0.00;0.00;0.00;0.00 +2020-06-26;0.00;0.00;0.00;0.00;0.00 +2020-06-27;0.00;0.00;0.00;0.00;0.00 +2020-06-28;0.00;0.00;0.00;0.00;0.00 +2020-06-29;0.00;0.00;0.00;0.00;0.00 +2020-06-30;0.00;0.00;0.00;0.00;0.00 +2020-07-01;0.00;0.00;0.00;0.00;0.00 +2020-07-02;0.00;0.00;0.00;0.00;0.00 +2020-07-03;0.00;0.00;0.00;0.00;0.00 +2020-07-04;0.00;0.00;0.00;0.00;0.00 +2020-07-05;0.00;0.00;0.00;0.00;0.00 +2020-07-06;0.00;0.00;0.00;0.00;0.00 +2020-07-07;0.00;0.00;0.00;0.00;0.00 +2020-07-08;0.00;0.00;0.00;0.00;0.00 +2020-07-09;0.00;0.00;0.00;0.00;0.00 +2020-07-10;0.00;0.00;0.00;0.00;0.00 +2020-07-11;0.00;0.00;0.00;0.00;0.00 +2020-07-12;0.00;0.00;0.00;0.00;0.00 +2020-07-13;0.00;0.00;0.00;0.00;0.00 +2020-07-14;0.00;0.00;0.00;0.00;0.00 +2020-07-15;0.00;0.00;0.00;0.00;0.00 +2020-07-16;0.00;0.00;0.00;0.00;0.00 +2020-07-17;0.00;0.00;0.00;0.00;0.00 +2020-07-18;0.00;0.00;0.00;0.00;0.00 +2020-07-19;0.00;0.00;0.00;0.00;0.00 +2020-07-20;0.00;0.00;0.00;0.00;0.00 +2020-07-21;0.00;0.00;0.00;0.00;0.00 +2020-07-22;0.00;0.00;0.00;0.00;0.00 +2020-07-23;0.00;0.00;0.00;0.00;0.00 +2020-07-24;0.00;0.00;0.00;0.00;0.00 +2020-07-25;0.00;0.00;0.00;0.00;0.00 +2020-07-26;0.00;0.00;0.00;0.00;0.00 +2020-07-27;0.00;0.00;0.00;0.00;0.00 +2020-07-28;0.00;0.00;0.00;0.00;0.00 +2020-07-29;0.00;0.00;0.00;0.00;0.00 +2020-07-30;0.00;0.00;0.00;0.00;0.00 +2020-07-31;0.00;0.00;0.00;0.00;0.00 +2020-08-01;0.00;0.00;0.00;0.00;0.00 +2020-08-02;0.00;0.00;0.00;0.00;0.00 +2020-08-03;0.00;0.00;0.00;0.00;0.00 +2020-08-04;0.00;0.00;0.00;0.00;0.00 +2020-08-05;0.00;0.00;0.00;0.00;0.00 +2020-08-06;0.00;0.00;0.00;0.00;0.00 +2020-08-07;0.00;0.00;0.00;0.00;0.00 +2020-08-08;0.00;0.00;0.00;0.00;0.00 +2020-08-09;0.00;0.00;0.00;0.00;0.00 +2020-08-10;0.00;0.00;0.00;0.00;0.00 +2020-08-11;0.00;0.00;0.00;0.00;0.00 +2020-08-12;0.00;0.00;0.00;0.00;0.00 +2020-08-13;0.00;0.00;0.00;0.00;0.00 +2020-08-14;0.00;0.00;0.00;0.00;0.00 +2020-08-15;0.00;0.00;0.00;0.00;0.00 +2020-08-16;0.00;0.00;0.00;0.00;0.00 +2020-08-17;0.00;0.00;0.00;0.00;0.00 +2020-08-18;0.00;0.00;0.00;0.00;0.00 +2020-08-19;0.00;0.00;0.00;0.00;0.00 +2020-08-20;0.00;0.00;0.00;0.00;0.00 +2020-08-21;0.00;0.00;0.00;0.00;0.00 +2020-08-22;0.00;0.00;0.00;0.00;0.00 +2020-08-23;0.00;0.00;0.00;0.00;0.00 +2020-08-24;0.00;0.00;0.00;0.00;0.00 +2020-08-25;0.00;0.00;0.00;0.00;0.00 +2020-08-26;0.00;0.00;0.00;0.00;0.00 +2020-08-27;0.00;0.00;0.00;0.00;0.00 +2020-08-28;0.00;0.00;0.00;0.00;0.00 +2020-08-29;0.00;0.00;0.00;0.00;0.00 +2020-08-30;0.00;0.00;0.00;0.00;0.00 +2020-08-31;0.00;0.00;0.00;0.00;0.00 +2020-09-01;0.00;0.00;0.00;0.00;0.00 +2020-09-02;0.00;0.00;0.00;0.00;0.00 +2020-09-03;0.00;0.00;0.00;0.00;0.00 +2020-09-04;0.00;0.00;0.00;0.00;0.00 +2020-09-05;0.00;0.00;0.00;0.00;0.00 +2020-09-06;0.00;0.00;0.00;0.00;0.00 +2020-09-07;0.00;0.00;0.00;0.00;0.00 +2020-09-08;0.00;0.00;0.00;0.00;0.00 +2020-09-09;0.00;0.00;0.00;0.00;0.00 +2020-09-10;0.00;0.00;0.00;0.00;0.00 +2020-09-11;0.00;0.00;0.00;0.00;0.00 +2020-09-12;0.00;0.00;0.00;0.00;0.00 +2020-09-13;0.00;0.00;0.00;0.00;0.00 +2020-09-14;0.00;0.00;0.00;0.00;0.00 +2020-09-15;0.00;0.00;0.00;0.00;0.00 +2020-09-16;0.00;0.00;0.00;0.00;0.00 +2020-09-17;0.00;0.00;0.00;0.00;0.00 +2020-09-18;0.00;0.00;0.00;0.00;0.00 +2020-09-19;0.00;0.00;0.00;0.00;0.00 +2020-09-20;0.00;0.00;0.00;0.00;0.00 +2020-09-21;0.00;0.00;0.00;0.00;0.00 +2020-09-22;0.00;0.00;0.00;0.00;0.00 +2020-09-23;0.00;0.00;0.00;0.00;0.00 +2020-09-24;0.00;0.00;0.00;0.00;0.00 +2020-09-25;0.00;0.00;0.00;0.00;0.00 +2020-09-26;0.00;0.00;0.00;0.00;0.00 +2020-09-27;0.00;0.00;0.00;0.00;0.00 +2020-09-28;0.00;0.00;0.00;0.00;0.00 +2020-09-29;0.00;0.00;0.00;0.00;0.00 +2020-09-30;0.00;0.00;0.00;0.00;0.00 +2020-10-01;0.00;0.00;0.00;0.00;0.00 +2020-10-02;0.00;0.00;0.00;0.00;0.00 +2020-10-03;0.00;0.00;0.00;0.00;0.00 +2020-10-04;0.00;0.00;0.00;0.00;0.00 +2020-10-05;0.00;0.00;0.00;0.00;0.00 +2020-10-06;0.00;0.00;0.00;0.00;0.00 +2020-10-07;0.00;0.00;0.00;0.00;0.00 +2020-10-08;0.00;0.00;0.00;0.00;0.00 +2020-10-09;0.00;0.00;0.00;0.00;0.00 +2020-10-10;0.00;0.00;0.00;0.00;0.00 +2020-10-11;0.00;0.00;0.00;0.00;0.00 +2020-10-12;0.00;0.00;0.00;0.00;0.00 +2020-10-13;0.00;0.00;0.00;0.00;0.00 +2020-10-14;0.00;0.00;0.00;0.00;0.00 +2020-10-15;0.00;0.00;0.00;0.00;0.00 +2020-10-16;0.00;0.00;0.00;0.00;0.00 +2020-10-17;0.00;0.00;0.00;0.00;0.00 +2020-10-18;0.00;0.00;0.00;0.00;0.00 +2020-10-19;0.00;0.00;0.00;0.00;0.00 +2020-10-20;0.00;0.00;0.00;0.00;0.00 +2020-10-21;0.00;0.00;0.00;0.00;0.00 +2020-10-22;0.00;0.00;0.00;0.00;0.00 +2020-10-23;0.00;0.00;0.00;0.00;0.00 +2020-10-24;0.00;0.00;0.00;0.00;0.00 +2020-10-25;0.00;0.00;0.00;0.00;0.00 +2020-10-26;0.00;0.00;0.00;0.00;0.00 +2020-10-27;0.00;0.00;0.00;0.00;0.00 +2020-10-28;0.00;0.00;0.00;0.00;0.00 +2020-10-29;0.00;0.00;0.00;0.00;0.00 +2020-10-30;0.00;0.00;0.00;0.00;0.00 +2020-10-31;0.00;0.00;0.00;0.00;0.00 +2020-11-01;0.00;0.00;0.00;0.00;0.00 +2020-11-02;0.00;0.00;0.00;0.00;0.00 +2020-11-03;0.00;0.00;0.00;0.00;0.00 +2020-11-04;0.00;0.00;0.00;0.00;0.00 +2020-11-05;0.00;0.00;0.00;0.00;0.00 +2020-11-06;0.00;0.00;0.00;0.00;0.00 +2020-11-07;0.00;0.00;0.00;0.00;0.00 +2020-11-08;0.00;0.00;0.00;0.00;0.00 +2020-11-09;0.00;0.00;0.00;0.00;0.00 +2020-11-10;0.00;0.00;0.00;0.00;0.00 +2020-11-11;0.00;0.00;0.00;0.00;0.00 +2020-11-12;0.00;0.00;0.00;0.00;0.00 +2020-11-13;0.00;0.00;0.00;0.00;0.00 +2020-11-14;0.00;0.00;0.00;0.00;0.00 +2020-11-15;0.00;0.00;0.00;0.00;0.00 +2020-11-16;0.00;0.00;0.00;0.00;0.00 +2020-11-17;0.00;0.00;0.00;0.00;0.00 +2020-11-18;0.00;0.00;0.00;0.00;0.00 +2020-11-19;0.00;0.00;0.00;0.00;0.00 +2020-11-20;0.00;0.00;0.00;0.00;0.00 +2020-11-21;0.00;0.00;0.00;0.00;0.00 +2020-11-22;0.00;0.00;0.00;0.00;0.00 +2020-11-23;0.00;0.00;0.00;0.00;0.00 +2020-11-24;0.00;0.00;0.00;0.00;0.00 +2020-11-25;0.00;0.00;0.00;0.00;0.00 +2020-11-26;0.00;0.00;0.00;0.00;0.00 +2020-11-27;0.00;0.00;0.00;0.00;0.00 +2020-11-28;0.00;0.00;0.00;0.00;0.00 +2020-11-29;0.00;0.00;0.00;0.00;0.00 +2020-11-30;0.00;0.00;0.00;0.00;0.00 +2020-12-01;0.00;0.00;0.00;0.00;0.00 +2020-12-02;0.00;0.00;0.00;0.00;0.00 +2020-12-03;0.00;0.00;0.00;0.00;0.00 +2020-12-04;0.00;0.00;0.00;0.00;0.00 +2020-12-05;0.00;0.00;0.00;0.00;0.00 +2020-12-06;0.00;0.00;0.00;0.00;0.00 +2020-12-07;0.00;0.00;0.00;0.00;0.00 +2020-12-08;0.00;0.00;0.00;0.00;0.00 +2020-12-09;0.00;0.00;0.00;0.00;0.00 +2020-12-10;0.00;0.00;0.00;0.00;0.00 +2020-12-11;0.00;0.00;0.00;0.00;0.00 +2020-12-12;0.00;0.00;0.00;0.00;0.00 +2020-12-13;0.00;0.00;0.00;0.00;0.00 +2020-12-14;0.00;0.00;0.00;0.00;0.00 +2020-12-15;0.00;0.00;0.00;0.00;0.00 +2020-12-16;0.00;0.00;0.00;0.00;0.00 +2020-12-17;0.00;0.00;0.00;0.00;0.00 +2020-12-18;0.00;0.00;0.00;0.00;0.00 +2020-12-19;0.00;0.00;0.00;0.00;0.00 +2020-12-20;0.00;0.00;0.00;0.00;0.00 +2020-12-21;0.00;0.00;0.00;0.00;0.00 +2020-12-22;0.00;0.00;0.00;0.00;0.00 +2020-12-23;0.00;0.00;0.00;0.00;0.00 +2020-12-24;0.00;0.00;0.00;0.00;0.00 +2020-12-25;0.00;0.00;0.00;0.00;0.00 +2020-12-26;0.00;0.00;0.00;0.00;0.00 +2020-12-27;0.00;0.00;0.00;0.00;0.00 +2020-12-28;0.00;0.00;0.00;0.00;0.00 +2020-12-29;0.00;0.00;0.00;0.00;0.00 +2020-12-30;0.00;0.00;0.00;0.00;0.00 +2020-12-31;0.00;0.00;0.00;0.00;0.00 +2021-01-01;0.00;0.00;0.00;0.00;0.00 +2021-01-02;0.00;0.00;0.00;0.00;0.00 +2021-01-03;0.00;0.00;0.00;0.00;0.00 +2021-01-04;0.00;0.00;0.00;0.00;0.00 +2021-01-05;0.00;0.00;0.00;0.00;0.00 +2021-01-06;0.00;0.00;0.00;0.00;0.00 +2021-01-07;0.00;0.00;0.00;0.00;0.00 +2021-01-08;0.00;0.00;0.00;0.00;0.00 +2021-01-09;0.00;0.00;0.00;0.00;0.00 +2021-01-10;0.00;0.00;0.00;0.00;0.00 +2021-01-11;0.00;0.00;0.00;0.00;0.00 +2021-01-12;0.00;0.00;0.00;0.00;0.00 +2021-01-13;0.00;0.00;0.00;0.00;0.00 +2021-01-14;0.00;0.00;0.00;0.00;0.00 +2021-01-15;150.50;155.00;0.00;-2.90;-2.90 +2021-01-16;150.50;0.00;0.00;0.00;-2.90 +2021-01-17;150.50;0.00;0.00;0.00;-2.90 +2021-01-18;149.40;0.00;0.00;-0.73;-3.61 +2021-01-19;150.65;0.00;0.00;0.84;-2.81 +2021-01-20;151.40;0.00;0.00;0.50;-2.32 +2021-01-21;151.05;0.00;0.00;-0.23;-2.55 +2021-01-22;150.65;0.00;0.00;-0.26;-2.81 +2021-01-23;150.65;0.00;0.00;0.00;-2.81 +2021-01-24;150.65;0.00;0.00;0.00;-2.81 +2021-01-25;149.20;0.00;0.00;-0.96;-3.74 +2021-01-26;149.90;0.00;0.00;0.47;-3.29 +2021-01-27;150.85;0.00;0.00;0.63;-2.68 +2021-01-28;149.75;0.00;0.00;-0.73;-3.39 +2021-01-29;147.00;0.00;0.00;-1.84;-5.16 +2021-01-30;147.00;0.00;0.00;0.00;-5.16 +2021-01-31;147.00;0.00;0.00;0.00;-5.16 +2021-02-01;148.35;0.00;0.00;0.92;-4.29 +2021-02-02;149.85;0.00;0.00;1.01;-3.32 +2021-02-03;152.55;0.00;0.00;1.80;-1.58 +2021-02-04;152.95;0.00;0.00;0.26;-1.32 +2021-02-05;150.65;0.00;0.00;-1.50;-2.81 +2021-02-06;150.65;0.00;0.00;0.00;-2.81 +2021-02-07;150.65;0.00;0.00;0.00;-2.81 +2021-02-08;150.30;0.00;0.00;-0.23;-3.03 +2021-02-09;148.95;0.00;0.00;-0.90;-3.90 +2021-02-10;148.70;0.00;0.00;-0.17;-4.06 +2021-02-11;147.95;0.00;0.00;-0.50;-4.55 +2021-02-12;148.45;0.00;0.00;0.34;-4.23 +2021-02-13;148.45;0.00;0.00;0.00;-4.23 +2021-02-14;148.45;0.00;0.00;0.00;-4.23 +2021-02-15;149.15;0.00;0.00;0.47;-3.77 +2021-02-16;147.90;0.00;0.00;-0.84;-4.58 +2021-02-17;147.60;0.00;0.00;-0.20;-4.77 +2021-02-18;147.00;0.00;0.00;-0.41;-5.16 +2021-02-19;148.30;0.00;0.00;0.88;-4.32 +2021-02-20;148.30;0.00;0.00;0.00;-4.32 +2021-02-21;148.30;0.00;0.00;0.00;-4.32 +2021-02-22;148.05;0.00;0.00;-0.17;-4.48 +2021-02-23;147.20;0.00;0.00;-0.57;-5.03 +2021-02-24;147.70;0.00;0.00;0.34;-4.71 +2021-02-25;149.70;0.00;0.00;1.35;-3.42 +2021-02-26;150.30;0.00;0.00;0.40;-3.03 +2021-02-27;150.30;0.00;0.00;0.00;-3.03 +2021-02-28;150.30;0.00;0.00;0.00;-3.03 +2021-03-01;150.25;0.00;0.00;-0.03;-3.06 +2021-03-02;150.00;0.00;0.00;-0.17;-3.23 +2021-03-03;149.05;0.00;0.00;-0.63;-3.84 +2021-03-04;149.85;0.00;0.00;0.54;-3.32 +2021-03-05;150.00;0.00;0.00;0.10;-3.23 +2021-03-06;150.00;0.00;0.00;0.00;-3.23 +2021-03-07;150.00;0.00;0.00;0.00;-3.23 +2021-03-08;153.15;0.00;0.00;2.10;-1.19 +2021-03-09;154.15;0.00;0.00;0.65;-0.55 +2021-03-10;162.00;0.00;0.00;5.09;4.52 +2021-03-11;162.20;0.00;0.00;0.12;4.65 +2021-03-12;164.85;0.00;0.00;1.63;6.35 +2021-03-13;164.85;0.00;0.00;0.00;6.35 +2021-03-14;164.85;0.00;0.00;0.00;6.35 +2021-03-15;166.25;0.00;0.00;0.85;7.26 +2021-03-16;164.85;0.00;0.00;-0.84;6.35 +2021-03-17;166.25;0.00;0.00;0.85;7.26 +2021-03-18;167.55;0.00;0.00;0.78;8.10 +2021-03-19;164.70;0.00;0.00;-1.70;6.26 +2021-03-20;164.70;0.00;0.00;0.00;6.26 +2021-03-21;164.70;0.00;0.00;0.00;6.26 +2021-03-22;164.45;0.00;0.00;-0.15;6.10 +2021-03-23;167.50;0.00;0.00;1.85;8.06 +2021-03-24;167.25;0.00;0.00;-0.15;7.90 +2021-03-25;167.35;0.00;0.00;0.06;7.97 +2021-03-26;168.40;0.00;0.00;0.63;8.65 +2021-03-27;168.40;0.00;0.00;0.00;8.65 +2021-03-28;168.40;0.00;0.00;0.00;8.65 +2021-03-29;171.35;0.00;0.00;1.75;10.55 +2021-03-30;171.15;0.00;0.00;-0.12;10.42 +2021-03-31;171.70;0.00;0.00;0.32;10.77 +2021-04-01;172.50;0.00;0.00;0.47;11.29 +2021-04-02;172.50;0.00;0.00;0.00;11.29 +2021-04-03;172.50;0.00;0.00;0.00;11.29 +2021-04-04;172.50;0.00;0.00;0.00;11.29 +2021-04-05;172.50;0.00;0.00;0.00;11.29 +2021-04-06;165.70;0.00;0.00;-3.94;6.90 +2021-04-07;165.74;0.00;0.00;0.02;6.93 +2021-04-08;166.38;0.00;0.00;0.39;7.34 +2021-04-09;164.52;0.00;0.00;-1.12;6.14 +2021-04-10;164.52;0.00;0.00;0.00;6.14 +2021-04-11;164.52;0.00;0.00;0.00;6.14 +2021-04-12;163.02;0.00;0.00;-0.91;5.17 +2021-04-13;160.96;0.00;0.00;-1.26;3.85 +2021-04-14;160.70;0.00;0.00;-0.16;3.68 +2021-04-15;159.92;0.00;0.00;-0.49;3.17 +2021-04-16;161.24;0.00;0.00;0.83;4.03 +2021-04-17;161.24;0.00;0.00;0.00;4.03 +2021-04-18;161.24;0.00;0.00;0.00;4.03 +2021-04-19;161.94;0.00;0.00;0.43;4.48 +2021-04-20;160.48;0.00;0.00;-0.90;3.54 +2021-04-21;160.32;0.00;0.00;-0.10;3.43 +2021-04-22;161.52;0.00;0.00;0.75;4.21 +2021-04-23;160.82;0.00;0.00;-0.43;3.75 +2021-04-24;160.82;0.00;0.00;0.00;3.75 +2021-04-25;160.82;0.00;0.00;0.00;3.75 +2021-04-26;160.44;0.00;0.00;-0.24;3.51 +2021-04-27;159.98;0.00;0.00;-0.29;3.21 +2021-04-28;159.80;0.00;0.00;-0.11;3.10 +2021-04-29;159.50;0.00;0.00;-0.19;2.90 +2021-04-30;160.00;0.00;0.00;0.31;3.23 +2021-05-01;160.00;0.00;0.00;0.00;3.23 +2021-05-02;160.00;0.00;0.00;0.00;3.23 +2021-05-03;160.98;0.00;0.00;0.61;3.86 +2021-05-04;160.92;0.00;0.00;-0.04;3.82 +2021-05-05;164.12;0.00;0.00;1.99;5.88 +2021-05-06;165.32;0.00;0.00;0.73;6.66 +2021-05-07;165.34;0.00;0.00;0.01;6.67 +2021-05-08;165.34;0.00;0.00;0.00;6.67 +2021-05-09;165.34;0.00;0.00;0.00;6.67 +2021-05-10;166.48;0.00;0.00;0.69;7.41 +2021-05-11;163.50;0.00;0.00;-1.79;5.48 +2021-05-12;167.12;0.00;0.00;2.21;7.82 +2021-05-13;166.18;0.00;0.00;-0.56;7.21 +2021-05-14;168.12;0.00;0.00;1.17;8.46 +2021-05-15;168.12;0.00;0.00;0.00;8.46 +2021-05-16;168.12;0.00;0.00;0.00;8.46 +2021-05-17;172.72;0.00;0.00;2.74;11.43 +2021-05-18;170.68;0.00;0.00;-1.18;10.12 +2021-05-19;165.92;0.00;0.00;-2.79;7.05 +2021-05-20;170.08;0.00;0.00;2.51;9.73 +2021-05-21;171.70;0.00;0.00;0.95;10.77 +2021-05-22;171.70;0.00;0.00;0.00;10.77 +2021-05-23;171.70;0.00;0.00;0.00;10.77 +2021-05-24;171.70;0.00;0.00;0.00;10.77 +2021-05-25;171.70;0.00;0.00;0.00;10.77 +2021-05-26;170.92;0.00;0.00;-0.45;10.27 +2021-05-27;170.14;0.00;0.00;-0.46;9.77 +2021-05-28;170.84;0.00;0.00;0.41;10.22 +2021-05-29;170.84;0.00;0.00;0.00;10.22 +2021-05-30;170.84;0.00;0.00;0.00;10.22 +2021-05-31;169.94;0.00;0.00;-0.53;9.64 +2021-06-01;171.76;0.00;0.00;1.07;10.81 +2021-06-02;172.46;0.00;0.00;0.41;11.26 +2021-06-03;172.60;0.00;0.00;0.08;11.35 +2021-06-04;172.82;0.00;0.00;0.13;11.50 +2021-06-05;172.82;0.00;0.00;0.00;11.50 +2021-06-06;172.82;0.00;0.00;0.00;11.50 +2021-06-07;174.42;0.00;0.00;0.93;12.53 +2021-06-08;174.20;0.00;0.00;-0.13;12.39 +2021-06-09;173.86;0.00;0.00;-0.20;12.17 +2021-06-10;176.96;0.00;0.00;1.78;14.17 +2021-06-11;177.94;0.00;0.00;0.55;14.80 +2021-06-12;177.94;0.00;0.00;0.00;14.80 +2021-06-13;177.94;0.00;0.00;0.00;14.80 +2021-06-14;177.88;0.00;0.00;-0.03;14.76 +2021-06-15;178.72;0.00;0.00;0.47;15.30 +2021-06-16;178.10;0.00;0.00;-0.35;14.90 +2021-06-17;177.58;0.00;0.00;-0.29;14.57 +2021-06-18;175.96;0.00;0.00;-0.91;13.52 +2021-06-19;175.96;0.00;0.00;0.00;13.52 +2021-06-20;175.96;0.00;0.00;0.00;13.52 +2021-06-21;178.12;0.00;0.00;1.23;14.92 +2021-06-22;179.76;0.00;0.00;0.92;15.97 +2021-06-23;177.40;0.00;0.00;-1.31;14.45 +2021-06-24;178.72;0.00;0.00;0.74;15.30 +2021-06-25;178.78;0.00;0.00;0.03;15.34 +2021-06-26;178.78;0.00;0.00;0.00;15.34 +2021-06-27;178.78;0.00;0.00;0.00;15.34 +2021-06-28;179.16;0.00;0.00;0.21;15.59 +2021-06-29;179.98;0.00;0.00;0.46;16.12 +2021-06-30;178.12;0.00;0.00;-1.03;14.92 +2021-07-01;178.72;0.00;0.00;0.34;15.30 +2021-07-02;179.70;0.00;0.00;0.55;15.94 +2021-07-03;179.70;0.00;0.00;0.00;15.94 +2021-07-04;179.70;0.00;0.00;0.00;15.94 +2021-07-05;179.34;0.00;0.00;-0.20;15.70 +2021-07-06;178.22;0.00;0.00;-0.62;14.98 +2021-07-07;180.02;0.00;0.00;1.01;16.14 +2021-07-08;177.92;0.00;0.00;-1.17;14.79 +2021-07-09;180.00;0.00;0.00;1.17;16.13 +2021-07-10;180.00;0.00;0.00;0.00;16.13 +2021-07-11;180.00;0.00;0.00;0.00;16.13 +2021-07-12;182.72;0.00;0.00;1.51;17.88 +2021-07-13;184.16;0.00;0.00;0.79;18.81 +2021-07-14;183.12;0.00;0.00;-0.56;18.14 +2021-07-15;182.20;0.00;0.00;-0.50;17.55 +2021-07-16;183.44;0.00;0.00;0.68;18.35 +2021-07-17;183.44;0.00;0.00;0.00;18.35 +2021-07-18;183.44;0.00;0.00;0.00;18.35 +2021-07-19;175.42;0.00;0.00;-4.37;13.17 +2021-07-20;175.34;0.00;0.00;-0.05;13.12 +2021-07-21;178.86;0.00;0.00;2.01;15.39 +2021-07-22;176.70;0.00;0.00;-1.21;14.00 +2021-07-23;178.84;0.00;0.00;1.21;15.38 +2021-07-24;178.84;0.00;0.00;0.00;15.38 +2021-07-25;178.84;0.00;0.00;0.00;15.38 +2021-07-26;178.34;0.00;0.00;-0.28;15.06 +2021-07-27;178.36;0.00;0.00;0.01;15.07 +2021-07-28;178.06;0.00;0.00;-0.17;14.88 +2021-07-29;176.84;0.00;0.00;-0.69;14.09 +2021-07-30;175.06;0.00;0.00;-1.01;12.94 +2021-07-31;175.06;0.00;0.00;0.00;12.94 +2021-08-01;175.06;0.00;0.00;0.00;12.94 +2021-08-02;174.28;0.00;0.00;-0.45;12.44 +2021-08-03;176.02;0.00;0.00;1.00;13.56 +2021-08-04;175.32;0.00;0.00;-0.40;13.11 +2021-08-05;175.48;0.00;0.00;0.09;13.21 +2021-08-06;176.86;0.00;0.00;0.79;14.10 +2021-08-07;176.86;0.00;0.00;0.00;14.10 +2021-08-08;176.86;0.00;0.00;0.00;14.10 +2021-08-09;178.32;0.00;0.00;0.83;15.05 +2021-08-10;178.80;0.00;0.00;0.27;15.35 +2021-08-11;179.02;0.00;0.00;0.12;15.50 +2021-08-12;184.04;0.00;0.00;2.80;18.74 +2021-08-13;185.52;0.00;0.00;0.80;19.69 +2021-08-14;185.52;0.00;0.00;0.00;19.69 +2021-08-15;185.52;0.00;0.00;0.00;19.69 +2021-08-16;185.98;0.00;0.00;0.25;19.99 +2021-08-17;187.46;0.00;0.00;0.80;20.94 +2021-08-18;189.16;0.00;0.00;0.91;22.04 +2021-08-19;185.74;0.00;0.00;-1.81;19.83 +2021-08-20;188.14;0.00;0.00;1.29;21.38 +2021-08-21;188.14;0.00;0.00;0.00;21.38 +2021-08-22;188.14;0.00;0.00;0.00;21.38 +2021-08-23;188.20;0.00;0.00;0.03;21.42 +2021-08-24;186.14;0.00;0.00;-1.09;20.09 +2021-08-25;185.80;0.00;0.00;-0.18;19.87 +2021-08-26;184.44;0.00;0.00;-0.73;18.99 +2021-08-27;184.70;0.00;0.00;0.14;19.16 +2021-08-28;184.70;0.00;0.00;0.00;19.16 +2021-08-29;184.70;0.00;0.00;0.00;19.16 +2021-08-30;184.04;0.00;0.00;-0.36;18.74 +2021-08-31;180.08;0.00;0.00;-2.15;16.18 +2021-09-01;180.64;0.00;0.00;0.31;16.54 +2021-09-02;179.54;0.00;0.00;-0.61;15.83 +2021-09-03;178.04;0.00;0.00;-0.84;14.86 +2021-09-04;178.04;0.00;0.00;0.00;14.86 +2021-09-05;178.04;0.00;0.00;0.00;14.86 +2021-09-06;179.04;0.00;0.00;0.56;15.51 +2021-09-07;179.14;0.00;0.00;0.06;15.57 +2021-09-08;179.76;0.00;0.00;0.35;15.97 +2021-09-09;177.32;0.00;0.00;-1.36;14.40 +2021-09-10;173.42;0.00;0.00;-2.20;11.88 +2021-09-11;173.42;0.00;0.00;0.00;11.88 +2021-09-12;173.42;0.00;0.00;0.00;11.88 +2021-09-13;175.16;0.00;0.00;1.00;13.01 +2021-09-14;174.16;0.00;0.00;-0.57;12.36 +2021-09-15;174.04;0.00;0.00;-0.07;12.28 +2021-09-16;174.20;0.00;0.00;0.09;12.39 +2021-09-17;173.52;0.00;0.00;-0.39;11.95 +2021-09-18;173.52;0.00;0.00;0.00;11.95 +2021-09-19;173.52;0.00;0.00;0.00;11.95 +2021-09-20;169.62;0.00;0.00;-2.25;9.43 +2021-09-21;172.20;0.00;0.00;1.52;11.10 +2021-09-22;174.08;0.00;0.00;1.09;12.31 +2021-09-23;176.66;0.00;0.00;1.48;13.97 +2021-09-24;174.50;0.00;0.00;-1.22;12.58 +2021-09-25;174.50;0.00;0.00;0.00;12.58 +2021-09-26;174.50;0.00;0.00;0.00;12.58 +2021-09-27;175.70;0.00;0.00;0.69;13.35 +2021-09-28;173.10;0.00;0.00;-1.48;11.68 +2021-09-29;175.36;0.00;0.00;1.31;13.14 +2021-09-30;173.96;0.00;0.00;-0.80;12.23 +2021-10-01;173.62;0.00;0.00;-0.20;12.01 +2021-10-02;173.62;0.00;0.00;0.00;12.01 +2021-10-03;173.62;0.00;0.00;0.00;12.01 +2021-10-04;173.80;0.00;0.00;0.10;12.13 +2021-10-05;176.08;0.00;0.00;1.31;13.60 +2021-10-06;166.62;0.00;0.00;-5.37;7.50 +2021-10-07;168.64;0.00;0.00;1.21;8.80 +2021-10-08;167.66;0.00;0.00;-0.58;8.17 +2021-10-09;167.66;0.00;0.00;0.00;8.17 +2021-10-10;167.66;0.00;0.00;0.00;8.17 +2021-10-11;167.16;0.00;0.00;-0.30;7.85 +2021-10-12;163.80;0.00;0.00;-2.01;5.68 +2021-10-13;163.80;0.00;0.00;0.00;5.68 +2021-10-14;165.30;0.00;0.00;0.92;6.65 +2021-10-15;165.26;0.00;0.00;-0.02;6.62 +2021-10-16;165.26;0.00;0.00;0.00;6.62 +2021-10-17;165.26;0.00;0.00;0.00;6.62 +2021-10-18;164.86;0.00;0.00;-0.24;6.36 +2021-10-19;163.94;0.00;0.00;-0.56;5.77 +2021-10-20;165.30;0.00;0.00;0.83;6.65 +2021-10-21;165.10;0.00;0.00;-0.12;6.52 +2021-10-22;163.94;0.00;0.00;-0.70;5.77 +2021-10-23;163.94;0.00;0.00;0.00;5.77 +2021-10-24;163.94;0.00;0.00;0.00;5.77 +2021-10-25;162.82;0.00;0.00;-0.68;5.05 +2021-10-26;163.80;0.00;0.00;0.60;5.68 +2021-10-27;162.52;0.00;0.00;-0.78;4.85 +2021-10-28;160.32;0.00;0.00;-1.35;3.43 +2021-10-29;160.78;0.00;0.00;0.29;3.73 +2021-10-30;160.78;0.00;0.00;0.00;3.73 +2021-10-31;160.78;0.00;0.00;0.00;3.73 +2021-11-01;162.46;0.00;0.00;1.04;4.81 +2021-11-02;163.82;0.00;0.00;0.84;5.69 +2021-11-03;166.38;0.00;0.00;1.56;7.34 +2021-11-04;166.12;0.00;0.00;-0.16;7.17 +2021-11-05;168.32;0.00;0.00;1.32;8.59 +2021-11-06;168.32;0.00;0.00;0.00;8.59 +2021-11-07;168.32;0.00;0.00;0.00;8.59 +2021-11-08;166.02;0.00;0.00;-1.37;7.11 +2021-11-09;165.38;0.00;0.00;-0.39;6.70 +2021-11-10;167.18;0.00;0.00;1.09;7.86 +2021-11-11;167.02;0.00;0.00;-0.10;7.75 +2021-11-12;170.36;0.00;0.00;2.00;9.91 +2021-11-13;170.36;0.00;0.00;0.00;9.91 +2021-11-14;170.36;0.00;0.00;0.00;9.91 +2021-11-15;167.38;0.00;0.00;-1.75;7.99 +2021-11-16;167.20;0.00;0.00;-0.11;7.87 +2021-11-17;168.10;0.00;0.00;0.54;8.45 +2021-11-18;167.14;0.00;0.00;-0.57;7.83 +2021-11-19;164.82;0.00;0.00;-1.39;6.34 +2021-11-20;164.82;0.00;0.00;0.00;6.34 +2021-11-21;164.82;0.00;0.00;0.00;6.34 +2021-11-22;169.10;0.00;0.00;2.60;9.10 +2021-11-23;169.34;0.00;0.00;0.14;9.25 +2021-11-24;168.70;0.00;0.00;-0.38;8.84 +2021-11-25;168.50;0.00;0.00;-0.12;8.71 +2021-11-26;161.48;0.00;0.00;-4.17;4.18 +2021-11-27;161.48;0.00;0.00;0.00;4.18 +2021-11-28;161.48;0.00;0.00;0.00;4.18 +2021-11-29;160.40;0.00;0.00;-0.67;3.48 +2021-11-30;155.88;0.00;0.00;-2.82;0.57 +2021-12-01;159.82;0.00;0.00;2.53;3.11 +2021-12-02;155.88;0.00;0.00;-2.47;0.57 +2021-12-03;154.62;0.00;0.00;-0.81;-0.25 +2021-12-04;154.62;0.00;0.00;0.00;-0.25 +2021-12-05;154.62;0.00;0.00;0.00;-0.25 +2021-12-06;158.76;0.00;0.00;2.68;2.43 +2021-12-07;158.76;0.00;0.00;0.00;2.43 +2021-12-08;160.70;0.00;0.00;1.22;3.68 +2021-12-09;159.16;0.00;0.00;-0.96;2.68 +2021-12-10;158.52;0.00;0.00;-0.40;2.27 +2021-12-11;158.52;0.00;0.00;0.00;2.27 +2021-12-12;158.52;0.00;0.00;0.00;2.27 +2021-12-13;159.98;0.00;0.00;0.92;3.21 +2021-12-14;161.54;0.00;0.00;0.98;4.22 +2021-12-15;160.50;0.00;0.00;-0.64;3.55 +2021-12-16;161.58;0.00;0.00;0.67;4.25 +2021-12-17;160.50;0.00;0.00;-0.67;3.55 +2021-12-18;160.50;0.00;0.00;0.00;3.55 +2021-12-19;160.50;0.00;0.00;0.00;3.55 +2021-12-20;156.98;0.00;0.00;-2.19;1.28 +2021-12-21;159.24;0.00;0.00;1.44;2.74 +2021-12-22;159.44;0.00;0.00;0.13;2.86 +2021-12-23;162.04;0.00;0.00;1.63;4.54 +2021-12-24;162.04;0.00;0.00;0.00;4.54 +2021-12-25;162.04;0.00;0.00;0.00;4.54 +2021-12-26;162.04;0.00;0.00;0.00;4.54 +2021-12-27;162.48;0.00;0.00;0.27;4.83 +2021-12-28;164.86;0.00;0.00;1.46;6.36 +2021-12-29;162.18;0.00;0.00;-1.63;4.63 +2021-12-30;163.00;0.00;0.00;0.51;5.16 +2021-12-31;163.00;0.00;0.00;0.00;5.16 +2022-01-01;163.00;0.00;0.00;0.00;5.16 +2022-01-02;163.00;0.00;0.00;0.00;5.16 +2022-01-03;165.46;0.00;0.00;1.51;6.75 +2022-01-04;165.30;0.00;0.00;-0.10;6.65 +2022-01-05;164.70;0.00;0.00;-0.36;6.26 +2022-01-06;164.64;0.00;0.00;-0.04;6.22 +2022-01-07;161.78;0.00;0.00;-1.74;4.37 +2022-01-08;161.78;0.00;0.00;0.00;4.37 +2022-01-09;161.78;0.00;0.00;0.00;4.37 +2022-01-10;155.28;0.00;0.00;-4.02;0.18 +2022-01-11;158.58;0.00;0.00;2.13;2.31 +2022-01-12;160.16;0.00;0.00;1.00;3.33 +2022-01-13;160.26;0.00;0.00;0.06;3.39 +2022-01-14;239.43;84.00;0.00;-1.98;1.35 +2022-01-15;239.43;0.00;0.00;0.00;1.35 +2022-01-16;239.43;0.00;0.00;0.00;1.35 +2022-01-17;239.19;0.00;0.00;-0.10;1.25 +2022-01-18;239.37;0.00;0.00;0.08;1.32 +2022-01-19;242.97;0.00;0.00;1.50;2.85 +2022-01-20;244.80;0.00;0.00;0.75;3.62 +2022-01-21;241.29;0.00;0.00;-1.43;2.14 +2022-01-22;241.29;0.00;0.00;0.00;2.14 +2022-01-23;241.29;0.00;0.00;0.00;2.14 +2022-01-24;235.80;0.00;0.00;-2.28;-0.19 +2022-01-25;239.40;0.00;0.00;1.53;1.34 +2022-01-26;243.12;0.00;0.00;1.55;2.91 +2022-01-27;250.83;0.00;0.00;3.17;6.17 +2022-01-28;250.29;0.00;0.00;-0.22;5.95 +2022-01-29;250.29;0.00;0.00;0.00;5.95 +2022-01-30;250.29;0.00;0.00;0.00;5.95 +2022-01-31;250.08;0.00;0.00;-0.08;5.86 +2022-02-01;252.00;0.00;0.00;0.77;6.67 +2022-02-02;253.14;0.00;0.00;0.45;7.15 +2022-02-03;259.65;0.00;0.00;2.57;9.91 +2022-02-04;255.42;0.00;0.00;-1.63;8.12 +2022-02-05;255.42;0.00;0.00;0.00;8.12 +2022-02-06;255.42;0.00;0.00;0.00;8.12 +2022-02-07;256.29;0.00;0.00;0.34;8.49 +2022-02-08;260.25;0.00;0.00;1.55;10.16 +2022-02-09;265.65;0.00;0.00;2.07;12.45 +2022-02-10;263.31;0.00;0.00;-0.88;11.46 +2022-02-11;266.49;0.00;0.00;1.21;12.80 +2022-02-12;266.49;0.00;0.00;0.00;12.80 +2022-02-13;266.49;0.00;0.00;0.00;12.80 +2022-02-14;260.07;0.00;0.00;-2.41;10.09 +2022-02-15;263.13;0.00;0.00;1.18;11.38 +2022-02-16;262.50;0.00;0.00;-0.24;11.11 +2022-02-17;258.54;0.00;0.00;-1.51;9.44 +2022-02-18;256.14;0.00;0.00;-0.93;8.42 +2022-02-19;256.14;0.00;0.00;0.00;8.42 +2022-02-20;256.14;0.00;0.00;0.00;8.42 +2022-02-21;251.25;0.00;0.00;-1.91;6.35 +2022-02-22;249.45;0.00;0.00;-0.72;5.59 +2022-02-23;247.14;0.00;0.00;-0.93;4.61 +2022-02-24;233.79;0.00;0.00;-5.40;-1.04 +2022-02-25;242.70;0.00;0.00;3.81;2.73 +2022-02-26;242.70;0.00;0.00;0.00;2.73 +2022-02-27;242.70;0.00;0.00;0.00;2.73 +2022-02-28;240.45;0.00;0.00;-0.93;1.78 +2022-03-01;233.55;0.00;0.00;-2.87;-1.14 +2022-03-02;240.90;0.00;0.00;3.15;1.97 +2022-03-03;237.39;0.00;0.00;-1.46;0.49 +2022-03-04;230.31;0.00;0.00;-2.98;-2.51 +2022-03-05;230.31;0.00;0.00;0.00;-2.51 +2022-03-06;230.31;0.00;0.00;0.00;-2.51 +2022-03-07;228.93;0.00;0.00;-0.60;-3.10 +2022-03-08;226.50;0.00;0.00;-1.06;-4.12 +2022-03-09;240.99;0.00;0.00;6.40;2.01 +2022-03-10;236.91;0.00;0.00;-1.69;0.28 +2022-03-11;240.84;0.00;0.00;1.66;1.95 +2022-03-12;240.84;0.00;0.00;0.00;1.95 +2022-03-13;240.84;0.00;0.00;0.00;1.95 +2022-03-14;246.66;0.00;0.00;2.42;4.41 +2022-03-15;248.55;0.00;0.00;0.77;5.21 +2022-03-16;252.00;0.00;0.00;1.39;6.67 +2022-03-17;253.71;0.00;0.00;0.68;7.39 +2022-03-18;250.50;0.00;0.00;-1.27;6.03 +2022-03-19;250.50;0.00;0.00;0.00;6.03 +2022-03-20;250.50;0.00;0.00;0.00;6.03 +2022-03-21;248.94;0.00;0.00;-0.62;5.37 +2022-03-22;250.35;0.00;0.00;0.57;5.97 +2022-03-23;248.97;0.00;0.00;-0.55;5.39 +2022-03-24;251.16;0.00;0.00;0.88;6.31 +2022-03-25;253.89;0.00;0.00;1.09;7.47 +2022-03-26;253.89;0.00;0.00;0.00;7.47 +2022-03-27;253.89;0.00;0.00;0.00;7.47 +2022-03-28;256.20;0.00;0.00;0.91;8.45 +2022-03-29;259.71;0.00;0.00;1.37;9.93 +2022-03-30;258.15;0.00;0.00;-0.60;9.27 +2022-03-31;253.98;0.00;0.00;-1.62;7.51 +2022-04-01;258.66;0.00;0.00;1.84;9.49 +2022-04-02;258.66;0.00;0.00;0.00;9.49 +2022-04-03;258.66;0.00;0.00;0.00;9.49 +2022-04-04;260.52;0.00;0.00;0.72;10.28 +2022-04-05;263.88;0.00;0.00;1.29;11.70 +2022-04-06;264.15;0.00;0.00;0.10;11.81 +2022-04-07;263.46;0.00;0.00;-0.26;11.52 +2022-04-08;256.95;0.00;0.00;-2.47;8.77 +2022-04-09;256.95;0.00;0.00;0.00;8.77 +2022-04-10;256.95;0.00;0.00;0.00;8.77 +2022-04-11;257.10;0.00;0.00;0.06;8.83 +2022-04-12;255.84;0.00;0.00;-0.49;8.30 +2022-04-13;259.50;0.00;0.00;1.43;9.84 +2022-04-14;259.50;0.00;0.00;0.00;9.84 +2022-04-15;259.50;0.00;0.00;0.00;9.84 +2022-04-16;259.50;0.00;0.00;0.00;9.84 +2022-04-17;259.50;0.00;0.00;0.00;9.84 +2022-04-18;259.50;0.00;0.00;0.00;9.84 +2022-04-19;257.04;0.00;0.00;-0.95;8.80 +2022-04-20;259.50;0.00;0.00;0.96;9.84 +2022-04-21;259.50;0.00;0.00;0.00;9.84 +2022-04-22;259.50;0.00;0.00;0.00;9.84 +2022-04-23;259.50;0.00;0.00;0.00;9.84 +2022-04-24;259.50;0.00;0.00;0.00;9.84 +2022-04-25;257.28;0.00;0.00;-0.86;8.90 +2022-04-26;257.85;0.00;0.00;0.22;9.15 +2022-04-27;257.85;0.00;0.00;0.00;9.15 +2022-04-28;265.62;0.00;0.00;3.01;12.44 +2022-04-29;263.55;0.00;0.00;-0.78;11.56 +2022-04-30;263.55;0.00;0.00;0.00;11.56 +2022-05-01;263.55;0.00;0.00;0.00;11.56 +2022-05-02;259.35;0.00;0.00;-1.59;9.78 +2022-05-03;260.64;0.00;0.00;0.50;10.33 +2022-05-04;262.95;0.00;0.00;0.89;11.30 +2022-05-05;263.88;0.00;0.00;0.35;11.70 +2022-05-06;263.88;0.00;0.00;0.00;11.70 +2022-05-07;263.88;0.00;0.00;0.00;11.70 +2022-05-08;263.88;0.00;0.00;0.00;11.70 +2022-05-09;257.13;0.00;0.00;-2.56;8.84 +2022-05-10;259.20;0.00;0.00;0.81;9.72 +2022-05-11;262.65;0.00;0.00;1.33;11.18 +2022-05-12;269.22;0.00;0.00;2.50;13.96 +2022-05-13;269.22;0.00;0.00;0.00;13.96 +2022-05-14;269.22;0.00;0.00;0.00;13.96 +2022-05-15;269.22;0.00;0.00;0.00;13.96 +2022-05-16;271.17;0.00;0.00;0.72;14.78 +2022-05-17;271.89;0.00;0.00;0.27;15.09 +2022-05-18;271.50;0.00;0.00;-0.14;14.92 +2022-05-19;271.20;0.00;0.00;-0.11;14.80 +2022-05-20;274.80;0.00;0.00;1.33;16.32 +2022-05-21;274.80;0.00;0.00;0.00;16.32 +2022-05-22;274.80;0.00;0.00;0.00;16.32 +2022-05-23;277.35;0.00;0.00;0.93;17.40 +2022-05-24;279.00;0.00;0.00;0.59;18.10 +2022-05-25;279.00;0.00;0.00;0.00;18.10 +2022-05-26;284.04;0.00;0.00;1.81;20.23 +2022-05-27;284.04;0.00;0.00;0.00;20.23 +2022-05-28;284.04;0.00;0.00;0.00;20.23 +2022-05-29;284.04;0.00;0.00;0.00;20.23 +2022-05-30;284.04;0.00;0.00;0.00;20.23 +2022-05-31;286.86;0.00;0.00;0.99;21.43 +2022-06-01;286.77;0.00;0.00;-0.03;21.39 +2022-06-02;286.77;0.00;0.00;0.00;21.39 +2022-06-03;286.77;0.00;0.00;0.00;21.39 +2022-06-04;286.77;0.00;0.00;0.00;21.39 +2022-06-05;286.77;0.00;0.00;0.00;21.39 +2022-06-06;288.75;0.00;0.00;0.69;22.23 +2022-06-07;287.25;0.00;0.00;-0.52;21.59 +2022-06-08;280.20;0.00;0.00;-2.45;18.61 +2022-06-09;278.40;0.00;0.00;-0.64;17.84 +2022-06-10;272.25;0.00;0.00;-2.21;15.24 +2022-06-11;272.25;0.00;0.00;0.00;15.24 +2022-06-12;272.25;0.00;0.00;0.00;15.24 +2022-06-13;267.18;0.00;0.00;-1.86;13.10 +2022-06-14;267.27;0.00;0.00;0.03;13.13 +2022-06-15;270.00;0.00;0.00;1.02;14.29 +2022-06-16;267.06;0.00;0.00;-1.09;13.04 +2022-06-17;271.44;0.00;0.00;1.64;14.90 +2022-06-18;271.44;0.00;0.00;0.00;14.90 +2022-06-19;271.44;0.00;0.00;0.00;14.90 +2022-06-20;277.86;0.00;0.00;2.37;17.62 +2022-06-21;275.28;0.00;0.00;-0.93;16.52 +2022-06-22;279.99;0.00;0.00;1.71;18.52 +2022-06-23;279.87;0.00;0.00;-0.04;18.47 +2022-06-24;283.20;0.00;0.00;1.19;19.88 +2022-06-25;283.20;0.00;0.00;0.00;19.88 +2022-06-26;283.20;0.00;0.00;0.00;19.88 +2022-06-27;282.63;0.00;0.00;-0.20;19.64 +2022-06-28;286.02;0.00;0.00;1.20;21.07 +2022-06-29;285.51;0.00;0.00;-0.18;20.85 +2022-06-30;284.19;0.00;0.00;-0.46;20.30 +2022-07-01;288.24;0.00;0.00;1.43;22.01 +2022-07-02;288.24;0.00;0.00;0.00;22.01 +2022-07-03;288.24;0.00;0.00;0.00;22.01 +2022-07-04;288.99;0.00;0.00;0.26;22.33 +2022-07-05;282.96;0.00;0.00;-2.09;19.77 +2022-07-06;285.24;0.00;0.00;0.81;20.74 +2022-07-07;288.03;0.00;0.00;0.98;21.92 +2022-07-08;288.24;0.00;0.00;0.07;22.01 +2022-07-09;288.24;0.00;0.00;0.00;22.01 +2022-07-10;288.24;0.00;0.00;0.00;22.01 +2022-07-11;288.33;0.00;0.00;0.03;22.05 +2022-07-12;288.33;0.00;0.00;0.00;22.05 +2022-07-13;287.85;0.00;0.00;-0.17;21.84 +2022-07-14;281.43;0.00;0.00;-2.23;19.13 +2022-07-15;286.23;0.00;0.00;1.71;21.16 +2022-07-16;286.23;0.00;0.00;0.00;21.16 +2022-07-17;286.23;0.00;0.00;0.00;21.16 +2022-07-18;284.10;0.00;0.00;-0.74;20.26 +2022-07-19;286.23;0.00;0.00;0.75;21.16 +2022-07-20;282.96;0.00;0.00;-1.14;19.77 +2022-07-21;281.01;0.00;0.00;-0.69;18.95 +2022-07-22;272.46;0.00;0.00;-3.04;15.33 +2022-07-23;272.46;0.00;0.00;0.00;15.33 +2022-07-24;272.46;0.00;0.00;0.00;15.33 +2022-07-25;272.73;0.00;0.00;0.10;15.44 +2022-07-26;271.95;0.00;0.00;-0.29;15.11 +2022-07-27;277.44;0.00;0.00;2.02;17.44 +2022-07-28;275.88;0.00;0.00;-0.56;16.78 +2022-07-29;277.59;0.00;0.00;0.62;17.50 +2022-07-30;277.59;0.00;0.00;0.00;17.50 +2022-07-31;277.59;0.00;0.00;0.00;17.50 +2022-08-01;279.78;0.00;0.00;0.79;18.43 +2022-08-02;282.87;0.00;0.00;1.10;19.74 +2022-08-03;279.90;0.00;0.00;-1.05;18.48 +2022-08-04;279.27;0.00;0.00;-0.23;18.21 +2022-08-05;281.73;0.00;0.00;0.88;19.25 +2022-08-06;281.73;0.00;0.00;0.00;19.25 +2022-08-07;281.73;0.00;0.00;0.00;19.25 +2022-08-08;281.61;0.00;0.00;-0.04;19.20 +2022-08-09;284.79;0.00;0.00;1.13;20.55 +2022-08-10;282.84;0.00;0.00;-0.68;19.72 +2022-08-11;284.07;0.00;0.00;0.43;20.24 +2022-08-12;280.26;0.00;0.00;-1.34;18.63 +2022-08-13;280.26;0.00;0.00;0.00;18.63 +2022-08-14;280.26;0.00;0.00;0.00;18.63 +2022-08-15;281.37;0.00;0.00;0.40;19.10 +2022-08-16;286.68;0.00;0.00;1.89;21.35 +2022-08-17;282.99;0.00;0.00;-1.29;19.79 +2022-08-18;281.94;0.00;0.00;-0.37;19.34 +2022-08-19;283.44;0.00;0.00;0.53;19.98 +2022-08-20;283.44;0.00;0.00;0.00;19.98 +2022-08-21;283.44;0.00;0.00;0.00;19.98 +2022-08-22;284.82;0.00;0.00;0.49;20.56 +2022-08-23;281.55;0.00;0.00;-1.15;19.18 +2022-08-24;280.95;0.00;0.00;-0.21;18.92 +2022-08-25;283.17;0.00;0.00;0.79;19.86 +2022-08-26;280.14;0.00;0.00;-1.07;18.58 +2022-08-27;280.14;0.00;0.00;0.00;18.58 +2022-08-28;280.14;0.00;0.00;0.00;18.58 +2022-08-29;281.58;0.00;0.00;0.51;19.19 +2022-08-30;282.72;0.00;0.00;0.40;19.67 +2022-08-31;281.82;0.00;0.00;-0.32;19.29 +2022-09-01;280.47;0.00;0.00;-0.48;18.72 +2022-09-02;284.76;0.00;0.00;1.53;20.54 +2022-09-03;284.76;0.00;0.00;0.00;20.54 +2022-09-04;284.76;0.00;0.00;0.00;20.54 +2022-09-05;283.53;0.00;0.00;-0.43;20.02 +2022-09-06;282.42;0.00;0.00;-0.39;19.55 +2022-09-07;283.35;0.00;0.00;0.33;19.94 +2022-09-08;282.36;0.00;0.00;-0.35;19.52 +2022-09-09;293.25;0.00;0.00;3.86;24.13 +2022-09-10;293.25;0.00;0.00;0.00;24.13 +2022-09-11;293.25;0.00;0.00;0.00;24.13 +2022-09-12;290.73;0.00;0.00;-0.86;23.06 +2022-09-13;288.72;0.00;0.00;-0.69;22.21 +2022-09-14;285.75;0.00;0.00;-1.03;20.96 +2022-09-15;286.29;0.00;0.00;0.19;21.18 +2022-09-16;283.05;0.00;0.00;-1.13;19.81 +2022-09-17;283.05;0.00;0.00;0.00;19.81 +2022-09-18;283.05;0.00;0.00;0.00;19.81 +2022-09-19;284.79;0.00;0.00;0.61;20.55 +2022-09-20;281.07;0.00;0.00;-1.31;18.97 +2022-09-21;280.32;0.00;0.00;-0.27;18.66 +2022-09-22;278.67;0.00;0.00;-0.59;17.96 +2022-09-23;274.74;0.00;0.00;-1.41;16.30 +2022-09-24;274.74;0.00;0.00;0.00;16.30 +2022-09-25;274.74;0.00;0.00;0.00;16.30 +2022-09-26;267.51;0.00;0.00;-2.63;13.24 +2022-09-27;267.18;0.00;0.00;-0.12;13.10 +2022-09-28;268.26;0.00;0.00;0.40;13.55 +2022-09-29;264.57;0.00;0.00;-1.38;11.99 +2022-09-30;326.38;67.00;0.00;-1.57;10.24 +2022-10-01;326.38;0.00;0.00;0.00;10.24 +2022-10-02;326.38;0.00;0.00;0.00;10.24 +2022-10-03;331.94;0.00;0.00;1.70;12.12 +2022-10-04;343.71;0.00;0.00;3.55;16.09 +2022-10-05;333.60;0.00;0.00;-2.94;12.68 +2022-10-06;329.22;0.00;0.00;-1.31;11.20 +2022-10-07;327.05;0.00;0.00;-0.66;10.46 +2022-10-08;327.05;0.00;0.00;0.00;10.46 +2022-10-09;327.05;0.00;0.00;0.00;10.46 +2022-10-10;328.16;0.00;0.00;0.34;10.84 +2022-10-11;329.88;0.00;0.00;0.52;11.42 +2022-10-12;330.53;0.00;0.00;0.20;11.64 +2022-10-13;329.86;0.00;0.00;-0.20;11.41 +2022-10-14;334.60;0.00;0.00;1.44;13.01 +2022-10-15;334.60;0.00;0.00;0.00;13.01 +2022-10-16;334.60;0.00;0.00;0.00;13.01 +2022-10-17;341.03;0.00;0.00;1.92;15.19 +2022-10-18;342.12;0.00;0.00;0.32;15.55 +2022-10-19;343.48;0.00;0.00;0.40;16.01 +2022-10-20;344.19;0.00;0.00;0.21;16.25 +2022-10-21;341.61;0.00;0.00;-0.75;15.38 +2022-10-22;341.61;0.00;0.00;0.00;15.38 +2022-10-23;341.61;0.00;0.00;0.00;15.38 +2022-10-24;345.74;0.00;0.00;1.21;16.78 +2022-10-25;352.34;0.00;0.00;1.91;19.01 +2022-10-26;355.74;0.00;0.00;0.96;20.15 +2022-10-27;356.08;0.00;0.00;0.10;20.27 +2022-10-28;365.64;0.00;0.00;2.68;23.50 +2022-10-29;365.64;0.00;0.00;0.00;23.50 +2022-10-30;365.64;0.00;0.00;0.00;23.50 +2022-10-31;365.33;0.00;0.00;-0.08;23.39 +2022-11-01;368.06;0.00;0.00;0.75;24.32 +2022-11-02;380.70;0.00;0.00;3.43;28.58 +2022-11-03;373.10;0.00;0.00;-2.00;26.02 +2022-11-04;377.56;0.00;0.00;1.20;27.52 +2022-11-05;377.56;0.00;0.00;0.00;27.52 +2022-11-06;377.56;0.00;0.00;0.00;27.52 +2022-11-07;376.93;0.00;0.00;-0.17;27.31 +2022-11-08;379.92;0.00;0.00;0.79;28.32 +2022-11-09;379.41;0.00;0.00;-0.13;28.15 +2022-11-10;378.60;0.00;0.00;-0.21;27.88 +2022-11-11;371.94;0.00;0.00;-1.76;25.63 +2022-11-12;371.94;0.00;0.00;0.00;25.63 +2022-11-13;371.94;0.00;0.00;0.00;25.63 +2022-11-14;371.53;0.00;0.00;-0.11;25.49 +2022-11-15;372.31;0.00;0.00;0.21;25.75 +2022-11-16;370.87;0.00;0.00;-0.39;25.26 +2022-11-17;371.26;0.00;0.00;0.11;25.40 +2022-11-18;377.70;0.00;0.00;1.73;27.57 +2022-11-19;377.70;0.00;0.00;0.00;27.57 +2022-11-20;377.70;0.00;0.00;0.00;27.57 +2022-11-21;382.47;0.00;0.00;1.26;29.18 +2022-11-22;391.27;0.00;0.00;2.30;32.15 +2022-11-23;389.48;0.00;0.00;-0.46;31.55 +2022-11-24;392.05;0.00;0.00;0.66;32.42 +2022-11-25;395.77;0.00;0.00;0.95;33.67 +2022-11-26;395.77;0.00;0.00;0.00;33.67 +2022-11-27;395.77;0.00;0.00;0.00;33.67 +2022-11-28;392.65;0.00;0.00;-0.79;32.62 +2022-11-29;389.36;0.00;0.00;-0.84;31.51 +2022-11-30;389.45;0.00;0.00;0.02;31.54 +2022-12-01;396.21;0.00;0.00;1.74;33.82 +2022-12-02;396.72;0.00;0.00;0.13;34.00 +2022-12-03;396.72;0.00;0.00;0.00;34.00 +2022-12-04;396.72;0.00;0.00;0.00;34.00 +2022-12-05;394.47;0.00;0.00;-0.57;33.24 +2022-12-06;391.56;0.00;0.00;-0.74;32.25 +2022-12-07;391.04;0.00;0.00;-0.13;32.08 +2022-12-08;390.46;0.00;0.00;-0.15;31.88 +2022-12-09;392.66;0.00;0.00;0.56;32.62 +2022-12-10;392.66;0.00;0.00;0.00;32.62 +2022-12-11;392.66;0.00;0.00;0.00;32.62 +2022-12-12;386.89;0.00;0.00;-1.47;30.68 +2022-12-13;390.18;0.00;0.00;0.85;31.79 +2022-12-14;389.53;0.00;0.00;-0.17;31.57 +2022-12-15;400.27;0.00;0.00;2.76;35.19 +2022-12-16;400.35;0.00;0.00;0.02;35.22 +2022-12-17;400.35;0.00;0.00;0.00;35.22 +2022-12-18;400.35;0.00;0.00;0.00;35.22 +2022-12-19;401.63;0.00;0.00;0.32;35.65 +2022-12-20;399.90;0.00;0.00;-0.43;35.07 +2022-12-21;405.31;0.00;0.00;1.35;36.90 +2022-12-22;401.09;0.00;0.00;-1.04;35.47 +2022-12-23;399.10;0.00;0.00;-0.50;34.80 +2022-12-24;399.10;0.00;0.00;0.00;34.80 +2022-12-25;399.10;0.00;0.00;0.00;34.80 +2022-12-26;399.10;0.00;0.00;0.00;34.80 +2022-12-27;399.94;0.00;0.00;0.21;35.08 +2022-12-28;399.24;0.00;0.00;-0.18;34.85 +2022-12-29;403.18;0.00;0.00;0.99;36.18 +2022-12-30;395.93;0.00;0.00;-1.80;33.73 +2022-12-31;395.93;0.00;0.00;0.00;33.73 +2023-01-01;395.93;0.00;0.00;0.00;33.73 +2023-01-02;400.41;0.00;0.00;1.13;35.24 +2023-01-03;403.12;0.00;0.00;0.68;36.16 +2023-01-04;408.00;0.00;0.00;1.21;37.81 +2023-01-05;413.49;0.00;0.00;1.35;39.66 +2023-01-06;417.62;0.00;0.00;1.00;41.05 +2023-01-07;417.62;0.00;0.00;0.00;41.05 +2023-01-08;417.62;0.00;0.00;0.00;41.05 +2023-01-09;420.64;0.00;0.00;0.72;42.07 +2023-01-10;423.55;0.00;0.00;0.69;43.06 +2023-01-11;425.21;0.00;0.00;0.39;43.62 +2023-01-12;430.73;0.00;0.00;1.30;45.48 +2023-01-13;431.41;0.00;0.00;0.16;45.71 +2023-01-14;431.41;0.00;0.00;0.00;45.71 +2023-01-15;431.41;0.00;0.00;0.00;45.71 +2023-01-16;438.35;0.00;0.00;1.61;48.06 +2023-01-17;437.66;0.00;0.00;-0.16;47.82 +2023-01-18;433.99;0.00;0.00;-0.84;46.58 +2023-01-19;428.94;0.00;0.00;-1.16;44.88 +2023-01-20;428.95;0.00;0.00;0.00;44.88 +2023-01-21;428.95;0.00;0.00;0.00;44.88 +2023-01-22;428.95;0.00;0.00;0.00;44.88 +2023-01-23;431.56;0.00;0.00;0.61;45.76 +2023-01-24;428.76;0.00;0.00;-0.65;44.82 +2023-01-25;428.92;0.00;0.00;0.04;44.87 +2023-01-26;429.03;0.00;0.00;0.03;44.91 +2023-01-27;429.03;0.00;0.00;0.00;44.91 +2023-01-28;429.03;0.00;0.00;0.00;44.91 +2023-01-29;429.03;0.00;0.00;0.00;44.91 +2023-01-30;430.13;0.00;0.00;0.26;45.28 +2023-01-31;429.79;0.00;0.00;-0.08;45.17 +2023-02-01;424.34;0.00;0.00;-1.27;43.32 +2023-02-02;427.76;0.00;0.00;0.81;44.48 +2023-02-03;421.33;0.00;0.00;-1.50;42.31 +2023-02-04;421.33;0.00;0.00;0.00;42.31 +2023-02-05;421.33;0.00;0.00;0.00;42.31 +2023-02-06;419.87;0.00;0.00;-0.35;41.81 +2023-02-07;436.55;0.00;0.00;3.97;47.45 +2023-02-08;441.01;0.00;0.00;1.02;48.95 +2023-02-09;441.36;0.00;0.00;0.08;49.07 +2023-02-10;438.94;0.00;0.00;-0.55;48.26 +2023-02-11;438.94;0.00;0.00;0.00;48.26 +2023-02-12;438.94;0.00;0.00;0.00;48.26 +2023-02-13;443.63;0.00;0.00;1.07;49.84 +2023-02-14;446.13;0.00;0.00;0.56;50.68 +2023-02-15;450.22;0.00;0.00;0.92;52.07 +2023-02-16;450.60;0.00;0.00;0.08;52.19 +2023-02-17;454.52;0.00;0.00;0.87;53.52 +2023-02-18;454.52;0.00;0.00;0.00;53.52 +2023-02-19;454.52;0.00;0.00;0.00;53.52 +2023-02-20;456.48;0.00;0.00;0.43;54.18 +2023-02-21;456.89;0.00;0.00;0.09;54.32 +2023-02-22;458.50;0.00;0.00;0.35;54.86 +2023-02-23;461.20;0.00;0.00;0.59;55.77 +2023-02-24;456.86;0.00;0.00;-0.94;54.31 +2023-02-25;456.86;0.00;0.00;0.00;54.31 +2023-02-26;456.86;0.00;0.00;0.00;54.31 +2023-02-27;460.42;0.00;0.00;0.78;55.51 +2023-02-28;460.73;0.00;0.00;0.07;55.62 +2023-03-01;459.30;0.00;0.00;-0.31;55.13 +2023-03-02;460.24;0.00;0.00;0.20;55.45 +2023-03-03;461.14;0.00;0.00;0.20;55.75 +2023-03-04;461.14;0.00;0.00;0.00;55.75 +2023-03-05;461.14;0.00;0.00;0.00;55.75 +2023-03-06;467.10;0.00;0.00;1.29;57.77 +2023-03-07;463.99;0.00;0.00;-0.67;56.72 +2023-03-08;465.00;0.00;0.00;0.22;57.06 +2023-03-09;467.07;0.00;0.00;0.45;57.76 +2023-03-10;462.95;0.00;0.00;-0.88;56.37 +2023-03-11;462.95;0.00;0.00;0.00;56.37 +2023-03-12;462.95;0.00;0.00;0.00;56.37 +2023-03-13;455.63;0.00;0.00;-1.58;53.89 +2023-03-14;464.18;0.00;0.00;1.88;56.78 +2023-03-15;463.05;0.00;0.00;-0.24;56.40 +2023-03-16;464.51;0.00;0.00;0.32;56.89 +2023-03-17;461.60;0.00;0.00;-0.63;55.91 +2023-03-18;461.60;0.00;0.00;0.00;55.91 +2023-03-19;461.60;0.00;0.00;0.00;55.91 +2023-03-20;468.44;0.00;0.00;1.48;58.22 +2023-03-21;469.57;0.00;0.00;0.24;58.60 +2023-03-22;465.53;0.00;0.00;-0.86;57.24 +2023-03-23;469.08;0.00;0.00;0.76;58.44 +2023-03-24;463.12;0.00;0.00;-1.27;56.42 +2023-03-25;463.12;0.00;0.00;0.00;56.42 +2023-03-26;463.12;0.00;0.00;0.00;56.42 +2023-03-27;466.45;0.00;0.00;0.72;57.55 +2023-03-28;466.30;0.00;0.00;-0.03;57.50 +2023-03-29;472.89;0.00;0.00;1.41;59.72 +2023-03-30;476.63;0.00;0.00;0.79;60.99 +2023-03-31;480.49;0.00;0.00;0.81;62.29 +2023-04-01;480.49;0.00;0.00;0.00;62.29 +2023-04-02;480.49;0.00;0.00;0.00;62.29 +2023-04-03;479.65;0.00;0.00;-0.17;62.01 +2023-04-04;480.27;0.00;0.00;0.13;62.22 +2023-04-05;488.56;0.00;0.00;1.73;65.02 +2023-04-06;481.96;0.00;0.00;-1.35;62.79 +2023-04-07;481.96;0.00;0.00;0.00;62.79 +2023-04-08;481.96;0.00;0.00;0.00;62.79 +2023-04-09;481.96;0.00;0.00;0.00;62.79 +2023-04-10;481.96;0.00;0.00;0.00;62.79 +2023-04-11;481.96;0.00;0.00;0.00;62.79 +2023-04-12;471.12;0.00;0.00;-2.25;59.12 +2023-04-13;471.49;0.00;0.00;0.08;59.25 +2023-04-14;469.63;0.00;0.00;-0.39;58.62 +2023-04-15;469.63;0.00;0.00;0.00;58.62 +2023-04-16;469.63;0.00;0.00;0.00;58.62 +2023-04-17;477.01;0.00;0.00;1.57;61.11 +2023-04-18;476.67;0.00;0.00;-0.07;61.00 +2023-04-19;476.41;0.00;0.00;-0.05;60.91 +2023-04-20;475.44;0.00;0.00;-0.20;60.58 +2023-04-21;474.96;0.00;0.00;-0.10;60.42 +2023-04-22;474.96;0.00;0.00;0.00;60.42 +2023-04-23;474.96;0.00;0.00;0.00;60.42 +2023-04-24;470.24;0.00;0.00;-0.99;58.83 +2023-04-25;475.70;0.00;0.00;1.16;60.67 +2023-04-26;474.70;0.00;0.00;-0.21;60.33 +2023-04-27;478.48;0.00;0.00;0.80;61.61 +2023-04-28;477.20;0.00;0.00;-0.27;61.18 +2023-04-29;477.20;0.00;0.00;0.00;61.18 +2023-04-30;477.20;0.00;0.00;0.00;61.18 +2023-05-01;477.20;0.00;0.00;0.00;61.18 +2023-05-02;472.70;0.00;0.00;-0.94;59.66 +2023-05-03;458.08;0.00;0.00;-3.09;54.72 +2023-05-04;456.33;0.00;0.00;-0.38;54.13 +2023-05-05;457.30;0.00;0.00;0.21;54.46 +2023-05-06;457.30;0.00;0.00;0.00;54.46 +2023-05-07;457.30;0.00;0.00;0.00;54.46 +2023-05-08;459.76;0.00;0.00;0.54;55.29 +2023-05-09;459.53;0.00;0.00;-0.05;55.21 +2023-05-10;462.18;0.00;0.00;0.58;56.11 +2023-05-11;466.08;0.00;0.00;0.84;57.42 +2023-05-12;467.28;0.00;0.00;0.26;57.83 +2023-05-13;467.28;0.00;0.00;0.00;57.83 +2023-05-14;467.28;0.00;0.00;0.00;57.83 +2023-05-15;469.36;0.00;0.00;0.45;58.53 +2023-05-16;469.82;0.00;0.00;0.10;58.69 +2023-05-17;466.71;0.00;0.00;-0.66;57.64 +2023-05-18;466.46;0.00;0.00;-0.05;57.55 +2023-05-19;468.27;0.00;0.00;0.39;58.16 +2023-05-20;468.27;0.00;0.00;0.00;58.16 +2023-05-21;468.27;0.00;0.00;0.00;58.16 +2023-05-22;465.78;0.00;0.00;-0.53;57.32 +2023-05-23;465.78;0.00;0.00;0.00;57.32 +2023-05-24;457.52;0.00;0.00;-1.77;54.53 +2023-05-25;452.00;0.00;0.00;-1.21;52.67 +2023-05-26;452.88;0.00;0.00;0.19;52.96 +2023-05-27;452.88;0.00;0.00;0.00;52.96 +2023-05-28;452.88;0.00;0.00;0.00;52.96 +2023-05-29;452.27;0.00;0.00;-0.13;52.76 +2023-05-30;449.22;0.00;0.00;-0.67;51.73 +2023-05-31;449.53;0.00;0.00;0.07;51.83 +2023-06-01;449.53;0.00;0.00;0.00;51.83 +2023-06-02;433.78;0.00;0.00;-3.50;46.51 +2023-06-03;433.78;0.00;0.00;0.00;46.51 +2023-06-04;433.78;0.00;0.00;0.00;46.51 +2023-06-05;435.48;0.00;0.00;0.39;47.09 +2023-06-06;432.98;0.00;0.00;-0.57;46.24 +2023-06-07;426.72;0.00;0.00;-1.45;44.13 +2023-06-08;424.38;0.00;0.00;-0.55;43.34 +2023-06-09;426.10;0.00;0.00;0.41;43.92 +2023-06-10;426.10;0.00;0.00;0.00;43.92 +2023-06-11;426.10;0.00;0.00;0.00;43.92 +2023-06-12;426.82;0.00;0.00;0.17;44.16 diff --git a/docs/en/assets/test.xlsx b/docs/en/assets/test.xlsx deleted file mode 100644 index a108b192..00000000 Binary files a/docs/en/assets/test.xlsx and /dev/null differ diff --git a/docs/en/assets/test.xml b/docs/en/assets/test.xml index b8e65373..76aa0e3c 100644 --- a/docs/en/assets/test.xml +++ b/docs/en/assets/test.xml @@ -3,25 +3,36 @@ EUR - 0152978e-2ea2-436f-b07a-0333b988ea8b - share-1 + adfa4c8f-3426-4560-a5ec-f7af0d7ec467 + share-4 EUR - DTE.DE MANUAL - + + - - -1 - -1 - -1 - false - 2023-11-14T19:38:37.608924800Z + 2023-11-19T15:22:53.950628600Z + + + 651be8b3-68f4-41ae-98fa-9ec87ab3f3d7 + share-5 + EUR + MANUAL + + + + + + + + + false + 2023-11-19T20:03:03.874955400Z @@ -34,19 +45,19 @@ 8cb19693-445d-4bb3-9ab0-4f6f79da7c50 - 2020-01-14T00:00 + 2021-01-15T00:00 EUR - 15500 + 17000 0 1. Deposit for purchase share-1 - 2023-11-14T20:36:02.139387600Z + 2023-11-19T14:59:38.224958700Z DEPOSIT - d44f0c89-406d-4301-8f80-14f1795bf81b - 2020-12-16T00:00 + 1aa9703e-dbe7-48a9-98af-4cbb345d0a19 + 2021-01-15T00:00 EUR - 10000 + 17000 @@ -56,14 +67,40 @@ - fe5e28c0-f65b-4b05-baef-4e063a0ff368 - 2020-12-16T00:00 + 52fb5f94-5118-4b11-aaa8-dd42732a3bb4 + 2021-01-15T00:00 EUR - 10000 + 17000 1000000000 - 2023-11-14T20:38:29.156711800Z + 2023-11-19T15:24:24.091107100Z + BUY + + + ed39df9b-2c4a-42f4-bcde-e804e2c548c4 + 2021-09-15T00:00 + EUR + 25000 + + + + + + + 9bf53a35-f2b5-4bb8-81c8-fc07c46df68b + 2021-09-15T00:00 + EUR + 25000 + + + 0 + 2023-11-19T20:09:16.773595500Z + BUY + + + 500000000 + 2023-11-19T20:09:16.773595500Z BUY @@ -77,9 +114,19 @@ 0 - 2023-11-14T20:38:29.156711800Z + 2023-11-19T15:24:24.091107100Z BUY + + + ff0fb665-24c4-4f9b-beee-1f8790a01b1d + 2021-09-15T00:00 + EUR + 25000 + 0 + 2023-11-19T20:09:38.448253500Z + DEPOSIT + @@ -386,7 +433,7 @@ 3580a087-a144-41e6-b45e-351eb5535064 Standard - {"items":[{"id":"shares","width":87},{"id":"name","width":114},{"id":"pv","width":235},{"id":"pp","width":228},{"id":"quote","width":103},{"id":"5","width":104},{"id":"changeonpreviousamount","width":120},{"id":"mv","width":160},{"id":"sumdiv","width":130},{"id":"izf","sortDirection":128,"width":177},{"id":"delta","width":143}]} + {"items":[{"id":"shares","width":87},{"id":"name","width":89},{"id":"pv","width":173},{"id":"pp","sortDirection":1024,"width":161},{"id":"quote","width":103},{"id":"5","width":104},{"id":"changeonpreviousamount","width":120},{"id":"mv","width":160},{"id":"sumdiv","width":130},{"id":"izf","width":162},{"id":"delta","width":143}]} @@ -422,27 +469,12 @@ - F2020-01-15_2023-01-15 - - - - - L1Y0 - - - - - L2Y0 - - - - - L3Y0 + L4Y0 - P + F2021-01-15_2023-06-15 diff --git a/docs/en/concepts/index.md b/docs/en/concepts/index.md index fe07df6a..c72dae01 100644 --- a/docs/en/concepts/index.md +++ b/docs/en/concepts/index.md @@ -1,6 +1,5 @@ --- Title: Basic concepts -lastUpdate: 2023-09-14 --- # Basic concepts @@ -11,6 +10,4 @@ In this chapter, you will find a concise but clear explanation of several basic - [Transaction](transaction.md): A financial transaction is an agreement between a buyer and seller to exchange goods, services, or assets for payment. In case of PP, the exchange is about securities. There are security transactions such as buy, sell delivery (inbound), and delivery (outbound); deposit transactions such as deposit, removal, interest, interest charge, fees, fees refund, taxes, tax refund; and dividend transactions. - [Reporting period](reporting-period.md): The (reporting) period is the time slice that is taken into account for reporting (calculations, graphs, statistics). It's very important that you realize that for every performance calculation a reporting period is taken into account, even if you haven't set one explicitly. - [Purchase value](purchase-value.md): The Purchase Value of a security is the summed value of each buy (+) and sell (-) transaction of that security, taken into account the [reporting period](reporting-period.md). The value of a transaction includes the taxes and fees; sometimes also called “Net Transaction Value”. -- [Performance](performance/index.md): Measuring your portfolio's performance may seem straightforward, but it involves a range of concepts and calculation techniques that require explanation. -- [Internal Rate of Return (IRR)](irr-theory.md): The Internal Rate of Return (IRR) measures the performance of an investment between two dates. It is expressed as an annual interest rate that is necessary to bring the initial value of the investment at time \\(t_{0}\\) to the final value at time \\(t_{n}\\). -- An [extensive but simplified example](irr-example.md) about the different IRR calculations: Trade, security & performance for three reporting periods (1, 2 and 3 years. \ No newline at end of file +- [Performance](performance/index.md): Measuring your portfolio's performance may seem straightforward, but it involves a range of concepts and calculation techniques that require explanation. \ No newline at end of file diff --git a/docs/en/concepts/irr-example.md b/docs/en/concepts/irr-example.md deleted file mode 100644 index 186e6b1f..00000000 --- a/docs/en/concepts/irr-example.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: IRR Practical example step-by-step -lastUpdate: 2023-10-31 -TODO: performance IRR - 1 year reporting small difference line 114 ---- -Let's create a simple example, step by step, to illustrate the calculation of the Internal Rate of Return (IRR) and highlight some of its caveats. You can either download the [XML file](../assets/test-01.xml) or create the file yourself (as outlined below). - -!!! Example - Create a new portfolio `test-01.xml` with currency EUR. Add a securities account `broker-A` and a reference account `broker-A (EUR)`. Add two new empty instruments (`share-1` & `share-2`). Use the symbol tickers `DTE.DE` and `TMV.DE` respectively and set Yahoo Finance (`Exchange Deutsche Börse XETRA`) as quote Feed. Add the following transactions: make a deposit of 155 EUR, buy 10 shares of share-1 at 15 EUR on 2021-01-15, ... (see figure 1, 2 and 3). - -Figure: Overview of transactions - Deposit (3x), Buy (3x), Dividend, and partial Sell.{class=pp-figure} - -![](../images/info-irr-example-transactions.png) - -Figure: Graph of historical quotes and transactions of share-1. {class=pp-figure} - -![](../images/info-irr-example-share-1.png){.pp-figure} - -Figure: Graph of historical quotes and transactions of share-2. {class=pp-figure} - -![](../images/info-irr-example-share-2.png){.pp-figure} - - + If you don't include the deposits (to buy the securities), the performance IRR would become -infinity for longer reporting periods. Deposits accounts are *always* included in IRR calculation. If you don't deposit before buying shares, this account will be most of the time negative (you have bought some shares, but there was no deposit) until there are dividends or sell transactions. - - + If you don't provide historical quotes, Performance and Securities IRR (1 and 2 years) will differ from the example. In absence of the historical quotes, PP will take the transaction value to calculate the initial value at reporting start; see manual on [reporting periods](reporting-period.md). - - -# Trade IRR - -The **Trade IRR** can be calculated using the menu `View > Reports > Performance > Trades` or through the sidebar. There are three trades in the example of figure 1. A *closed* trade starting with a buy of `share-1` on `2021-01-15` and ending with a partial sell on `2022-01-14`. The remaining shares make the second *open* trade, starting at `2022-01-14` and ending at the current date (e.g. `2023-06-12`). The third trade is also open because `share-2` hasn't been sold yet. - -Figure: IRR calculations for the open and closed trades of figure 1.{class=pp-figure} - -![](../images/mnu-view-reports-trade-irr-example.png) - -Please note that PP use a `FIFO principle` (first-in; first-out) to determine which shares will be sold. The 5 shares sold on `2023-04-12` are the ones purchased on `2021-01-15`; *not* the ones acquired on `2022-01-14`. - -It's very important to have the cashflow amounts and dates correct. In the first trade (share-1 closed), 5 shares of the first buy of 10 shares are sold. The net transaction value of this first purchase was 155 EUR (see Figure 1). The initial outflow of trade 1 is 5 * 155/10 or 77.5 EUR. These were sold on `2023-04-12` for 105 EUR. The holding period of these 5 shares was `2023-04-12` - `2023-06-12` = 817 days. The IRR is according to [equation (2)](irr-theory.md) = (105/77.50)^(1/(817/365) or 14.53%. You can also use the Excel-function XIRR(); see Figure 5. - -Trade (share-1 open) is a special case. This trade ends on the current day (`2023-06-12`). But it consists of shares that were bought in 2021 and in 2022. Five shares are from 2021. The cash outflow of these shares is thus -77.5 EUR (see also paragraph above). Today, they are valuated at 95.36 EUR. The remaining 5 shares are from 2022-01-04 with a cash outflow of -84 EUR (see Figure 1). These 5 shares are also 95.36 EUR worth today (`2023-06-12`). Equation 2 cannot help us here because there are multiple terms. Inserting IRR = 9.16% in eq (1) will result in exactly the initial cash outflow of -77.5 EUR (or you could use the Excel function; see figure 5 bottom). - -Figure: Calculating the Trade IRR with Excel. {class=pp-figure} - -![](../images/info-irr-example-excel.png){.pp-figure} - -The trade involving `share-2` is much simpler. Referring to Figure 1, these shares were acquired for a net value of 67 EUR on `2022-09-30`, which was 255 days ago. The current value is 111.76 EUR, resulting in an IRR of 108% (as indicated in Figure 5, top right). - -# Security IRR - -**Security IRR** can be calculated using the menu `View > Reports > Performance > Security` or through the sidebar. - -Both Security IRR and Performance IRR (see below) work with a [reporting period](reporting-period.md). This complicates the calculation quite a bit. - -Figure: Evolution of share-1 and share-2, according to reporting period.{pp-figure} - -![](../images/info-irr-example-security.png){.pp-figure} - -**Important** - - + Depending on the selected period, the date used for the valuation of 1st buy and 2nd buy is either the transaction date or the starting date of the reporting period. If the starting date of the selected period (e.g. 3 years) is before the transaction date, then both the transaction date AND transaction value is used to valuate the investment. Otherwise, the historical price at the period's starting date is utilized. For example, the starting date of a 2 years period is at `2021-06-12`. The purchase date `2021-01-15` of `share-1` precedes that date. Thus, the historical price of `share-1` at the starting date of the period (17.794 EUR) is used to determine the value of the investment. - - + All transaction values are used WITHOUT taxes. Fees however are included. However, if the historical price is used, neither fees nor taxes are factored in. - - + In contrast to the Performance IRR, dividends and sell results are considered as leaving the portfolio at transaction date. Deposit accounts (where these results are stored) are NOT included in the Security IRR calculation. - -## 3 years reporting period - -Today is `2023-06-12`. The start date of the period is thus `2020-06-12`. Because all shares are bought after this date, you need to work with the transaction dates and values (excluding taxes!). - -Figure: Security IRR for a 3 year reporting period.{class=pp-figure} - -![](../images/mnu-view-reports-securities-irr-example-period-3y.png) - -With an IRR = 18.00%, applying [Eq (1)](irr-theory.md) with `share-1` will result in: - -`=153 - (-83/(1.18)^(364/365))+(30/(1.18)^(699/365))+(107/(1.18)^(817/365))+(190.06/(1.18)^(878/365)) = 0` - -Calculating IRR for `share-2` is much easier because there are only two terms; see [equation (2)](irr-theory.md). - -`IRR = (111.76/66)^(1/(255/365))-1` - -## 2 years reporting period - -Figure: Security IRR for a 2 year reporting period.{pp-figure} - -![](../images/mnu-view-reports-securities-irr-example-period-2y.png){.pp-figure} - -The start of the reporting period is on `2021-06-12`. The first buy of share-1 is already done. For this cashflow, you need to take the reporting start date to determine the value of the transaction and 2 * 365 days as period length. The other dates and values remain the same as in the 3 years report. - -For share-2 nothing changes because the transaction date is later than the reporting start. - -## 1 year reporting period - -Figure: Security IRR for a 1 year reporting period.{class=pp-figure} - -![](../images/mnu-view-reports-securities-irr-example-period-1y.png) - -Both 1st and 2nd buy fall before the reporting date. Both transactions are valuated at the reporting start for 272.25 EUR. You can delete the line of 2nd buy or set the value to zero (0/xxx = 0). - -Share-2: same dates and values as in reporting periods 3 years and 2 years. - -# Performance IRR - -Figure: Performance IRR calculation for different reporting periods.{class=pp-figure} - -![](../images/info-irr-example-performance-reporting-period.png) - - -**Important** - - + The performance IRR computes the IRR for the whole portfolio, including deposit accounts. It is possible to filter the portfolio for certain accounts by right-clicking the label and choosing `Data series > Select data series`. - - + A deposit for each buy is necessary, otherwise a `minus infinity IRR` could occur because of the very large negative deposit accounts. - - + Dividends and sell transactions are retained in a deposit account and keep contributing to the IRR. The valuation date for these cashflows is at the end of the reporting period. - - + PP calculates a "Pooled IRR". - -## 3 years reporting period - -Figure: Performance IRR for a 3 year reporting period. {class=pp-figure} - -![](../images/mnu-view-reports-performance-irr-example-period-3y.png) - - + The values in Figure 10 are self-explaining: the net transaction value of the 1st buy of share-1 was 155 EUR. On the ending date of the period the remaining `share-1` are valuated at 190.06 EUR (10 x 19.006 EUR). - - + The dividend and sell transaction have a different date than the transaction date. That's because the result of the transaction is put on a deposit account and stays there until the period end. - -## 2 years reporting period - -Figure: Performance IRR for a 2 year reporting period.{class=pp-figure} - -![](../images/mnu-view-reports-performance-irr-example-period-2y.png) - - - + The initial value of the 2 years reporting period is 177.94 EUR. The 1st buy of `share-1` has taken place before the starting date of the period (`2021-06-12`). This date, however is a Saturday. So, the last valid historical quote on Friday, 2021-06-11 (17.794 EUR) is taken to valuate the stock and the period start has moved 1 day earlier. - -## 1 year reporting period - -Figure: Performance IRR for a 1 year reporting period.{class=pp-figure} - -![](../images/mnu-view-reports-performance-irr-example-period-1y.png) - - + The start date of the period should be `2022-06-12`; so 1st and 2nd buy of share-1 are already done and should be valuated on that day. This date, however, is a Sunday, so, the historical quote of Friday, `2022-06-10` is taken (18.15 EUR), making the initial value 15 * 18.15 = 272.25 EUR. This includes the second buy. The value of this transaction is set to 0. The starting date of the period should be set to `2022-06-10`. - - + There is a small difference between the calculated IRR from PP (27.75%) and the outlined procedure above (27.45%). - - diff --git a/docs/en/concepts/irr-theory.md b/docs/en/concepts/irr-theory.md deleted file mode 100644 index ff6e7262..00000000 --- a/docs/en/concepts/irr-theory.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Internal Rate of Return -lastUpdate: 2023-10-31 ---- - -The Internal Rate of Return (IRR) measures the performance of an investment between two dates ($t_{0}$ and $t_{n}$). It is expressed as an annual interest rate that is necessary to bring the initial value of the investment at time $t_{0}$ to the final value at time $t_{n}$. In PP, the reporting period is measured in days. The classic equation to explain the meaning of IRR is: - -**Eq (1)** $CF_{t0} = \frac{CF_{t1}}{(1 + IRR)^\frac{t_1}{365}}+\frac{CF_{t2}}{(1 + IRR)^\frac{t_2}{365}}+...+ \frac{CF_{tn}}{(1 + IRR)^\frac{t_n}{365}}$ - -$CF_{t0}$ is the initial cashflow at time $t_0$. It is the sum of all in- and outflows at that moment in time and represents your initial investment. $CF_{t1}$, $CF_{tn}$ are the net cashflows that your initial investment will yield. PP works with daily periods instead of the traditional annual periods. Therefore, $t_1$, $t_2$, and $t_n$ should be converted to the number of days between $t_0$ and $t_n$. Of course, if the period between $t_0$ and $t_n$ is, for example, 365 days, the exponent becomes 1 as in the more traditional version of the equation. Eq (1) is derived from the calculation of the [present value](../images/info-irr-future-present-value.svg) of a future cashflow. - -The IRR can be measured for a specific trade, security or the whole portfolio. Here's a simple example. Additionally, there is also a more complex [Practical step-by-step example](irr-example.md), solved in PP. - -!!! Example - On `2021-01-15`, you purchased 10 shares at 17 EUR each. - As of today (`2023-06-15`), the price has risen to 18.5 EUR per share. During this period, you received a dividend of 1.5 EUR per share on `2021-09-10` and a second dividend of 1.7 EUR per share on `2022-09-10`. - -What is the performance or IRR of this security? Let's first have the timing and cashflows correct. - - -Table: Cash flows at different times of investment. - -| Date | $t_n$ | $CF_n$ | -|------------|-------|------------------| -| 2021-01-15 | 0d | 170€ | -| 2021-09-15 | 243d | 15€ | -| 2022-09-15 | 608d | 17€ | -| 2023-06-15 | 881d | 185€ | - -According to (1) - -$$CF_{t0} = 170 = \frac{15}{(1 + IRR)^\frac{243}{365}}+\frac{17}{(1 + IRR)^\frac{608}{365}}+ \frac{185}{(1 + IRR)^\frac{881}{365}}$$ - -What IRR will solve this equation (1)? - -In Figure 1, we reverse the scenario: What's the value of $CF_{t0}$ if the IRR is, for example, 5% or 15%? - -Figure: Calculating CF0 for IRR = 5% and 15%.{class=pp-figure} - -![](../images/info-irr-calculations.svg) - -If IRR = 15% then the combined future cashflows are worth 159.16 EUR in `2021-01-15`. So, you need less money (than 170 EUR) to get the same financial results. The real IRR should be somewhat lower. With 5% however, you need 194.64 EUR to get the same total cashflows in 2021. After some guesswork and interpolation, you arrive at the exact IRR of **11.61%**, which will precisely bring all future cash flows to the initial investment of 170 EUR. - -In the previous example, the dividends are immediately "consumed": you got yourself a nice meal from it. In another scenario, you keep the dividends in your drawer - or in PP terminology: a deposit account - until `2023-06-15` and cash them in at the same moment you sell the share. In that case, there are only two cashflows: $CF_{t0}$ = 170 EUR and $CF_{t881}$ = 15 + 17 +185 EUR. - -Equation (1) has only two terms and could be solved for IRR rather easily. - -**Eq (2)** $CF_{t0} = \frac{CF_{t1}}{(1 + IRR)^\frac{t_1}{365}} \implies IRR = \sqrt[\frac{t_1}{365}]{\frac{CF_{t1}}{CF_{t0}}}-1$ - -In this case, your initial investment of 170 EUR has an IRR = $\sqrt[\frac{881}{365}]{\frac{217}{170}}-1$ = **10.64%**. Why is this IRR smaller than the previous one? Because you kept the dividend until a later date, the 15 EUR in `2021-09-15` is less worth in `2023-06-15`. - -PP calculates three variants of IRR. - - + **Performance IRR**: this is the IRR for the whole project and a specific reporting period; see `side bar > Reports > Performance`. - - + **Security IRR**: the IRR of a selected security for a specific reporting period; see `sidebar > Reports > Performance > Securities`. - - + **Trade IRR**: the IRR of a buy-sell cycle of a selected security. See `sidebar > Reports > Performance > Trades` - -The Performance and Security IRR are calculated for a specific [reporting period](./reporting-period.md); e.g. 1 year, 2 years, 3 years, custom period. It is very important to distinguish the following cases: - - + $t_0$ occurs before the start of the reporting period $RP_{start}$. PP can calculate the value of $CF_0$ (through historic quotes or transaction price) at $RP_{start}$. The holding period is calculated from $RP_{start}$ for each CF. - - + $t_0$ occurs after $RP_{start}$ but before $RP_{end}$. The value of $CF_0$ is known. The holding period is calculated from $RP_{start}$. - - + $t_n$ falls after $RP_{end}$. All transactions after $RP_{end}$ do not contribute to the calculation of IRR for that reporting period. diff --git a/docs/en/concepts/performance/images/info-irr-calculations.svg b/docs/en/concepts/performance/images/info-irr-calculations.svg new file mode 100644 index 00000000..0ee46fe1 --- /dev/null +++ b/docs/en/concepts/performance/images/info-irr-calculations.svg @@ -0,0 +1,832 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + € 228.56 + € 150.20 + € 378.76 + IRR = -5% + IRR = -15% + FV = 170 * (0.85)^(881/365) + FV = 250 * (0.85)^(638/365) + FV = 170 * (0.95)^(881/365) + € 303.02 + € 114.84 + € 188.18 + 2021-01-15 + RD881d + € 170 + + + 2021-09-15 + € 250 + + RD638d + 2023-06-15 + € 335 + + FV = 250 * (0.95)^(638/365) + + + + + + + + + + + + + + diff --git a/docs/en/concepts/performance/images/info-irr-caluclation-excel-2y-period.png b/docs/en/concepts/performance/images/info-irr-caluclation-excel-2y-period.png new file mode 100644 index 00000000..6dda9099 Binary files /dev/null and b/docs/en/concepts/performance/images/info-irr-caluclation-excel-2y-period.png differ diff --git a/docs/en/concepts/performance/images/info-irr-caluclation-excel-buys-dividend-sell.png b/docs/en/concepts/performance/images/info-irr-caluclation-excel-buys-dividend-sell.png new file mode 100644 index 00000000..84ef24b9 Binary files /dev/null and b/docs/en/concepts/performance/images/info-irr-caluclation-excel-buys-dividend-sell.png differ diff --git a/docs/en/concepts/performance/images/info-irr-caluclation-excel-buys-only.png b/docs/en/concepts/performance/images/info-irr-caluclation-excel-buys-only.png new file mode 100644 index 00000000..8967fa57 Binary files /dev/null and b/docs/en/concepts/performance/images/info-irr-caluclation-excel-buys-only.png differ diff --git a/docs/en/concepts/performance/images/info-irr-caluclation-securities-multiple-transactions.png b/docs/en/concepts/performance/images/info-irr-caluclation-securities-multiple-transactions.png new file mode 100644 index 00000000..70038096 Binary files /dev/null and b/docs/en/concepts/performance/images/info-irr-caluclation-securities-multiple-transactions.png differ diff --git a/docs/en/concepts/performance/images/info-irr-caluclation-securities.png b/docs/en/concepts/performance/images/info-irr-caluclation-securities.png new file mode 100644 index 00000000..0af1847a Binary files /dev/null and b/docs/en/concepts/performance/images/info-irr-caluclation-securities.png differ diff --git a/docs/en/concepts/performance/images/info-irr-caluclation-trades.png b/docs/en/concepts/performance/images/info-irr-caluclation-trades.png new file mode 100644 index 00000000..c973ac33 Binary files /dev/null and b/docs/en/concepts/performance/images/info-irr-caluclation-trades.png differ diff --git a/docs/en/concepts/performance/images/info-irr-example-calculation-3yrs.png b/docs/en/concepts/performance/images/info-irr-example-calculation-3yrs.png deleted file mode 100644 index 7b30177c..00000000 Binary files a/docs/en/concepts/performance/images/info-irr-example-calculation-3yrs.png and /dev/null differ diff --git a/docs/en/images/info-irr-example-demo-portfolio.png b/docs/en/concepts/performance/images/info-irr-example-demo-portfolio.png similarity index 100% rename from docs/en/images/info-irr-example-demo-portfolio.png rename to docs/en/concepts/performance/images/info-irr-example-demo-portfolio.png diff --git a/docs/en/concepts/performance/images/info-irr-example-security copy.png b/docs/en/concepts/performance/images/info-irr-example-security copy.png deleted file mode 100644 index 54d87191..00000000 Binary files a/docs/en/concepts/performance/images/info-irr-example-security copy.png and /dev/null differ diff --git a/docs/en/concepts/performance/images/info-irr-example-security.png b/docs/en/concepts/performance/images/info-irr-example-security.png deleted file mode 100644 index 54d87191..00000000 Binary files a/docs/en/concepts/performance/images/info-irr-example-security.png and /dev/null differ diff --git a/docs/en/concepts/performance/images/info-irr-example-transactions copy.png b/docs/en/concepts/performance/images/info-irr-example-transactions copy.png deleted file mode 100644 index b8e03105..00000000 Binary files a/docs/en/concepts/performance/images/info-irr-example-transactions copy.png and /dev/null differ diff --git a/docs/en/concepts/performance/images/info-irr-future-present-value-2.svg b/docs/en/concepts/performance/images/info-irr-future-present-value-2.svg deleted file mode 100644 index f339f51c..00000000 --- a/docs/en/concepts/performance/images/info-irr-future-present-value-2.svg +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - € 146.80 - € 163.70 - € 182.54 - € 203.55 - 146.80 x (1+0.12) - 163.70 x (1+0.12) - 182.54 x (1+0.12) - - - - 146.80 x (1+0.12) x (1+0.12) - 146.80 x (1+0.12) x (1+0.12) x (1+0.12) - - - - diff --git a/docs/en/concepts/performance/images/info-irr-future-present-value.svg b/docs/en/concepts/performance/images/info-irr-future-present-value.svg index 7db0a38c..c6c7e765 100644 --- a/docs/en/concepts/performance/images/info-irr-future-present-value.svg +++ b/docs/en/concepts/performance/images/info-irr-future-present-value.svg @@ -1,37 +1,15 @@ - + transform="translate(-22.090692,-21.284377)"> + transform="translate(-22.090692,-21.284377)" /> + x="214.71715" + y="25.11713" /> + + + VE = VS *(1+r)FV = PV *(1+i)n + PV = FV /(1+i)n € 100.00 € 105.00 110.25*(1+0.05) - - - 105/(1+0.05) + 100*(1+0.05)*(1+0.05) + id="tspan1568">110.25/(1+0.05) 100*(1+0.05)*(1+0.05)*(1+0.05) + id="tspan1574">115.76/(1+0.05) + + + + + + diff --git a/docs/en/concepts/performance/images/info-ttwor-calculation.png b/docs/en/concepts/performance/images/info-ttwor-calculation.png deleted file mode 100644 index 57888b39..00000000 Binary files a/docs/en/concepts/performance/images/info-ttwor-calculation.png and /dev/null differ diff --git a/docs/en/concepts/performance/images/info-ttwror-example-visualisation.svg b/docs/en/concepts/performance/images/info-ttwror-example-visualisation.svg new file mode 100644 index 00000000..b5829b3d --- /dev/null +++ b/docs/en/concepts/performance/images/info-ttwror-example-visualisation.svg @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + Holding Period1 + CF2 = +84 € + Market Value160.26 € + Market Value426.82 € + + + + + + CF3 = +67 € + Market Value264.57 € + + + CF1 = +155 € + Market Value0 € + + + Holding Period2 + Holding Period3 + + Reporting PeriodStart + Reporting PeriodEnd + + diff --git a/docs/en/concepts/performance/images/info-ttwror-export-data-from-pp.png b/docs/en/concepts/performance/images/info-ttwror-export-data-from-pp.png new file mode 100644 index 00000000..d55cd88b Binary files /dev/null and b/docs/en/concepts/performance/images/info-ttwror-export-data-from-pp.png differ diff --git a/docs/en/concepts/performance/images/info-ttwror-manual-calculation.png b/docs/en/concepts/performance/images/info-ttwror-manual-calculation.png new file mode 100644 index 00000000..9d43d577 Binary files /dev/null and b/docs/en/concepts/performance/images/info-ttwror-manual-calculation.png differ diff --git a/docs/en/images/mnu-view-reports-trade-irr-example.png b/docs/en/concepts/performance/images/mnu-view-reports-trade-irr-example.png similarity index 100% rename from docs/en/images/mnu-view-reports-trade-irr-example.png rename to docs/en/concepts/performance/images/mnu-view-reports-trade-irr-example.png diff --git a/docs/en/concepts/performance/index-oud copy.md b/docs/en/concepts/performance/index-oud copy.md deleted file mode 100644 index 119268a2..00000000 --- a/docs/en/concepts/performance/index-oud copy.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Performance ---- -The measurement of your portfolio's performance seems rather straightforward. For example, on January 15, 2020, your demo-portfolio-01 contains 10 shares of `share-1` valuated at 14.68 EUR per share. Three years later (2023-01-15), the price of `share-1` has increased to 20.35 EUR per share, resulting in a market value of 203.55 EUR. The performance of your portfolio is 203.55 - 146.68 = 56.87 EUR. But, of course, this number alone doesn't convey much information. - -In the following paragraphs, we initially outline a cashflow-free portfolio scenario. Similar to the previous example, you acquire a security, retain it for a certain duration, and hope it will increase in value. However, you may also opt for a more active portfolio management, involving the buying and selling of securities. Money will flow into and out of the portfolio, adding a layer of complexity to the investment scenario. - -!!! note - Return is the profit or loss generated by an investment over a period of time. It is usually expressed as a percentage of the initial investment. For example, if you invested $100 in a stock and sold it for $120 after a year, your return would be 20%. - - Rate of return is the annualized return on an investment. It is calculated by dividing the total return by the number of years the investment was held and then expressing the result as a percentage. For example, if you invested $100 in a stock and sold it for $120 after two years, your total return would be $20. Your rate of return would be 9.54% per year, assuming the return was compounded annually. - -# Rate of Return without external cashflow - -The measurement of the performance of a financial portfolio is based on the concept of return: the increase or decrease of value over a specific period. A *simple rate of return* can be calculated as: - -$$\mathrm{r = \frac{(EMV - BMV)}{BMV} \qquad \Leftrightarrow \qquad 1 + r = \frac{EMV}{BMV}\qquad Eq 1}$$ - -where EMV = the End Market Value of the portfolio, and BMV = the Beginning Market Value of the portfolio. The return of the demo portfolio over a 3 year period is thus (203.55 - 146.80)/146.80 = 38.66%. - -Rather than focusing solely on a single three-year holding period, it might be beneficial to know your annual performance and to consider multiple sub-periods. For this, you need the concept of *Future Value*. The calculation is given by Eq 2. - -$$\mathrm{EMV = MMV \times (1 + r)^n \qquad \Leftrightarrow \qquad 1 + r = \left( \frac{EMV}{BMV}\right) ^ \frac{1}{n}\qquad Eq 2}$$ - -where r = the annual return rate, and n = the number of years. The exponential component $\mathrm{(1+r)^n}$ is clarified in Figure 1. - - -Figure: Calculation of an annual return rate of a three year period.{class=pp-figure} - -![](images/info-irr-future-present-value-2.svg) - -Because 182.54 EUR = 163.70 EUR x (1 + 0.12) and 163.70 EUR = 146.80 x (1 + 0.12), this implicates that 182.54 EUR = 146.80 EUR x (1 + 0.12) x (1 + 0.12) or $\mathrm{(1 + 0.12)^2}$. - -To calculate *r*, you need to take the n-root or 1/3 power of (EMV/BMV) minus 1. This results in: r = (203.55/146.80)^1/3 = 0.1151 or 11.51%. This approach assumes a stable *pushing* growing force on the investment of 11.51% each year. - -The growth rate of `share-1` however isn't stable over time at all. You can easily read the valuation of your portfolio from the `Reports > Chart` menu in PP. As you can see, the demo portfolio has grown in the first year from 146.80 to 150.50 EUR (2.52%), in the second year from 150.50 to 159.62 EUR (6.06% or (159.62-150.50)/150.50), and, as you already know, in the third year to 203.55 EUR or 27.52%. None of these yearly *real* returns is the same as the annual calculated return of 11.51%. Also, it's easy to verify that the original calculated return of 38.77% for the entire period is not the simple addition of these yearly returns. The simple rate of return is a cumulative or compounded rate of return over multiple sub-periods. The end value of the previous period is the beginning value of the next. - -The *compounded* return of an entire period should be calculated as follows, also called geometric or chain linking. - -$$\mathrm{r = [(1 + r_1) \times (1 + r_2) \times (1 + r_3) ... (1 + r_{n-1}) \times (1 + r_n)] - 1}$$ - -This formula follows directly from Eq 1b. $MV_t$ is the value of the portfolio after the end of period *t*. - -$$\mathrm{1 + r = \frac{EMV}{BMV}= \frac{MV_1}{BMV} \times \frac{MV_2}{MV_1} \times \frac{EMV}{MV_2}}$$ - -Each sub period value $MV_t$ can be cancelled out, except EMV and BMV. Plugging in the values from the example above gives: `r = [(1+0.026)*(1+0.061)*(1+0.275)] - 1 = 38.77%` - - - -# Rate of Return with external cashflow - -The approach from above assumes that no external money flows into or out of the portfolio. If, for example, additional shares are purchased after BMV then you cannot know how much of the EMV is caused by the capital growth of the original investment or by the additional purchase. Our calculations should take these external cash flows into account. - -An external cash flow refers to a transaction that either increases or decreases the value of a portfolio, mostly a monetary deposit or withdrawal. A positive cash flow signifies money flowing into the portfolio, while a negative cash flow indicates funds exiting the portfolio. In PP these transactions are called *Performance Neutral Transfers*, emphasizing that they shouldn't influence the portfolio performance calculation. - -In our demo-portfolio-03.xml all transactions occur within a holding period of three years, starting at 2020-06-12. This timeframe implies that all transactions take place within this period and that the BMV of this period is thus 0 EUR. - - - First transaction is the purchase of 5 `share-1`. A deposit is made beforehand. This deposit is a positive cashflow. Money from outside enters the portfolio. The deposit is considered as a Performance Neutral Transfer; it should not change the portfolio performance. Utilizing this deposit at a later stage to purchase shares is an internal movement within the portfolio. Yet, it is precisely these shares that propel the portfolio's returns. - - Buying 5 additional `share-1` and 8 `share-2`. Same argument as above. - - Selling 5 `share-1`. The value is deposited into a cash account (which is part of the portfolio). This is considered as a "Performance Neutral Transfer". A security account of Broker-A will decrease but a deposit account will increase with the same amount. Whether this was a good or bad decision will be evident in performance calculation at the end of the period. The EMV of the portfolio will be decreased by 5 shares at some historical price which is hopefully less than the amount in the deposit account. - - Cashing in a dividend. The value is deposited into a cash account (which is part of the portfolio). This is considered as "Performance Neutral Transfer". a cashflow; there is no money -) are two positive cashflows. You need to make a deposit into a cash account in order to be able to purchase the securities. However, selling shares is not always considered as a cash outflow. . - -The formula (sometimes called Return on Investment (ROI) is - -$$\mathrm{ROI\,in\,percent\, = \frac{(EMV + NOF) - (BMV + NIF)}{BMV + NIF} \times 100 \qquad(Eq 3)}$$ - -where NOF is the Net Outflows and NIF is the Net Inflows - - -In case of external cashflows we are not sure that the EMV of our portfolio is caused by the existing -For example, we buy 5 shares of share-1 and 8 shares of share-2 (refer to demo-portfolio-03.xml). - - -Investors also make occasional or periodic contributions to and withdrawals from investment accounts. These net contributions are not included as components of investment return; they represent an increase of capital at risk but not a capital gain on our investment. For this reason, when a fund receives new money it is not possible to measure performance by simply observing the change in market value - - -Moreover, your approach to calculating returns should also accommodate scenarios involving multiple securities with cash inflows and outflows. To handle such situations effectively, you can choose between a *money-weighted* or *time-weighted* approach. - -# Money-weighted Rate of Return - -The money-weighted rate of return is essentially the Internal Rate of Return (IRR) of the cash flows associated with the portfolio. This calculation considers both the timing (when) and the amount (how much) of the cash moves into and out of the portfolio. The money-weighted rate of return or IRR is the annual interest rate that is necessary to bring the start value of the investment to the end value. To generate the specified cash flows within the given time period, your portfolio must grow each year by a percentage equal to the IRR. - -The base formula to calculate the IRR (see also [IRR theory](../irr-theory.md)) looks like: -$$CF_{t0} = \frac{CF_{t1}}{(1 + IRR)^\frac{t_1}{365}}+\frac{CF_{t2}}{(1 + IRR)^\frac{t_2}{365}}+...+ \frac{CF_{tn}}{(1 + IRR)^\frac{t_n}{365}} \qquad\mathrm{(Eq 2)}$$ - -For each cash flow CF at time $t_1$, $t_2$, ..., $t_n$, you calculate its present value by dividing it by ${(1 + IRR)^\frac{t_1}{365}}$, where t is the number of days from the reference time t0. This part discounts the future cash flows to their present values, considering the time value of money. Choosing an appropriate IRR will ensure that the sum of all discounted cash flows equals the initial investment or $CF_{t0}$. - -It's easy to see from Eq 2 that the value of IRR is influenced by the magnitude of the cash flow. If the cash flow CF increases, the IRR must also become larger to balance the equation. If the exponent $\frac{t_2}{365}$ increases, the value of IRR should decrease. Therefore, IRR is a money-weighted rate of return. - -In [IRR - Practical example](../irr-example.md), you will find a detailed and comprehensive explanation of the IRR calculation for our demonstration portfolio. - -# Time-weighted Rate of Return -The time-weighted rate of return is not influenced by the amount invested. Whether you invest 1 EUR or 100 EUR, you will achieve the same return. The reporting period is divided into several holding periods, and for each holding period, a return value is calculated and then compounded into an overall return. Each period carries equal weight. In the True time-weighted methodology (TTWROR), performance is calculated using simple returns without any consideration for the total amount invested. - -PP computes the TTWOR as follows. For each day within the reporting period, it collects the total portfolio value, inbound transfers, and outbound transfers. The portfolio value encompasses all deposit and securities accounts. To determine the value of a security, it multiplies the quantity by the (historical) price. Transfers encompass external cash flows, which can either enter the portfolio from outside (inbound) or exit it (outbound); assuming that fresh money is added at the beginning of the day (and hence is available to generate return) and removed at the end of the day. A dividend or sale transaction is not considered as a transfer; they remain within the portfolio. They are recorded in the cash account, thereby contributing to the increased valuation of the portfolio. A modified version of the simple return formula (see eq 1), including the transfers, is used to calculate the daily return value (named delta). - diff --git a/docs/en/concepts/performance/index-oud.md b/docs/en/concepts/performance/index-oud.md deleted file mode 100644 index 482f0bb2..00000000 --- a/docs/en/concepts/performance/index-oud.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Performance ---- -definition with holding period, then base formula, stress the fact of the period. -two approaches: MWR and TWR: short description -formula for IRR: explaning an elaborating -- timing aspect; each CF has a smaller contribution to the MVE when further in time -- a sale is a out & inflow. Out: less securities, in: cash. -formula for TTWOR: idem - -The measurement of the performance of a financial portfolio is based on the concept of return: the increase or decrease of value over a specific period. The base formula is as follows. - -$$\mathrm{r = \frac{(MVE - MBV)}{MVB} \qquad \Leftrightarrow \qquad 1 + r = \frac{MVE}{MVB}\qquad Eq 1}$$ - -where MVE = the Market Value of the portfolio, and BMV = the Beginning Market Value of the portfolio. The return of the demo portfolio over a 3 year period is thus (203.55 - 146.80)/146.80 = 38.66%. - -Rather than focusing solely on a single three-year holding period, it might be beneficial to know your annual performance and to consider multiple sub-periods. For this, you need the concept of *Future Value*. The calculation is given by Eq 2. - -$$\mathrm{EMV = MMV \times (1 + r)^n \qquad \Leftrightarrow \qquad 1 + r = \left( \frac{EMV}{BMV}\right) ^ \frac{1}{n}\qquad Eq 2}$$ - -where r = the annual return rate, and n = the number of years. The exponential component $\mathrm{(1+r)^n}$ is clarified in Figure 1. - - -Figure: Calculation of an annual return rate of a three year period.{class=pp-figure} - -![](images/info-irr-future-present-value-2.svg) - -Because 182.54 EUR = 163.70 EUR x (1 + 0.12) and 163.70 EUR = 146.80 x (1 + 0.12), this implicates that 182.54 EUR = 146.80 EUR x (1 + 0.12) x (1 + 0.12) or $\mathrm{(1 + 0.12)^2}$. - -To calculate *r*, you need to take the n-root or 1/3 power of (EMV/BMV) minus 1. This results in: r = (203.55/146.80)^1/3 = 0.1151 or 11.51%. This approach assumes a stable *pushing* growing force on the investment of 11.51% each year. - -The growth rate of `share-1` however isn't stable over time at all. You can easily read the valuation of your portfolio from the `Reports > Chart` menu in PP. As you can see, the demo portfolio has grown in the first year from 146.80 to 150.50 EUR (2.52%), in the second year from 150.50 to 159.62 EUR (6.06% or (159.62-150.50)/150.50), and, as you already know, in the third year to 203.55 EUR or 27.52%. None of these yearly *real* returns is the same as the annual calculated return of 11.51%. Also, it's easy to verify that the original calculated return of 38.77% for the entire period is not the simple addition of these yearly returns. The simple rate of return is a cumulative or compounded rate of return over multiple sub-periods. The end value of the previous period is the beginning value of the next. - -The *compounded* return of an entire period should be calculated as follows, also called geometric or chain linking. - -$$\mathrm{r = [(1 + r_1) \times (1 + r_2) \times (1 + r_3) ... (1 + r_{n-1}) \times (1 + r_n)] - 1}$$ - -This formula follows directly from Eq 1b. $MV_t$ is the value of the portfolio after the end of period *t*. - -$$\mathrm{1 + r = \frac{EMV}{BMV}= \frac{MV_1}{BMV} \times \frac{MV_2}{MV_1} \times \frac{EMV}{MV_2}}$$ - -Each sub period value $MV_t$ can be cancelled out, except EMV and BMV. Plugging in the values from the example above gives: `r = [(1+0.026)*(1+0.061)*(1+0.275)] - 1 = 38.77%` - - - -# Rate of Return with external cashflow - -The approach from above assumes that no external money flows into or out of the portfolio. If, for example, additional shares are purchased after BMV then you cannot know how much of the EMV is caused by the capital growth of the original investment or by the additional purchase. Our calculations should take these external cash flows into account. - -An external cash flow refers to a transaction that either increases or decreases the value of a portfolio, mostly a monetary deposit or withdrawal. A positive cash flow signifies money flowing into the portfolio, while a negative cash flow indicates funds exiting the portfolio. In PP these transactions are called *Performance Neutral Transfers*, emphasizing that they shouldn't influence the portfolio performance calculation. - -In our demo-portfolio-03.xml all transactions occur within a holding period of three years, starting at 2020-06-12. This timeframe implies that all transactions take place within this period and that the BMV of this period is thus 0 EUR. - - - First transaction is the purchase of 5 `share-1`. A deposit is made beforehand. This deposit is a positive cashflow. Money from outside enters the portfolio. The deposit is considered as a Performance Neutral Transfer; it should not change the portfolio performance. Utilizing this deposit at a later stage to purchase shares is an internal movement within the portfolio. Yet, it is precisely these shares that propel the portfolio's returns. - - Buying 5 additional `share-1` and 8 `share-2`. Same argument as above. - - Selling 5 `share-1`. The value is deposited into a cash account (which is part of the portfolio). This is considered as a "Performance Neutral Transfer". A security account of Broker-A will decrease but a deposit account will increase with the same amount. Whether this was a good or bad decision will be evident in performance calculation at the end of the period. The EMV of the portfolio will be decreased by 5 shares at some historical price which is hopefully less than the amount in the deposit account. - - Cashing in a dividend. The value is deposited into a cash account (which is part of the portfolio). This is considered as "Performance Neutral Transfer". a cashflow; there is no money -) are two positive cashflows. You need to make a deposit into a cash account in order to be able to purchase the securities. However, selling shares is not always considered as a cash outflow. . - -The formula (sometimes called Return on Investment (ROI) is - -$$\mathrm{ROI\,in\,percent\, = \frac{(EMV + NOF) - (BMV + NIF)}{BMV + NIF} \times 100 \qquad(Eq 3)}$$ - -where NOF is the Net Outflows and NIF is the Net Inflows - - -In case of external cashflows we are not sure that the EMV of our portfolio is caused by the existing -For example, we buy 5 shares of share-1 and 8 shares of share-2 (refer to demo-portfolio-03.xml). - - -Investors also make occasional or periodic contributions to and withdrawals from investment accounts. These net contributions are not included as components of investment return; they represent an increase of capital at risk but not a capital gain on our investment. For this reason, when a fund receives new money it is not possible to measure performance by simply observing the change in market value - - -Moreover, your approach to calculating returns should also accommodate scenarios involving multiple securities with cash inflows and outflows. To handle such situations effectively, you can choose between a *money-weighted* or *time-weighted* approach. - -# Money-weighted Rate of Return - -The money-weighted rate of return is essentially the Internal Rate of Return (IRR) of the cash flows associated with the portfolio. This calculation considers both the timing (when) and the amount (how much) of the cash moves into and out of the portfolio. The money-weighted rate of return or IRR is the annual interest rate that is necessary to bring the start value of the investment to the end value. To generate the specified cash flows within the given time period, your portfolio must grow each year by a percentage equal to the IRR. - -The base formula to calculate the IRR (see also [IRR theory](../irr-theory.md)) looks like: -$$CF_{t0} = \frac{CF_{t1}}{(1 + IRR)^\frac{t_1}{365}}+\frac{CF_{t2}}{(1 + IRR)^\frac{t_2}{365}}+...+ \frac{CF_{tn}}{(1 + IRR)^\frac{t_n}{365}} \qquad\mathrm{(Eq 2)}$$ - -For each cash flow CF at time $t_1$, $t_2$, ..., $t_n$, you calculate its present value by dividing it by ${(1 + IRR)^\frac{t_1}{365}}$, where t is the number of days from the reference time t0. This part discounts the future cash flows to their present values, considering the time value of money. Choosing an appropriate IRR will ensure that the sum of all discounted cash flows equals the initial investment or $CF_{t0}$. - -It's easy to see from Eq 2 that the value of IRR is influenced by the magnitude of the cash flow. If the cash flow CF increases, the IRR must also become larger to balance the equation. If the exponent $\frac{t_2}{365}$ increases, the value of IRR should decrease. Therefore, IRR is a money-weighted rate of return. - -In [IRR - Practical example](../irr-example.md), you will find a detailed and comprehensive explanation of the IRR calculation for our demonstration portfolio. - -# Time-weighted Rate of Return -The time-weighted rate of return is not influenced by the amount invested. Whether you invest 1 EUR or 100 EUR, you will achieve the same return. The reporting period is divided into several holding periods, and for each holding period, a return value is calculated and then compounded into an overall return. Each period carries equal weight. In the True time-weighted methodology (TTWROR), performance is calculated using simple returns without any consideration for the total amount invested. - -PP computes the TTWOR as follows. For each day within the reporting period, it collects the total portfolio value, inbound transfers, and outbound transfers. The portfolio value encompasses all deposit and securities accounts. To determine the value of a security, it multiplies the quantity by the (historical) price. Transfers encompass external cash flows, which can either enter the portfolio from outside (inbound) or exit it (outbound); assuming that fresh money is added at the beginning of the day (and hence is available to generate return) and removed at the end of the day. A dividend or sale transaction is not considered as a transfer; they remain within the portfolio. They are recorded in the cash account, thereby contributing to the increased valuation of the portfolio. A modified version of the simple return formula (see eq 1), including the transfers, is used to calculate the daily return value (named delta). - diff --git a/docs/en/concepts/performance/index.md b/docs/en/concepts/performance/index.md index 352e7b92..1dd1a15e 100644 --- a/docs/en/concepts/performance/index.md +++ b/docs/en/concepts/performance/index.md @@ -8,96 +8,26 @@ $$\mathrm{r = \frac{(MVE - MVB)}{MVB} \qquad \Leftrightarrow \qquad 1 + r = \fra where MVE = the market value of the portfolio at the end of the reporting period, and MVB = the market value of the portfolio at the beginning of the period. Please note that: - The rate of return percentage applies to the entire period (3 years, 6 months, ...) and is not an annual rate. -- There have been no additional transactions within this specified period. +- There are no additional transactions within this specified period. PP uses two different approaches to calculate the rate of return when additional transactions occur withing the reporting period: the money-weighted or time-weighted rate of return. It also distinguishes between the measuring the performance on portfolio, (individual) security, or trade level. # The money-weighted rate of return -The money-weighted rate of return uses essentially the Internal Rate of Return (IRR) technique used in project management. This calculation considers both the timing (when) and the amount (how much) of the cash moves into and out of the portfolio within the reporting period. +The money-weighted rate of return uses essentially the **Internal Rate of Return (IRR)** technique used in project management. This calculation considers both the timing (when) and the amount (how much) of the cash that moves into and out of the portfolio within the reporting period. The money-weighted rate of return or IRR is the annual interest rate that is necessary to bring the beginning value of the investment (MVB) and all subsequent cash flows to the end value (MVE). To generate the specified cash flows within the given time period, your portfolio must grow each year by a percentage equal to the IRR. -The base formula for the IRR calculation is: - -$$\mathrm{MVE = MVB \times (1 + IRR) + \sum_{t=1} ^{n}CF_t \times (1+IRR)^{\frac{RD_t}{365}} \qquad (Eq 2)}$$ - -where *n* = the number of cash flows in the reporting period, $CF_t$ = cash flow at time *t* within the period, and $RD_t$ = the number of remaining days within the period of $CF_t$ for $CF_t$. Unfortunately, there is no easy way to derive the value of IRR from this equation. Software tools such as Excel employ the brute-force approach, iteratively solving the equation with various "guesses" of IRR until a suitable match is identified. - -IRR is thus the interest rate that will make the future value on end date of the period of all $CF_t$ and MVB equal to the MVE. The formula is very similar to the calculation of [Future Value](images/info-irr-future-present-value.svg). With an interest rate of 5%, 100 EUR today will be worth 115.76 EUR or $\mathrm{100 \times (1 +0.05)^3}$. Since PP uses days as standard period, we need to divide the remaining number of days that the cash flow could influence the performance by 365 to obtain a decimal representation of the yearly period. $\mathrm{CF_t \times (1+IRR)^{\frac{RD_t}{365}}}$ is thus the expected future value at the end of the period of the CF at time *t* with an interest rate = IRR. Please note that without any cash flows, Equation (2) is identical to Equation (1). IRR is the rate of return of our portfolio. - -In our demo-portfolio-03.xml all transactions take place within a holding period of three years, starting at 2020-06-12. Consequently, the MVB for this period is 0 EUR because the portfolio is empty at the beginning of the period. The following transactions occurred in the holding period (see Figure 1 below). - -Figure: Overview of transactions - Deposit (3x), Buy (3x), Dividend, and partial Sell.{class=pp-figure} - -![](images/info-irr-example-transactions.png) - -Figure: Graph of historical quotes and transactions of share-1. {class=pp-figure} - -![](images/info-irr-example-share-1.png) - -Figure: Graph of historical quotes and transactions of share-2. {class=pp-figure} - -![](images/info-irr-example-share-2.png) - -By inserting the relevant information into Equation 2, we can calculate the IRR as outlined in Equation 3. With an IRR = 20.28%, MVE matches exactly the right side of the equation. - -$$ -\mathrm{MVE = MVB \times (1 + IRR)^{\frac{1095}{365}} + CF_{217} \times (1+IRR)^{\frac{878}{365}} + CF_{581} \times (1+IRR)^{\frac{514}{365}} + -CF_{255} \times (1+IRR)^{\frac{840}{365}} \qquad (Eq 3)} -$$ - -`MVE = 0 x 1.2^3 + 155 x 1.2^2.4 + 84 x 1.2^1.4 + 67 x 1.2^0.7` - -or - -`MVE = 0 + 241.68 + 108.95 + 76.23 = 426.82` - -The initial cashflow of 155 EUR will contribute 241.68 EUR to MVE while the final cash flow of 67 EUR will only contribute 76.23 due the small remaining number of days until the end date. - -However, out of the total of seven cash flows (3x buy, 1x dividend, 1x sale, 2x valuation remaining shares), only three seem to appear in the formula. The other cash flows however are included in the valuation of the portfolio at the end date of the period (MVE). As you can see in Figure 4, MVE consists of the paid dividend and the result of the sale transaction (both parked on a deposit account), plus the valuation on the end date of the remaining shares from the portfolio. - -Figure: Visualisation of the IRR equation. {class=pp-figure} - -![](images/info-irr-example-calculation-3yrs.png) - -Since the dividend and sale result are placed in a cash account and as such remain stable until the end of period, all remaining cash flows could be written as: - -`20 x 1.2^0 + 105 x 1.2^0 + 190.06 x 1.2^0 + 111.76 x 1.2^0 = MVE` - -The exponent of each cash flow is zero, because there are no more remaining days to the end of the project. If the dividend or sales result are reinvested again, then an additional positive cash flow should be inserted. - -In [IRR - Practical example](../irr-example.md), you will find a detailed and comprehensive explanation of the IRR calculation for our demonstration portfolio. +If you find the concept of IRR challenging, please start by first reading the [money-weighted section](./money-weighted.md). The calculation method is thoroughly explained by formulas and numerous examples, ranging from a simple single-share investment to multiple transactions including dividends. The examples are based on the our demo portfolio to solidify your understanding. # Time-weighted Rate of Return -The time-weighted rate of return is not influenced by the amount invested. Whether you invest 1 EUR or 100 EUR, you will achieve the same return. The reporting period is divided into several holding periods, and for each holding period, a return value is calculated and then compounded into an overall return. Each period carries equal weight; hence the name time-weighted rate of return. In the True Time-Weighted Rate Of Return methodology (TTWROR), performance is calculated using simple returns without any consideration for the total amount invested. - -To minimize the computational effort, older methods utilized larger holding periods. In our demo-portfolio-01, for instance, the initial periods would be formed by - -`Period start --> CF1, CF1 --> CF2, ..., CFn-1 --> Period end`. - -Because computer time is cheap nowadays, PP uses a single day as holding period. Let's take a look at our demo-portfolio-03. The portfolio took off on January 15, 2021, by purchasing five shares for a total amount of 155 EUR (taxes and fees 5 EUR inclusive). The closing price of `share-1` on that day was 15.05 EUR. The market value is thus 150.5 EUR; while still zero on the days before until the start of the reporting period (2020-06-15; see Figure 5). - -Figure: Calculation of the TTWOR in PP. {class=pp-figure} - -![](images/info-ttwor-calculation.png) - -!!! Note - You can easily generate the spreadsheet of Figure 1 with the menu `View > Reports > Performance > Chart` and selecting the icon (top right) `Export Data as CSV`. Choose `Export Entire Portfolio`. - -The market value is the sum of the values of all deposit and securities accounts. To determine the value of a security, the (historical) closing price is taken. Transfers encompass external cash flows, which can either enter the portfolio from outside (inbound transfer) or exit it (outbound transfer); assuming that fresh money is added at the beginning of the day (and hence is available to generate return) and removed at the end of the day. Each deposit is made at the beginning of the day, allowing us to make purchases during that day without any concerns. The formula for Delta is: - -$$\mathrm{Delta\ in \% = (MV_t - (MV_{t-1} + In_t - Out_t))/(MV_{t-1} + In_t - Out_t) \qquad (Eq 4)}$$ - -where $\mathrm{MV_{t-1}}$ = the market value of the previous day and In/Out stand for respectively Inbound and Outbound Transfer at the current day. - -This formula calculates the performance of the current day MV_t against the previous day MV_{t-1}, corrected for cash flows. +The time-weighted rate of return is not influenced by the amount invested. Whether you invest one EUR or 100 EUR, you will achieve the same return. The reporting period is divided into several holding periods, and for each holding period, a return value is calculated and then compounded into an overall return. Each period carries equal weight; hence the name time-weighted rate of return. In the True Time-Weighted Rate Of Return methodology (TTWROR), performance is calculated using simple returns without any consideration for the total amount invested. -Let's take a look at the purchase of 67 EUR of `share-1` on 2022-09-30. The market value of the portfolio on the previous day was 264.57 EUR. The current market value is 326.38 EUR. The simple rate of Return (Eq 1) should report that the performance r = (326.38 - 264.57)/264.57 = 23.36%. That's, of course, because of the cash inflow of 67 EUR. The intrinsic performance, independent of the magnitude of the cash flow is delta% = 326.38 - (264.57 + 67 - 0)/ (264.57 + 67 - 0) = -1.57%. This negative return is a result of the taxes and fees associated with the purchase of the share, causing the market value to temporarily dip slightly negative after the purchase; +The TTWOR method is explained in depth in the [time-weighted section](./time-weighted.md) of this chapter. -In the time-weighted approach, the magnitude of the cash flows shouldn't have any impact; so the cash flows are added/subtracted both to the nominator and denominator of the equation. +# Which one to use? -With these returns, the *compounded* return or TTWOR or cumulative performance in % is calculated. +# Many IRR and TTWOR's? -$$\mathrm{r = [(1 + r_1) \times (1 + r_2) \times (1 + r_3) ... (1 + r_{n-1}) \times (1 + r_n)] - 1 \qquad (Eq 5)}$$ +# Impact of the reporting period -where $r_t$ is the return rate or delta% from day *t*. \ No newline at end of file +# How are dividends, taxes, fees handled in the different scenarios? diff --git a/docs/en/concepts/performance/money-weighted.md b/docs/en/concepts/performance/money-weighted.md index b2a442b2..57052713 100644 --- a/docs/en/concepts/performance/money-weighted.md +++ b/docs/en/concepts/performance/money-weighted.md @@ -1,81 +1,195 @@ --- title: Money weighted rate of return --- +# The money-weighted rate of return +The money-weighted rate of return is in fact identical to the Internal Rate of Return (IRR) technique used in project management. This calculation considers both the timing (when) and the amount (how much) of money moves into and out of the portfolio within the reporting period. The base formula for the IRR calculation is: -The money-weighted rate of return (MWRR) is a measure of the performance of an investment between two dates ($t_{0}$ and $t_{n}$). It is expressed as an annual interest rate that is necessary to bring the initial value of the investment at time $t_{0}$ to the final value at time $t_{n}$ and in fact, it is essentially equivalent to the Internal Rate of Return (IRR). The IRR of an investment is defined by equation (1). +$$\mathrm{MVE = MVB \times (1 + IRR)^{\frac{RD_1}{365}} + \sum_{t=1} ^{n}CF_t \times (1+IRR)^{\frac{RD_t}{365}} \qquad \text{(Eq 1)}}$$ -$$V_S * (1 + r) + \sum_{t=1} ^{n}C_t * (1 + r)^{\frac{dte}{365}} = V_E \qquad\mathrm{(Eq 1)}$$ +where *n* = the number of cash flows in the reporting period, $CF_t$ = cash flow at time *t* within the period, and $RD_t$ = the number of remaining days within the period. For MVB, the $RD_t$ equals the entire period, representing the period length in years. You can simplify the equation by treating the MVB as the initial cash flow. A cash flow is any amount of money that is added to or withdrawn from an investment. -where $V_S$ = the start value of the investment or portfolio, $V_E$ = the end value of the portfolio, $C_t$ = the external cash flow on day *t*, and $dte$ = the number of days to the end of the period. +The formula is very similar to the calculation of [Future Value](images/info-irr-future-present-value.svg). With an interest rate of 5%, 100 EUR today will be worth 115.76 EUR in three years or `100 x (1 +0.05)^3`. Since PP uses days as standard period, we need to divide the remaining number of days that the cash flow could influence the performance by 365 to obtain a decimal representation of the yearly period. $\mathrm{CF_t \times (1+IRR)^{\frac{RD_t}{365}}}$ is thus the expected future value of the cash flow CF at time *t* by the the end of the period with an annual interest rate = IRR. Please note that in the absence of any cash flows, Equation (1) resembles the simple return formula [MVE = MVB x (1 + r)](./index.md). The added exponent transforms the return rate into an annual rate of return rather than a periodic rate of return, as in the simple return formula. -*[1] Bacon, Carl, R. Practical Portfolio Performance Measurement and Attribution. West Sussex: John Wiley & Sons, 2004, 225p.* + The IRR is the annual interest rate that is necessary to bring the beginning value of the investment (MVB) and all subsequent cash flows to the end value (MVE). To produce the specified cash flows within the given time period, your portfolio needs to grow each year by a percentage equal to the Internal Rate of Return (IRR). +!!! Note + In project management literature, you are more likely to encounter Equation (1) expressed as: -Let's try to apply Eq 1 to our demo-portfolio-03. The IRR for a 3 year period (e.g. from 2020-06-12 to 2023-06-12) is equal to 28.28%. + $$\mathrm{CF_{t0} = \frac{CF_{t1}}{(1 + IRR)^\frac{t_1}{365}}+\frac{CF_{t2}}{(1 + IRR)^\frac{t_2}{365}}+...+ \frac{CF_{tn}}{(1 + IRR)^\frac{t_n}{365}}}$$ -Figure: Money-weighted rate of return applied to demo-portfolio.{class=pp-figure} + where $\mathrm{CF_{t0}}$ denotes the initial cash outflow at time $t_0$, representing your initial investment. $\mathrm{CF_{t1} \cdots CF_{tn}}$ are the net cashflows that your initial investment will yield. PP works with daily periods instead of the traditional annual periods. Therefore, $\mathrm{t_1, t_2, \cdots t_n}$ should be converted to the number of days between $t_0$ and $t_n$. -![](../images/info-irr-example-demo-portfolio.png) -The portfolio is empty at the start of the reporting period on 2020-06-12. The first share is bought on 2021-01-15. The start value $V_S$ = 0. The end value $V_E$ is 426.82 EUR. This is the result of the dividend payment, the partial sale of share-1 and the market value of the remaining `share-1` and `share-2` on 2023-06-12. This final result is made possible thanks to the buying of share-1 and share-2 at the respective dates. However, the 155 EUR, spent on 2021-01-15 is now (2023-06-12) worth 241.68 EUR. This is the [Future Value](images/info-irr-future-present-value.svg) of this cashflow from the perspective of the buy-transaction. The formula is: $C_t * (1 + r)^{\frac{dte}{365}}$. For example, the future value of 100 EUR after one year with an interest rate of 10% is 110 EUR = 100 * (1 + 0.10). But what interest rate should you use? The IRR is that interest rate that make the sum of the future values of all cashflow equal to the final value of the portfolio, e.g. 426.82 EUR. +Unfortunately, there is no easy way to derive the value of IRR from Equation 1. Software tools such as Excel have functions like IRR and XIRR, that employ a brute-force approach, iteratively solving the equation with various "guesses" of IRR until a suitable match is identified. In the examples below we will use the Goal Seek method of Excel to illustrate the solution. -!!! Note - Why aren't dividend payments and share sales considered external cashflows? Certainly, the funds originate from outside the portfolio. However, they are generated by a share. In that regard, they are no different from the capital growth of a share. Moreover, the dividend payment is deposited into a cash account, and nothing further happens with it until the end of the period. At that point, the portfolio is settled, and the dividend payment and sales results are included in the $V_E, along with the capital growth of the share. +# IRR at portfolio level +The following examples will calculate the IRR for the whole portfolio. For example, our demo-portfolio-03 contains two securities and one deposit account. The resulting IRR should not be extrapolated to an individual security. It's the performance of the whole portfolio. Of course, you can calculate the IRR for a [specific security](#irr-on-security-level) or even [trade](#irr-on-trade-level) in PP. + + +## Example 1: one buy transaction +In our [demo-portfolio-03](../../assets/demo-portfolio-03.xml) all transactions take place within a holding period of three years, starting at `2020-06-12`. Consequently, the MVB for this period is 0 EUR because the portfolio is empty at the beginning of the period. The following transactions occur in the holding period (see Figure 1 below). + +Figure: Overview of transactions - Deposit (3x), Buy (3x), Dividend, and partial Sell.{class=pp-figure} + +![](images/info-irr-example-transactions.png) + +Figure: Graph of historical quotes and transactions of share-1. {class=pp-figure} + +![](images/info-irr-example-share-1.png) + +Figure: Graph of historical quotes and transactions of share-2. {class=pp-figure} + +![](images/info-irr-example-share-2.png) + +Assume that only the first buy (+ deposit) has taken place. The calculation of the IRR should then be straightforward. + +- MVB = 0 EUR +- First cash flow on January 15, 2021: the purchase of 10 shares of `share-1` at a price of 15 EUR each, resulting in a total sum of 155 EUR (including fees and taxes); see Figure 1. Due to the three-year reporting period, this security will remain in the portfolio for an additional 878 days until MVE. +- MVE = 10 shares at quote 19.006 EUR; in total 190.06 EUR. + +Since MVB = 0, we can derive the IRR from Equation 2 directly: $\mathrm{IRR = \left({\frac{MVE}{CF_1}}\right)^\frac{365}{878} - 1}$ + +`IRR = (190.06/155)^(365/878) = 8.85%` + +In order to generate the MVE = 190.06 EUR, the initial cash flow CF1 of 155 EUR must grow at 8.85% per year for 2.41 years or 878 remaining days. + +## Example 2: multiple buy transactions +When dealing with multiple cash flows, deriving the Internal Rate of Return (IRR) becomes more complex. Take, for example, the three buying transactions from Figure 1. The same logic as mentioned earlier still applies, albeit with a bit more complexity. + +- MVB is still zero EUR. +- Three cash flows (see Figure 1). The remaining days in the reporting period are respectively 878, 514, and 255 days. +- MVE = 15 shares at a quoted price of 19.006 EUR, and 5 shares at 13.77 EUR, totaling 396.85 EUR. + +$$ +\mathrm{MVE = MVB \times (1 + IRR)^{\frac{1095}{365}} + CF_1 \times (1+IRR)^{\frac{878}{365}} + CF_2 \times (1+IRR)^{\frac{514}{365}} + CF_3 \times (1+IRR)^{\frac{255}{365}} \qquad (Eq 3)} +$$ + +Figure 4 illustrates the calculation in Excel ([download workbook](../../assets/demo-portfolio-03-calculation.xlsx)). The initial cash flow of 155 EUR will have grown to 219.68 EUR, if the holding period was 878 days and the yearly interest rate was 15.60%. The second buy will increase from 84 EUR to 103.03 EUR. The profit of `share-2` appears smaller due to the smaller amount of holding days. The calculation of IRR can be simulated it in Excel using the Data > Goal Seek method (see Figure 4). The method tries to set the value of the calculated MVE (cell F11) to the observed MVE (manual input) by iteratively changing the value of IRR, until a match (15.60%) is found. + +Please note that the individual calculated end values of the shares do not necessarily correspond with the observed individual end values. Compare for example the expected and observed value of `share-2`. Only the sum of the whole portfolio match. See balow to calculate the performance of [individual securities](#irr-on-security-level) and [trades](#irr-on-trade-level). + +Figure: IRR-calculation for three buy-transactions. {class=pp-figure} + +![](images/info-irr-caluclation-excel-buys-only.png) + +## Example 3: buy - dividend - sell transactions +Whether dividend payments and selling securities should be considered as cash flows depends on the context. In demo-portfolio-03, the outcomes of dividend and selling transactions are deposited in a cash account, which is part of the portfolio. Consequently, there isn't any 'external' cash flow. Also, the cash account is included in the portfolio valuation at the end of the period (MVE), meaning that the value of MVE already incorporates dividends and sales. + +If the dividend payment is "consumed" (you bought yourself a nice meal from it), resulting in an external cash flow (withdrawal), this transaction should be recorded in PP. Similarly, if you choose to reinvest the dividend or the proceeds from a sale, it necessitates recording a new transaction in PP. + +As evident in Figure 5, MVE comprises the paid dividend and the outcome of the sale transaction (both held in a deposit account), in addition to the valuation on the end date of the remaining shares from the portfolio. This aligns with what PP displays in the calculation tab. The MVE is the total of all deposit and securities accounts. + +Figure: IRR-calculation for buy-sell-dividend transactions. {class=pp-figure} + +![](images/info-irr-caluclation-excel-buys-dividend-sell.png) + +If you should like to consider the dividend and sale as a cash flow, then you should change the transaction date to the holding period end date. Indeed, before the end date, these payments essentially remain dormant on the cash account, without actively contributing to the portfolio. As the number of remaining days in the period reaches zero, the formula will simplify to the face value of the dividend and sale. + +`155 x 1.2^(878/365) + 111.76 x 1.2^(514/365) + 67 * 1.2^(255/365) + 20 x 1.2^0 + 105 x 1.2^0 = MVE (but without dividend and sale)` + +## Example 4: MVB > 0 +In the previous examples, all transactions took place within the reporting period. This isn't always the case. It is very important to distinguish the following cases: + + + $CF_t$ occurs before the beginning of the reporting period (MVB date). PP will calculate the value of $CF_t$ through historic quotes at time *t*. The holding period is the entire reporting period. + + + $CF_t$ occurs after the beginning but before the end of the reporting period. The value of $CF_t$ is known through the transaction data. The holding period is the number of remaining days from time *t* until the end of the reporting period. + + + $CF_t$ falls after the end of the reporting period. $CF_t$ does not contribute to MVE and is omitted from the calculation of IRR for that reporting period. + + Consider a scenario where the holding period is only two years (from 2021-06-12 to 2023-06-12), or 730 days. Since the first buy of `share-1` occurs outside of this period (item 1 from above), the quoted price of `share-1` at the beginning of the period is used rather than the actual buying price. + +- MVB = 177.94 EUR, representing 10 shares of `share-1` at the closing price of 17.794 EUR on June 11, 2021 (= the closing price from the day before the buying transaction). +- Additional buys: two additional buys within the reporting period with respective remaining days of 514 and 255 days and known buying transaction price. Remember, the dividend and sale will be valuated at end date in the MVE. +- MVE = 426.82 EUR, including 125 EUR on the cash account from dividend and sale. + +The resulting formula is with IRR = 17.63% is: + +`177.94 x 1.18^(730/365) + 84 x 1.18^(514/365) + 67 x 1.18^(255/365) += MVE (including dividend and sale)` + +Figure: IRR-calculation for a 2 year holding period (MVB > 0).{class=pp-figure} + +![](images/info-irr-caluclation-excel-2y-period.png) + +# IRR at security level + +The value of IRR, calculated on the portfolio level, doesn't say much about the performance of a specific security. For example, the [demo-portfolio-03 IRR](#example-3-buy---dividend---sell-transactions) (3 years reporting period) is 20.28%. The security IRR of `share-2` is 112.53%. A glance at Figure 7 should make it evident why: the security is purchased at the lowest price of the entire period. You can obtain the IRR for each security separately using the menu View > Reports > Securities. The calculation closely resembles that of the portfolio. It is essential to set a reporting period beforehand. + +Figure: IRR-calculation for individual securities.{class=pp-figure} + +![](images/info-irr-caluclation-securities.png) + +- Fees are omitted from the security IRR calculation. + +- In contrast to the Portfolio IRR, dividends and sale results are treated as leaving the portfolio at the transaction date in Security IRR calculations. Deposit accounts are not included in the Security IRR calculation. + +- With a multi-transaction security, the purchase price and value could be somewhat tricky to obtain. For instance, the remaining 10 shares of `share-1` are the outcome of two purchase transactions and one sell transaction. Following the FIFO principle (First In, First Out), these 10 shares consist of the 5 remaining shares from the first buy and the 5 shares from the second buy. This results in an average price of 15.50 EUR. + +## Example 5: a security with one buy transaction + +A simple example is provided by the IRR calculation of `share-2`. The single buy transaction falls within every holding period (1,2, or 3 years). The transaction data without taxes is used to determine the cash flow; e.g. 67 EUR. + +- MVB = 0 EUR. +- First cashflow: 8 shares at 8 EUR/share + 2 EUR fees. Remaining days = 255. +- MVE = 8 shares at 13.97 EUR/share. + +Inserting these values into Equation 2 gives +`111.76 = 0 x (1+IRR)^1095/365 + 66 x (1+IRR)^255/365` + +`IRR = ((111.76/66)^(365/255)) - 1 = 112.53% ` + +## Example : a security with multiple transactions +`share-1` has multiple transactions, including sell and dividend. It's important to get the dates and cash flows correct, see Figure 8. + +Figure: IRR-calculation for individual security with multiple transactions.{class=pp-figure} - If, however, you immediately reinvested the dividend, the purchase of those new shares would be recorded as a cashflow on that date. The cash account would then be credited, naturally reducing to zero, and consequently, it would no longer impact $V_E. +![](images/info-irr-caluclation-securities-multiple-transactions.png) -The IRR can be measured for a specific trade, security or the whole portfolio. Here's a simple example. Additionally, there is also a more complex [Practical step-by-step example](../irr-example.md), solved in PP. +Please note that the dividend payment and the sale is recorded at the transaction date; not the end date of the holding period. This is different behaviour than with the IRR calculation on portfolio level. The resulting amounts are not deposited on a cash account but are withdrawn from the portfolio at the transaction date. Because of this withdrawal, the cash flow is also negative. -!!! Example - On `2021-01-15`, you purchased 10 shares at 17 EUR each. - As of today (`2023-06-15`), the price has risen to 18.5 EUR per share. During this period, you received a dividend of 1.5 EUR per share on `2021-09-10` and a second dividend of 1.7 EUR per share on `2022-09-10`. +Inserting these values into Equation 2 gives: +`190.06 = 153 x (1+IRR)^(878/365) + 83 x (1+IRR)^(514/365) - 30 x (1+IRR)^(179/365) - 107 x (1 + IRR)^(61/365)` As can be seen from Figure 7, the IRR = 18.00%. -What is the performance or IRR of this security? Let's first have the timing and cashflows correct. +`190.6 = 227.81 + 104.78 - 32.54 - 110.00` +# IRR at trade level +A trade is formed by aggregating all buy and sell transactions related to a specific security. A trade can be `closed`, indicating that no further transactions can be conducted within this trade or `open`: more transactions are possible. The demo-project-03 contains 3 trades (see Figure 9). A *closed* trade starting with a buy of `share-1` on `2021-01-15` and ending with a partial sell on `2022-01-14`. The remaining shares initiate the second *open* trade, starting at `2022-01-14` and ending at the current date (e.g. `2023-06-12`). The third trade is also open because `share-2` hasn't been sold yet. -Table: Cash flows at different times of investment. +Figure: IRR-calculation for trades.{class=pp-figure} -| Date | $t_n$ | $CF_n$ | -|------------|-------|------------------| -| 2021-01-15 | 0d | 170€ | -| 2021-09-15 | 243d | 15€ | -| 2022-09-15 | 608d | 17€ | -| 2023-06-15 | 881d | 185€ | +![](images/mnu-view-reports-trade-irr-example.png) -According to (1) +Please note that, in contrast with the portfolio and security IRR calculation, you can not set a reporting period. All open trades are calculated with the end date set as of today. -$$CF_{t0} = 170 = \frac{15}{(1 + IRR)^\frac{243}{365}}+\frac{17}{(1 + IRR)^\frac{608}{365}}+ \frac{185}{(1 + IRR)^\frac{881}{365}}$$ +Also note that PP follows a `FIFO principle` (First-In; First-Out) to determine which shares will be sold. The 5 shares sold on `2023-04-12` correspond to those acquired on `2021-01-15`, rather than the ones obtained on `2022-01-14`. -What IRR will solve this equation (1)? +## IRR calculation of a closed trade -In Figure 1, we reverse the scenario: What's the value of $CF_{t0}$ if the IRR is, for example, 5% or 15%? +Five shares of `share-1` were sold on April 12, 2023. The market value of those shares was 5 x 21 EUR = 105 EUR. The exact values could be obtained from the historical prices or with Report > Performance > Trades. The Entry and Exit values aren't displayed by default. Because of the FIFO-principle, these 5 shares were from the 1th buy, meaning that they are purchased for 5 x 15 EUR = 75 EUR. The fees and taxes are proportionally allocated based on the amount used, in this case, 5/2 = 2.5 EUR. The securities are held for 817 days (from 2021-01-15 till 2023-04-12). Inserting these values in Equation 2 and solving for IRR gives: -Figure: Calculating CF0 for IRR = 5% and 15%.{class=pp-figure} -![](../images/info-irr-calculations.svg) +IRR = ((105/77.50)^(817/365)) - 1 = 14.53% -If IRR = 15% then the combined future cashflows are worth 159.16 EUR in `2021-01-15`. So, you need less money (than 170 EUR) to get the same financial results. The real IRR should be somewhat lower. With 5% however, you need 194.64 EUR to get the same total cashflows in 2021. After some guesswork and interpolation, you arrive at the exact IRR of **11.61%**, which will precisely bring all future cash flows to the initial investment of 170 EUR. +## IRR calculation of an open trade -In the previous example, the dividends are immediately "consumed": you got yourself a nice meal from it. In another scenario, you keep the dividends in your drawer - or in PP terminology: a deposit account - until `2023-06-15` and cash them in at the same moment you sell the share. In that case, there are only two cashflows: $CF_{t0}$ = 170 EUR and $CF_{t881}$ = 15 + 17 +185 EUR. +The open trade involving `share-2` is rather simple. Referring to Figure 1, these shares were acquired for a net value of 67 EUR on `2022-09-30`, which was 255 days ago. The current value is 111.76 EUR, resulting in `IRR = (111.76/67)^(365/255) - 1 = 108% `. -Equation (1) has only two terms and could be solved for IRR rather easily. +There is no easy way to check the trade IRR for a date other than the current date in PP. -**Eq (2)** $CF_{t0} = \frac{CF_{t1}}{(1 + IRR)^\frac{t_1}{365}} \implies IRR = \sqrt[\frac{t_1}{365}]{\frac{CF_{t1}}{CF_{t0}}}-1$ +The open trade involving `share-1` is a special case. Since it is an open trade, it ends on the current day (`2023-06-12`). But the trade consists of shares that were bought in 2021 and in 2022. Five shares are from 2021. The cash flow of these shares is thus 77.5 EUR (see also paragraph above). Today, they are valuated at 95.36 EUR. The remaining 5 shares are from `2022-01-04` with a cash flow of 84 EUR (see Figure 1). These 5 shares are also 95.36 EUR worth today (`2023-06-12`). -In this case, your initial investment of 170 EUR has an IRR = $\sqrt[\frac{881}{365}]{\frac{217}{170}}-1$ = **10.64%**. Why is this IRR smaller than the previous one? Because you kept the dividend until a later date, the 15 EUR in `2021-09-15` is less worth in `2023-06-15`. +According to PP (see Figure 9) the exit value is 190.72 = 2 x 95.36 EUR and the entry value is 77.5 + 84 = 161.50 EUR. -PP calculates three variants of IRR. +- 1st buy: 77.50 EUR with a holding period of 878 days +- 2nd buy: 84.00 EUR with a holding period of 514 days - + **Performance IRR**: this is the IRR for the whole project and a specific reporting period; see `side bar > Reports > Performance`. +Inserting these values in Equation 1. - + **Security IRR**: the IRR of a selected security for a specific reporting period; see `sidebar > Reports > Performance > Securities`. +`190.72 = 77.5*(1+IRR)^(878/365) + 84*(1+IRR)^(514/365)` - + **Trade IRR**: the IRR of a buy-sell cycle of a selected security. See `sidebar > Reports > Performance > Trades` +Finding IRR with Goal Seek gives IRR = 9.16% and the formula solves into -The Performance and Security IRR are calculated for a specific [reporting period](./reporting-period.md); e.g. 1 year, 2 years, 3 years, custom period. It is very important to distinguish the following cases: +`190.72 = 95.69 + 95.03` - + $t_0$ occurs before the start of the reporting period $RP_{start}$. PP can calculate the value of $CF_0$ (through historic quotes or transaction price) at $RP_{start}$. The holding period is calculated from $RP_{start}$ for each CF. - + $t_0$ occurs after $RP_{start}$ but before $RP_{end}$. The value of $CF_0$ is known. The holding period is calculated from $RP_{start}$. - + $t_n$ falls after $RP_{end}$. All transactions after $RP_{end}$ do not contribute to the calculation of IRR for that reporting period. diff --git a/docs/en/concepts/performance/time-weighted.md b/docs/en/concepts/performance/time-weighted.md new file mode 100644 index 00000000..6c941938 --- /dev/null +++ b/docs/en/concepts/performance/time-weighted.md @@ -0,0 +1,62 @@ +--- +title: Time-Weighted Rate of Return +--- +The calculation of the time-weighted rate of return starts with dividing the reporting period into distinct holding periods. For each holding period, a return value is calculated and then compounded into an overall return. Each period carries equal weight; hence the name time-weighted rate of return. In the True Time-Weighted Rate Of Return methodology (TTWROR), performance is calculated using simple returns without any consideration for the total amount invested. + +To minimize the computational effort, older methods utilized larger holding periods. A natural marker could be the dates of each cash flow. The holding periods would be formed by: `Period Start --> CF1, CF1 --> CF2, CF2 --> CF3, ..., CFn-1 --> Period end`. A holding period starts at period start or immediately before a cash flow and ends just before the following cash flow or the period end: CF1 is included in HP1 but CF2 isn't. If any cash flow exists outside the reporting period, making the Market Value Begin > 0, then the first holding period must start at the beginning of the reporting period. Otherwise, the first period starts with the first CF. Figure 1 illustrates the various concepts, applied to our demo-portfolio-03, with a three-year reporting period, making MVB = 0. + +Figure: Calculation of True Time-Weighted Rate of Return.{class=pp-figure} + +![](images/info-ttwror-example-visualisation.svg) + + +For every holding period, the return rate is computed using Equation 1. + +$$\mathrm{r = \frac{MV_t}{MV_{t-1} + CF_t} - 1 \qquad \text{(Eq 1)}}$$ + +where $MV_t$ = the market value of the portfolio at the end of holding period *t*, $MV_{t-1}$ = the market value of the previous holding period. $CF_t$ is the incoming (positive) or outgoing (negative) cashflow in that period. + +The return rate is thus corrected for the cashflow, occurring in that period. If the cash flow is incoming or positive, the MVB of the period is increased by it making the performance independent of the cash flow. For example, suppose that MV1 = 100, CF2 = 200, MV2 = 300 for a certain holding period. Without the correcting mechanism, the return would be calculated at 300% while in fact your portfolio hasn't changed and the performance should be 0%. + +Please note that for for each holding period, you require the market value of the portfolio *twice*: once at the end of the previous holding period and once at the end of the current one. + +After calculating the return rates of each period, they are compounded with the following formula. + +$$\mathrm{r = [(1 + r_1) \times (1 + r_2) \times (1 + r_3) \cdots (1 + r_{n-1}) \times (1 + r_n)] - 1 \qquad \text{Eq 2}}$$ + +where $r_t$ is the return rate from holding period *t*. + +# TTWROR at portfolio level + +Our [demo-portfolio-03.xml](../../assets/demo-portfolio-03.xml) has three cash flows (see Figure 1). Because all cash flows fall within the reporting period, the first period (`Period start --> CF1`)could be omitted. The market value is zero at both the beginning and end of the period. + +The market value is the sum of the value of all deposit and securities accounts. To determine the value of a security, the (historical) closing price is taken. A cashflow can be positive (inbound transfer) or negative (outbound transfer); assuming that fresh money is added at the beginning of the day (and hence is available to generate return) and removed at the end of the day. + +For each period, you need $MV_{t-1}$ and the current $MV_{t}$ period. Because the market value is determined at the end of the trading day (closing price), $MV_{t-1}$ is also the value immediately before the cashflow at the beginning of the day. + +!!! Note + One could argue that, as we are required to add the cash flow to $MV_{t-1}$ (as per Equation 1), an alternative approach is to consider the market value of $MV_{t}$, which already includes this cash flow. However, it's important to note that throughout the day, market forces may cause fluctuations in $MV_{t-1}$, and these variations should be excluded when determining the market value at the beginning of the day, just before the cash flow. + +Manually calculating these portfolio market values can be a tedious task. It involves multiplying the number of shares for each security by the historical price and then adding fees and other relevant factors. But in PP, you can also generate a spreadsheet for all days in the reporting period with these values (see below). + +Figure: Manual calculation of cumulative and annual TTWROR.{class=pp-figure} + +![](images/info-ttwror-manual-calculation.png) + +As can be seen in Figure 2 [[download workbook](../../assets/demo-portfolio-03-calculation.xlsx)], the market value at the beginning of the HP1 is zero EUR (= the closing value of the previous period) and 160.26 at the end (immediately before the next cash flow). There was one inbound positive cashflow of 155 EUR, necessary for buying 10 shares of `share-1`. The return of this period = 160.26/(0 +155) = 3.39%. Thus, eliminating the effect of the incoming cash flow, your portfolio has grown with 3.39% during this holding period of 364 days. + +Compounding these individual periodical returns into one portfolio return for the whole portfolio with Equation 2 results in a cumulative performance of 44.16%. + +Since computer time is inexpensive nowadays, there's no need to define long holding periods to minimize manual computation. Therefore, PP employs a single day as the holding period. You can export a file with daily portfolio. Select the menu `View > Reports > Performance > Chart` and click the icon (top right) `Export Data as CSV`. Choose `Export Entire Portfolio` (see Figure 3 for an example). + +The calculation is analogous to the explanation for manual calculation using longer holding periods. Before `2021-01-15`, all values are zero, as the first transaction occurred on that day. The `Delta in %` is equivalent to the value of *r* in the manual calculation. The formula is slightly different: `(MV_t + Outbound Transfer)/(MV_t-1 + Inbound transfer)`. The market value at the end of the period (day) is increased by all outbound transfers, such as withdrawals. In the manual calculation, a separate transfer would be used for this purpose. + +Figure: Export TTWROR data from PP.{class=pp-figure} + +![](images/info-ttwror-export-data-from-pp.png) + +It's important to highlight that the performance for '2021-01-15' is negative. This is the result of the market value of the portfolio being smaller at that moment than the required cash flow, owing to the taxes and fees associated with acquiring the security. Fortunately, the subsequent market rally has led to a cumulative performance increase to 3.39%, aligning precisely with the manually calculated value for the first holding period. + + + + diff --git a/docs/en/getting-started/create-portfolio.md b/docs/en/getting-started/create-portfolio.md index 0711cc67..f05e0b8b 100644 --- a/docs/en/getting-started/create-portfolio.md +++ b/docs/en/getting-started/create-portfolio.md @@ -1,58 +1,52 @@ --- title: Creating a portfolio -lastUpdate: 2023-11-03 --- You can quickly create a PP file using a wizard to guide you through the setup process. There are five steps but only the first two are mandatory. Start with the menu `File > New > File` to create a new portfolio file. -# Step 1 +- **Step 1** + First you need to select the default currency for the portfolio (see figure 1). You can always change the currency for individual securities. PP supports almost every possible currency: from AED (United Arab Emirates Dirham) to ZWL (Zimbabwean dollar). -First you need to select the default currency for the portfolio (see figure 1). You can always change the currency for individual securities. PP supports almost every possible currency: from AED (United Arab Emirates Dirham) to ZWL (Zimbabwean dollar). + Figure: Selecting the default currency for the portfolio.{class=pp-figure} -Figure: Selecting the default currency for the portfolio.{class=pp-figure} + ![](../images/mnu-file-new-file-create-portfolio-wizard-step-1.png) -![](../images/mnu-file-new-file-create-portfolio-wizard-step-1.png) +- **Step 2** + Your portfolio must contain at least one security [account](../concepts/account.md) and one associated reference (deposit) account. -# Step 2 + Figure: Adding security and reference accounts to the portfolio.{class=pp-figure} -Your portfolio must contain at least one security [account](../concepts/account.md) and one associated reference (deposit) account. + ![](../images/mnu-file-new-file-create-portfolio-wizard-step-2.png) -Figure: Adding security and reference accounts to the portfolio.{class=pp-figure} + When at least one security account with a reference account has been created the `Finish` button becomes available. Don't worry about the next steps if you don't understand what they are about. -![](../images/mnu-file-new-file-create-portfolio-wizard-step-2.png) + !!! note + If you have an existing portfolio PP supports importing csv files to quickly add securities, buy and sell transactions, and payments. See [https://forum.portfolio-performance.info/t/import-csv-file/17123](https://forum.portfolio-performance.info/t/import-csv-file/17123) for a tutorial on importing a portfolio and dividends. -When at least one security account with a reference account has been created the `Finish` button becomes available. Don't worry about the next steps if you don't understand what they are about. +- **Step 3** + Sometimes, you need more than one deposit account. You can add these extra cash accounts (e.g. in different currencies) to your portfolio. -!!! note - If you have an existing portfolio PP supports importing csv files to quickly add securities, buy and sell transactions, and payments. See [https://forum.portfolio-performance.info/t/import-csv-file/17123](https://forum.portfolio-performance.info/t/import-csv-file/17123) for a tutorial on importing a portfolio and dividends. + Figure: Adding additional cash accounts to the portfolio.{class=pp-figure} -# Step 3 + ![](../images/mnu-file-new-file-create-portfolio-wizard-step-3.png) -Sometimes, you need more than one deposit account. You can add these extra cash accounts (e.g. in different currencies) to your portfolio. +- **Step 4** -Figure: Adding additional cash accounts to the portfolio.{class=pp-figure} + As part of the creation wizard, you can also add the securities that you want to track in this portfolio. These securities are retrieved from German index trackers such a DAX (Deutscher Aktienindex) , tecDax, SDAX, and MDAX. You can also add the index itself or others (e.g. NASDAQ) with `Indizes`. Of course, you can add securities later on. Your choice is then much larger. -![](../images/mnu-file-new-file-create-portfolio-wizard-step-3.png) + Figure: Adding instruments to the portfolio.{class=pp-figure} -# Step 4 + ![](../images/mnu-file-new-file-create-portfolio-wizard-step-4.png) -As part of the creation wizard, you can also add the securities that you want to track in this portfolio. These securities are retrieved from German index trackers such a DAX (Deutscher Aktienindex) , tecDax, SDAX, and MDAX. You can also add the index itself or others (e.g. NASDAQ) with `Indizes`. Of course, you can add securities later on. Your choice is then much larger. +- **Step 5** + Taxonomies such as Asset classes and Regions are used to classify your securities. This classification can then later on be used in performance analysis e.g. show me the performance of all securities from region xxx. -Figure: Adding instruments to the portfolio.{class=pp-figure} + Figure: Adding taxonomies to the portfolio.{class=pp-figure} -![](../images/mnu-file-new-file-create-portfolio-wizard-step-4.png) + ![](../images/mnu-file-new-file-create-portfolio-wizard-step-5.png) -# Step 5 - -Taxonomies such as Asset classes and Regions are used to classify your securities. This classification can then later on be used in performance analysis e.g. show me the performance of all securities from region xxx. - -Figure: Adding taxonomies to the portfolio.{class=pp-figure} - -![](../images/mnu-file-new-file-create-portfolio-wizard-step-5.png) - -Finish - -When the wizard is finished, a `unnamed.xml` file is created. Of course, you should save it with a different name and location. +- **Finish** + When the wizard is finished, a `unnamed.xml` file is created. Of course, you should save it with a different name and location. # XML All data of your portfolio is stored in one XML-file (eXtensible Markup Language). This is a human-readable file format. For example, take the following buying transaction of 5 shares of Microsoft at a purchase price of 334.27 USD with 30 USD fees and 45 USD taxes (see figure 6.). diff --git a/docs/en/getting-started/reports/performance/index.md b/docs/en/getting-started/reports/performance/index.md index 94505211..21127f84 100644 --- a/docs/en/getting-started/reports/performance/index.md +++ b/docs/en/getting-started/reports/performance/index.md @@ -20,7 +20,7 @@ The Delta (for reporting period) is 120.82 EUR. This value represents the actual The Absolute change of the Last Day is negative (red). It remains the same for each reporting period. Hovering over the label gives some info. This value is the absolute change for a Reporting period of 1 trading day. Unfortunately, it's not the last day of the chosen reporting period; e.g. 11-12 Jun 2023, but the last trading day before 'today'. -What about the True Time-Weighted Rate of Return (TTWOR) and the Internal Rate of Return (IRR) indices? The IRR is a percentage that shows how well your portfolio performs, considering when and how much money you have put in or take out. TTWOR measure the growth of your investments without being influenced by the timing and size of your contributions or withdrawals. An in-depth explanation of both measurements is given at [Concepts > Performance](../../../concepts/performance.md). +What about the True Time-Weighted Rate of Return (TTWOR) and the Internal Rate of Return (IRR) indices? The IRR is a percentage that shows how well your portfolio performs, considering when and how much money you have put in or take out. TTWOR measure the growth of your investments without being influenced by the timing and size of your contributions or withdrawals. An in-depth explanation of both measurements is given at [Concepts > Performance](../../../concepts/performance/index.md) How should you interpret the difference between the two measures? If you look at the chart of historical prices of `share-1` and `share-2`, it is immediately evident that the timing of purchase and sale was rather optimal. diff --git a/docs/en/images/info-irr-future-present-value.svg b/docs/en/images/info-irr-future-present-value.svg deleted file mode 100644 index c6c7e765..00000000 --- a/docs/en/images/info-irr-future-present-value.svg +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - FV = PV *(1+i)n - PV = FV /(1+i)n - € 100.00 - € 105.00 - € 110.25 - € 115.76 - 100*(1+0.05) - 105*(1+0.05) - 110.25*(1+0.05) - 105/(1+0.05) - 110.25/(1+0.05) - 115.76/(1+0.05) - - - - - - - diff --git a/requirements.txt b/requirements.txt index 83823d2c..543505f8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ mkdocs == 1.5.3 mkdocs-material == 9.4.2 -mkdocs-caption == 0.0.9 +mkdocs-caption == 0.0.10 mkdocs-git-revision-date-localized-plugin == 1.2.1