@barchart/portfolio-api-common 1.2.58 → 1.2.59
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.
|
@@ -6,7 +6,6 @@ const array = require('@barchart/common-js/lang/array'),
|
|
|
6
6
|
Decimal = require('@barchart/common-js/lang/Decimal'),
|
|
7
7
|
DisposableStack = require('@barchart/common-js/collections/specialized/DisposableStack'),
|
|
8
8
|
Event = require('@barchart/common-js/messaging/Event'),
|
|
9
|
-
is = require('@barchart/common-js/lang/is'),
|
|
10
9
|
Rate = require('@barchart/common-js/lang/Rate'),
|
|
11
10
|
Tree = require('@barchart/common-js/collections/Tree');
|
|
12
11
|
|
|
@@ -311,7 +311,6 @@ module.exports = (() => {
|
|
|
311
311
|
}
|
|
312
312
|
|
|
313
313
|
function calculateStaticData(item) {
|
|
314
|
-
const portfolio = item.portfolio;
|
|
315
314
|
const position = item.position;
|
|
316
315
|
const snapshot = item.position.snapshot;
|
|
317
316
|
const previousSummaries = item.previousSummaries;
|
|
@@ -335,9 +334,9 @@ module.exports = (() => {
|
|
|
335
334
|
|
|
336
335
|
data.income = snapshot.income;
|
|
337
336
|
|
|
338
|
-
data.summaryTotalCurrent = calculateSummaryTotal(item.currentSummary);
|
|
339
|
-
data.summaryTotalPrevious = calculateSummaryTotal(getPreviousSummary(previousSummaries, 1));
|
|
340
|
-
data.summaryTotalPrevious2 = calculateSummaryTotal(getPreviousSummary(previousSummaries, 2));
|
|
337
|
+
data.summaryTotalCurrent = calculateSummaryTotal(item.currentSummary, getPreviousSummary(previousSummaries, 1));
|
|
338
|
+
data.summaryTotalPrevious = calculateSummaryTotal(getPreviousSummary(previousSummaries, 1), getPreviousSummary(previousSummaries, 2));
|
|
339
|
+
data.summaryTotalPrevious2 = calculateSummaryTotal(getPreviousSummary(previousSummaries, 2), getPreviousSummary(previousSummaries, 3));
|
|
341
340
|
|
|
342
341
|
if (snapshot.open.getIsZero()) {
|
|
343
342
|
data.basisPrice = Decimal.ZERO;
|
|
@@ -349,6 +348,7 @@ module.exports = (() => {
|
|
|
349
348
|
function calculatePriceData(item, price) {
|
|
350
349
|
const position = item.position;
|
|
351
350
|
const snapshot = item.position.snapshot;
|
|
351
|
+
const previousSummaries = item.previousSummaries;
|
|
352
352
|
|
|
353
353
|
const data = item._data;
|
|
354
354
|
|
|
@@ -408,25 +408,27 @@ module.exports = (() => {
|
|
|
408
408
|
data.unrealizedToday = unrealizedToday;
|
|
409
409
|
data.unrealizedTodayChange = unrealizedTodayChange;
|
|
410
410
|
|
|
411
|
-
const
|
|
411
|
+
const currentSummary = item.currentSummary;
|
|
412
|
+
|
|
413
|
+
if (currentSummary && position.instrument.type !== InstrumentType.CASH) {
|
|
414
|
+
const previousSummary = getPreviousSummary(previousSummaries, 1);
|
|
412
415
|
|
|
413
|
-
if (summary && position.instrument.type !== InstrumentType.CASH) {
|
|
414
416
|
let priceToUse;
|
|
415
417
|
|
|
416
418
|
if (price) {
|
|
417
419
|
priceToUse = price;
|
|
418
420
|
} else if (data.previousPrice) {
|
|
419
421
|
priceToUse = new Decimal(data.previousPrice);
|
|
420
|
-
} else if (!
|
|
421
|
-
priceToUse =
|
|
422
|
+
} else if (!currentSummary.end.open.getIsZero()) {
|
|
423
|
+
priceToUse = currentSummary.end.value.divide(summary.end.open);
|
|
422
424
|
} else {
|
|
423
425
|
priceToUse = null;
|
|
424
426
|
}
|
|
425
427
|
|
|
426
428
|
if (priceToUse !== null) {
|
|
427
|
-
const period =
|
|
429
|
+
const period = currentSummary.period;
|
|
428
430
|
|
|
429
|
-
let unrealized =
|
|
431
|
+
let unrealized = currentSummary.end.open.multiply(priceToUse).add(currentSummary.end.basis);
|
|
430
432
|
let unrealizedChange;
|
|
431
433
|
|
|
432
434
|
if (data.unrealized !== null) {
|
|
@@ -435,7 +437,7 @@ module.exports = (() => {
|
|
|
435
437
|
unrealizedChange = Decimal.ZERO;
|
|
436
438
|
}
|
|
437
439
|
|
|
438
|
-
let summaryTotalCurrent = period.realized.add(period.income).add(unrealized);
|
|
440
|
+
let summaryTotalCurrent = period.realized.add(period.income).add(unrealized).subtract(previousSummary !== null ? previousSummary.period.unrealized : Decimal.ZERO);
|
|
439
441
|
let summaryTotalCurrentChange;
|
|
440
442
|
|
|
441
443
|
if (data.summaryTotalCurrent !== null) {
|
|
@@ -463,13 +465,13 @@ module.exports = (() => {
|
|
|
463
465
|
}
|
|
464
466
|
}
|
|
465
467
|
|
|
466
|
-
function calculateSummaryTotal(
|
|
468
|
+
function calculateSummaryTotal(currentSummary, previousSummary) {
|
|
467
469
|
let returnRef;
|
|
468
470
|
|
|
469
|
-
if (
|
|
470
|
-
const period =
|
|
471
|
+
if (currentSummary) {
|
|
472
|
+
const period = currentSummary.period;
|
|
471
473
|
|
|
472
|
-
returnRef = period.realized.add(period.income).add(period.unrealized);
|
|
474
|
+
returnRef = period.realized.add(period.income).add(period.unrealized).subtract(previousSummary !== null ? previousSummary.period.unrealized : Decimal.ZERO);
|
|
473
475
|
} else {
|
|
474
476
|
returnRef = Decimal.ZERO;
|
|
475
477
|
}
|
package/package.json
CHANGED
package/test/SpecRunner.js
CHANGED
|
@@ -1340,7 +1340,6 @@ const array = require('@barchart/common-js/lang/array'),
|
|
|
1340
1340
|
Decimal = require('@barchart/common-js/lang/Decimal'),
|
|
1341
1341
|
DisposableStack = require('@barchart/common-js/collections/specialized/DisposableStack'),
|
|
1342
1342
|
Event = require('@barchart/common-js/messaging/Event'),
|
|
1343
|
-
is = require('@barchart/common-js/lang/is'),
|
|
1344
1343
|
Rate = require('@barchart/common-js/lang/Rate'),
|
|
1345
1344
|
Tree = require('@barchart/common-js/collections/Tree');
|
|
1346
1345
|
|
|
@@ -2274,7 +2273,7 @@ module.exports = (() => {
|
|
|
2274
2273
|
return PositionContainer;
|
|
2275
2274
|
})();
|
|
2276
2275
|
|
|
2277
|
-
},{"./../data/PositionSummaryFrame":3,"./PositionGroup":7,"./PositionItem":8,"./definitions/PositionLevelDefinition":9,"./definitions/PositionLevelType":10,"./definitions/PositionTreeDefinition":11,"@barchart/common-js/collections/Tree":15,"@barchart/common-js/collections/sorting/ComparatorBuilder":16,"@barchart/common-js/collections/sorting/comparators":17,"@barchart/common-js/collections/specialized/DisposableStack":18,"@barchart/common-js/lang/Currency":20,"@barchart/common-js/lang/Decimal":22,"@barchart/common-js/lang/Rate":26,"@barchart/common-js/lang/array":28,"@barchart/common-js/lang/assert":29,"@barchart/common-js/
|
|
2276
|
+
},{"./../data/PositionSummaryFrame":3,"./PositionGroup":7,"./PositionItem":8,"./definitions/PositionLevelDefinition":9,"./definitions/PositionLevelType":10,"./definitions/PositionTreeDefinition":11,"@barchart/common-js/collections/Tree":15,"@barchart/common-js/collections/sorting/ComparatorBuilder":16,"@barchart/common-js/collections/sorting/comparators":17,"@barchart/common-js/collections/specialized/DisposableStack":18,"@barchart/common-js/lang/Currency":20,"@barchart/common-js/lang/Decimal":22,"@barchart/common-js/lang/Rate":26,"@barchart/common-js/lang/array":28,"@barchart/common-js/lang/assert":29,"@barchart/common-js/messaging/Event":35}],7:[function(require,module,exports){
|
|
2278
2277
|
const array = require('@barchart/common-js/lang/array'),
|
|
2279
2278
|
assert = require('@barchart/common-js/lang/assert'),
|
|
2280
2279
|
Currency = require('@barchart/common-js/lang/Currency'),
|
|
@@ -3448,7 +3447,6 @@ module.exports = (() => {
|
|
|
3448
3447
|
}
|
|
3449
3448
|
|
|
3450
3449
|
function calculateStaticData(item) {
|
|
3451
|
-
const portfolio = item.portfolio;
|
|
3452
3450
|
const position = item.position;
|
|
3453
3451
|
const snapshot = item.position.snapshot;
|
|
3454
3452
|
const previousSummaries = item.previousSummaries;
|
|
@@ -3472,9 +3470,9 @@ module.exports = (() => {
|
|
|
3472
3470
|
|
|
3473
3471
|
data.income = snapshot.income;
|
|
3474
3472
|
|
|
3475
|
-
data.summaryTotalCurrent = calculateSummaryTotal(item.currentSummary);
|
|
3476
|
-
data.summaryTotalPrevious = calculateSummaryTotal(getPreviousSummary(previousSummaries, 1));
|
|
3477
|
-
data.summaryTotalPrevious2 = calculateSummaryTotal(getPreviousSummary(previousSummaries, 2));
|
|
3473
|
+
data.summaryTotalCurrent = calculateSummaryTotal(item.currentSummary, getPreviousSummary(previousSummaries, 1));
|
|
3474
|
+
data.summaryTotalPrevious = calculateSummaryTotal(getPreviousSummary(previousSummaries, 1), getPreviousSummary(previousSummaries, 2));
|
|
3475
|
+
data.summaryTotalPrevious2 = calculateSummaryTotal(getPreviousSummary(previousSummaries, 2), getPreviousSummary(previousSummaries, 3));
|
|
3478
3476
|
|
|
3479
3477
|
if (snapshot.open.getIsZero()) {
|
|
3480
3478
|
data.basisPrice = Decimal.ZERO;
|
|
@@ -3486,6 +3484,7 @@ module.exports = (() => {
|
|
|
3486
3484
|
function calculatePriceData(item, price) {
|
|
3487
3485
|
const position = item.position;
|
|
3488
3486
|
const snapshot = item.position.snapshot;
|
|
3487
|
+
const previousSummaries = item.previousSummaries;
|
|
3489
3488
|
|
|
3490
3489
|
const data = item._data;
|
|
3491
3490
|
|
|
@@ -3545,25 +3544,27 @@ module.exports = (() => {
|
|
|
3545
3544
|
data.unrealizedToday = unrealizedToday;
|
|
3546
3545
|
data.unrealizedTodayChange = unrealizedTodayChange;
|
|
3547
3546
|
|
|
3548
|
-
const
|
|
3547
|
+
const currentSummary = item.currentSummary;
|
|
3548
|
+
|
|
3549
|
+
if (currentSummary && position.instrument.type !== InstrumentType.CASH) {
|
|
3550
|
+
const previousSummary = getPreviousSummary(previousSummaries, 1);
|
|
3549
3551
|
|
|
3550
|
-
if (summary && position.instrument.type !== InstrumentType.CASH) {
|
|
3551
3552
|
let priceToUse;
|
|
3552
3553
|
|
|
3553
3554
|
if (price) {
|
|
3554
3555
|
priceToUse = price;
|
|
3555
3556
|
} else if (data.previousPrice) {
|
|
3556
3557
|
priceToUse = new Decimal(data.previousPrice);
|
|
3557
|
-
} else if (!
|
|
3558
|
-
priceToUse =
|
|
3558
|
+
} else if (!currentSummary.end.open.getIsZero()) {
|
|
3559
|
+
priceToUse = currentSummary.end.value.divide(summary.end.open);
|
|
3559
3560
|
} else {
|
|
3560
3561
|
priceToUse = null;
|
|
3561
3562
|
}
|
|
3562
3563
|
|
|
3563
3564
|
if (priceToUse !== null) {
|
|
3564
|
-
const period =
|
|
3565
|
+
const period = currentSummary.period;
|
|
3565
3566
|
|
|
3566
|
-
let unrealized =
|
|
3567
|
+
let unrealized = currentSummary.end.open.multiply(priceToUse).add(currentSummary.end.basis);
|
|
3567
3568
|
let unrealizedChange;
|
|
3568
3569
|
|
|
3569
3570
|
if (data.unrealized !== null) {
|
|
@@ -3572,7 +3573,7 @@ module.exports = (() => {
|
|
|
3572
3573
|
unrealizedChange = Decimal.ZERO;
|
|
3573
3574
|
}
|
|
3574
3575
|
|
|
3575
|
-
let summaryTotalCurrent = period.realized.add(period.income).add(unrealized);
|
|
3576
|
+
let summaryTotalCurrent = period.realized.add(period.income).add(unrealized).subtract(previousSummary !== null ? previousSummary.period.unrealized : Decimal.ZERO);
|
|
3576
3577
|
let summaryTotalCurrentChange;
|
|
3577
3578
|
|
|
3578
3579
|
if (data.summaryTotalCurrent !== null) {
|
|
@@ -3600,13 +3601,13 @@ module.exports = (() => {
|
|
|
3600
3601
|
}
|
|
3601
3602
|
}
|
|
3602
3603
|
|
|
3603
|
-
function calculateSummaryTotal(
|
|
3604
|
+
function calculateSummaryTotal(currentSummary, previousSummary) {
|
|
3604
3605
|
let returnRef;
|
|
3605
3606
|
|
|
3606
|
-
if (
|
|
3607
|
-
const period =
|
|
3607
|
+
if (currentSummary) {
|
|
3608
|
+
const period = currentSummary.period;
|
|
3608
3609
|
|
|
3609
|
-
returnRef = period.realized.add(period.income).add(period.unrealized);
|
|
3610
|
+
returnRef = period.realized.add(period.income).add(period.unrealized).subtract(previousSummary !== null ? previousSummary.period.unrealized : Decimal.ZERO);
|
|
3610
3611
|
} else {
|
|
3611
3612
|
returnRef = Decimal.ZERO;
|
|
3612
3613
|
}
|