proof-of-portfolio 0.0.101__py3-none-any.whl → 0.0.103__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- proof_of_portfolio/_version.py +1 -1
- proof_of_portfolio/circuits/components/src/core/calmar.nr +10 -15
- proof_of_portfolio/circuits/components/src/core/sortino.nr +4 -2
- proof_of_portfolio/circuits/target/circuits.json +1 -1
- proof_of_portfolio/circuits/vk/vk +0 -0
- {proof_of_portfolio-0.0.101.dist-info → proof_of_portfolio-0.0.103.dist-info}/METADATA +1 -1
- {proof_of_portfolio-0.0.101.dist-info → proof_of_portfolio-0.0.103.dist-info}/RECORD +10 -10
- {proof_of_portfolio-0.0.101.dist-info → proof_of_portfolio-0.0.103.dist-info}/WHEEL +0 -0
- {proof_of_portfolio-0.0.101.dist-info → proof_of_portfolio-0.0.103.dist-info}/entry_points.txt +0 -0
- {proof_of_portfolio-0.0.101.dist-info → proof_of_portfolio-0.0.103.dist-info}/top_level.txt +0 -0
proof_of_portfolio/_version.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# This file is auto-generated during build
|
2
|
-
__version__ = "0.0.
|
2
|
+
__version__ = "0.0.103"
|
@@ -1,9 +1,6 @@
|
|
1
|
-
use crate::utils::{
|
2
|
-
|
3
|
-
|
4
|
-
STATISTICAL_CONFIDENCE_MINIMUM_N,
|
5
|
-
},
|
6
|
-
risk_normalization::risk_normalization,
|
1
|
+
use crate::utils::constants::{
|
2
|
+
ARRAY_SIZE, CALMAR_NOCONFIDENCE_VALUE, RATIO_SCALE_FACTOR, SCALE,
|
3
|
+
STATISTICAL_CONFIDENCE_MINIMUM_N,
|
7
4
|
};
|
8
5
|
use super::drawdown::daily_max_drawdown;
|
9
6
|
|
@@ -14,24 +11,22 @@ pub fn calmar(
|
|
14
11
|
avg_daily_return: i64,
|
15
12
|
calmar_cap: i64,
|
16
13
|
days_in_year: i64,
|
17
|
-
|
14
|
+
_drawdown_max_percent: i64,
|
18
15
|
) -> i64 {
|
19
16
|
if !bypass_confidence & actual_len < STATISTICAL_CONFIDENCE_MINIMUM_N {
|
20
17
|
CALMAR_NOCONFIDENCE_VALUE
|
21
18
|
} else {
|
22
|
-
let
|
23
|
-
let max_drawdown_decimal = daily_max_drawdown(log_returns, actual_len)
|
24
|
-
let drawdown_normalization_factor =
|
25
|
-
risk_normalization(max_drawdown_decimal, drawdown_max_percent);
|
19
|
+
let ann_excess_return = avg_daily_return * days_in_year;
|
20
|
+
let max_drawdown_decimal = daily_max_drawdown(log_returns, actual_len);
|
26
21
|
|
27
|
-
if
|
22
|
+
if (max_drawdown_decimal == 0) | (ann_excess_return <= 0) {
|
28
23
|
0
|
29
24
|
} else {
|
30
|
-
let raw_calmar =
|
31
|
-
if raw_calmar > calmar_cap {
|
25
|
+
let raw_calmar = (ann_excess_return * RATIO_SCALE_FACTOR) / max_drawdown_decimal;
|
26
|
+
if raw_calmar > (calmar_cap * RATIO_SCALE_FACTOR) {
|
32
27
|
calmar_cap * RATIO_SCALE_FACTOR
|
33
28
|
} else {
|
34
|
-
raw_calmar
|
29
|
+
raw_calmar
|
35
30
|
}
|
36
31
|
}
|
37
32
|
}
|
@@ -60,7 +60,8 @@ pub fn sortino(
|
|
60
60
|
if log_returns[i] < daily_rf {
|
61
61
|
let diff = log_returns[i] - downside_mean;
|
62
62
|
let sq_diff = diff * diff;
|
63
|
-
|
63
|
+
let scaled_sq_diff = sq_diff / SCALE;
|
64
|
+
weighted_sum_sq_diff += scaled_sq_diff * weights[i];
|
64
65
|
}
|
65
66
|
}
|
66
67
|
}
|
@@ -76,7 +77,8 @@ pub fn sortino(
|
|
76
77
|
if log_returns[i] < daily_rf {
|
77
78
|
let diff = log_returns[i] - downside_mean;
|
78
79
|
let sq_diff = diff * diff;
|
79
|
-
|
80
|
+
let scaled_sq_diff = sq_diff / SCALE;
|
81
|
+
sum_sq_diff += scaled_sq_diff;
|
80
82
|
}
|
81
83
|
}
|
82
84
|
}
|