@vuu-ui/vuu-data-test 0.13.9 → 0.13.10
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/cjs/ArrayProxy.js +72 -0
- package/cjs/ArrayProxy.js.map +1 -0
- package/cjs/RuntimeVisualLink.js +89 -0
- package/cjs/RuntimeVisualLink.js.map +1 -0
- package/cjs/Table.js +184 -0
- package/cjs/Table.js.map +1 -0
- package/cjs/TickingArrayDataSource.js +208 -0
- package/cjs/TickingArrayDataSource.js.map +1 -0
- package/cjs/UpdateGenerator.js +94 -0
- package/cjs/UpdateGenerator.js.map +1 -0
- package/cjs/VuuModule.js +370 -0
- package/cjs/VuuModule.js.map +1 -0
- package/cjs/basket/basket-module.js +255 -0
- package/cjs/basket/basket-module.js.map +1 -0
- package/cjs/basket/basket-schemas.js +123 -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 +54 -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 +57 -0
- package/cjs/data-utils.js.map +1 -0
- package/cjs/index.js +46 -3047
- package/cjs/index.js.map +1 -1
- package/cjs/local-datasource-provider/LocalDatasourceProvider.js +84 -0
- package/cjs/local-datasource-provider/LocalDatasourceProvider.js.map +1 -0
- package/cjs/makeSuggestions.js +43 -0
- package/cjs/makeSuggestions.js.map +1 -0
- package/cjs/schemas.js +28 -0
- package/cjs/schemas.js.map +1 -0
- package/cjs/simul/SimulModule.js +24 -0
- package/cjs/simul/SimulModule.js.map +1 -0
- package/cjs/simul/reference-data/accounts.js +27 -0
- package/cjs/simul/reference-data/accounts.js.map +1 -0
- package/cjs/simul/reference-data/algos.js +6 -0
- package/cjs/simul/reference-data/algos.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 +77 -0
- package/cjs/simul/reference-data/instruments.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js +6 -0
- package/cjs/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/fixtures/alphabet.js +31 -0
- package/cjs/simul/reference-data/isin-generator/fixtures/alphabet.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js +9 -0
- package/cjs/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js +17 -0
- package/cjs/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/generate-cusip-check-code.js +24 -0
- package/cjs/simul/reference-data/isin-generator/generate-cusip-check-code.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/generate-cusip-without-check-code.js +13 -0
- package/cjs/simul/reference-data/isin-generator/generate-cusip-without-check-code.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/generate-cusip.js +13 -0
- package/cjs/simul/reference-data/isin-generator/generate-cusip.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/generate-random-alphanumeric.js +8 -0
- package/cjs/simul/reference-data/isin-generator/generate-random-alphanumeric.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/generate-random-base-ten-number.js +6 -0
- package/cjs/simul/reference-data/isin-generator/generate-random-base-ten-number.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js +14 -0
- package/cjs/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js +14 -0
- package/cjs/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/index.js +295 -0
- package/cjs/simul/reference-data/isin-generator/index.js.map +1 -0
- package/cjs/simul/reference-data/isin-generator/is-odd.js +6 -0
- package/cjs/simul/reference-data/isin-generator/is-odd.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/orderStatus.js +6 -0
- package/cjs/simul/reference-data/orderStatus.js.map +1 -0
- package/cjs/simul/reference-data/orders.js +54 -0
- package/cjs/simul/reference-data/orders.js.map +1 -0
- package/cjs/simul/reference-data/parent-child-orders.js +122 -0
- package/cjs/simul/reference-data/parent-child-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/reference-data/sides.js +6 -0
- package/cjs/simul/reference-data/sides.js.map +1 -0
- package/cjs/simul/simul-module.js +126 -0
- package/cjs/simul/simul-module.js.map +1 -0
- package/cjs/simul/simul-schemas.js +142 -0
- package/cjs/simul/simul-schemas.js.map +1 -0
- package/cjs/test/test-module.js +26 -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 +70 -0
- package/esm/ArrayProxy.js.map +1 -0
- package/esm/RuntimeVisualLink.js +87 -0
- package/esm/RuntimeVisualLink.js.map +1 -0
- package/esm/Table.js +179 -0
- package/esm/Table.js.map +1 -0
- package/esm/TickingArrayDataSource.js +206 -0
- package/esm/TickingArrayDataSource.js.map +1 -0
- package/esm/UpdateGenerator.js +92 -0
- package/esm/UpdateGenerator.js.map +1 -0
- package/esm/VuuModule.js +366 -0
- package/esm/VuuModule.js.map +1 -0
- package/esm/basket/basket-module.js +251 -0
- package/esm/basket/basket-module.js.map +1 -0
- package/esm/basket/basket-schemas.js +120 -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 +52 -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 +52 -0
- package/esm/data-utils.js.map +1 -0
- package/esm/index.js +14 -3019
- package/esm/index.js.map +1 -1
- package/esm/local-datasource-provider/LocalDatasourceProvider.js +82 -0
- package/esm/local-datasource-provider/LocalDatasourceProvider.js.map +1 -0
- package/esm/makeSuggestions.js +41 -0
- package/esm/makeSuggestions.js.map +1 -0
- package/esm/schemas.js +24 -0
- package/esm/schemas.js.map +1 -0
- package/esm/simul/SimulModule.js +22 -0
- package/esm/simul/SimulModule.js.map +1 -0
- package/esm/simul/reference-data/accounts.js +25 -0
- package/esm/simul/reference-data/accounts.js.map +1 -0
- package/esm/simul/reference-data/algos.js +4 -0
- package/esm/simul/reference-data/algos.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 +72 -0
- package/esm/simul/reference-data/instruments.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js +4 -0
- package/esm/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/fixtures/alphabet.js +29 -0
- package/esm/simul/reference-data/isin-generator/fixtures/alphabet.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js +7 -0
- package/esm/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js +15 -0
- package/esm/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/generate-cusip-check-code.js +22 -0
- package/esm/simul/reference-data/isin-generator/generate-cusip-check-code.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/generate-cusip-without-check-code.js +11 -0
- package/esm/simul/reference-data/isin-generator/generate-cusip-without-check-code.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/generate-cusip.js +11 -0
- package/esm/simul/reference-data/isin-generator/generate-cusip.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/generate-random-alphanumeric.js +6 -0
- package/esm/simul/reference-data/isin-generator/generate-random-alphanumeric.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/generate-random-base-ten-number.js +4 -0
- package/esm/simul/reference-data/isin-generator/generate-random-base-ten-number.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js +12 -0
- package/esm/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js +12 -0
- package/esm/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/index.js +293 -0
- package/esm/simul/reference-data/isin-generator/index.js.map +1 -0
- package/esm/simul/reference-data/isin-generator/is-odd.js +4 -0
- package/esm/simul/reference-data/isin-generator/is-odd.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/orderStatus.js +4 -0
- package/esm/simul/reference-data/orderStatus.js.map +1 -0
- package/esm/simul/reference-data/orders.js +51 -0
- package/esm/simul/reference-data/orders.js.map +1 -0
- package/esm/simul/reference-data/parent-child-orders.js +117 -0
- package/esm/simul/reference-data/parent-child-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/reference-data/sides.js +4 -0
- package/esm/simul/reference-data/sides.js.map +1 -0
- package/esm/simul/simul-module.js +124 -0
- package/esm/simul/simul-module.js.map +1 -0
- package/esm/simul/simul-schemas.js +139 -0
- package/esm/simul/simul-schemas.js.map +1 -0
- package/esm/test/test-module.js +24 -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 +6 -6
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var generateCusip = require('./generate-cusip.js');
|
|
4
|
+
|
|
5
|
+
const countryCodes = [
|
|
6
|
+
"AD",
|
|
7
|
+
"AE",
|
|
8
|
+
"AF",
|
|
9
|
+
"AG",
|
|
10
|
+
"AI",
|
|
11
|
+
"AL",
|
|
12
|
+
"AM",
|
|
13
|
+
"AO",
|
|
14
|
+
"AQ",
|
|
15
|
+
"AR",
|
|
16
|
+
"AS",
|
|
17
|
+
"AT",
|
|
18
|
+
"AU",
|
|
19
|
+
"AW",
|
|
20
|
+
"AX",
|
|
21
|
+
"AZ",
|
|
22
|
+
"BA",
|
|
23
|
+
"BB",
|
|
24
|
+
"BD",
|
|
25
|
+
"BE",
|
|
26
|
+
"BF",
|
|
27
|
+
"BG",
|
|
28
|
+
"BH",
|
|
29
|
+
"BI",
|
|
30
|
+
"BJ",
|
|
31
|
+
"BL",
|
|
32
|
+
"BM",
|
|
33
|
+
"BN",
|
|
34
|
+
"BO",
|
|
35
|
+
"BQ",
|
|
36
|
+
"BR",
|
|
37
|
+
"BS",
|
|
38
|
+
"BT",
|
|
39
|
+
"BV",
|
|
40
|
+
"BW",
|
|
41
|
+
"BY",
|
|
42
|
+
"BZ",
|
|
43
|
+
"CA",
|
|
44
|
+
"CC",
|
|
45
|
+
"CD",
|
|
46
|
+
"CF",
|
|
47
|
+
"CG",
|
|
48
|
+
"CH",
|
|
49
|
+
"CI",
|
|
50
|
+
"CK",
|
|
51
|
+
"CL",
|
|
52
|
+
"CM",
|
|
53
|
+
"CN",
|
|
54
|
+
"CO",
|
|
55
|
+
"CR",
|
|
56
|
+
"CU",
|
|
57
|
+
"CV",
|
|
58
|
+
"CW",
|
|
59
|
+
"CX",
|
|
60
|
+
"CY",
|
|
61
|
+
"CZ",
|
|
62
|
+
"DE",
|
|
63
|
+
"DJ",
|
|
64
|
+
"DK",
|
|
65
|
+
"DM",
|
|
66
|
+
"DO",
|
|
67
|
+
"DZ",
|
|
68
|
+
"EC",
|
|
69
|
+
"EE",
|
|
70
|
+
"EG",
|
|
71
|
+
"EH",
|
|
72
|
+
"ER",
|
|
73
|
+
"ES",
|
|
74
|
+
"ET",
|
|
75
|
+
"FI",
|
|
76
|
+
"FJ",
|
|
77
|
+
"FK",
|
|
78
|
+
"FM",
|
|
79
|
+
"FO",
|
|
80
|
+
"FR",
|
|
81
|
+
"GA",
|
|
82
|
+
"GB",
|
|
83
|
+
"GD",
|
|
84
|
+
"GE",
|
|
85
|
+
"GF",
|
|
86
|
+
"GG",
|
|
87
|
+
"GH",
|
|
88
|
+
"GI",
|
|
89
|
+
"GL",
|
|
90
|
+
"GM",
|
|
91
|
+
"GN",
|
|
92
|
+
"GP",
|
|
93
|
+
"GQ",
|
|
94
|
+
"GR",
|
|
95
|
+
"GS",
|
|
96
|
+
"GT",
|
|
97
|
+
"GU",
|
|
98
|
+
"GW",
|
|
99
|
+
"GY",
|
|
100
|
+
"HK",
|
|
101
|
+
"HM",
|
|
102
|
+
"HN",
|
|
103
|
+
"HR",
|
|
104
|
+
"HT",
|
|
105
|
+
"HU",
|
|
106
|
+
"ID",
|
|
107
|
+
"IE",
|
|
108
|
+
"IL",
|
|
109
|
+
"IM",
|
|
110
|
+
"IN",
|
|
111
|
+
"IO",
|
|
112
|
+
"IQ",
|
|
113
|
+
"IR",
|
|
114
|
+
"IS",
|
|
115
|
+
"IT",
|
|
116
|
+
"JE",
|
|
117
|
+
"JM",
|
|
118
|
+
"JO",
|
|
119
|
+
"JP",
|
|
120
|
+
"KE",
|
|
121
|
+
"KG",
|
|
122
|
+
"KH",
|
|
123
|
+
"KI",
|
|
124
|
+
"KM",
|
|
125
|
+
"KN",
|
|
126
|
+
"KP",
|
|
127
|
+
"KR",
|
|
128
|
+
"KW",
|
|
129
|
+
"KY",
|
|
130
|
+
"KZ",
|
|
131
|
+
"LA",
|
|
132
|
+
"LB",
|
|
133
|
+
"LC",
|
|
134
|
+
"LI",
|
|
135
|
+
"LK",
|
|
136
|
+
"LR",
|
|
137
|
+
"LS",
|
|
138
|
+
"LT",
|
|
139
|
+
"LU",
|
|
140
|
+
"LV",
|
|
141
|
+
"LY",
|
|
142
|
+
"MA",
|
|
143
|
+
"MC",
|
|
144
|
+
"MD",
|
|
145
|
+
"ME",
|
|
146
|
+
"MF",
|
|
147
|
+
"MG",
|
|
148
|
+
"MH",
|
|
149
|
+
"MK",
|
|
150
|
+
"ML",
|
|
151
|
+
"MM",
|
|
152
|
+
"MN",
|
|
153
|
+
"MO",
|
|
154
|
+
"MP",
|
|
155
|
+
"MQ",
|
|
156
|
+
"MR",
|
|
157
|
+
"MS",
|
|
158
|
+
"MT",
|
|
159
|
+
"MU",
|
|
160
|
+
"MV",
|
|
161
|
+
"MW",
|
|
162
|
+
"MX",
|
|
163
|
+
"MY",
|
|
164
|
+
"MZ",
|
|
165
|
+
"NA",
|
|
166
|
+
"NC",
|
|
167
|
+
"NE",
|
|
168
|
+
"NF",
|
|
169
|
+
"NG",
|
|
170
|
+
"NI",
|
|
171
|
+
"NL",
|
|
172
|
+
"NO",
|
|
173
|
+
"NP",
|
|
174
|
+
"NR",
|
|
175
|
+
"NU",
|
|
176
|
+
"NZ",
|
|
177
|
+
"OM",
|
|
178
|
+
"PA",
|
|
179
|
+
"PE",
|
|
180
|
+
"PF",
|
|
181
|
+
"PG",
|
|
182
|
+
"PH",
|
|
183
|
+
"PK",
|
|
184
|
+
"PL",
|
|
185
|
+
"PM",
|
|
186
|
+
"PN",
|
|
187
|
+
"PR",
|
|
188
|
+
"PS",
|
|
189
|
+
"PT",
|
|
190
|
+
"PW",
|
|
191
|
+
"PY",
|
|
192
|
+
"QA",
|
|
193
|
+
"RE",
|
|
194
|
+
"RO",
|
|
195
|
+
"RS",
|
|
196
|
+
"RU",
|
|
197
|
+
"RW",
|
|
198
|
+
"SA",
|
|
199
|
+
"SB",
|
|
200
|
+
"SC",
|
|
201
|
+
"SD",
|
|
202
|
+
"SE",
|
|
203
|
+
"SG",
|
|
204
|
+
"SH",
|
|
205
|
+
"SI",
|
|
206
|
+
"SJ",
|
|
207
|
+
"SK",
|
|
208
|
+
"SL",
|
|
209
|
+
"SM",
|
|
210
|
+
"SN",
|
|
211
|
+
"SO",
|
|
212
|
+
"SR",
|
|
213
|
+
"SS",
|
|
214
|
+
"ST",
|
|
215
|
+
"SV",
|
|
216
|
+
"SX",
|
|
217
|
+
"SY",
|
|
218
|
+
"SZ",
|
|
219
|
+
"TC",
|
|
220
|
+
"TD",
|
|
221
|
+
"TF",
|
|
222
|
+
"TG",
|
|
223
|
+
"TH",
|
|
224
|
+
"TJ",
|
|
225
|
+
"TK",
|
|
226
|
+
"TL",
|
|
227
|
+
"TM",
|
|
228
|
+
"TN",
|
|
229
|
+
"TO",
|
|
230
|
+
"TR",
|
|
231
|
+
"TT",
|
|
232
|
+
"TV",
|
|
233
|
+
"TW",
|
|
234
|
+
"TZ",
|
|
235
|
+
"UA",
|
|
236
|
+
"UG",
|
|
237
|
+
"UM",
|
|
238
|
+
"US",
|
|
239
|
+
"UY",
|
|
240
|
+
"UZ",
|
|
241
|
+
"VA",
|
|
242
|
+
"VC",
|
|
243
|
+
"VE",
|
|
244
|
+
"VG",
|
|
245
|
+
"VI",
|
|
246
|
+
"VN",
|
|
247
|
+
"VU",
|
|
248
|
+
"WF",
|
|
249
|
+
"WS",
|
|
250
|
+
"YE",
|
|
251
|
+
"YT",
|
|
252
|
+
"ZA",
|
|
253
|
+
"ZM",
|
|
254
|
+
"ZW"
|
|
255
|
+
];
|
|
256
|
+
const cusip = generateCusip.generateCusip();
|
|
257
|
+
const generateIsin = (cusip2) => {
|
|
258
|
+
const code = countryCodes[Math.floor(Math.random() * countryCodes.length)];
|
|
259
|
+
const isin = code + cusip2 + generateIsinCheckDigit(code + cusip2 + "0");
|
|
260
|
+
return isin;
|
|
261
|
+
};
|
|
262
|
+
const generateIsinCheckDigit = (isin) => {
|
|
263
|
+
if (isin.length != 12) return false;
|
|
264
|
+
const v = [];
|
|
265
|
+
for (let i = isin.length - 2; i >= 0; i--) {
|
|
266
|
+
const c = isin.charAt(i);
|
|
267
|
+
if (isNaN(parseInt(c))) {
|
|
268
|
+
const letterCode = isin.charCodeAt(i) - 55;
|
|
269
|
+
v.push(letterCode % 10);
|
|
270
|
+
if (letterCode > 9) {
|
|
271
|
+
v.push(Math.floor(letterCode / 10));
|
|
272
|
+
}
|
|
273
|
+
} else {
|
|
274
|
+
v.push(Number(c));
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
let sum = 0;
|
|
278
|
+
const l = v.length;
|
|
279
|
+
for (let i = 0; i < l; i++) {
|
|
280
|
+
if (i % 2 == 0) {
|
|
281
|
+
const d = v[i] * 2;
|
|
282
|
+
sum += Math.floor(d / 10);
|
|
283
|
+
sum += d % 10;
|
|
284
|
+
} else {
|
|
285
|
+
sum += v[i];
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return (10 - sum % 10) % 10;
|
|
289
|
+
};
|
|
290
|
+
const isinGenerator = () => {
|
|
291
|
+
return generateIsin(cusip);
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
exports.isinGenerator = isinGenerator;
|
|
295
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/simul/reference-data/isin-generator/index.ts"],"sourcesContent":["/**\n * all code in here taken from @thomaschaplin\n * https://github.com/thomaschaplin/isin-generator\n * https://github.com/thomaschaplin/cusip-generator\n */\nimport { generateCusip } from \"./generate-cusip\";\nconst countryCodes = [\n \"AD\",\n \"AE\",\n \"AF\",\n \"AG\",\n \"AI\",\n \"AL\",\n \"AM\",\n \"AO\",\n \"AQ\",\n \"AR\",\n \"AS\",\n \"AT\",\n \"AU\",\n \"AW\",\n \"AX\",\n \"AZ\",\n \"BA\",\n \"BB\",\n \"BD\",\n \"BE\",\n \"BF\",\n \"BG\",\n \"BH\",\n \"BI\",\n \"BJ\",\n \"BL\",\n \"BM\",\n \"BN\",\n \"BO\",\n \"BQ\",\n \"BR\",\n \"BS\",\n \"BT\",\n \"BV\",\n \"BW\",\n \"BY\",\n \"BZ\",\n \"CA\",\n \"CC\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CH\",\n \"CI\",\n \"CK\",\n \"CL\",\n \"CM\",\n \"CN\",\n \"CO\",\n \"CR\",\n \"CU\",\n \"CV\",\n \"CW\",\n \"CX\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DJ\",\n \"DK\",\n \"DM\",\n \"DO\",\n \"DZ\",\n \"EC\",\n \"EE\",\n \"EG\",\n \"EH\",\n \"ER\",\n \"ES\",\n \"ET\",\n \"FI\",\n \"FJ\",\n \"FK\",\n \"FM\",\n \"FO\",\n \"FR\",\n \"GA\",\n \"GB\",\n \"GD\",\n \"GE\",\n \"GF\",\n \"GG\",\n \"GH\",\n \"GI\",\n \"GL\",\n \"GM\",\n \"GN\",\n \"GP\",\n \"GQ\",\n \"GR\",\n \"GS\",\n \"GT\",\n \"GU\",\n \"GW\",\n \"GY\",\n \"HK\",\n \"HM\",\n \"HN\",\n \"HR\",\n \"HT\",\n \"HU\",\n \"ID\",\n \"IE\",\n \"IL\",\n \"IM\",\n \"IN\",\n \"IO\",\n \"IQ\",\n \"IR\",\n \"IS\",\n \"IT\",\n \"JE\",\n \"JM\",\n \"JO\",\n \"JP\",\n \"KE\",\n \"KG\",\n \"KH\",\n \"KI\",\n \"KM\",\n \"KN\",\n \"KP\",\n \"KR\",\n \"KW\",\n \"KY\",\n \"KZ\",\n \"LA\",\n \"LB\",\n \"LC\",\n \"LI\",\n \"LK\",\n \"LR\",\n \"LS\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"LY\",\n \"MA\",\n \"MC\",\n \"MD\",\n \"ME\",\n \"MF\",\n \"MG\",\n \"MH\",\n \"MK\",\n \"ML\",\n \"MM\",\n \"MN\",\n \"MO\",\n \"MP\",\n \"MQ\",\n \"MR\",\n \"MS\",\n \"MT\",\n \"MU\",\n \"MV\",\n \"MW\",\n \"MX\",\n \"MY\",\n \"MZ\",\n \"NA\",\n \"NC\",\n \"NE\",\n \"NF\",\n \"NG\",\n \"NI\",\n \"NL\",\n \"NO\",\n \"NP\",\n \"NR\",\n \"NU\",\n \"NZ\",\n \"OM\",\n \"PA\",\n \"PE\",\n \"PF\",\n \"PG\",\n \"PH\",\n \"PK\",\n \"PL\",\n \"PM\",\n \"PN\",\n \"PR\",\n \"PS\",\n \"PT\",\n \"PW\",\n \"PY\",\n \"QA\",\n \"RE\",\n \"RO\",\n \"RS\",\n \"RU\",\n \"RW\",\n \"SA\",\n \"SB\",\n \"SC\",\n \"SD\",\n \"SE\",\n \"SG\",\n \"SH\",\n \"SI\",\n \"SJ\",\n \"SK\",\n \"SL\",\n \"SM\",\n \"SN\",\n \"SO\",\n \"SR\",\n \"SS\",\n \"ST\",\n \"SV\",\n \"SX\",\n \"SY\",\n \"SZ\",\n \"TC\",\n \"TD\",\n \"TF\",\n \"TG\",\n \"TH\",\n \"TJ\",\n \"TK\",\n \"TL\",\n \"TM\",\n \"TN\",\n \"TO\",\n \"TR\",\n \"TT\",\n \"TV\",\n \"TW\",\n \"TZ\",\n \"UA\",\n \"UG\",\n \"UM\",\n \"US\",\n \"UY\",\n \"UZ\",\n \"VA\",\n \"VC\",\n \"VE\",\n \"VG\",\n \"VI\",\n \"VN\",\n \"VU\",\n \"WF\",\n \"WS\",\n \"YE\",\n \"YT\",\n \"ZA\",\n \"ZM\",\n \"ZW\",\n];\n\nconst cusip = generateCusip();\n\nconst generateIsin = (cusip: string) => {\n const code = countryCodes[Math.floor(Math.random() * countryCodes.length)];\n const isin = code + cusip + generateIsinCheckDigit(code + cusip + \"0\");\n return isin;\n};\n\nconst generateIsinCheckDigit = (isin: string) => {\n if (isin.length != 12) return false;\n const v = [];\n for (let i = isin.length - 2; i >= 0; i--) {\n const c = isin.charAt(i);\n if (isNaN(parseInt(c))) {\n const letterCode = isin.charCodeAt(i) - 55;\n v.push(letterCode % 10);\n if (letterCode > 9) {\n v.push(Math.floor(letterCode / 10));\n }\n } else {\n v.push(Number(c));\n }\n }\n let sum = 0;\n const l = v.length;\n for (let i = 0; i < l; i++) {\n if (i % 2 == 0) {\n const d = v[i] * 2;\n sum += Math.floor(d / 10);\n sum += d % 10;\n } else {\n sum += v[i];\n }\n }\n return (10 - (sum % 10)) % 10;\n};\n\nexport const isinGenerator = () => {\n return generateIsin(cusip);\n};\n"],"names":["generateCusip","cusip"],"mappings":";;;;AAMA,MAAM,YAAe,GAAA;AAAA,EACnB,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA;AAEA,MAAM,QAAQA,2BAAc,EAAA;AAE5B,MAAM,YAAA,GAAe,CAACC,MAAkB,KAAA;AACtC,EAAM,MAAA,IAAA,GAAO,aAAa,IAAK,CAAA,KAAA,CAAM,KAAK,MAAO,EAAA,GAAI,YAAa,CAAA,MAAM,CAAC,CAAA;AACzE,EAAA,MAAM,OAAO,IAAOA,GAAAA,MAAAA,GAAQ,sBAAuB,CAAA,IAAA,GAAOA,SAAQ,GAAG,CAAA;AACrE,EAAO,OAAA,IAAA;AACT,CAAA;AAEA,MAAM,sBAAA,GAAyB,CAAC,IAAiB,KAAA;AAC/C,EAAI,IAAA,IAAA,CAAK,MAAU,IAAA,EAAA,EAAW,OAAA,KAAA;AAC9B,EAAA,MAAM,IAAI,EAAC;AACX,EAAA,KAAA,IAAS,IAAI,IAAK,CAAA,MAAA,GAAS,CAAG,EAAA,CAAA,IAAK,GAAG,CAAK,EAAA,EAAA;AACzC,IAAM,MAAA,CAAA,GAAI,IAAK,CAAA,MAAA,CAAO,CAAC,CAAA;AACvB,IAAA,IAAI,KAAM,CAAA,QAAA,CAAS,CAAC,CAAC,CAAG,EAAA;AACtB,MAAA,MAAM,UAAa,GAAA,IAAA,CAAK,UAAW,CAAA,CAAC,CAAI,GAAA,EAAA;AACxC,MAAE,CAAA,CAAA,IAAA,CAAK,aAAa,EAAE,CAAA;AACtB,MAAA,IAAI,aAAa,CAAG,EAAA;AAClB,QAAA,CAAA,CAAE,IAAK,CAAA,IAAA,CAAK,KAAM,CAAA,UAAA,GAAa,EAAE,CAAC,CAAA;AAAA;AACpC,KACK,MAAA;AACL,MAAE,CAAA,CAAA,IAAA,CAAK,MAAO,CAAA,CAAC,CAAC,CAAA;AAAA;AAClB;AAEF,EAAA,IAAI,GAAM,GAAA,CAAA;AACV,EAAA,MAAM,IAAI,CAAE,CAAA,MAAA;AACZ,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,CAAA,EAAG,CAAK,EAAA,EAAA;AAC1B,IAAI,IAAA,CAAA,GAAI,KAAK,CAAG,EAAA;AACd,MAAM,MAAA,CAAA,GAAI,CAAE,CAAA,CAAC,CAAI,GAAA,CAAA;AACjB,MAAO,GAAA,IAAA,IAAA,CAAK,KAAM,CAAA,CAAA,GAAI,EAAE,CAAA;AACxB,MAAA,GAAA,IAAO,CAAI,GAAA,EAAA;AAAA,KACN,MAAA;AACL,MAAA,GAAA,IAAO,EAAE,CAAC,CAAA;AAAA;AACZ;AAEF,EAAQ,OAAA,CAAA,EAAA,GAAM,MAAM,EAAO,IAAA,EAAA;AAC7B,CAAA;AAEO,MAAM,gBAAgB,MAAM;AACjC,EAAA,OAAO,aAAa,KAAK,CAAA;AAC3B;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-odd.js","sources":["../../../../src/simul/reference-data/isin-generator/is-odd.ts"],"sourcesContent":["export const isOdd = (value: number): boolean => value % 2 === 1;\n"],"names":[],"mappings":";;AAAO,MAAM,KAAQ,GAAA,CAAC,KAA2B,KAAA,KAAA,GAAQ,CAAM,KAAA;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const locations = {
|
|
4
|
+
L: ["London PLC", "XLON/LSE-SETS"],
|
|
5
|
+
N: ["Corporation", "XNGS/NAS-GSM"],
|
|
6
|
+
AS: ["B.V.", "XAMS/ENA-MAIN"],
|
|
7
|
+
OQ: ["Co.", "XNYS/NYS-MAIN"],
|
|
8
|
+
PA: ["Paris", "PAR/EUR_FR"],
|
|
9
|
+
MI: ["Milan", "MIL/EUR_IT"],
|
|
10
|
+
FR: ["Frankfurt", "FR/EUR_DE"],
|
|
11
|
+
AT: ["Athens", "AT/EUR_GR"]
|
|
12
|
+
};
|
|
13
|
+
const suffixes = ["L", "N", "OQ", "AS", "PA", "MI", "FR", "AT"];
|
|
14
|
+
|
|
15
|
+
exports.locations = locations;
|
|
16
|
+
exports.suffixes = suffixes;
|
|
17
|
+
//# sourceMappingURL=locations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locations.js","sources":["../../../src/simul/reference-data/locations.ts"],"sourcesContent":["export const locations: { [key: string]: string[] } = {\n L: [\"London PLC\", \"XLON/LSE-SETS\"],\n N: [\"Corporation\", \"XNGS/NAS-GSM\"],\n AS: [\"B.V.\", \"XAMS/ENA-MAIN\"],\n OQ: [\"Co.\", \"XNYS/NYS-MAIN\"],\n PA: [\"Paris\", \"PAR/EUR_FR\"],\n MI: [\"Milan\", \"MIL/EUR_IT\"],\n FR: [\"Frankfurt\", \"FR/EUR_DE\"],\n AT: [\"Athens\", \"AT/EUR_GR\"],\n};\nexport const suffixes = [\"L\", \"N\", \"OQ\", \"AS\", \"PA\", \"MI\", \"FR\", \"AT\"];\n"],"names":[],"mappings":";;AAAO,MAAM,SAAyC,GAAA;AAAA,EACpD,CAAA,EAAG,CAAC,YAAA,EAAc,eAAe,CAAA;AAAA,EACjC,CAAA,EAAG,CAAC,aAAA,EAAe,cAAc,CAAA;AAAA,EACjC,EAAA,EAAI,CAAC,MAAA,EAAQ,eAAe,CAAA;AAAA,EAC5B,EAAA,EAAI,CAAC,KAAA,EAAO,eAAe,CAAA;AAAA,EAC3B,EAAA,EAAI,CAAC,OAAA,EAAS,YAAY,CAAA;AAAA,EAC1B,EAAA,EAAI,CAAC,OAAA,EAAS,YAAY,CAAA;AAAA,EAC1B,EAAA,EAAI,CAAC,WAAA,EAAa,WAAW,CAAA;AAAA,EAC7B,EAAA,EAAI,CAAC,QAAA,EAAU,WAAW;AAC5B;AACa,MAAA,QAAA,GAAW,CAAC,GAAK,EAAA,GAAA,EAAK,MAAM,IAAM,EAAA,IAAA,EAAM,IAAM,EAAA,IAAA,EAAM,IAAI;;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const lotsizes = [
|
|
4
|
+
1,
|
|
5
|
+
2,
|
|
6
|
+
5,
|
|
7
|
+
10,
|
|
8
|
+
50,
|
|
9
|
+
50,
|
|
10
|
+
70,
|
|
11
|
+
100,
|
|
12
|
+
100,
|
|
13
|
+
100,
|
|
14
|
+
120,
|
|
15
|
+
150,
|
|
16
|
+
150,
|
|
17
|
+
200,
|
|
18
|
+
500,
|
|
19
|
+
700,
|
|
20
|
+
1e3,
|
|
21
|
+
2e3,
|
|
22
|
+
2500,
|
|
23
|
+
5e3,
|
|
24
|
+
1e4
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
exports.lotsizes = lotsizes;
|
|
28
|
+
//# sourceMappingURL=lotsizes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lotsizes.js","sources":["../../../src/simul/reference-data/lotsizes.ts"],"sourcesContent":["export const lotsizes = [\n 1, 2, 5, 10, 50, 50, 70, 100, 100, 100, 120, 150, 150, 200, 500, 700, 1000,\n 2000, 2500, 5000, 10000,\n];\n"],"names":[],"mappings":";;AAAO,MAAM,QAAW,GAAA;AAAA,EACtB,CAAA;AAAA,EAAG,CAAA;AAAA,EAAG,CAAA;AAAA,EAAG,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EACtE,GAAA;AAAA,EAAM,IAAA;AAAA,EAAM,GAAA;AAAA,EAAM;AACpB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orderStatus.js","sources":["../../../src/simul/reference-data/orderStatus.ts"],"sourcesContent":["export const orderStatus = [\"NEW\", \"CANCELLED\", \"FILLED\"];\n"],"names":[],"mappings":";;AAAO,MAAM,WAAc,GAAA,CAAC,KAAO,EAAA,WAAA,EAAa,QAAQ;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var currencies = require('./currencies.js');
|
|
4
|
+
var instruments = require('./instruments.js');
|
|
5
|
+
var dataUtils = require('../../data-utils.js');
|
|
6
|
+
var Table = require('../../Table.js');
|
|
7
|
+
var simulSchemas = require('../simul-schemas.js');
|
|
8
|
+
var sides = require('./sides.js');
|
|
9
|
+
|
|
10
|
+
const traders = ["Trader A", "Trader B", "Trader C"];
|
|
11
|
+
const orderStatus = [
|
|
12
|
+
"Filled",
|
|
13
|
+
"Cancelled",
|
|
14
|
+
"New",
|
|
15
|
+
"Partial Exec",
|
|
16
|
+
"Booked",
|
|
17
|
+
"All Done"
|
|
18
|
+
];
|
|
19
|
+
const isComplete = (status) => ["Filled", "All Done", "Booked"].includes(status);
|
|
20
|
+
const ordersData = [];
|
|
21
|
+
const now = +/* @__PURE__ */ new Date();
|
|
22
|
+
for (let i = 0; i < 100; i++) {
|
|
23
|
+
const status = orderStatus[dataUtils.random(0, orderStatus.length - 1)];
|
|
24
|
+
const ccy = currencies.currencies[dataUtils.random(0, currencies.currencies.length - 1)];
|
|
25
|
+
const created = now;
|
|
26
|
+
const lastUpdate = now;
|
|
27
|
+
const orderId = `ORD${("0000" + i).slice(-4)}`;
|
|
28
|
+
const quantity = dataUtils.random(1e3, 1e4);
|
|
29
|
+
const filledQuantity = isComplete(status) ? quantity : status === "New" ? 0 : dataUtils.random(0, quantity);
|
|
30
|
+
const ric = instruments.getRic("AAP.L");
|
|
31
|
+
const side = sides.sides[dataUtils.random(0, sides.sides.length - 1)];
|
|
32
|
+
const trader = traders[dataUtils.random(0, traders.length - 1)];
|
|
33
|
+
ordersData.push([
|
|
34
|
+
status,
|
|
35
|
+
ccy,
|
|
36
|
+
created,
|
|
37
|
+
filledQuantity,
|
|
38
|
+
lastUpdate,
|
|
39
|
+
orderId,
|
|
40
|
+
quantity,
|
|
41
|
+
ric,
|
|
42
|
+
side,
|
|
43
|
+
trader
|
|
44
|
+
]);
|
|
45
|
+
}
|
|
46
|
+
const ordersTable = new Table.Table(
|
|
47
|
+
simulSchemas.schemas.orders,
|
|
48
|
+
ordersData,
|
|
49
|
+
Table.buildDataColumnMap(simulSchemas.schemas, "orders")
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
exports.ordersData = ordersData;
|
|
53
|
+
exports.ordersTable = ordersTable;
|
|
54
|
+
//# sourceMappingURL=orders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orders.js","sources":["../../../src/simul/reference-data/orders.ts"],"sourcesContent":["import { currencies } from \"./currencies\";\nimport { getRic } from \"./instruments\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap, Table } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { sides } from \"./sides\";\n\nexport type status = string;\nexport type ccy = string;\nexport type created = number;\nexport type filledQuantity = number;\nexport type lastUpdate = number;\nexport type orderId = string;\nexport type quantity = number;\nexport type ric = string;\nexport type side = string;\nexport type trader = string;\n\nconst traders = [\"Trader A\", \"Trader B\", \"Trader C\"];\nconst orderStatus = [\n \"Filled\",\n \"Cancelled\",\n \"New\",\n \"Partial Exec\",\n \"Booked\",\n \"All Done\",\n];\n\nconst isComplete = (status: string) =>\n [\"Filled\", \"All Done\", \"Booked\"].includes(status);\n\nexport type OrdersDataRow = [\n status,\n ccy,\n created,\n filledQuantity,\n lastUpdate,\n orderId,\n quantity,\n ric,\n side,\n trader,\n];\n\nexport const OrderColumnMap = {\n ccy: 0,\n created: 1,\n filledQuantity: 2,\n lastUpdate: 3,\n orderId: 4,\n quantity: 5,\n ric: 6,\n side: 7,\n trader: 8,\n} as const;\n\nconst ordersData: OrdersDataRow[] = [];\n\n// const start = performance.now();\n// Create 10_000 Instruments\n\nconst now = +new Date();\nfor (let i = 0; i < 100; i++) {\n const status = orderStatus[random(0, orderStatus.length - 1)];\n const ccy = currencies[random(0, currencies.length - 1)];\n const created = now;\n const lastUpdate = now;\n const orderId = `ORD${(\"0000\" + i).slice(-4)}`;\n const quantity = random(1000, 10000);\n const filledQuantity = isComplete(status)\n ? quantity\n : status === \"New\"\n ? 0\n : random(0, quantity);\n const ric = getRic(\"AAP.L\");\n const side = sides[random(0, sides.length - 1)];\n const trader = traders[random(0, traders.length - 1)];\n\n ordersData.push([\n status,\n ccy,\n created,\n filledQuantity,\n lastUpdate,\n orderId,\n quantity,\n ric,\n side,\n trader,\n ]);\n}\n// const end = performance.now();\n// console.log(`generating 10,000 instruments took ${end - start} ms`);\n\nexport const ordersTable = new Table(\n schemas.orders,\n ordersData,\n buildDataColumnMap(schemas, \"orders\"),\n);\n\nexport { ordersData };\n"],"names":["random","currencies","getRic","sides","Table","schemas","buildDataColumnMap"],"mappings":";;;;;;;;;AAkBA,MAAM,OAAU,GAAA,CAAC,UAAY,EAAA,UAAA,EAAY,UAAU,CAAA;AACnD,MAAM,WAAc,GAAA;AAAA,EAClB,QAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAEA,MAAM,UAAA,GAAa,CAAC,MAClB,KAAA,CAAC,UAAU,UAAY,EAAA,QAAQ,CAAE,CAAA,QAAA,CAAS,MAAM,CAAA;AA2BlD,MAAM,aAA8B;AAKpC,MAAM,GAAA,GAAM,iBAAC,IAAI,IAAK,EAAA;AACtB,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,GAAA,EAAK,CAAK,EAAA,EAAA;AAC5B,EAAA,MAAM,SAAS,WAAY,CAAAA,gBAAA,CAAO,GAAG,WAAY,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAC5D,EAAA,MAAM,MAAMC,qBAAW,CAAAD,gBAAA,CAAO,GAAGC,qBAAW,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AACvD,EAAA,MAAM,OAAU,GAAA,GAAA;AAChB,EAAA,MAAM,UAAa,GAAA,GAAA;AACnB,EAAA,MAAM,UAAU,CAAO,GAAA,EAAA,CAAA,MAAA,GAAS,CAAG,EAAA,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA;AAC5C,EAAM,MAAA,QAAA,GAAWD,gBAAO,CAAA,GAAA,EAAM,GAAK,CAAA;AACnC,EAAM,MAAA,cAAA,GAAiB,UAAW,CAAA,MAAM,CACpC,GAAA,QAAA,GACA,WAAW,KACT,GAAA,CAAA,GACAA,gBAAO,CAAA,CAAA,EAAG,QAAQ,CAAA;AACxB,EAAM,MAAA,GAAA,GAAME,mBAAO,OAAO,CAAA;AAC1B,EAAA,MAAM,OAAOC,WAAM,CAAAH,gBAAA,CAAO,GAAGG,WAAM,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAC9C,EAAA,MAAM,SAAS,OAAQ,CAAAH,gBAAA,CAAO,GAAG,OAAQ,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAEpD,EAAA,UAAA,CAAW,IAAK,CAAA;AAAA,IACd,MAAA;AAAA,IACA,GAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD,CAAA;AACH;AAIO,MAAM,cAAc,IAAII,WAAA;AAAA,EAC7BC,oBAAQ,CAAA,MAAA;AAAA,EACR,UAAA;AAAA,EACAC,wBAAA,CAAmBD,sBAAS,QAAQ;AACtC;;;;;"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dataUtils = require('../../data-utils.js');
|
|
4
|
+
var Table = require('../../Table.js');
|
|
5
|
+
var simulSchemas = require('../simul-schemas.js');
|
|
6
|
+
var accounts = require('./accounts.js');
|
|
7
|
+
var instruments = require('./instruments.js');
|
|
8
|
+
var orderStatus = require('./orderStatus.js');
|
|
9
|
+
var sides = require('./sides.js');
|
|
10
|
+
var algos = require('./algos.js');
|
|
11
|
+
|
|
12
|
+
const childOrderData = [];
|
|
13
|
+
const parentOrderData = [];
|
|
14
|
+
const instrumentMap = Table.buildDataColumnMap(simulSchemas.schemas, "instruments");
|
|
15
|
+
const PARENT_ORDER_COUNT = 75e3;
|
|
16
|
+
const CHILD_ORDER_COUNT = 2e5;
|
|
17
|
+
const avgChildOrderPerOrder = Math.round(
|
|
18
|
+
CHILD_ORDER_COUNT / PARENT_ORDER_COUNT
|
|
19
|
+
);
|
|
20
|
+
const childMaxMultiple = 10;
|
|
21
|
+
const start = performance.now();
|
|
22
|
+
let childOrderId = 0;
|
|
23
|
+
for (let i = 0; i < PARENT_ORDER_COUNT; i++) {
|
|
24
|
+
const now = +/* @__PURE__ */ new Date();
|
|
25
|
+
const instrument = instruments.instrumentsData[dataUtils.random(0, instruments.instrumentsData.length - 1)];
|
|
26
|
+
const orderQuantity = 1e3 * dataUtils.random(1, 100);
|
|
27
|
+
const orderStatus$1 = orderStatus.orderStatus[dataUtils.random(0, orderStatus.orderStatus.length - 1)];
|
|
28
|
+
const filledQty = orderStatus$1 === "FILLED" ? orderQuantity : orderStatus$1 === "NEW" ? 0 : orderQuantity - dataUtils.random(100, orderQuantity);
|
|
29
|
+
const openQty = orderQuantity - filledQty;
|
|
30
|
+
const account = accounts.accounts[dataUtils.random(0, accounts.accounts.length - 1)];
|
|
31
|
+
const algo = algos.algos[dataUtils.random(0, algos.algos.length - 1)];
|
|
32
|
+
const averagePrice = 0;
|
|
33
|
+
const ccy = "GBP";
|
|
34
|
+
const exchange = instrument[instrumentMap.exchange];
|
|
35
|
+
const parentOrderIdAsInt = i;
|
|
36
|
+
const parentOrderId = `${parentOrderIdAsInt}`;
|
|
37
|
+
const lastUpdate = now;
|
|
38
|
+
const price = 100;
|
|
39
|
+
const quantity = orderQuantity;
|
|
40
|
+
const ric = instrument[instrumentMap.ric];
|
|
41
|
+
const side = sides.sides[dataUtils.random(0, sides.sides.length - 1)];
|
|
42
|
+
const status = orderStatus$1;
|
|
43
|
+
const volLimit = 100;
|
|
44
|
+
const childOrderCount = dataUtils.random(
|
|
45
|
+
0,
|
|
46
|
+
avgChildOrderPerOrder * dataUtils.random(1, childMaxMultiple)
|
|
47
|
+
);
|
|
48
|
+
let remainingQty = orderQuantity;
|
|
49
|
+
for (let j = 0; j < childOrderCount; j++) {
|
|
50
|
+
const childOrderQuantity = Math.round(remainingQty / (childOrderCount - j));
|
|
51
|
+
remainingQty -= childOrderQuantity;
|
|
52
|
+
const childOrderStatus = orderStatus.orderStatus[dataUtils.random(0, orderStatus.orderStatus.length - 1)];
|
|
53
|
+
const childFilledQty = orderStatus$1 === "FILLED" ? childOrderQuantity : childOrderStatus === "NEW" ? 0 : childOrderQuantity - dataUtils.random(100, childOrderQuantity);
|
|
54
|
+
const childOpenQty = childOrderQuantity - childFilledQty;
|
|
55
|
+
const averagePrice2 = 0;
|
|
56
|
+
const childIdAsInt = childOrderId++;
|
|
57
|
+
const childId = `${childIdAsInt}`;
|
|
58
|
+
const lastUpdate2 = 0;
|
|
59
|
+
const price2 = 100;
|
|
60
|
+
const strategy = 0;
|
|
61
|
+
const row2 = [
|
|
62
|
+
account,
|
|
63
|
+
averagePrice2,
|
|
64
|
+
ccy,
|
|
65
|
+
exchange,
|
|
66
|
+
childFilledQty,
|
|
67
|
+
childId,
|
|
68
|
+
childIdAsInt,
|
|
69
|
+
lastUpdate2,
|
|
70
|
+
childOpenQty,
|
|
71
|
+
parentOrderId,
|
|
72
|
+
price2,
|
|
73
|
+
childOrderQuantity,
|
|
74
|
+
ric,
|
|
75
|
+
side,
|
|
76
|
+
childOrderStatus,
|
|
77
|
+
strategy,
|
|
78
|
+
volLimit
|
|
79
|
+
];
|
|
80
|
+
childOrderData.push(row2);
|
|
81
|
+
}
|
|
82
|
+
const row = [
|
|
83
|
+
account,
|
|
84
|
+
algo,
|
|
85
|
+
averagePrice,
|
|
86
|
+
ccy,
|
|
87
|
+
childOrderCount,
|
|
88
|
+
exchange,
|
|
89
|
+
filledQty,
|
|
90
|
+
parentOrderId,
|
|
91
|
+
parentOrderIdAsInt,
|
|
92
|
+
lastUpdate,
|
|
93
|
+
openQty,
|
|
94
|
+
price,
|
|
95
|
+
quantity,
|
|
96
|
+
ric,
|
|
97
|
+
side,
|
|
98
|
+
status,
|
|
99
|
+
volLimit
|
|
100
|
+
];
|
|
101
|
+
parentOrderData.push(row);
|
|
102
|
+
}
|
|
103
|
+
const end = performance.now();
|
|
104
|
+
console.log(
|
|
105
|
+
`took ${end - start} to create ${parentOrderData.length} orders and ${childOrderData.length} child orders`
|
|
106
|
+
);
|
|
107
|
+
const parentOrdersTable = new Table.Table(
|
|
108
|
+
simulSchemas.schemas.parentOrders,
|
|
109
|
+
parentOrderData,
|
|
110
|
+
Table.buildDataColumnMap(simulSchemas.schemas, "parentOrders")
|
|
111
|
+
);
|
|
112
|
+
const childOrdersTable = new Table.Table(
|
|
113
|
+
simulSchemas.schemas.childOrders,
|
|
114
|
+
childOrderData,
|
|
115
|
+
Table.buildDataColumnMap(simulSchemas.schemas, "childOrders")
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
exports.childOrderData = childOrderData;
|
|
119
|
+
exports.childOrdersTable = childOrdersTable;
|
|
120
|
+
exports.parentOrderData = parentOrderData;
|
|
121
|
+
exports.parentOrdersTable = parentOrdersTable;
|
|
122
|
+
//# sourceMappingURL=parent-child-orders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parent-child-orders.js","sources":["../../../src/simul/reference-data/parent-child-orders.ts"],"sourcesContent":["import { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap, Table } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { accounts } from \"./accounts\";\nimport { instrumentsData } from \"./instruments\";\nimport { orderStatus as statusValues } from \"./orderStatus\";\nimport { sides } from \"./sides\";\nimport { algos } from \"./algos\";\n\nconst childOrderData: VuuRowDataItemType[][] = [];\nconst parentOrderData: VuuRowDataItemType[][] = [];\n\nconst instrumentMap = buildDataColumnMap(schemas, \"instruments\");\n\nconst PARENT_ORDER_COUNT = 75_000;\nconst CHILD_ORDER_COUNT = 200_000;\n\nconst avgChildOrderPerOrder = Math.round(\n CHILD_ORDER_COUNT / PARENT_ORDER_COUNT,\n);\nconst childMaxMultiple = 10;\n\nconst start = performance.now();\n\nlet childOrderId = 0;\n\nfor (let i = 0; i < PARENT_ORDER_COUNT; i++) {\n const now = +new Date();\n const instrument = instrumentsData[random(0, instrumentsData.length - 1)];\n\n const orderQuantity = 1000 * random(1, 100);\n const orderStatus = statusValues[random(0, statusValues.length - 1)];\n const filledQty =\n orderStatus === \"FILLED\"\n ? orderQuantity\n : orderStatus === \"NEW\"\n ? 0\n : orderQuantity - random(100, orderQuantity);\n const openQty = orderQuantity - filledQty;\n\n const account = accounts[random(0, accounts.length - 1)];\n const algo = algos[random(0, algos.length - 1)];\n const averagePrice = 0;\n const ccy = \"GBP\";\n const exchange = instrument[instrumentMap.exchange];\n const parentOrderIdAsInt = i;\n const parentOrderId = `${parentOrderIdAsInt}`;\n const lastUpdate = now;\n const price = 100;\n const quantity = orderQuantity;\n const ric = instrument[instrumentMap.ric];\n const side = sides[random(0, sides.length - 1)];\n const status = orderStatus;\n const volLimit = 100;\n\n const childOrderCount = random(\n 0,\n avgChildOrderPerOrder * random(1, childMaxMultiple),\n );\n\n let remainingQty = orderQuantity;\n for (let j = 0; j < childOrderCount; j++) {\n // console.log(`create child`);\n\n const childOrderQuantity = Math.round(remainingQty / (childOrderCount - j));\n remainingQty -= childOrderQuantity;\n const childOrderStatus = statusValues[random(0, statusValues.length - 1)];\n const childFilledQty =\n orderStatus === \"FILLED\"\n ? childOrderQuantity\n : childOrderStatus === \"NEW\"\n ? 0\n : childOrderQuantity - random(100, childOrderQuantity);\n const childOpenQty = childOrderQuantity - childFilledQty;\n\n const averagePrice = 0;\n const childIdAsInt = childOrderId++;\n const childId = `${childIdAsInt}`;\n const lastUpdate = 0;\n const price = 100;\n const strategy = 0;\n\n const row: VuuRowDataItemType[] = [\n account,\n averagePrice,\n ccy,\n exchange,\n childFilledQty,\n childId,\n childIdAsInt,\n lastUpdate,\n childOpenQty,\n parentOrderId,\n price,\n childOrderQuantity,\n ric,\n side,\n childOrderStatus,\n strategy,\n volLimit,\n ];\n\n childOrderData.push(row);\n }\n\n const row: VuuRowDataItemType[] = [\n account,\n algo,\n averagePrice,\n ccy,\n childOrderCount,\n exchange,\n filledQty,\n parentOrderId,\n parentOrderIdAsInt,\n lastUpdate,\n openQty,\n price,\n quantity,\n ric,\n side,\n status,\n volLimit,\n ];\n\n parentOrderData.push(row);\n}\nconst end = performance.now();\n\nconsole.log(\n `took ${end - start} to create ${parentOrderData.length} orders and ${childOrderData.length} child orders`,\n);\n\nexport const parentOrdersTable = new Table(\n schemas.parentOrders,\n parentOrderData,\n buildDataColumnMap(schemas, \"parentOrders\"),\n);\n\nexport const childOrdersTable = new Table(\n schemas.childOrders,\n childOrderData,\n buildDataColumnMap(schemas, \"childOrders\"),\n);\n\nexport { childOrderData, parentOrderData };\n"],"names":["buildDataColumnMap","schemas","instrumentsData","random","orderStatus","statusValues","accounts","algos","sides","averagePrice","lastUpdate","price","row","Table"],"mappings":";;;;;;;;;;;AAUA,MAAM,iBAAyC;AAC/C,MAAM,kBAA0C;AAEhD,MAAM,aAAA,GAAgBA,wBAAmB,CAAAC,oBAAA,EAAS,aAAa,CAAA;AAE/D,MAAM,kBAAqB,GAAA,IAAA;AAC3B,MAAM,iBAAoB,GAAA,GAAA;AAE1B,MAAM,wBAAwB,IAAK,CAAA,KAAA;AAAA,EACjC,iBAAoB,GAAA;AACtB,CAAA;AACA,MAAM,gBAAmB,GAAA,EAAA;AAEzB,MAAM,KAAA,GAAQ,YAAY,GAAI,EAAA;AAE9B,IAAI,YAAe,GAAA,CAAA;AAEnB,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,kBAAA,EAAoB,CAAK,EAAA,EAAA;AAC3C,EAAM,MAAA,GAAA,GAAM,iBAAC,IAAI,IAAK,EAAA;AACtB,EAAA,MAAM,aAAaC,2BAAgB,CAAAC,gBAAA,CAAO,GAAGD,2BAAgB,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAExE,EAAA,MAAM,aAAgB,GAAA,GAAA,GAAOC,gBAAO,CAAA,CAAA,EAAG,GAAG,CAAA;AAC1C,EAAA,MAAMC,gBAAcC,uBAAa,CAAAF,gBAAA,CAAO,GAAGE,uBAAa,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AACnE,EAAM,MAAA,SAAA,GACJD,aAAgB,KAAA,QAAA,GACZ,aACA,GAAAA,aAAA,KAAgB,QACd,CACA,GAAA,aAAA,GAAgBD,gBAAO,CAAA,GAAA,EAAK,aAAa,CAAA;AACjD,EAAA,MAAM,UAAU,aAAgB,GAAA,SAAA;AAEhC,EAAA,MAAM,UAAUG,iBAAS,CAAAH,gBAAA,CAAO,GAAGG,iBAAS,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AACvD,EAAA,MAAM,OAAOC,WAAM,CAAAJ,gBAAA,CAAO,GAAGI,WAAM,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAC9C,EAAA,MAAM,YAAe,GAAA,CAAA;AACrB,EAAA,MAAM,GAAM,GAAA,KAAA;AACZ,EAAM,MAAA,QAAA,GAAW,UAAW,CAAA,aAAA,CAAc,QAAQ,CAAA;AAClD,EAAA,MAAM,kBAAqB,GAAA,CAAA;AAC3B,EAAM,MAAA,aAAA,GAAgB,GAAG,kBAAkB,CAAA,CAAA;AAC3C,EAAA,MAAM,UAAa,GAAA,GAAA;AACnB,EAAA,MAAM,KAAQ,GAAA,GAAA;AACd,EAAA,MAAM,QAAW,GAAA,aAAA;AACjB,EAAM,MAAA,GAAA,GAAM,UAAW,CAAA,aAAA,CAAc,GAAG,CAAA;AACxC,EAAA,MAAM,OAAOC,WAAM,CAAAL,gBAAA,CAAO,GAAGK,WAAM,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAC9C,EAAA,MAAM,MAAS,GAAAJ,aAAA;AACf,EAAA,MAAM,QAAW,GAAA,GAAA;AAEjB,EAAA,MAAM,eAAkB,GAAAD,gBAAA;AAAA,IACtB,CAAA;AAAA,IACA,qBAAA,GAAwBA,gBAAO,CAAA,CAAA,EAAG,gBAAgB;AAAA,GACpD;AAEA,EAAA,IAAI,YAAe,GAAA,aAAA;AACnB,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,eAAA,EAAiB,CAAK,EAAA,EAAA;AAGxC,IAAA,MAAM,kBAAqB,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,IAAgB,kBAAkB,CAAE,CAAA,CAAA;AAC1E,IAAgB,YAAA,IAAA,kBAAA;AAChB,IAAA,MAAM,mBAAmBE,uBAAa,CAAAF,gBAAA,CAAO,GAAGE,uBAAa,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AACxE,IAAM,MAAA,cAAA,GACJD,aAAgB,KAAA,QAAA,GACZ,kBACA,GAAA,gBAAA,KAAqB,QACnB,CACA,GAAA,kBAAA,GAAqBD,gBAAO,CAAA,GAAA,EAAK,kBAAkB,CAAA;AAC3D,IAAA,MAAM,eAAe,kBAAqB,GAAA,cAAA;AAE1C,IAAA,MAAMM,aAAe,GAAA,CAAA;AACrB,IAAA,MAAM,YAAe,GAAA,YAAA,EAAA;AACrB,IAAM,MAAA,OAAA,GAAU,GAAG,YAAY,CAAA,CAAA;AAC/B,IAAA,MAAMC,WAAa,GAAA,CAAA;AACnB,IAAA,MAAMC,MAAQ,GAAA,GAAA;AACd,IAAA,MAAM,QAAW,GAAA,CAAA;AAEjB,IAAA,MAAMC,IAA4B,GAAA;AAAA,MAChC,OAAA;AAAA,MACAH,aAAAA;AAAA,MACA,GAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACAC,WAAAA;AAAA,MACA,YAAA;AAAA,MACA,aAAA;AAAA,MACAC,MAAAA;AAAA,MACA,kBAAA;AAAA,MACA,GAAA;AAAA,MACA,IAAA;AAAA,MACA,gBAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,cAAA,CAAe,KAAKC,IAAG,CAAA;AAAA;AAGzB,EAAA,MAAM,GAA4B,GAAA;AAAA,IAChC,OAAA;AAAA,IACA,IAAA;AAAA,IACA,YAAA;AAAA,IACA,GAAA;AAAA,IACA,eAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAA;AAAA,IACA,kBAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,eAAA,CAAgB,KAAK,GAAG,CAAA;AAC1B;AACA,MAAM,GAAA,GAAM,YAAY,GAAI,EAAA;AAE5B,OAAQ,CAAA,GAAA;AAAA,EACN,CAAA,KAAA,EAAQ,MAAM,KAAK,CAAA,WAAA,EAAc,gBAAgB,MAAM,CAAA,YAAA,EAAe,eAAe,MAAM,CAAA,aAAA;AAC7F,CAAA;AAEO,MAAM,oBAAoB,IAAIC,WAAA;AAAA,EACnCZ,oBAAQ,CAAA,YAAA;AAAA,EACR,eAAA;AAAA,EACAD,wBAAA,CAAmBC,sBAAS,cAAc;AAC5C;AAEO,MAAM,mBAAmB,IAAIY,WAAA;AAAA,EAClCZ,oBAAQ,CAAA,WAAA;AAAA,EACR,cAAA;AAAA,EACAD,wBAAA,CAAmBC,sBAAS,aAAa;AAC3C;;;;;;;"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Table = require('../../Table.js');
|
|
4
|
+
var UpdateGenerator = require('../../UpdateGenerator.js');
|
|
5
|
+
var simulSchemas = require('../simul-schemas.js');
|
|
6
|
+
var instruments = require('./instruments.js');
|
|
7
|
+
var dataUtils = require('../../data-utils.js');
|
|
8
|
+
var constituents = require('../../basket/reference-data/constituents.js');
|
|
9
|
+
|
|
10
|
+
const { bid, bidSize, ask, askSize } = Table.buildDataColumnMap(simulSchemas.schemas, "prices");
|
|
11
|
+
const pricesUpdateGenerator = new UpdateGenerator.BaseUpdateGenerator({
|
|
12
|
+
bid,
|
|
13
|
+
bidSize,
|
|
14
|
+
ask,
|
|
15
|
+
askSize
|
|
16
|
+
});
|
|
17
|
+
const requiredInstrumentFields = ["ric", "price"];
|
|
18
|
+
const pricesData = instruments.instrumentsData.map((instrument) => {
|
|
19
|
+
const { ric, price: priceSeed } = requiredInstrumentFields.reduce(
|
|
20
|
+
(obj, f) => ({ ...obj, [f]: instrument[instruments.InstrumentColumnMap[f]] }),
|
|
21
|
+
{}
|
|
22
|
+
);
|
|
23
|
+
const spread = dataUtils.random(0, 10);
|
|
24
|
+
const ask2 = priceSeed + spread / 2;
|
|
25
|
+
const askSize2 = dataUtils.random(1e3, 3e3);
|
|
26
|
+
const bid2 = priceSeed - spread / 2;
|
|
27
|
+
const bidSize2 = dataUtils.random(1e3, 3e3);
|
|
28
|
+
const close = priceSeed + dataUtils.random(0, 1) / 10;
|
|
29
|
+
const last = priceSeed + dataUtils.random(0, 1) / 10;
|
|
30
|
+
const open = priceSeed + dataUtils.random(0, 1) / 10;
|
|
31
|
+
const phase = "C";
|
|
32
|
+
const scenario = "close";
|
|
33
|
+
return [ask2, askSize2, bid2, bidSize2, close, last, open, phase, ric, scenario];
|
|
34
|
+
});
|
|
35
|
+
for (const [, , , lastTrade, ric] of constituents) {
|
|
36
|
+
const priceSeed = parseFloat(String(lastTrade));
|
|
37
|
+
if (!isNaN(priceSeed)) {
|
|
38
|
+
const spread = dataUtils.random(0, 10);
|
|
39
|
+
const ask2 = priceSeed + spread / 2;
|
|
40
|
+
const askSize2 = dataUtils.random(1e3, 3e3);
|
|
41
|
+
const bid2 = priceSeed - spread / 2;
|
|
42
|
+
const bidSize2 = dataUtils.random(1e3, 3e3);
|
|
43
|
+
const close = priceSeed + dataUtils.random(0, 1) / 10;
|
|
44
|
+
const last = priceSeed + dataUtils.random(0, 1) / 10;
|
|
45
|
+
const open = priceSeed + dataUtils.random(0, 1) / 10;
|
|
46
|
+
const phase = "C";
|
|
47
|
+
const scenario = "close";
|
|
48
|
+
pricesData.push([
|
|
49
|
+
ask2,
|
|
50
|
+
askSize2,
|
|
51
|
+
bid2,
|
|
52
|
+
bidSize2,
|
|
53
|
+
close,
|
|
54
|
+
last,
|
|
55
|
+
open,
|
|
56
|
+
phase,
|
|
57
|
+
ric,
|
|
58
|
+
scenario
|
|
59
|
+
]);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const pricesTable = new Table.Table(
|
|
63
|
+
simulSchemas.schemas.prices,
|
|
64
|
+
pricesData,
|
|
65
|
+
Table.buildDataColumnMap(simulSchemas.schemas, "prices"),
|
|
66
|
+
pricesUpdateGenerator
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
exports.pricesData = pricesData;
|
|
70
|
+
exports.pricesTable = pricesTable;
|
|
71
|
+
//# sourceMappingURL=prices.js.map
|