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 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;AAE3C,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"}
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,6 @@
1
+ export interface AssetMetrics {
2
+ return: number;
3
+ volatility: number;
4
+ ratio: number;
5
+ }
6
+ export declare function computeAssetMetrics(rawPrices: Array<number | null | undefined>): AssetMetrics | null;
@@ -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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elemento-alpha-tools",
3
- "version": "1.3.6",
3
+ "version": "1.3.7",
4
4
  "description": "Librería para los servicios de elemento alpha",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",