@vuu-ui/vuu-data-test 0.0.26
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/LICENSE +201 -0
- package/README.md +0 -0
- package/cjs/ArrayProxy.js +80 -0
- package/cjs/ArrayProxy.js.map +1 -0
- package/cjs/Table.js +186 -0
- package/cjs/Table.js.map +1 -0
- package/cjs/TickingArrayDataSource.js +134 -0
- package/cjs/TickingArrayDataSource.js.map +1 -0
- package/cjs/UpdateGenerator.js +87 -0
- package/cjs/UpdateGenerator.js.map +1 -0
- package/cjs/basket/basket-module.js +236 -0
- package/cjs/basket/basket-module.js.map +1 -0
- package/cjs/basket/basket-schemas.js +121 -0
- package/cjs/basket/basket-schemas.js.map +1 -0
- package/cjs/basket/reference-data/constituents.js +40 -0
- package/cjs/basket/reference-data/constituents.js.map +1 -0
- package/cjs/basket/reference-data/ftse100.js +105 -0
- package/cjs/basket/reference-data/ftse100.js.map +1 -0
- package/cjs/basket/reference-data/hsi.js +87 -0
- package/cjs/basket/reference-data/hsi.js.map +1 -0
- package/cjs/basket/reference-data/nasdaq100.js +108 -0
- package/cjs/basket/reference-data/nasdaq100.js.map +1 -0
- package/cjs/basket/reference-data/prices.js +51 -0
- package/cjs/basket/reference-data/prices.js.map +1 -0
- package/cjs/basket/reference-data/sp500.js +46 -0
- package/cjs/basket/reference-data/sp500.js.map +1 -0
- package/cjs/data-utils.js +58 -0
- package/cjs/data-utils.js.map +1 -0
- package/cjs/index.js +36 -0
- package/cjs/index.js.map +1 -0
- package/cjs/makeSuggestions.js +37 -0
- package/cjs/makeSuggestions.js.map +1 -0
- package/cjs/schemas.js +28 -0
- package/cjs/schemas.js.map +1 -0
- package/cjs/simul/reference-data/currencies.js +6 -0
- package/cjs/simul/reference-data/currencies.js.map +1 -0
- package/cjs/simul/reference-data/instruments-extended.js +18 -0
- package/cjs/simul/reference-data/instruments-extended.js.map +1 -0
- package/cjs/simul/reference-data/instruments.js +74 -0
- package/cjs/simul/reference-data/instruments.js.map +1 -0
- package/cjs/simul/reference-data/locations.js +17 -0
- package/cjs/simul/reference-data/locations.js.map +1 -0
- package/cjs/simul/reference-data/lotsizes.js +28 -0
- package/cjs/simul/reference-data/lotsizes.js.map +1 -0
- package/cjs/simul/reference-data/orders.js +43 -0
- package/cjs/simul/reference-data/orders.js.map +1 -0
- package/cjs/simul/reference-data/prices.js +71 -0
- package/cjs/simul/reference-data/prices.js.map +1 -0
- package/cjs/simul/simul-module.js +122 -0
- package/cjs/simul/simul-module.js.map +1 -0
- package/cjs/simul/simul-schemas.js +137 -0
- package/cjs/simul/simul-schemas.js.map +1 -0
- package/cjs/test/test-module.js +58 -0
- package/cjs/test/test-module.js.map +1 -0
- package/cjs/test/test-schemas.js +17 -0
- package/cjs/test/test-schemas.js.map +1 -0
- package/cjs/vuu-modules.js +15 -0
- package/cjs/vuu-modules.js.map +1 -0
- package/cjs/vuu-row-generator.js +74 -0
- package/cjs/vuu-row-generator.js.map +1 -0
- package/esm/ArrayProxy.js +78 -0
- package/esm/ArrayProxy.js.map +1 -0
- package/esm/Table.js +182 -0
- package/esm/Table.js.map +1 -0
- package/esm/TickingArrayDataSource.js +132 -0
- package/esm/TickingArrayDataSource.js.map +1 -0
- package/esm/UpdateGenerator.js +85 -0
- package/esm/UpdateGenerator.js.map +1 -0
- package/esm/basket/basket-module.js +232 -0
- package/esm/basket/basket-module.js.map +1 -0
- package/esm/basket/basket-schemas.js +119 -0
- package/esm/basket/basket-schemas.js.map +1 -0
- package/esm/basket/reference-data/constituents.js +38 -0
- package/esm/basket/reference-data/constituents.js.map +1 -0
- package/esm/basket/reference-data/ftse100.js +103 -0
- package/esm/basket/reference-data/ftse100.js.map +1 -0
- package/esm/basket/reference-data/hsi.js +85 -0
- package/esm/basket/reference-data/hsi.js.map +1 -0
- package/esm/basket/reference-data/nasdaq100.js +106 -0
- package/esm/basket/reference-data/nasdaq100.js.map +1 -0
- package/esm/basket/reference-data/prices.js +49 -0
- package/esm/basket/reference-data/prices.js.map +1 -0
- package/esm/basket/reference-data/sp500.js +44 -0
- package/esm/basket/reference-data/sp500.js.map +1 -0
- package/esm/data-utils.js +53 -0
- package/esm/data-utils.js.map +1 -0
- package/esm/index.js +11 -0
- package/esm/index.js.map +1 -0
- package/esm/makeSuggestions.js +35 -0
- package/esm/makeSuggestions.js.map +1 -0
- package/esm/schemas.js +24 -0
- package/esm/schemas.js.map +1 -0
- package/esm/simul/reference-data/currencies.js +4 -0
- package/esm/simul/reference-data/currencies.js.map +1 -0
- package/esm/simul/reference-data/instruments-extended.js +16 -0
- package/esm/simul/reference-data/instruments-extended.js.map +1 -0
- package/esm/simul/reference-data/instruments.js +69 -0
- package/esm/simul/reference-data/instruments.js.map +1 -0
- package/esm/simul/reference-data/locations.js +14 -0
- package/esm/simul/reference-data/locations.js.map +1 -0
- package/esm/simul/reference-data/lotsizes.js +26 -0
- package/esm/simul/reference-data/lotsizes.js.map +1 -0
- package/esm/simul/reference-data/orders.js +40 -0
- package/esm/simul/reference-data/orders.js.map +1 -0
- package/esm/simul/reference-data/prices.js +68 -0
- package/esm/simul/reference-data/prices.js.map +1 -0
- package/esm/simul/simul-module.js +120 -0
- package/esm/simul/simul-module.js.map +1 -0
- package/esm/simul/simul-schemas.js +135 -0
- package/esm/simul/simul-schemas.js.map +1 -0
- package/esm/test/test-module.js +56 -0
- package/esm/test/test-module.js.map +1 -0
- package/esm/test/test-schemas.js +15 -0
- package/esm/test/test-schemas.js.map +1 -0
- package/esm/vuu-modules.js +13 -0
- package/esm/vuu-modules.js.map +1 -0
- package/esm/vuu-row-generator.js +68 -0
- package/esm/vuu-row-generator.js.map +1 -0
- package/package.json +34 -0
- package/types/ArrayProxy.d.ts +8 -0
- package/types/Table.d.ts +23 -0
- package/types/TickingArrayDataSource.d.ts +27 -0
- package/types/UpdateGenerator.d.ts +18 -0
- package/types/basket/basket-module.d.ts +6 -0
- package/types/basket/basket-schemas.d.ts +3 -0
- package/types/basket/index.d.ts +2 -0
- package/types/basket/reference-data/constituents.d.ts +3 -0
- package/types/basket/reference-data/ftse100.d.ts +2 -0
- package/types/basket/reference-data/hsi.d.ts +2 -0
- package/types/basket/reference-data/nasdaq100.d.ts +2 -0
- package/types/basket/reference-data/prices.d.ts +25 -0
- package/types/basket/reference-data/sp500.d.ts +2 -0
- package/types/data-utils.d.ts +6 -0
- package/types/index.d.ts +9 -0
- package/types/makeSuggestions.d.ts +2 -0
- package/types/rowUpdates.d.ts +15 -0
- package/types/schemas.d.ts +8 -0
- package/types/simul/index.d.ts +2 -0
- package/types/simul/reference-data/currencies.d.ts +1 -0
- package/types/simul/reference-data/index.d.ts +5 -0
- package/types/simul/reference-data/instrument-prices.d.ts +54 -0
- package/types/simul/reference-data/instruments-extended.d.ts +2 -0
- package/types/simul/reference-data/instruments.d.ts +31 -0
- package/types/simul/reference-data/locations.d.ts +4 -0
- package/types/simul/reference-data/lotsizes.d.ts +1 -0
- package/types/simul/reference-data/orders.d.ts +35 -0
- package/types/simul/reference-data/priceStrategies.d.ts +1 -0
- package/types/simul/reference-data/prices.d.ts +27 -0
- package/types/simul/simul-module.d.ts +3 -0
- package/types/simul/simul-schemas.d.ts +3 -0
- package/types/test/index.d.ts +1 -0
- package/types/test/test-module.d.ts +4 -0
- package/types/test/test-schemas.d.ts +3 -0
- package/types/vuu-modules.d.ts +7 -0
- package/types/vuu-row-generator.d.ts +17 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dataUtils = require('./data-utils.js');
|
|
4
|
+
|
|
5
|
+
const getNewValue = (value) => {
|
|
6
|
+
const multiplier = dataUtils.random(0, 100) / 1e3;
|
|
7
|
+
const direction = dataUtils.random(0, 10) >= 5 ? 1 : -1;
|
|
8
|
+
return value + value * multiplier * direction;
|
|
9
|
+
};
|
|
10
|
+
class BaseUpdateGenerator {
|
|
11
|
+
constructor(tickingColumns) {
|
|
12
|
+
this.updating = false;
|
|
13
|
+
this.update = () => {
|
|
14
|
+
if (this.range && this.table) {
|
|
15
|
+
const data = this.table?.data;
|
|
16
|
+
const { bid, ask, last, ...rest } = this.tickingColumns;
|
|
17
|
+
if (data && data?.length > 0) {
|
|
18
|
+
const maxRange = Math.min(this.range.to, data.length);
|
|
19
|
+
for (let rowIndex = this.range.from; rowIndex < maxRange; rowIndex++) {
|
|
20
|
+
let updateCount = 0;
|
|
21
|
+
const shallUpdateRow = dataUtils.random(0, 10) < 2;
|
|
22
|
+
if (shallUpdateRow) {
|
|
23
|
+
const rowUpdates = this.table.data[rowIndex];
|
|
24
|
+
const row = data[rowIndex];
|
|
25
|
+
if (bid !== void 0 && ask !== void 0) {
|
|
26
|
+
const { [bid]: currentBid, [ask]: currentAsk } = row;
|
|
27
|
+
const [newBid, newAsk] = dataUtils.generateNextBidAsk(
|
|
28
|
+
currentBid,
|
|
29
|
+
currentAsk,
|
|
30
|
+
10,
|
|
31
|
+
5,
|
|
32
|
+
dataUtils.nextRandomDouble
|
|
33
|
+
);
|
|
34
|
+
rowUpdates[ask] = newAsk;
|
|
35
|
+
rowUpdates[bid] = newBid;
|
|
36
|
+
if (last !== void 0) {
|
|
37
|
+
const newLast = Math.round((currentAsk + (newAsk - currentAsk) / 2) * 100) / 100;
|
|
38
|
+
rowUpdates[last] = newLast;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
for (const colIdx of Object.values(rest)) {
|
|
42
|
+
const shallUpdateColumn = dataUtils.random(0, 10) < 5;
|
|
43
|
+
if (shallUpdateColumn) {
|
|
44
|
+
updateCount += 1;
|
|
45
|
+
const newValue = getNewValue(row[colIdx]);
|
|
46
|
+
if (this.table) {
|
|
47
|
+
rowUpdates[colIdx] = newValue;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (this.table && updateCount > 0) {
|
|
52
|
+
this.table.updateRow(rowUpdates);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (this.updating) {
|
|
59
|
+
this.timer = window.setTimeout(this.update, 500);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
this.tickingColumns = tickingColumns;
|
|
63
|
+
}
|
|
64
|
+
setRange(range) {
|
|
65
|
+
this.range = range;
|
|
66
|
+
if (!this.updating && this.table) {
|
|
67
|
+
this.startUpdating();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
setTable(table) {
|
|
71
|
+
this.table = table;
|
|
72
|
+
}
|
|
73
|
+
startUpdating() {
|
|
74
|
+
this.updating = true;
|
|
75
|
+
this.update();
|
|
76
|
+
}
|
|
77
|
+
stopUpdating() {
|
|
78
|
+
this.updating = false;
|
|
79
|
+
if (this.timer) {
|
|
80
|
+
window.clearTimeout(this.timer);
|
|
81
|
+
this.timer = void 0;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
exports.BaseUpdateGenerator = BaseUpdateGenerator;
|
|
87
|
+
//# sourceMappingURL=UpdateGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpdateGenerator.js","sources":["../src/UpdateGenerator.ts"],"sourcesContent":["import { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\nimport { generateNextBidAsk, nextRandomDouble, random } from \"./data-utils\";\nimport type { UpdateGenerator } from \"./rowUpdates\";\nimport { Table } from \"./Table\";\n\nconst getNewValue = (value: number) => {\n const multiplier = random(0, 100) / 1000;\n const direction = random(0, 10) >= 5 ? 1 : -1;\n return value + value * multiplier * direction;\n};\n\nexport class BaseUpdateGenerator implements UpdateGenerator {\n private table: Table | undefined;\n private range: VuuRange | undefined;\n private updating = false;\n private timer: number | undefined;\n private tickingColumns: { [key: string]: number };\n\n constructor(tickingColumns: { [key: string]: number }) {\n this.tickingColumns = tickingColumns;\n }\n\n setRange(range: VuuRange) {\n this.range = range;\n if (!this.updating && this.table) {\n this.startUpdating();\n }\n }\n\n setTable(table: Table) {\n this.table = table;\n }\n\n private startUpdating() {\n this.updating = true;\n this.update();\n }\n\n private stopUpdating() {\n this.updating = false;\n if (this.timer) {\n window.clearTimeout(this.timer);\n this.timer = undefined;\n }\n }\n\n update = () => {\n if (this.range && this.table) {\n const data = this.table?.data;\n const { bid, ask, last, ...rest } = this.tickingColumns;\n if (data && data?.length > 0) {\n const maxRange = Math.min(this.range.to, data.length);\n for (let rowIndex = this.range.from; rowIndex < maxRange; rowIndex++) {\n let updateCount = 0;\n const shallUpdateRow = random(0, 10) < 2;\n if (shallUpdateRow) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const rowUpdates = this.table.data[rowIndex];\n const row = data[rowIndex];\n\n if (bid !== undefined && ask !== undefined) {\n const { [bid]: currentBid, [ask]: currentAsk } = row as number[];\n const [newBid, newAsk] = generateNextBidAsk(\n currentBid,\n currentAsk,\n 10,\n 5,\n nextRandomDouble\n );\n rowUpdates[ask] = newAsk;\n rowUpdates[bid] = newBid;\n if (last !== undefined) {\n const newLast =\n Math.round((currentAsk + (newAsk - currentAsk) / 2) * 100) /\n 100.0;\n rowUpdates[last] = newLast;\n }\n }\n\n for (const colIdx of Object.values(rest)) {\n const shallUpdateColumn = random(0, 10) < 5;\n if (shallUpdateColumn) {\n updateCount += 1;\n const newValue = getNewValue(row[colIdx] as number);\n if (this.table) {\n rowUpdates[colIdx] = newValue;\n }\n }\n }\n if (this.table && updateCount > 0) {\n this.table.updateRow(rowUpdates);\n }\n }\n }\n }\n }\n\n if (this.updating) {\n this.timer = window.setTimeout(this.update, 500);\n }\n };\n}\n"],"names":["random","generateNextBidAsk","nextRandomDouble"],"mappings":"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"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var prices = require('./reference-data/prices.js');
|
|
4
|
+
var Table = require('../Table.js');
|
|
5
|
+
var TickingArrayDataSource = require('../TickingArrayDataSource.js');
|
|
6
|
+
var basketSchemas = require('./basket-schemas.js');
|
|
7
|
+
var constituents = require('./reference-data/constituents.js');
|
|
8
|
+
|
|
9
|
+
const buildDataColumnMap = (tableName) => Object.values(basketSchemas.schemas[tableName].columns).reduce(
|
|
10
|
+
(map, col, index) => {
|
|
11
|
+
map[col.name] = index;
|
|
12
|
+
return map;
|
|
13
|
+
},
|
|
14
|
+
{}
|
|
15
|
+
);
|
|
16
|
+
const tableMaps = {
|
|
17
|
+
algoType: buildDataColumnMap("algoType"),
|
|
18
|
+
basket: buildDataColumnMap("basket"),
|
|
19
|
+
basketTrading: buildDataColumnMap("basketTrading"),
|
|
20
|
+
basketTradingConstituent: buildDataColumnMap("basketTradingConstituent"),
|
|
21
|
+
basketConstituent: buildDataColumnMap("basketConstituent"),
|
|
22
|
+
basketTradingConstituentJoin: buildDataColumnMap(
|
|
23
|
+
"basketTradingConstituentJoin"
|
|
24
|
+
),
|
|
25
|
+
priceStrategyType: buildDataColumnMap("priceStrategyType")
|
|
26
|
+
};
|
|
27
|
+
const basketConstituent = new Table.Table(
|
|
28
|
+
basketSchemas.schemas.basketConstituent,
|
|
29
|
+
constituents,
|
|
30
|
+
tableMaps.basketConstituent
|
|
31
|
+
);
|
|
32
|
+
const basketTrading = new Table.Table(
|
|
33
|
+
basketSchemas.schemas.basketTrading,
|
|
34
|
+
[],
|
|
35
|
+
tableMaps.basketTrading
|
|
36
|
+
);
|
|
37
|
+
let basketIncrement = 1;
|
|
38
|
+
const basketTradingConstituent = new Table.Table(
|
|
39
|
+
basketSchemas.schemas.basketTradingConstituent,
|
|
40
|
+
[],
|
|
41
|
+
tableMaps.basketTradingConstituent
|
|
42
|
+
);
|
|
43
|
+
const createBasketTradingRow = (basketId, basketName, side = "BUY", status = "OFF MARKET") => [
|
|
44
|
+
basketId,
|
|
45
|
+
basketName,
|
|
46
|
+
0,
|
|
47
|
+
1.25,
|
|
48
|
+
`steve-${basketIncrement++}`,
|
|
49
|
+
side,
|
|
50
|
+
status,
|
|
51
|
+
1e6,
|
|
52
|
+
125e4,
|
|
53
|
+
100
|
|
54
|
+
];
|
|
55
|
+
function createTradingBasket(basketId, basketName) {
|
|
56
|
+
const basketTradingRow = createBasketTradingRow(basketId, basketName);
|
|
57
|
+
basketTrading.insert(basketTradingRow);
|
|
58
|
+
const { basketId: key } = buildDataColumnMap("basketConstituent");
|
|
59
|
+
const constituents = basketConstituent.data.filter(
|
|
60
|
+
(c) => c[key] === basketId
|
|
61
|
+
);
|
|
62
|
+
const { instanceId } = tableMaps.basketTrading;
|
|
63
|
+
constituents.forEach(([, , description, , ric, , , quantity, weighting]) => {
|
|
64
|
+
const algo = "";
|
|
65
|
+
const algoParams = "";
|
|
66
|
+
const limitPrice = 95;
|
|
67
|
+
const notionalLocal = 0;
|
|
68
|
+
const notionalUsd = 0;
|
|
69
|
+
const pctFilled = 0;
|
|
70
|
+
const priceSpread = 0;
|
|
71
|
+
const priceStrategyId = "";
|
|
72
|
+
const side = "BUY";
|
|
73
|
+
const venue = "venue";
|
|
74
|
+
const basketInstanceId = basketTradingRow[instanceId];
|
|
75
|
+
const basketTradingConstituentRow = [
|
|
76
|
+
algo,
|
|
77
|
+
algoParams,
|
|
78
|
+
basketId,
|
|
79
|
+
description,
|
|
80
|
+
basketInstanceId,
|
|
81
|
+
`${basketInstanceId}-${ric}`,
|
|
82
|
+
limitPrice,
|
|
83
|
+
notionalLocal,
|
|
84
|
+
notionalUsd,
|
|
85
|
+
pctFilled,
|
|
86
|
+
priceSpread,
|
|
87
|
+
priceStrategyId,
|
|
88
|
+
quantity,
|
|
89
|
+
ric,
|
|
90
|
+
side,
|
|
91
|
+
venue,
|
|
92
|
+
weighting
|
|
93
|
+
];
|
|
94
|
+
basketTradingConstituent.insert(basketTradingConstituentRow);
|
|
95
|
+
});
|
|
96
|
+
return basketTradingRow[instanceId];
|
|
97
|
+
}
|
|
98
|
+
async function addConstituent(rpcRequest) {
|
|
99
|
+
console.log(`RPC call erceived ${rpcRequest.rpcName}`);
|
|
100
|
+
}
|
|
101
|
+
async function sendToMarket(rpcRequest) {
|
|
102
|
+
const [basketInstanceId] = rpcRequest.params;
|
|
103
|
+
basketTrading.update(basketInstanceId, "status", "ON_MARKET");
|
|
104
|
+
}
|
|
105
|
+
async function takeOffMarket(rpcRequest) {
|
|
106
|
+
const [basketInstanceId] = rpcRequest.params;
|
|
107
|
+
basketTrading.update(basketInstanceId, "status", "OFF-MARKET");
|
|
108
|
+
}
|
|
109
|
+
async function createNewBasket(rpcRequest) {
|
|
110
|
+
const {
|
|
111
|
+
params: [basketId, basketName]
|
|
112
|
+
} = rpcRequest;
|
|
113
|
+
const key = createTradingBasket(basketId, basketName);
|
|
114
|
+
return {
|
|
115
|
+
action: {
|
|
116
|
+
type: "VP_CREATE_SUCCESS",
|
|
117
|
+
key
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const tables = {
|
|
122
|
+
algoType: new Table.Table(
|
|
123
|
+
basketSchemas.schemas.algoType,
|
|
124
|
+
[
|
|
125
|
+
["Sniper", 0],
|
|
126
|
+
["Dark Liquidity", 1],
|
|
127
|
+
["VWAP", 2],
|
|
128
|
+
["POV", 3],
|
|
129
|
+
["Dynamic Close", 4]
|
|
130
|
+
],
|
|
131
|
+
tableMaps.algoType
|
|
132
|
+
),
|
|
133
|
+
basket: new Table.Table(
|
|
134
|
+
basketSchemas.schemas.basket,
|
|
135
|
+
[
|
|
136
|
+
[".NASDAQ100", ".NASDAQ100", 0, 0],
|
|
137
|
+
[".HSI", ".HSI", 0, 0],
|
|
138
|
+
[".FTSE100", ".FTSE100", 0, 0],
|
|
139
|
+
[".SP500", ".SP500", 0, 0]
|
|
140
|
+
],
|
|
141
|
+
tableMaps.basket
|
|
142
|
+
),
|
|
143
|
+
basketConstituent,
|
|
144
|
+
basketTrading,
|
|
145
|
+
basketTradingConstituent,
|
|
146
|
+
basketTradingConstituentJoin: Table.joinTables(
|
|
147
|
+
{ module: "BASKET", table: "basketTradingConstituentJoin" },
|
|
148
|
+
basketTradingConstituent,
|
|
149
|
+
prices,
|
|
150
|
+
"ric"
|
|
151
|
+
),
|
|
152
|
+
priceStrategyType: new Table.Table(
|
|
153
|
+
basketSchemas.schemas.priceStrategyType,
|
|
154
|
+
[
|
|
155
|
+
["Peg to Near Touch", 0],
|
|
156
|
+
["Far Touch", 1],
|
|
157
|
+
["Limit", 2],
|
|
158
|
+
["Algo", 3]
|
|
159
|
+
],
|
|
160
|
+
tableMaps.priceStrategyType
|
|
161
|
+
)
|
|
162
|
+
};
|
|
163
|
+
const menus = {
|
|
164
|
+
algoType: void 0,
|
|
165
|
+
basket: {
|
|
166
|
+
name: "ROOT",
|
|
167
|
+
menus: [
|
|
168
|
+
{
|
|
169
|
+
context: "selected-rows",
|
|
170
|
+
filter: "",
|
|
171
|
+
name: "Add Basket",
|
|
172
|
+
rpcName: "CREATE_NEW_BASKET"
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
basketConstituent: void 0,
|
|
177
|
+
basketTrading: void 0,
|
|
178
|
+
basketTradingConstituent: void 0,
|
|
179
|
+
basketTradingConstituentJoin: void 0,
|
|
180
|
+
priceStrategyType: void 0
|
|
181
|
+
};
|
|
182
|
+
const services = {
|
|
183
|
+
algoType: void 0,
|
|
184
|
+
basket: [
|
|
185
|
+
{
|
|
186
|
+
rpcName: "createBasket",
|
|
187
|
+
service: createNewBasket
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
basketConstituent: void 0,
|
|
191
|
+
basketTrading: [
|
|
192
|
+
{
|
|
193
|
+
rpcName: "sendToMarket",
|
|
194
|
+
service: sendToMarket
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
rpcName: "takeOffMarket",
|
|
198
|
+
service: takeOffMarket
|
|
199
|
+
}
|
|
200
|
+
],
|
|
201
|
+
basketTradingConstituent: void 0,
|
|
202
|
+
basketTradingConstituentJoin: [
|
|
203
|
+
{
|
|
204
|
+
rpcName: "addConstituent",
|
|
205
|
+
service: addConstituent
|
|
206
|
+
}
|
|
207
|
+
],
|
|
208
|
+
priceStrategyType: void 0
|
|
209
|
+
};
|
|
210
|
+
const getColumnDescriptors = (tableName) => {
|
|
211
|
+
const schema = basketSchemas.schemas[tableName];
|
|
212
|
+
return schema.columns;
|
|
213
|
+
};
|
|
214
|
+
const createDataSource = (tableName) => {
|
|
215
|
+
const columnDescriptors = getColumnDescriptors(tableName);
|
|
216
|
+
const { key } = basketSchemas.schemas[tableName];
|
|
217
|
+
return new TickingArrayDataSource.TickingArrayDataSource({
|
|
218
|
+
columnDescriptors,
|
|
219
|
+
dataMap: tableMaps[tableName],
|
|
220
|
+
keyColumn: key,
|
|
221
|
+
menu: menus[tableName],
|
|
222
|
+
rpcServices: services[tableName],
|
|
223
|
+
table: tables[tableName]
|
|
224
|
+
// updateGenerator: createUpdateGenerator?.(),
|
|
225
|
+
});
|
|
226
|
+
};
|
|
227
|
+
const nullTypeaheadHook = async () => [];
|
|
228
|
+
const basketModule = {
|
|
229
|
+
createDataSource,
|
|
230
|
+
typeaheadHook: () => nullTypeaheadHook
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
exports.basketModule = basketModule;
|
|
234
|
+
exports.createBasketTradingRow = createBasketTradingRow;
|
|
235
|
+
exports.tables = tables;
|
|
236
|
+
//# sourceMappingURL=basket-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basket-module.js","sources":["../../src/basket/basket-module.ts"],"sourcesContent":["import {\n ClientToServerViewportRpcCall,\n VuuMenu,\n VuuRowDataItemType,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { ColumnMap } from \"@vuu-ui/vuu-utils\";\nimport pricesTable from \"./reference-data/prices\";\nimport { joinTables, Table } from \"../Table\";\nimport { TickingArrayDataSource } from \"../TickingArrayDataSource\";\nimport type { VuuModule } from \"../vuu-modules\";\nimport { BasketsTableName, schemas } from \"./basket-schemas\";\nimport basketConstituentData from \"./reference-data/constituents\";\n\ntype RpcService = {\n rpcName: string;\n service: (rpcRequest: any) => Promise<unknown>;\n};\n\n// This is a 'local' columnMap\nconst buildDataColumnMap = (tableName: BasketsTableName) =>\n Object.values(schemas[tableName].columns).reduce<ColumnMap>(\n (map, col, index) => {\n map[col.name] = index;\n return map;\n },\n {}\n );\n\nconst tableMaps: Record<BasketsTableName, ColumnMap> = {\n algoType: buildDataColumnMap(\"algoType\"),\n basket: buildDataColumnMap(\"basket\"),\n basketTrading: buildDataColumnMap(\"basketTrading\"),\n basketTradingConstituent: buildDataColumnMap(\"basketTradingConstituent\"),\n basketConstituent: buildDataColumnMap(\"basketConstituent\"),\n basketTradingConstituentJoin: buildDataColumnMap(\n \"basketTradingConstituentJoin\"\n ),\n priceStrategyType: buildDataColumnMap(\"priceStrategyType\"),\n};\n\n/**\n * BasketConstituent\n */\n\nconst basketConstituent = new Table(\n schemas.basketConstituent,\n basketConstituentData,\n tableMaps.basketConstituent\n);\n\n/**\n * BasketTrading\n */\nconst basketTrading = new Table(\n schemas.basketTrading,\n [],\n tableMaps.basketTrading\n);\n\nlet basketIncrement = 1;\n/**\n * BasketTradingConstituent\n */\nconst basketTradingConstituent = new Table(\n schemas.basketTradingConstituent,\n [],\n tableMaps.basketTradingConstituent\n);\n\n// export as convenience for showcase examples\nexport const createBasketTradingRow = (\n basketId: string,\n basketName: string,\n side = \"BUY\",\n status = \"OFF MARKET\"\n) => [\n basketId,\n basketName,\n 0,\n 1.25,\n `steve-${basketIncrement++}`,\n side,\n status,\n 1_000_000,\n 1_250_000,\n 100,\n];\n\nfunction createTradingBasket(basketId: string, basketName: string) {\n const basketTradingRow = createBasketTradingRow(basketId, basketName);\n\n basketTrading.insert(basketTradingRow);\n\n const { basketId: key } = buildDataColumnMap(\"basketConstituent\");\n const constituents = basketConstituent.data.filter(\n (c) => c[key] === basketId\n );\n\n const { instanceId } = tableMaps.basketTrading;\n\n constituents.forEach(([, , description, , ric, , , quantity, weighting]) => {\n const algo = \"\";\n const algoParams = \"\";\n const limitPrice = 95;\n const notionalLocal = 0;\n const notionalUsd = 0;\n const pctFilled = 0;\n const priceSpread = 0;\n const priceStrategyId = \"\";\n const side = \"BUY\";\n const venue = \"venue\";\n\n const basketInstanceId = basketTradingRow[instanceId];\n const basketTradingConstituentRow: VuuRowDataItemType[] = [\n algo,\n algoParams,\n basketId,\n description,\n basketInstanceId,\n `${basketInstanceId}-${ric}`,\n limitPrice,\n notionalLocal,\n notionalUsd,\n pctFilled,\n priceSpread,\n priceStrategyId,\n quantity,\n ric,\n side,\n venue,\n weighting,\n ];\n basketTradingConstituent.insert(basketTradingConstituentRow);\n });\n\n // return the key\n return basketTradingRow[instanceId] as string;\n}\n\nasync function addConstituent(rpcRequest: ClientToServerViewportRpcCall) {\n console.log(`RPC call erceived ${rpcRequest.rpcName}`);\n}\nasync function sendToMarket(rpcRequest: ClientToServerViewportRpcCall) {\n const [basketInstanceId] = rpcRequest.params;\n basketTrading.update(basketInstanceId, \"status\", \"ON_MARKET\");\n}\nasync function takeOffMarket(rpcRequest: ClientToServerViewportRpcCall) {\n const [basketInstanceId] = rpcRequest.params;\n basketTrading.update(basketInstanceId, \"status\", \"OFF-MARKET\");\n}\n\nasync function createNewBasket(rpcRequest: ClientToServerViewportRpcCall) {\n const {\n params: [basketId, basketName],\n } = rpcRequest;\n const key = createTradingBasket(basketId, basketName);\n return {\n action: {\n type: \"VP_CREATE_SUCCESS\",\n key,\n },\n };\n}\n\n//-------------------\n\nexport const tables: Record<BasketsTableName, Table> = {\n algoType: new Table(\n schemas.algoType,\n [\n [\"Sniper\", 0],\n [\"Dark Liquidity\", 1],\n [\"VWAP\", 2],\n [\"POV\", 3],\n [\"Dynamic Close\", 4],\n ],\n tableMaps.algoType\n ),\n basket: new Table(\n schemas.basket,\n [\n [\".NASDAQ100\", \".NASDAQ100\", 0, 0],\n [\".HSI\", \".HSI\", 0, 0],\n [\".FTSE100\", \".FTSE100\", 0, 0],\n [\".SP500\", \".SP500\", 0, 0],\n ],\n tableMaps.basket\n ),\n basketConstituent,\n basketTrading,\n basketTradingConstituent,\n basketTradingConstituentJoin: joinTables(\n { module: \"BASKET\", table: \"basketTradingConstituentJoin\" },\n basketTradingConstituent,\n pricesTable,\n \"ric\"\n ),\n priceStrategyType: new Table(\n schemas.priceStrategyType,\n [\n [\"Peg to Near Touch\", 0],\n [\"Far Touch\", 1],\n [\"Limit\", 2],\n [\"Algo\", 3],\n ],\n tableMaps.priceStrategyType\n ),\n};\n\nconst menus: Record<BasketsTableName, VuuMenu | undefined> = {\n algoType: undefined,\n basket: {\n name: \"ROOT\",\n menus: [\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Add Basket\",\n rpcName: \"CREATE_NEW_BASKET\",\n },\n ],\n },\n basketConstituent: undefined,\n basketTrading: undefined,\n basketTradingConstituent: undefined,\n basketTradingConstituentJoin: undefined,\n priceStrategyType: undefined,\n};\n\nconst services: Record<BasketsTableName, RpcService[] | undefined> = {\n algoType: undefined,\n basket: [\n {\n rpcName: \"createBasket\",\n service: createNewBasket,\n },\n ],\n basketConstituent: undefined,\n basketTrading: [\n {\n rpcName: \"sendToMarket\",\n service: sendToMarket,\n },\n {\n rpcName: \"takeOffMarket\",\n service: takeOffMarket,\n },\n ],\n basketTradingConstituent: undefined,\n basketTradingConstituentJoin: [\n {\n rpcName: \"addConstituent\",\n service: addConstituent,\n },\n ],\n priceStrategyType: undefined,\n};\n\nconst getColumnDescriptors = (tableName: BasketsTableName) => {\n const schema = schemas[tableName];\n return schema.columns;\n};\n\nconst createDataSource = (tableName: BasketsTableName) => {\n const columnDescriptors = getColumnDescriptors(tableName);\n const { key } = schemas[tableName];\n return new TickingArrayDataSource({\n columnDescriptors,\n dataMap: tableMaps[tableName],\n keyColumn: key,\n menu: menus[tableName],\n rpcServices: services[tableName],\n table: tables[tableName],\n // updateGenerator: createUpdateGenerator?.(),\n });\n};\n\nconst nullTypeaheadHook = async () => [];\n\nexport const basketModule: VuuModule<BasketsTableName> = {\n createDataSource,\n typeaheadHook: () => nullTypeaheadHook,\n};\n"],"names":["schemas","Table","basketConstituentData","joinTables","pricesTable","TickingArrayDataSource"],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const schemas = {
|
|
4
|
+
algoType: {
|
|
5
|
+
columns: [
|
|
6
|
+
{ name: "algoType", serverDataType: "string" },
|
|
7
|
+
{ name: "id", serverDataType: "int" }
|
|
8
|
+
],
|
|
9
|
+
key: "id",
|
|
10
|
+
table: { module: "BASKET", table: "algoType" }
|
|
11
|
+
},
|
|
12
|
+
basket: {
|
|
13
|
+
columns: [
|
|
14
|
+
{ name: "id", serverDataType: "string" },
|
|
15
|
+
{ name: "name", serverDataType: "string" },
|
|
16
|
+
{ name: "notionalValue", serverDataType: "double" },
|
|
17
|
+
{ name: "notionalValueUsd", serverDataType: "double" }
|
|
18
|
+
],
|
|
19
|
+
key: "id",
|
|
20
|
+
table: { module: "BASKET", table: "basket" }
|
|
21
|
+
},
|
|
22
|
+
basketConstituent: {
|
|
23
|
+
columns: [
|
|
24
|
+
{ name: "basketId", serverDataType: "string" },
|
|
25
|
+
{ name: "change", serverDataType: "string" },
|
|
26
|
+
{ name: "description", serverDataType: "string" },
|
|
27
|
+
{ name: "lastTrade", serverDataType: "string" },
|
|
28
|
+
{ name: "ric", serverDataType: "string" },
|
|
29
|
+
{ name: "ricBasketId", serverDataType: "string" },
|
|
30
|
+
{ name: "side", serverDataType: "string" },
|
|
31
|
+
{ name: "volume", serverDataType: "string" },
|
|
32
|
+
{ name: "weighting", serverDataType: "double" }
|
|
33
|
+
],
|
|
34
|
+
key: "ricBasketId",
|
|
35
|
+
table: { module: "BASKET", table: "basketConstituent" }
|
|
36
|
+
},
|
|
37
|
+
basketTrading: {
|
|
38
|
+
columns: [
|
|
39
|
+
{ name: "basketId", serverDataType: "string" },
|
|
40
|
+
{ name: "basketName", serverDataType: "string" },
|
|
41
|
+
{ name: "filledPct", serverDataType: "double" },
|
|
42
|
+
{ name: "fxRateToUsd", serverDataType: "double" },
|
|
43
|
+
{ name: "instanceId", serverDataType: "string" },
|
|
44
|
+
{ name: "side", serverDataType: "string" },
|
|
45
|
+
{ name: "status", serverDataType: "string" },
|
|
46
|
+
{ name: "totalNotional", serverDataType: "double" },
|
|
47
|
+
{ name: "totalNotionalUsd", serverDataType: "double" },
|
|
48
|
+
{ name: "units", serverDataType: "int" }
|
|
49
|
+
],
|
|
50
|
+
key: "instanceId",
|
|
51
|
+
table: { module: "BASKET", table: "basketTrading" }
|
|
52
|
+
},
|
|
53
|
+
basketTradingConstituent: {
|
|
54
|
+
columns: [
|
|
55
|
+
{ name: "algo", serverDataType: "string" },
|
|
56
|
+
{ name: "algoParams", serverDataType: "string" },
|
|
57
|
+
{ name: "basketId", serverDataType: "string" },
|
|
58
|
+
{ name: "description", serverDataType: "string" },
|
|
59
|
+
{ name: "instanceId", serverDataType: "string" },
|
|
60
|
+
{ name: "instanceIdRic", serverDataType: "string" },
|
|
61
|
+
{ name: "limitPrice", serverDataType: "double" },
|
|
62
|
+
{ name: "notionalLocal", serverDataType: "double" },
|
|
63
|
+
{ name: "notionalUsd", serverDataType: "double" },
|
|
64
|
+
{ name: "pctFilled", serverDataType: "double" },
|
|
65
|
+
{ name: "priceSpread", serverDataType: "int" },
|
|
66
|
+
{ name: "priceStrategyId", serverDataType: "int" },
|
|
67
|
+
{ name: "quantity", serverDataType: "long" },
|
|
68
|
+
{ name: "ric", serverDataType: "string" },
|
|
69
|
+
{ name: "side", serverDataType: "string" },
|
|
70
|
+
{ name: "status", serverDataType: "string" },
|
|
71
|
+
{ name: "venue", serverDataType: "string" },
|
|
72
|
+
{ name: "weighting", serverDataType: "double" }
|
|
73
|
+
],
|
|
74
|
+
key: "instanceIdRic",
|
|
75
|
+
table: { module: "BASKET", table: "basketTradingConstituent" }
|
|
76
|
+
},
|
|
77
|
+
basketTradingConstituentJoin: {
|
|
78
|
+
columns: [
|
|
79
|
+
{ name: "algo", serverDataType: "string" },
|
|
80
|
+
{ name: "algoParams", serverDataType: "string" },
|
|
81
|
+
{ name: "ask", serverDataType: "double" },
|
|
82
|
+
{ name: "askSize", serverDataType: "double" },
|
|
83
|
+
{ name: "basketId", serverDataType: "string" },
|
|
84
|
+
{ name: "bid", serverDataType: "double" },
|
|
85
|
+
{ name: "bidSize", serverDataType: "double" },
|
|
86
|
+
{ name: "close", serverDataType: "double" },
|
|
87
|
+
{ name: "description", serverDataType: "string" },
|
|
88
|
+
{ name: "instanceId", serverDataType: "string" },
|
|
89
|
+
{ name: "instanceIdRic", serverDataType: "string" },
|
|
90
|
+
{ name: "last", serverDataType: "double" },
|
|
91
|
+
{ name: "limitPrice", serverDataType: "double" },
|
|
92
|
+
{ name: "notionalLocal", serverDataType: "double" },
|
|
93
|
+
{ name: "notionalUsd", serverDataType: "double" },
|
|
94
|
+
{ name: "open", serverDataType: "double" },
|
|
95
|
+
{ name: "pctFilled", serverDataType: "double" },
|
|
96
|
+
{ name: "phase", serverDataType: "string" },
|
|
97
|
+
{ name: "priceSpread", serverDataType: "int" },
|
|
98
|
+
{ name: "priceStrategyId", serverDataType: "int" },
|
|
99
|
+
{ name: "quantity", serverDataType: "long" },
|
|
100
|
+
{ name: "ric", serverDataType: "string" },
|
|
101
|
+
{ name: "scenario", serverDataType: "string" },
|
|
102
|
+
{ name: "side", serverDataType: "string" },
|
|
103
|
+
{ name: "status", serverDataType: "string" },
|
|
104
|
+
{ name: "venue", serverDataType: "string" },
|
|
105
|
+
{ name: "weighting", serverDataType: "double" }
|
|
106
|
+
],
|
|
107
|
+
key: "instanceIdRic",
|
|
108
|
+
table: { module: "BASKET", table: "basketTradingConstituentJoin" }
|
|
109
|
+
},
|
|
110
|
+
priceStrategyType: {
|
|
111
|
+
columns: [
|
|
112
|
+
{ name: "priceStrategy", serverDataType: "string" },
|
|
113
|
+
{ name: "id", serverDataType: "int" }
|
|
114
|
+
],
|
|
115
|
+
key: "",
|
|
116
|
+
table: { module: "BASKET", table: "priceStrategyType" }
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
exports.schemas = schemas;
|
|
121
|
+
//# sourceMappingURL=basket-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basket-schemas.js","sources":["../../src/basket/basket-schemas.ts"],"sourcesContent":["import { TableSchema } from \"@vuu-ui/vuu-data-types\";\n\nexport type BasketsTableName =\n | \"algoType\"\n | \"basket\"\n | \"basketConstituent\"\n | \"basketTrading\"\n | \"basketTradingConstituent\"\n | \"basketTradingConstituentJoin\"\n | \"priceStrategyType\";\n\nexport const schemas: Readonly<\n Record<BasketsTableName, Readonly<TableSchema>>\n> = {\n algoType: {\n columns: [\n { name: \"algoType\", serverDataType: \"string\" },\n { name: \"id\", serverDataType: \"int\" },\n ],\n key: \"id\",\n table: { module: \"BASKET\", table: \"algoType\" },\n },\n basket: {\n columns: [\n { name: \"id\", serverDataType: \"string\" },\n { name: \"name\", serverDataType: \"string\" },\n { name: \"notionalValue\", serverDataType: \"double\" },\n { name: \"notionalValueUsd\", serverDataType: \"double\" },\n ],\n key: \"id\",\n table: { module: \"BASKET\", table: \"basket\" },\n },\n basketConstituent: {\n columns: [\n { name: \"basketId\", serverDataType: \"string\" },\n { name: \"change\", serverDataType: \"string\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"lastTrade\", serverDataType: \"string\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"ricBasketId\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"volume\", serverDataType: \"string\" },\n { name: \"weighting\", serverDataType: \"double\" },\n ],\n key: \"ricBasketId\",\n table: { module: \"BASKET\", table: \"basketConstituent\" },\n },\n basketTrading: {\n columns: [\n { name: \"basketId\", serverDataType: \"string\" },\n { name: \"basketName\", serverDataType: \"string\" },\n { name: \"filledPct\", serverDataType: \"double\" },\n { name: \"fxRateToUsd\", serverDataType: \"double\" },\n { name: \"instanceId\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"status\", serverDataType: \"string\" },\n { name: \"totalNotional\", serverDataType: \"double\" },\n { name: \"totalNotionalUsd\", serverDataType: \"double\" },\n { name: \"units\", serverDataType: \"int\" },\n ],\n key: \"instanceId\",\n table: { module: \"BASKET\", table: \"basketTrading\" },\n },\n basketTradingConstituent: {\n columns: [\n { name: \"algo\", serverDataType: \"string\" },\n { name: \"algoParams\", serverDataType: \"string\" },\n { name: \"basketId\", serverDataType: \"string\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"instanceId\", serverDataType: \"string\" },\n { name: \"instanceIdRic\", serverDataType: \"string\" },\n { name: \"limitPrice\", serverDataType: \"double\" },\n { name: \"notionalLocal\", serverDataType: \"double\" },\n { name: \"notionalUsd\", serverDataType: \"double\" },\n { name: \"pctFilled\", serverDataType: \"double\" },\n { name: \"priceSpread\", serverDataType: \"int\" },\n { name: \"priceStrategyId\", serverDataType: \"int\" },\n { name: \"quantity\", serverDataType: \"long\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"status\", serverDataType: \"string\" },\n { name: \"venue\", serverDataType: \"string\" },\n { name: \"weighting\", serverDataType: \"double\" },\n ],\n key: \"instanceIdRic\",\n table: { module: \"BASKET\", table: \"basketTradingConstituent\" },\n },\n\n basketTradingConstituentJoin: {\n columns: [\n { name: \"algo\", serverDataType: \"string\" },\n { name: \"algoParams\", serverDataType: \"string\" },\n { name: \"ask\", serverDataType: \"double\" },\n { name: \"askSize\", serverDataType: \"double\" },\n { name: \"basketId\", serverDataType: \"string\" },\n { name: \"bid\", serverDataType: \"double\" },\n { name: \"bidSize\", serverDataType: \"double\" },\n { name: \"close\", serverDataType: \"double\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"instanceId\", serverDataType: \"string\" },\n { name: \"instanceIdRic\", serverDataType: \"string\" },\n { name: \"last\", serverDataType: \"double\" },\n { name: \"limitPrice\", serverDataType: \"double\" },\n { name: \"notionalLocal\", serverDataType: \"double\" },\n { name: \"notionalUsd\", serverDataType: \"double\" },\n { name: \"open\", serverDataType: \"double\" },\n { name: \"pctFilled\", serverDataType: \"double\" },\n { name: \"phase\", serverDataType: \"string\" },\n { name: \"priceSpread\", serverDataType: \"int\" },\n { name: \"priceStrategyId\", serverDataType: \"int\" },\n { name: \"quantity\", serverDataType: \"long\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"scenario\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"status\", serverDataType: \"string\" },\n { name: \"venue\", serverDataType: \"string\" },\n { name: \"weighting\", serverDataType: \"double\" },\n ],\n key: \"instanceIdRic\",\n table: { module: \"BASKET\", table: \"basketTradingConstituentJoin\" },\n },\n priceStrategyType: {\n columns: [\n { name: \"priceStrategy\", serverDataType: \"string\" },\n { name: \"id\", serverDataType: \"int\" },\n ],\n key: \"\",\n table: { module: \"BASKET\", table: \"priceStrategyType\" },\n },\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ftse100 = require('./ftse100.js');
|
|
4
|
+
var nasdaq100 = require('./nasdaq100.js');
|
|
5
|
+
var sp500 = require('./sp500.js');
|
|
6
|
+
var hsi = require('./hsi.js');
|
|
7
|
+
|
|
8
|
+
const basketConstituentData = [];
|
|
9
|
+
for (const row of ftse100) {
|
|
10
|
+
const [ric, name, lastTrade, change, volume] = row;
|
|
11
|
+
const basketId = ".FTSE100";
|
|
12
|
+
const side = "BUY";
|
|
13
|
+
const weighting = 1;
|
|
14
|
+
basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
|
|
15
|
+
}
|
|
16
|
+
for (const row of hsi) {
|
|
17
|
+
const [name, ric, lastTrade, change, , volume] = row;
|
|
18
|
+
const basketId = ".HSI";
|
|
19
|
+
const side = "BUY";
|
|
20
|
+
const weighting = 1;
|
|
21
|
+
basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
|
|
22
|
+
}
|
|
23
|
+
for (const row of nasdaq100) {
|
|
24
|
+
const [name, ric, weighting, lastTrade, change] = row;
|
|
25
|
+
const basketId = ".NASDAQ100";
|
|
26
|
+
const side = "BUY";
|
|
27
|
+
const volume = 1e3;
|
|
28
|
+
basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
|
|
29
|
+
}
|
|
30
|
+
for (const row of sp500) {
|
|
31
|
+
const [name, ric, weighting, , change] = row;
|
|
32
|
+
const basketId = ".SP500";
|
|
33
|
+
const side = "BUY";
|
|
34
|
+
const volume = 1e3;
|
|
35
|
+
const lastTrade = 0;
|
|
36
|
+
basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = basketConstituentData;
|
|
40
|
+
//# sourceMappingURL=constituents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constituents.js","sources":["../../../src/basket/reference-data/constituents.ts"],"sourcesContent":["import ftse from \"./ftse100\";\nimport nasdaq from \"./nasdaq100\";\nimport sp500 from \"./sp500\";\nimport hsi from \"./hsi\";\nimport { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\n\nconst basketConstituentData = [];\nfor (const row of ftse) {\n // prettier-ignore\n const [ric, name, lastTrade, change, volume] = row;\n const basketId = \".FTSE100\";\n const side = \"BUY\";\n const weighting = 1;\n // prettier-ignore\n basketConstituentData.push([ basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting ]);\n}\n\nfor (const row of hsi) {\n // prettier-ignore\n const [name, ric, lastTrade, change, , volume] = row;\n const basketId = \".HSI\";\n const side = \"BUY\";\n const weighting = 1;\n // prettier-ignore\n basketConstituentData.push([basketId,change,name, lastTrade,ric,`${ric}-${basketId}`,side,volume,weighting ]);\n}\n\nfor (const row of nasdaq) {\n // prettier-ignore\n const [name, ric, weighting, lastTrade, change] = row;\n const basketId = \".NASDAQ100\";\n const side = \"BUY\";\n const volume = 1000;\n // prettier-ignore\n basketConstituentData.push([ basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting ]);\n}\n\nfor (const row of sp500) {\n // prettier-ignore\n const [name, ric, weighting,,change] = row;\n const basketId = \".SP500\";\n const side = \"BUY\";\n const volume = 1000;\n const lastTrade = 0;\n // prettier-ignore\n basketConstituentData.push([ basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting ]);\n}\n\nexport default basketConstituentData as VuuRowDataItemType[][];\n"],"names":["ftse","nasdaq"],"mappings":";;;;;;;AAMA,MAAM,wBAAwB,GAAC;AAC/B,KAAA,MAAW,OAAOA,OAAM,EAAA;AAEtB,EAAA,MAAM,CAAC,GAAK,EAAA,IAAA,EAAM,SAAW,EAAA,MAAA,EAAQ,MAAM,CAAI,GAAA,GAAA,CAAA;AAC/C,EAAA,MAAM,QAAW,GAAA,UAAA,CAAA;AACjB,EAAA,MAAM,IAAO,GAAA,KAAA,CAAA;AACb,EAAA,MAAM,SAAY,GAAA,CAAA,CAAA;AAElB,EAAA,qBAAA,CAAsB,IAAK,CAAA,CAAE,QAAU,EAAA,MAAA,EAAQ,MAAM,SAAW,EAAA,GAAA,EAAK,CAAG,EAAA,GAAG,IAAI,QAAQ,CAAA,CAAA,EAAI,IAAM,EAAA,MAAA,EAAQ,SAAU,CAAC,CAAA,CAAA;AACtH,CAAA;AAEA,KAAA,MAAW,OAAO,GAAK,EAAA;AAErB,EAAA,MAAM,CAAC,IAAM,EAAA,GAAA,EAAK,WAAW,MAAQ,IAAE,MAAM,CAAI,GAAA,GAAA,CAAA;AACjD,EAAA,MAAM,QAAW,GAAA,MAAA,CAAA;AACjB,EAAA,MAAM,IAAO,GAAA,KAAA,CAAA;AACb,EAAA,MAAM,SAAY,GAAA,CAAA,CAAA;AAElB,EAAA,qBAAA,CAAsB,IAAK,CAAA,CAAC,QAAS,EAAA,MAAA,EAAO,MAAM,SAAU,EAAA,GAAA,EAAI,CAAG,EAAA,GAAG,IAAI,QAAQ,CAAA,CAAA,EAAG,IAAK,EAAA,MAAA,EAAO,SAAU,CAAC,CAAA,CAAA;AAC9G,CAAA;AAEA,KAAA,MAAW,OAAOC,SAAQ,EAAA;AAExB,EAAA,MAAM,CAAC,IAAM,EAAA,GAAA,EAAK,SAAW,EAAA,SAAA,EAAW,MAAM,CAAI,GAAA,GAAA,CAAA;AAClD,EAAA,MAAM,QAAW,GAAA,YAAA,CAAA;AACjB,EAAA,MAAM,IAAO,GAAA,KAAA,CAAA;AACb,EAAA,MAAM,MAAS,GAAA,GAAA,CAAA;AAEf,EAAA,qBAAA,CAAsB,IAAK,CAAA,CAAE,QAAU,EAAA,MAAA,EAAQ,MAAM,SAAW,EAAA,GAAA,EAAK,CAAG,EAAA,GAAG,IAAI,QAAQ,CAAA,CAAA,EAAI,IAAM,EAAA,MAAA,EAAQ,SAAU,CAAC,CAAA,CAAA;AACtH,CAAA;AAEA,KAAA,MAAW,OAAO,KAAO,EAAA;AAEvB,EAAA,MAAM,CAAC,IAAM,EAAA,GAAA,EAAK,SAAU,IAAC,MAAM,CAAI,GAAA,GAAA,CAAA;AACvC,EAAA,MAAM,QAAW,GAAA,QAAA,CAAA;AACjB,EAAA,MAAM,IAAO,GAAA,KAAA,CAAA;AACb,EAAA,MAAM,MAAS,GAAA,GAAA,CAAA;AACf,EAAA,MAAM,SAAY,GAAA,CAAA,CAAA;AAElB,EAAA,qBAAA,CAAsB,IAAK,CAAA,CAAE,QAAU,EAAA,MAAA,EAAQ,MAAM,SAAW,EAAA,GAAA,EAAK,CAAG,EAAA,GAAG,IAAI,QAAQ,CAAA,CAAA,EAAI,IAAM,EAAA,MAAA,EAAQ,SAAU,CAAC,CAAA,CAAA;AACtH;;;;"}
|