elemento-alpha-tools 1.3.6 → 1.3.7
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.
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/optimization/assetsMetricsCalculator/AssetMetricsCalculator.d.ts +6 -0
- package/dist/optimization/assetsMetricsCalculator/AssetMetricsCalculator.js +24 -0
- package/dist/optimization/assetsMetricsCalculator/AssetMetricsCalculator.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export { RealOrder as RealOrder } from "./sort/real/RealOrder";
|
|
|
28
28
|
export { ReturnGoal as ReturnGoal } from "./optimization/search/portfolio/goals/ReturnGoal";
|
|
29
29
|
export { VolatilityGoal as VolatilityGoal } from "./optimization/search/portfolio/goals/VolatilityGoal";
|
|
30
30
|
export { PortfolioSearch as PortfolioSearch } from "./optimization/search/portfolio/SPEA2PortfolioSearch";
|
|
31
|
+
export { computeAssetMetrics as computeAssetMetrics, AssetMetrics as AssetMetrics } from "./optimization/assetsMetricsCalculator/AssetMetricsCalculator";
|
|
31
32
|
export { applyLoginMocks as applyLoginMocks } from "./crud/test/LoginServiceMocks";
|
|
32
33
|
export { applyPlatformMocks as applyPlatformMocks } from "./crud/test/PlatformMocks";
|
|
33
34
|
export { applyRoleMocks as applyRoleMocks } from "./crud/test/RoleMocks";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applyTypeMocks = exports.applyStatusMocks = exports.applyRoleMocks = exports.applyPlatformMocks = exports.applyLoginMocks = exports.PortfolioSearch = exports.VolatilityGoal = exports.ReturnGoal = exports.RealOrder = exports.PortfolioXOver = exports.PortfolioMutation = exports.PopulationGenerator = exports.PortfolioIndividualBuilder = exports.PortfolioSpace = exports.UserManager = exports.UserCredentialsManager = exports.TypeManager = exports.StatusManager = exports.SourcesManager = exports.RoleManager = exports.PortfolioBenchmarkManager = exports.PlatformManager = exports.OptimizationManager = exports.MarketDataManager = exports.IntermediaryDataManager = exports.IntermediaryManager = exports.ForecastManager = exports.ComponentManager = exports.BusinessManager = exports.AvailablePlataformManager = exports.ConfigManager = exports.AssetsManager = exports.RoleServicePermissionsChecker = exports.ServiceSessionChecker = exports.ExpressLogableConfig = void 0;
|
|
3
|
+
exports.applyTypeMocks = exports.applyStatusMocks = exports.applyRoleMocks = exports.applyPlatformMocks = exports.applyLoginMocks = exports.computeAssetMetrics = exports.PortfolioSearch = exports.VolatilityGoal = exports.ReturnGoal = exports.RealOrder = exports.PortfolioXOver = exports.PortfolioMutation = exports.PopulationGenerator = exports.PortfolioIndividualBuilder = exports.PortfolioSpace = exports.UserManager = exports.UserCredentialsManager = exports.TypeManager = exports.StatusManager = exports.SourcesManager = exports.RoleManager = exports.PortfolioBenchmarkManager = exports.PlatformManager = exports.OptimizationManager = exports.MarketDataManager = exports.IntermediaryDataManager = exports.IntermediaryManager = exports.ForecastManager = exports.ComponentManager = exports.BusinessManager = exports.AvailablePlataformManager = exports.ConfigManager = exports.AssetsManager = exports.RoleServicePermissionsChecker = exports.ServiceSessionChecker = exports.ExpressLogableConfig = void 0;
|
|
4
4
|
var ExpressLogableConfig_1 = require("./ap\u00ED/ExpressLogableConfig");
|
|
5
5
|
Object.defineProperty(exports, "ExpressLogableConfig", { enumerable: true, get: function () { return ExpressLogableConfig_1.ExpressLogableConfig; } });
|
|
6
6
|
var ServiceSessionChecker_1 = require("./ap\u00ED/checkers/ServiceSessionChecker");
|
|
@@ -61,6 +61,8 @@ var VolatilityGoal_1 = require("./optimization/search/portfolio/goals/Volatility
|
|
|
61
61
|
Object.defineProperty(exports, "VolatilityGoal", { enumerable: true, get: function () { return VolatilityGoal_1.VolatilityGoal; } });
|
|
62
62
|
var SPEA2PortfolioSearch_1 = require("./optimization/search/portfolio/SPEA2PortfolioSearch");
|
|
63
63
|
Object.defineProperty(exports, "PortfolioSearch", { enumerable: true, get: function () { return SPEA2PortfolioSearch_1.PortfolioSearch; } });
|
|
64
|
+
var AssetMetricsCalculator_1 = require("./optimization/assetsMetricsCalculator/AssetMetricsCalculator");
|
|
65
|
+
Object.defineProperty(exports, "computeAssetMetrics", { enumerable: true, get: function () { return AssetMetricsCalculator_1.computeAssetMetrics; } });
|
|
64
66
|
var LoginServiceMocks_1 = require("./crud/test/LoginServiceMocks");
|
|
65
67
|
Object.defineProperty(exports, "applyLoginMocks", { enumerable: true, get: function () { return LoginServiceMocks_1.applyLoginMocks; } });
|
|
66
68
|
var PlatformMocks_1 = require("./crud/test/PlatformMocks");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wEAA0F;AAAjF,4HAAA,oBAAoB,OAAwB;AACrD,mFAAkM;AAA7F,8HAAA,qBAAqB,OAAyB;AACnJ,qGAA+H;AAAtH,+IAAA,6BAA6B,OAAiC;AACvE,sDAAwI;AAA7D,8GAAA,aAAa,OAAiB;AACzG,sDAAwI;AAA7D,8GAAA,aAAa,OAAiB;AACzG,8EAAuN;AAAhG,sIAAA,wBAAwB,OAA6B;AAC5K,0DAAsJ;AAAnE,kHAAA,eAAe,OAAmB;AACrH,4DAA2P;AAAtE,oHAAA,gBAAgB,OAAoB;AACzN,0DAAsJ;AAAnE,kHAAA,eAAe,OAAmB;AACrH,wDAA6K;AAA1E,qHAAA,mBAAmB,OAAuB;AAC7I,0EAAkM;AAA3F,kIAAA,uBAAuB,OAA2B;AACzJ,8DAAoK;AAAzE,sHAAA,iBAAiB,OAAqB;AACjI,kEAAiL;AAA9E,0HAAA,mBAAmB,OAAuB;AAC7I,0DAA4L;AAAnE,kHAAA,eAAe,OAAmB;AAC3J,8EAA4N;AAAjG,sIAAA,yBAAyB,OAA6B;AACjL,kDAA0H;AAAvD,0GAAA,WAAW,OAAe;AAC7F,wDAA2I;AAAhE,gHAAA,cAAc,OAAkB;AAC3G,sDAAwI;AAA7D,8GAAA,aAAa,OAAiB;AACzG,kDAA0H;AAAvD,0GAAA,WAAW,OAAe;AAC7F,wEAAuM;AAAxF,gIAAA,sBAAsB,OAA0B;AAC/J,kDAA0H;AAAvD,0GAAA,WAAW,OAAe;AAC7F,iFAAkG;AAAzF,gHAAA,cAAc,OAAkB;AACzC,yGAAsI;AAA7H,wIAAA,0BAA0B,OAA8B;AACjE,qFAA2G;AAAlG,0HAAA,mBAAmB,OAAuB;AACnD,+FAAmH;AAA1G,sHAAA,iBAAiB,OAAqB;AAC/C,yFAA0G;AAAjG,gHAAA,cAAc,OAAkB;AACzC,mDAA+D;AAAtD,sGAAA,SAAS,OAAa;AAC/B,+EAA4F;AAAnF,wGAAA,UAAU,OAAc;AACjC,uFAAwG;AAA/F,gHAAA,cAAc,OAAkB;AACzC,6FAA0G;AAAjG,uHAAA,eAAe,OAAmB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wEAA0F;AAAjF,4HAAA,oBAAoB,OAAwB;AACrD,mFAAkM;AAA7F,8HAAA,qBAAqB,OAAyB;AACnJ,qGAA+H;AAAtH,+IAAA,6BAA6B,OAAiC;AACvE,sDAAwI;AAA7D,8GAAA,aAAa,OAAiB;AACzG,sDAAwI;AAA7D,8GAAA,aAAa,OAAiB;AACzG,8EAAuN;AAAhG,sIAAA,wBAAwB,OAA6B;AAC5K,0DAAsJ;AAAnE,kHAAA,eAAe,OAAmB;AACrH,4DAA2P;AAAtE,oHAAA,gBAAgB,OAAoB;AACzN,0DAAsJ;AAAnE,kHAAA,eAAe,OAAmB;AACrH,wDAA6K;AAA1E,qHAAA,mBAAmB,OAAuB;AAC7I,0EAAkM;AAA3F,kIAAA,uBAAuB,OAA2B;AACzJ,8DAAoK;AAAzE,sHAAA,iBAAiB,OAAqB;AACjI,kEAAiL;AAA9E,0HAAA,mBAAmB,OAAuB;AAC7I,0DAA4L;AAAnE,kHAAA,eAAe,OAAmB;AAC3J,8EAA4N;AAAjG,sIAAA,yBAAyB,OAA6B;AACjL,kDAA0H;AAAvD,0GAAA,WAAW,OAAe;AAC7F,wDAA2I;AAAhE,gHAAA,cAAc,OAAkB;AAC3G,sDAAwI;AAA7D,8GAAA,aAAa,OAAiB;AACzG,kDAA0H;AAAvD,0GAAA,WAAW,OAAe;AAC7F,wEAAuM;AAAxF,gIAAA,sBAAsB,OAA0B;AAC/J,kDAA0H;AAAvD,0GAAA,WAAW,OAAe;AAC7F,iFAAkG;AAAzF,gHAAA,cAAc,OAAkB;AACzC,yGAAsI;AAA7H,wIAAA,0BAA0B,OAA8B;AACjE,qFAA2G;AAAlG,0HAAA,mBAAmB,OAAuB;AACnD,+FAAmH;AAA1G,sHAAA,iBAAiB,OAAqB;AAC/C,yFAA0G;AAAjG,gHAAA,cAAc,OAAkB;AACzC,mDAA+D;AAAtD,sGAAA,SAAS,OAAa;AAC/B,+EAA4F;AAAnF,wGAAA,UAAU,OAAc;AACjC,uFAAwG;AAA/F,gHAAA,cAAc,OAAkB;AACzC,6FAA0G;AAAjG,uHAAA,eAAe,OAAmB;AAC3C,wGAAyJ;AAAhJ,6HAAA,mBAAmB,OAAuB;AAEnD,mEAAmF;AAA1E,oHAAA,eAAe,OAAmB;AAC3C,2DAAqF;AAA5E,mHAAA,kBAAkB,OAAsB;AACjD,mDAAyE;AAAhE,2GAAA,cAAc,OAAkB;AACzC,uDAA+E;AAAtE,+GAAA,gBAAgB,OAAoB;AAC7C,mDAAyE;AAAhE,2GAAA,cAAc,OAAkB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeAssetMetrics = computeAssetMetrics;
|
|
4
|
+
function computeAssetMetrics(rawPrices) {
|
|
5
|
+
const prices = rawPrices.filter((price) => typeof price === 'number' && Number.isFinite(price) && price > 0);
|
|
6
|
+
if (prices.length > 2) {
|
|
7
|
+
const dailyReturns = [];
|
|
8
|
+
for (let i = 1; i < prices.length; i++)
|
|
9
|
+
dailyReturns.push(prices[i] / prices[i - 1] - 1);
|
|
10
|
+
const averageDailyReturn = dailyReturns.reduce((total, value) => total + value, 0) / dailyReturns.length;
|
|
11
|
+
const annualReturn = Math.pow(1 + averageDailyReturn, 365) - 1;
|
|
12
|
+
const variance = dailyReturns.reduce((total, value) => total + Math.pow(value - averageDailyReturn, 2), 0) / dailyReturns.length;
|
|
13
|
+
const volatility = Math.sqrt(variance * 365);
|
|
14
|
+
if (Number.isFinite(annualReturn) && Number.isFinite(volatility)) {
|
|
15
|
+
const ratio = volatility > 0 ? annualReturn / volatility : 0;
|
|
16
|
+
return { return: annualReturn, volatility, ratio };
|
|
17
|
+
}
|
|
18
|
+
else
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
else
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=AssetMetricsCalculator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetMetricsCalculator.js","sourceRoot":"","sources":["../../../src/optimization/assetsMetricsCalculator/AssetMetricsCalculator.ts"],"names":[],"mappings":";;AAMA,kDAiBC;AAjBD,SAAgB,mBAAmB,CAAC,SAA2C;IAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IAE9H,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzF,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QACzG,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QACjI,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;QAE7C,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACrD,CAAC;;YAAM,OAAO,IAAI,CAAC;IACrB,CAAC;;QAAM,OAAO,IAAI,CAAC;AACrB,CAAC"}
|