@barchart/portfolio-api-common 1.29.2 → 1.29.3

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.
@@ -775,7 +775,7 @@ module.exports = (() => {
775
775
  updates.cashTotal = updates.cashTotal.add(translate(item, item.data.market));
776
776
  }
777
777
 
778
- updates.totalDivisor = updates.periodDivisorCurrent.add(translate(item, item.data.totalDivisor));
778
+ updates.totalDivisor = updates.totalDivisor.add(translate(item, item.data.totalDivisor));
779
779
  updates.periodDivisorCurrent = updates.periodDivisorCurrent.add(translate(item, item.data.periodDivisor));
780
780
  updates.periodDivisorPrevious = updates.periodDivisorPrevious.add(translate(item, item.data.periodDivisorPrevious));
781
781
  updates.periodDivisorPrevious2 = updates.periodDivisorPrevious2.add(translate(item, item.data.periodDivisorPrevious2));
@@ -447,7 +447,7 @@ module.exports = (() => {
447
447
 
448
448
  const data = item._data;
449
449
 
450
- data.initiate = guessInitiateDirection(item.previousSummaries, item.currentSummary);
450
+ data.initiate = guessInitialDirection(position, item.previousSummaries, item.currentSummary);
451
451
 
452
452
  data.quantity = snapshot.open;
453
453
  data.previousPrice = position.previous || null;
@@ -498,7 +498,7 @@ module.exports = (() => {
498
498
  data.periodPricePrevious = null;
499
499
  }
500
500
 
501
- data.totalDivisor = calculateTotalDivisor(position.instrument.type, data.initiate, currentSummary, position);
501
+ data.totalDivisor = calculateTotalDivisor(position.instrument.type, data.initiate, position);
502
502
  }
503
503
 
504
504
  function calculatePriceData(item, price) {
@@ -650,7 +650,11 @@ module.exports = (() => {
650
650
  }
651
651
  }
652
652
 
653
- function guessInitiateDirection(previousSummaries, currentSummary) {
653
+ function guessInitialDirection(position, previousSummaries, currentSummary) {
654
+ if (position.snapshot.initial) {
655
+ return position.snapshot.initial;
656
+ }
657
+
654
658
  const summaries = previousSummaries.concat(currentSummary);
655
659
 
656
660
  const direction = summaries.reduce((accumulator, summary) => {
@@ -740,24 +744,22 @@ module.exports = (() => {
740
744
  return returnRef;
741
745
  }
742
746
 
743
- function calculateTotalDivisor(type, direction, finalSummary, position) {
744
- let returnRef;
747
+ function calculateTotalDivisor(type, direction, position) {
748
+ if (type === InstrumentType.CASH) {
749
+ return Decimal.ZERO;
750
+ }
745
751
 
746
- // 2019-06-05, BRI. We should be reading from the summary -- in case we are
747
- // running for a previous period. However, the summary does not have buy and
748
- // sell totals for the entire history. Could be added.
752
+ let divisor;
749
753
 
750
- if (finalSummary && type !== InstrumentType.CASH) {
751
- if (direction === PositionDirection.SHORT) {
752
- returnRef = position.snapshot.sells;
753
- } else {
754
- returnRef = position.snapshot.buys.opposite();
755
- }
754
+ if (direction === PositionDirection.SHORT) {
755
+ divisor = position.snapshot.sells;
756
+ } else if (direction === PositionDirection.LONG) {
757
+ divisor = position.snapshot.buys.opposite();
756
758
  } else {
757
- returnRef = Decimal.ZERO;
759
+ divisor = Decimal.ZERO;
758
760
  }
759
761
 
760
- return returnRef;
762
+ return divisor;
761
763
  }
762
764
 
763
765
  function getPreviousSummary(previousSummaries, count) {
@@ -1,7 +1,6 @@
1
1
  const Currency = require('@barchart/common-js/lang/Currency'),
2
2
  DataType = require('@barchart/common-js/serialization/json/DataType'),
3
3
  Enum = require('@barchart/common-js/lang/Enum'),
4
- Schema = require('@barchart/common-js/serialization/json/Schema'),
5
4
  SchemaBuilder = require('@barchart/common-js/serialization/json/builders/SchemaBuilder'),
6
5
  Timezones = require('@barchart/common-js/lang/Timezones');
7
6
 
@@ -1,7 +1,6 @@
1
1
  const Currency = require('@barchart/common-js/lang/Currency'),
2
2
  DataType = require('@barchart/common-js/serialization/json/DataType'),
3
3
  Enum = require('@barchart/common-js/lang/Enum'),
4
- Schema = require('@barchart/common-js/serialization/json/Schema'),
5
4
  SchemaBuilder = require('@barchart/common-js/serialization/json/builders/SchemaBuilder');
6
5
 
7
6
  const UnitCode = require('@barchart/marketdata-api-js/lib/utilities/data/UnitCode');
@@ -121,6 +120,7 @@ module.exports = (() => {
121
120
  .withField('snapshot.basis', DataType.DECIMAL)
122
121
  .withField('snapshot.income', DataType.DECIMAL)
123
122
  .withField('snapshot.value', DataType.DECIMAL)
123
+ .withField('snapshot.initial', DataType.forEnum(PositionDirection, 'PositionDirection'), true)
124
124
  .withField('legacy.system', DataType.STRING, true)
125
125
  .withField('legacy.user', DataType.STRING, true)
126
126
  .withField('legacy.portfolio', DataType.STRING, true)
@@ -167,6 +167,7 @@ module.exports = (() => {
167
167
  .withField('snapshot.basis', DataType.DECIMAL)
168
168
  .withField('snapshot.income', DataType.DECIMAL)
169
169
  .withField('snapshot.value', DataType.DECIMAL)
170
+ .withField('snapshot.initial', DataType.forEnum(PositionDirection, 'PositionDirection'), true)
170
171
  .withField('system.calculate.processors', DataType.NUMBER, true)
171
172
  .withField('system.locked', DataType.BOOLEAN, true)
172
173
  .withField('previous', DataType.NUMBER, true)
@@ -1,6 +1,5 @@
1
1
  const DataType = require('@barchart/common-js/serialization/json/DataType'),
2
2
  Enum = require('@barchart/common-js/lang/Enum'),
3
- Schema = require('@barchart/common-js/serialization/json/Schema'),
4
3
  SchemaBuilder = require('@barchart/common-js/serialization/json/builders/SchemaBuilder');
5
4
 
6
5
  const PositionDirection = require('./../data/PositionDirection'),
@@ -2,7 +2,6 @@ const is = require('@barchart/common-js/lang/is'),
2
2
  Currency = require('@barchart/common-js/lang/Currency'),
3
3
  DataType = require('@barchart/common-js/serialization/json/DataType'),
4
4
  Enum = require('@barchart/common-js/lang/Enum'),
5
- Schema = require('@barchart/common-js/serialization/json/Schema'),
6
5
  SchemaBuilder = require('@barchart/common-js/serialization/json/builders/SchemaBuilder');
7
6
 
8
7
  const InstrumentType = require('./../data/InstrumentType'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barchart/portfolio-api-common",
3
- "version": "1.29.2",
3
+ "version": "1.29.3",
4
4
  "description": "Common JavaScript code used by Barchart's Portfolio Service",
5
5
  "author": {
6
6
  "name": "Bryan Ingle",