@quantform/core 0.3.262 → 0.3.267

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.
Files changed (96) hide show
  1. package/dist/adapter/adapter.d.ts +2 -2
  2. package/dist/adapter/backtester/backtester-adapter.d.ts +2 -2
  3. package/dist/adapter/backtester/backtester-adapter.js +3 -3
  4. package/dist/adapter/backtester/backtester-adapter.js.map +1 -1
  5. package/dist/adapter/paper/index.d.ts +2 -2
  6. package/dist/adapter/paper/index.js +2 -2
  7. package/dist/adapter/paper/index.js.map +1 -1
  8. package/dist/adapter/paper/paper-adapter.d.ts +3 -3
  9. package/dist/adapter/paper/paper-adapter.js +5 -5
  10. package/dist/adapter/paper/paper-adapter.js.map +1 -1
  11. package/dist/adapter/paper/paper-adapter.spec.js +2 -2
  12. package/dist/adapter/paper/paper-adapter.spec.js.map +1 -1
  13. package/dist/adapter/paper/{executor/paper-margin-executor.d.ts → simulator/paper-margin-simulator.d.ts} +2 -2
  14. package/dist/adapter/paper/{executor/paper-margin-executor.js → simulator/paper-margin-simulator.js} +5 -5
  15. package/dist/adapter/paper/simulator/paper-margin-simulator.js.map +1 -0
  16. package/dist/adapter/paper/{executor/paper-executor.d.ts → simulator/paper-simulator.d.ts} +1 -1
  17. package/dist/adapter/paper/{executor/paper-executor.js → simulator/paper-simulator.js} +4 -4
  18. package/dist/adapter/paper/simulator/paper-simulator.js.map +1 -0
  19. package/dist/adapter/paper/{executor/paper-spot-executor.d.ts → simulator/paper-spot-simulator.d.ts} +2 -2
  20. package/dist/adapter/paper/{executor/paper-spot-executor.js → simulator/paper-spot-simulator.js} +5 -5
  21. package/dist/adapter/paper/simulator/paper-spot-simulator.js.map +1 -0
  22. package/dist/{session/session-optimizer.spec.d.ts → adapter/paper/simulator/paper-spot-simulator.spec.d.ts} +0 -0
  23. package/dist/adapter/paper/simulator/paper-spot-simulator.spec.js +50 -0
  24. package/dist/adapter/paper/simulator/paper-spot-simulator.spec.js.map +1 -0
  25. package/dist/bootstrap.d.ts +1 -1
  26. package/dist/bootstrap.js +4 -4
  27. package/dist/bootstrap.js.map +1 -1
  28. package/dist/domain/index.d.ts +3 -0
  29. package/dist/domain/index.js +3 -0
  30. package/dist/domain/index.js.map +1 -1
  31. package/dist/{session → domain}/session-descriptor.d.ts +2 -2
  32. package/dist/{session → domain}/session-descriptor.js +0 -0
  33. package/dist/domain/session-descriptor.js.map +1 -0
  34. package/dist/{session → domain}/session.d.ts +0 -0
  35. package/dist/{session → domain}/session.js +0 -0
  36. package/dist/domain/session.js.map +1 -0
  37. package/dist/{session → domain}/session.spec.d.ts +0 -0
  38. package/dist/{session → domain}/session.spec.js +0 -0
  39. package/dist/domain/session.spec.js.map +1 -0
  40. package/dist/{session/session-statement.d.ts → domain/statement.d.ts} +2 -2
  41. package/dist/{session/session-statement.js → domain/statement.js} +1 -1
  42. package/dist/domain/statement.js.map +1 -0
  43. package/dist/index.d.ts +0 -1
  44. package/dist/index.js +0 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/ipc.d.ts +1 -1
  47. package/dist/ipc.js.map +1 -1
  48. package/dist/ipc.spec.js +2 -2
  49. package/dist/ipc.spec.js.map +1 -1
  50. package/dist/shared/task.d.ts +1 -1
  51. package/dist/store/event/store-order.event.js +5 -5
  52. package/dist/store/event/store-order.event.js.map +1 -1
  53. package/dist/tests/backtester-adapter.spec.js +2 -2
  54. package/dist/tests/backtester-adapter.spec.js.map +1 -1
  55. package/dist/tsconfig.tsbuildinfo +1 -1
  56. package/package.json +1 -1
  57. package/src/adapter/adapter.ts +2 -2
  58. package/src/adapter/backtester/backtester-adapter.ts +4 -4
  59. package/src/adapter/paper/index.ts +2 -2
  60. package/src/adapter/paper/paper-adapter.spec.ts +4 -4
  61. package/src/adapter/paper/paper-adapter.ts +7 -7
  62. package/src/adapter/paper/{executor/paper-margin-executor.ts → simulator/paper-margin-simulator.ts} +2 -2
  63. package/src/adapter/paper/{executor/paper-executor.ts → simulator/paper-simulator.ts} +1 -1
  64. package/src/adapter/paper/simulator/paper-spot-simulator.spec.ts +88 -0
  65. package/src/adapter/paper/{executor/paper-spot-executor.ts → simulator/paper-spot-simulator.ts} +2 -2
  66. package/src/bootstrap.ts +1 -1
  67. package/src/domain/index.ts +3 -0
  68. package/src/{session → domain}/session-descriptor.ts +2 -2
  69. package/src/{session → domain}/session.spec.ts +0 -0
  70. package/src/{session → domain}/session.ts +0 -0
  71. package/src/{session/session-statement.ts → domain/statement.ts} +1 -1
  72. package/src/index.ts +0 -1
  73. package/src/ipc.spec.ts +4 -4
  74. package/src/ipc.ts +1 -2
  75. package/src/shared/task.ts +1 -1
  76. package/src/store/event/store-order.event.ts +5 -5
  77. package/src/tests/backtester-adapter.spec.ts +4 -4
  78. package/src/tests/session.spec.ts +1 -1
  79. package/dist/adapter/paper/executor/paper-executor.js.map +0 -1
  80. package/dist/adapter/paper/executor/paper-margin-executor.js.map +0 -1
  81. package/dist/adapter/paper/executor/paper-spot-executor.js.map +0 -1
  82. package/dist/session/index.d.ts +0 -4
  83. package/dist/session/index.js +0 -17
  84. package/dist/session/index.js.map +0 -1
  85. package/dist/session/session-descriptor.js.map +0 -1
  86. package/dist/session/session-optimizer.d.ts +0 -10
  87. package/dist/session/session-optimizer.js +0 -62
  88. package/dist/session/session-optimizer.js.map +0 -1
  89. package/dist/session/session-optimizer.spec.js +0 -103
  90. package/dist/session/session-optimizer.spec.js.map +0 -1
  91. package/dist/session/session-statement.js.map +0 -1
  92. package/dist/session/session.js.map +0 -1
  93. package/dist/session/session.spec.js.map +0 -1
  94. package/src/session/index.ts +0 -4
  95. package/src/session/session-optimizer.spec.ts +0 -86
  96. package/src/session/session-optimizer.ts +0 -81
@@ -1,103 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const domain_1 = require("../domain");
13
- const session_optimizer_1 = require("./session-optimizer");
14
- describe('session optimizer tests', () => {
15
- test('should ignore not provided value for property', () => {
16
- class Target {
17
- constructor() {
18
- this.timeframe = domain_1.Timeframe.H1;
19
- }
20
- }
21
- __decorate([
22
- (0, session_optimizer_1.fit)('timeframe'),
23
- __metadata("design:type", Object)
24
- ], Target.prototype, "timeframe", void 0);
25
- const sut = new Target();
26
- expect(sut.timeframe).toBe(domain_1.Timeframe.H1);
27
- });
28
- test('should ignore not provided descendant value for property', () => {
29
- class Target {
30
- constructor() {
31
- this.timeframe = domain_1.Timeframe.H1;
32
- }
33
- }
34
- __decorate([
35
- (0, session_optimizer_1.fit)('timeframe.daily'),
36
- __metadata("design:type", Object)
37
- ], Target.prototype, "timeframe", void 0);
38
- const sut = new Target();
39
- expect(sut.timeframe).toBe(domain_1.Timeframe.H1);
40
- });
41
- test('should set provided value for property', () => {
42
- class Target {
43
- constructor() {
44
- this.timeframe = domain_1.Timeframe.H1;
45
- }
46
- }
47
- __decorate([
48
- (0, session_optimizer_1.fit)('timeframe'),
49
- __metadata("design:type", Object)
50
- ], Target.prototype, "timeframe", void 0);
51
- session_optimizer_1.SessionOptimizer.source = {
52
- timeframe: domain_1.Timeframe.D1
53
- };
54
- const sut = new Target();
55
- expect(sut.timeframe).toBe(domain_1.Timeframe.D1);
56
- });
57
- test('should set provided descendant value for property', () => {
58
- class Target {
59
- constructor() {
60
- this.timeframe = domain_1.Timeframe.H1;
61
- }
62
- }
63
- __decorate([
64
- (0, session_optimizer_1.fit)('timeframe.daily'),
65
- __metadata("design:type", Object)
66
- ], Target.prototype, "timeframe", void 0);
67
- session_optimizer_1.SessionOptimizer.source = {
68
- timeframe: {
69
- daily: domain_1.Timeframe.D1
70
- }
71
- };
72
- const sut = new Target();
73
- expect(sut.timeframe).toBe(domain_1.Timeframe.D1);
74
- });
75
- });
76
- describe('optimizer generator tests', () => {
77
- test('should generate optimized input', () => {
78
- class Target {
79
- }
80
- __decorate([
81
- (0, session_optimizer_1.fit)('target.timeframe', [domain_1.Timeframe.D1, domain_1.Timeframe.H1]),
82
- __metadata("design:type", Object)
83
- ], Target.prototype, "timeframe", void 0);
84
- __decorate([
85
- (0, session_optimizer_1.fit)('target.length', [7, 14, 21]),
86
- __metadata("design:type", Object)
87
- ], Target.prototype, "length", void 0);
88
- __decorate([
89
- (0, session_optimizer_1.fit)('target.size', [0.1, 0.2, 0.3, 0.4]),
90
- __metadata("design:type", Object)
91
- ], Target.prototype, "size", void 0);
92
- expect(session_optimizer_1.SessionOptimizerGenerator.count).toBe(24);
93
- const product = session_optimizer_1.SessionOptimizerGenerator.product();
94
- expect(product.length).toBe(24);
95
- expect(product[0].target.timeframe).toBe(domain_1.Timeframe.D1);
96
- expect(product[0].target.length).toBe(7);
97
- expect(product[0].target.size).toBe(0.1);
98
- expect(product[23].target.timeframe).toBe(domain_1.Timeframe.H1);
99
- expect(product[23].target.length).toBe(21);
100
- expect(product[23].target.size).toBe(0.4);
101
- });
102
- });
103
- //# sourceMappingURL=session-optimizer.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-optimizer.spec.js","sourceRoot":"","sources":["../../src/session/session-optimizer.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-statement.js","sourceRoot":"","sources":["../../src/session/session-statement.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.spec.js","sourceRoot":"","sources":["../../src/session/session.spec.ts"],"names":[],"mappings":";;AAAA,0CAAsD;AACtD,sCAA8C;AAC9C,sCAAgC;AAEhC,4CAAyC;AAEzC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,UAAU,GAAsB;QACpC,EAAE,EAAE,IAAA,YAAG,GAAE;QACT,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,EAAE;QACjC,MAAM,OAAO,GAAG,IAAI,qBAAS,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;QAElD,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;YAC9B,IAAI,EAAE,EAAE,CAAC,EAAE;gBACT,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;YACD,QAAQ,EAAE,IAAI,EAAE;SACjB,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,QAAQ,CACpB,IAAI,4BAAoB,CACtB,IAAA,YAAG,GAAE,EACL,IAAI,cAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAC3B,IAAI,cAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAC1B,IAAI,mBAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,CACH,EACD,IAAI,4BAAoB,CACtB,IAAA,YAAG,GAAE,EACL,IAAI,cAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAC5B,IAAI,cAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAC1B,IAAI,mBAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,CACH,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './session';
2
- export * from './session-descriptor';
3
- export * from './session-optimizer';
4
- export * from './session-statement';
@@ -1,86 +0,0 @@
1
- import { Timeframe } from '../domain';
2
- import { SessionOptimizer, fit, SessionOptimizerGenerator } from './session-optimizer';
3
-
4
- describe('session optimizer tests', () => {
5
- test('should ignore not provided value for property', () => {
6
- class Target {
7
- @fit('timeframe')
8
- timeframe = Timeframe.H1;
9
- }
10
-
11
- const sut = new Target();
12
-
13
- expect(sut.timeframe).toBe(Timeframe.H1);
14
- });
15
-
16
- test('should ignore not provided descendant value for property', () => {
17
- class Target {
18
- @fit('timeframe.daily')
19
- timeframe = Timeframe.H1;
20
- }
21
-
22
- const sut = new Target();
23
-
24
- expect(sut.timeframe).toBe(Timeframe.H1);
25
- });
26
-
27
- test('should set provided value for property', () => {
28
- class Target {
29
- @fit('timeframe')
30
- timeframe = Timeframe.H1;
31
- }
32
-
33
- SessionOptimizer.source = {
34
- timeframe: Timeframe.D1
35
- };
36
-
37
- const sut = new Target();
38
-
39
- expect(sut.timeframe).toBe(Timeframe.D1);
40
- });
41
-
42
- test('should set provided descendant value for property', () => {
43
- class Target {
44
- @fit('timeframe.daily')
45
- timeframe = Timeframe.H1;
46
- }
47
-
48
- SessionOptimizer.source = {
49
- timeframe: {
50
- daily: Timeframe.D1
51
- }
52
- };
53
-
54
- const sut = new Target();
55
-
56
- expect(sut.timeframe).toBe(Timeframe.D1);
57
- });
58
- });
59
-
60
- describe('optimizer generator tests', () => {
61
- test('should generate optimized input', () => {
62
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
63
- class Target {
64
- @fit('target.timeframe', [Timeframe.D1, Timeframe.H1])
65
- timeframe;
66
- @fit('target.length', [7, 14, 21])
67
- length;
68
- @fit('target.size', [0.1, 0.2, 0.3, 0.4])
69
- size;
70
- }
71
-
72
- expect(SessionOptimizerGenerator.count).toBe(24);
73
-
74
- const product = SessionOptimizerGenerator.product();
75
-
76
- expect(product.length).toBe(24);
77
-
78
- expect(product[0].target.timeframe).toBe(Timeframe.D1);
79
- expect(product[0].target.length).toBe(7);
80
- expect(product[0].target.size).toBe(0.1);
81
-
82
- expect(product[23].target.timeframe).toBe(Timeframe.H1);
83
- expect(product[23].target.length).toBe(21);
84
- expect(product[23].target.size).toBe(0.4);
85
- });
86
- });
@@ -1,81 +0,0 @@
1
- export function fit(key: string, generator?: any[]) {
2
- return function (target: any, propertyKey: string) {
3
- let defaultSetterValue;
4
-
5
- if (generator) {
6
- SessionOptimizerGenerator.values[key] = generator;
7
- }
8
-
9
- Object.defineProperty(target, propertyKey, {
10
- get: () => SessionOptimizer.provide(key) ?? defaultSetterValue,
11
- set: (newValue: any) => {
12
- if (!defaultSetterValue) {
13
- defaultSetterValue = newValue;
14
- return;
15
- }
16
-
17
- if (defaultSetterValue == newValue) {
18
- return;
19
- }
20
-
21
- throw new Error('can not set a value of optimized property.');
22
- }
23
- });
24
- };
25
- }
26
-
27
- export class SessionOptimizer {
28
- static source: any = {};
29
-
30
- static provide(key: string): any {
31
- return key
32
- .split('.')
33
- .reduce(
34
- (aggregate, propertyName) => (aggregate ? aggregate[propertyName] : null),
35
- this.source
36
- );
37
- }
38
- }
39
-
40
- export class SessionOptimizerGenerator {
41
- static values: Record<string, any[]> = {};
42
-
43
- static get count(): number {
44
- return Object.values(this.values).reduce(
45
- (aggregate, value) => (aggregate *= value.length),
46
- 1
47
- );
48
- }
49
-
50
- static product(): any[] {
51
- const matrix = [];
52
- const keys = Object.keys(this.values);
53
- const values = Object.values(this.values).reduce(
54
- (a, b) => a.map(x => b.map(y => x.concat(y))).reduce((a, b) => a.concat(b), []),
55
- [[]]
56
- );
57
-
58
- for (const value of values) {
59
- const result = {};
60
-
61
- for (let i = 0; i < keys.length; i++) {
62
- const path = keys[i];
63
- const parts = path.split('.');
64
-
65
- let it = result;
66
-
67
- while (parts.length > 1) {
68
- const part = parts.shift();
69
-
70
- it = it[part] = it[part] || {};
71
- }
72
-
73
- it[parts[0]] = value[i];
74
- }
75
-
76
- matrix.push(result);
77
- }
78
-
79
- return matrix;
80
- }
81
- }