@quantform/core 0.3.254 → 0.3.259
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/README.md +1 -1
- package/dist/adapter/backtester/backtester-cursor.spec.js.map +1 -1
- package/dist/adapter/backtester/backtester-streamer.spec.js.map +1 -1
- package/dist/session/session.d.ts +6 -9
- package/dist/session/session.js +10 -24
- package/dist/session/session.js.map +1 -1
- package/dist/store/event/store-balance.event.d.ts +5 -6
- package/dist/store/event/store-balance.event.js +8 -8
- package/dist/store/event/store-balance.event.js.map +1 -1
- package/dist/store/event/store-candle.event.d.ts +2 -1
- package/dist/store/event/store-candle.event.js +25 -19
- package/dist/store/event/store-candle.event.js.map +1 -1
- package/dist/store/event/store-candle.event.spec.js +7 -8
- package/dist/store/event/store-candle.event.spec.js.map +1 -1
- package/dist/store/event/store-instrument.event.d.ts +6 -6
- package/dist/store/event/store-instrument.event.js +7 -7
- package/dist/store/event/store-instrument.event.js.map +1 -1
- package/dist/store/event/store-order.event.d.ts +9 -9
- package/dist/store/event/store-order.event.js +26 -47
- package/dist/store/event/store-order.event.js.map +1 -1
- package/dist/store/event/store-order.event.spec.js +7 -7
- package/dist/store/event/store-order.event.spec.js.map +1 -1
- package/dist/store/event/store-orderbook.event.d.ts +2 -3
- package/dist/store/event/store-orderbook.event.js +2 -2
- package/dist/store/event/store-orderbook.event.js.map +1 -1
- package/dist/store/event/store-position.event.d.ts +3 -3
- package/dist/store/event/store-position.event.js +6 -5
- package/dist/store/event/store-position.event.js.map +1 -1
- package/dist/store/event/store-trade.event.d.ts +2 -3
- package/dist/store/event/store-trade.event.js +2 -2
- package/dist/store/event/store-trade.event.js.map +1 -1
- package/dist/store/event/store-trade.event.spec.js +16 -17
- package/dist/store/event/store-trade.event.spec.js.map +1 -1
- package/dist/store/store.d.ts +23 -20
- package/dist/store/store.js +29 -28
- package/dist/store/store.js.map +1 -1
- package/dist/store/store.state.d.ts +6 -7
- package/dist/store/store.state.js +1 -6
- package/dist/store/store.state.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/adapter/backtester/backtester-cursor.spec.ts +2 -2
- package/src/adapter/backtester/backtester-streamer.spec.ts +0 -1
- package/src/session/session.ts +21 -56
- package/src/store/event/store-balance.event.ts +25 -9
- package/src/store/event/store-candle.event.spec.ts +8 -10
- package/src/store/event/store-candle.event.ts +44 -30
- package/src/store/event/store-instrument.event.ts +12 -7
- package/src/store/event/store-order.event.spec.ts +8 -8
- package/src/store/event/store-order.event.ts +56 -54
- package/src/store/event/store-orderbook.event.ts +7 -3
- package/src/store/event/store-position.event.ts +15 -7
- package/src/store/event/store-trade.event.spec.ts +18 -20
- package/src/store/event/store-trade.event.ts +7 -3
- package/src/store/store.state.ts +9 -14
- package/src/store/store.ts +33 -31
|
@@ -24,25 +24,10 @@ OrderLoadEvent = __decorate([
|
|
|
24
24
|
__metadata("design:paramtypes", [domain_1.Order, Number])
|
|
25
25
|
], OrderLoadEvent);
|
|
26
26
|
exports.OrderLoadEvent = OrderLoadEvent;
|
|
27
|
-
function OrderLoadEventHandler(event, state) {
|
|
27
|
+
function OrderLoadEventHandler(event, state, changes) {
|
|
28
28
|
event.order.timestamp = event.timestamp;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
case 'PENDING':
|
|
32
|
-
state.order.pending[event.order.id] = event.order;
|
|
33
|
-
break;
|
|
34
|
-
case 'FILLED':
|
|
35
|
-
state.order.filled[event.order.id] = event.order;
|
|
36
|
-
break;
|
|
37
|
-
case 'CANCELING':
|
|
38
|
-
case 'CANCELED':
|
|
39
|
-
state.order.canceled[event.order.id] = event.order;
|
|
40
|
-
break;
|
|
41
|
-
case 'REJECTED':
|
|
42
|
-
state.order.rejected[event.order.id] = event.order;
|
|
43
|
-
break;
|
|
44
|
-
}
|
|
45
|
-
return event.order;
|
|
29
|
+
state.order[event.order.id] = event.order;
|
|
30
|
+
changes.commit(event.order);
|
|
46
31
|
}
|
|
47
32
|
exports.OrderLoadEventHandler = OrderLoadEventHandler;
|
|
48
33
|
let OrderNewEvent = class OrderNewEvent {
|
|
@@ -57,14 +42,14 @@ OrderNewEvent = __decorate([
|
|
|
57
42
|
__metadata("design:paramtypes", [domain_1.Order, Number])
|
|
58
43
|
], OrderNewEvent);
|
|
59
44
|
exports.OrderNewEvent = OrderNewEvent;
|
|
60
|
-
function OrderNewEventHandler(event, state) {
|
|
45
|
+
function OrderNewEventHandler(event, state, changes) {
|
|
61
46
|
if (event.order.state != 'NEW') {
|
|
62
47
|
throw new Error(`Order is not new`);
|
|
63
48
|
}
|
|
64
49
|
event.order.createdAt = event.timestamp;
|
|
65
50
|
event.order.timestamp = event.timestamp;
|
|
66
|
-
state.order
|
|
67
|
-
|
|
51
|
+
state.order[event.order.id] = event.order;
|
|
52
|
+
changes.commit(event.order);
|
|
68
53
|
}
|
|
69
54
|
exports.OrderNewEventHandler = OrderNewEventHandler;
|
|
70
55
|
let OrderPendingEvent = class OrderPendingEvent {
|
|
@@ -79,17 +64,17 @@ OrderPendingEvent = __decorate([
|
|
|
79
64
|
__metadata("design:paramtypes", [String, Number])
|
|
80
65
|
], OrderPendingEvent);
|
|
81
66
|
exports.OrderPendingEvent = OrderPendingEvent;
|
|
82
|
-
function OrderPendingEventHandler(event, state) {
|
|
67
|
+
function OrderPendingEventHandler(event, state, changes) {
|
|
83
68
|
if (!(event.id in state.order.pending)) {
|
|
84
69
|
throw new Error(`Trying to patch unknown order: ${event.id}`);
|
|
85
70
|
}
|
|
86
|
-
const order = state.order
|
|
71
|
+
const order = state.order[event.id];
|
|
87
72
|
if (order.state != 'NEW') {
|
|
88
73
|
throw new Error(`Order is not new`);
|
|
89
74
|
}
|
|
90
75
|
order.state = 'PENDING';
|
|
91
76
|
order.timestamp = event.timestamp;
|
|
92
|
-
|
|
77
|
+
changes.commit(order);
|
|
93
78
|
}
|
|
94
79
|
exports.OrderPendingEventHandler = OrderPendingEventHandler;
|
|
95
80
|
let OrderFilledEvent = class OrderFilledEvent {
|
|
@@ -105,11 +90,11 @@ OrderFilledEvent = __decorate([
|
|
|
105
90
|
__metadata("design:paramtypes", [String, Number, Number])
|
|
106
91
|
], OrderFilledEvent);
|
|
107
92
|
exports.OrderFilledEvent = OrderFilledEvent;
|
|
108
|
-
function OrderFilledEventHandler(event, state) {
|
|
109
|
-
if (!(event.id in state.order
|
|
93
|
+
function OrderFilledEventHandler(event, state, changes) {
|
|
94
|
+
if (!(event.id in state.order)) {
|
|
110
95
|
throw new Error(`Trying to patch unknown order: ${event.id}`);
|
|
111
96
|
}
|
|
112
|
-
const order = state.order
|
|
97
|
+
const order = state.order[event.id];
|
|
113
98
|
if (order.state != 'PENDING' && order.state != 'CANCELING') {
|
|
114
99
|
throw new Error('Order is not pending');
|
|
115
100
|
}
|
|
@@ -117,9 +102,7 @@ function OrderFilledEventHandler(event, state) {
|
|
|
117
102
|
order.timestamp = event.timestamp;
|
|
118
103
|
order.quantityExecuted = order.quantity;
|
|
119
104
|
order.averageExecutionRate = event.averageExecutionRate;
|
|
120
|
-
|
|
121
|
-
state.order.filled[event.id] = order;
|
|
122
|
-
return order;
|
|
105
|
+
changes.commit(order);
|
|
123
106
|
}
|
|
124
107
|
exports.OrderFilledEventHandler = OrderFilledEventHandler;
|
|
125
108
|
let OrderCancelingEvent = class OrderCancelingEvent {
|
|
@@ -134,11 +117,11 @@ OrderCancelingEvent = __decorate([
|
|
|
134
117
|
__metadata("design:paramtypes", [String, Number])
|
|
135
118
|
], OrderCancelingEvent);
|
|
136
119
|
exports.OrderCancelingEvent = OrderCancelingEvent;
|
|
137
|
-
function OrderCancelingEventHandler(event, state) {
|
|
138
|
-
if (!(event.id in state.order
|
|
120
|
+
function OrderCancelingEventHandler(event, state, changes) {
|
|
121
|
+
if (!(event.id in state.order)) {
|
|
139
122
|
throw new Error(`Trying to patch unknown order: ${event.id}`);
|
|
140
123
|
}
|
|
141
|
-
const order = state.order
|
|
124
|
+
const order = state.order[event.id];
|
|
142
125
|
if (order.state == 'CANCELING' || order.state == 'CANCELED') {
|
|
143
126
|
return;
|
|
144
127
|
}
|
|
@@ -147,7 +130,7 @@ function OrderCancelingEventHandler(event, state) {
|
|
|
147
130
|
}
|
|
148
131
|
order.state = 'CANCELING';
|
|
149
132
|
order.timestamp = event.timestamp;
|
|
150
|
-
|
|
133
|
+
changes.commit(order);
|
|
151
134
|
}
|
|
152
135
|
exports.OrderCancelingEventHandler = OrderCancelingEventHandler;
|
|
153
136
|
let OrderCanceledEvent = class OrderCanceledEvent {
|
|
@@ -162,8 +145,8 @@ OrderCanceledEvent = __decorate([
|
|
|
162
145
|
__metadata("design:paramtypes", [String, Number])
|
|
163
146
|
], OrderCanceledEvent);
|
|
164
147
|
exports.OrderCanceledEvent = OrderCanceledEvent;
|
|
165
|
-
function OrderCanceledEventHandler(event, state) {
|
|
166
|
-
const order = state.order
|
|
148
|
+
function OrderCanceledEventHandler(event, state, changes) {
|
|
149
|
+
const order = state.order[event.id];
|
|
167
150
|
if (order.state == 'CANCELED') {
|
|
168
151
|
return;
|
|
169
152
|
}
|
|
@@ -172,9 +155,7 @@ function OrderCanceledEventHandler(event, state) {
|
|
|
172
155
|
}
|
|
173
156
|
order.state = 'CANCELED';
|
|
174
157
|
order.timestamp = event.timestamp;
|
|
175
|
-
|
|
176
|
-
state.order.canceled[event.id] = order;
|
|
177
|
-
return order;
|
|
158
|
+
changes.commit(order);
|
|
178
159
|
}
|
|
179
160
|
exports.OrderCanceledEventHandler = OrderCanceledEventHandler;
|
|
180
161
|
let OrderCancelFailedEvent = class OrderCancelFailedEvent {
|
|
@@ -189,14 +170,14 @@ OrderCancelFailedEvent = __decorate([
|
|
|
189
170
|
__metadata("design:paramtypes", [String, Number])
|
|
190
171
|
], OrderCancelFailedEvent);
|
|
191
172
|
exports.OrderCancelFailedEvent = OrderCancelFailedEvent;
|
|
192
|
-
function OrderCancelFailedEventHandler(event, state) {
|
|
193
|
-
const order = state.order
|
|
173
|
+
function OrderCancelFailedEventHandler(event, state, changes) {
|
|
174
|
+
const order = state.order[event.id];
|
|
194
175
|
if (order.state != 'CANCELING') {
|
|
195
176
|
return;
|
|
196
177
|
}
|
|
197
178
|
order.state = 'PENDING';
|
|
198
179
|
order.timestamp = event.timestamp;
|
|
199
|
-
|
|
180
|
+
changes.commit(order);
|
|
200
181
|
}
|
|
201
182
|
exports.OrderCancelFailedEventHandler = OrderCancelFailedEventHandler;
|
|
202
183
|
let OrderRejectedEvent = class OrderRejectedEvent {
|
|
@@ -211,16 +192,14 @@ OrderRejectedEvent = __decorate([
|
|
|
211
192
|
__metadata("design:paramtypes", [String, Number])
|
|
212
193
|
], OrderRejectedEvent);
|
|
213
194
|
exports.OrderRejectedEvent = OrderRejectedEvent;
|
|
214
|
-
function OrderRejectedEventHandler(event, state) {
|
|
215
|
-
const order = state.order
|
|
195
|
+
function OrderRejectedEventHandler(event, state, changes) {
|
|
196
|
+
const order = state.order[event.id];
|
|
216
197
|
if (order.state != 'NEW') {
|
|
217
198
|
throw new Error('Order is not new.');
|
|
218
199
|
}
|
|
219
200
|
order.state = 'REJECTED';
|
|
220
201
|
order.timestamp = event.timestamp;
|
|
221
|
-
|
|
222
|
-
state.order.rejected[event.id] = order;
|
|
223
|
-
return order;
|
|
202
|
+
changes.commit(order);
|
|
224
203
|
}
|
|
225
204
|
exports.OrderRejectedEventHandler = OrderRejectedEventHandler;
|
|
226
205
|
//# sourceMappingURL=store-order.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-order.event.js","sourceRoot":"","sources":["../../../src/store/event/store-order.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2C;AAE3C,yCAAqC;AAKrC,IAAa,cAAc,GAA3B,MAAa,cAAc;IAGzB,YAAqB,KAAY,EAAW,SAAoB;QAA3C,UAAK,GAAL,KAAK,CAAO;QAAW,cAAS,GAAT,SAAS,CAAW;QAFhE,SAAI,GAAG,YAAY,CAAC;IAE+C,CAAC;CACrE,CAAA;AAJY,cAAc;IAD1B,aAAK;qCAIwB,cAAK;GAHtB,cAAc,CAI1B;AAJY,wCAAc;AAM3B,SAAgB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"store-order.event.js","sourceRoot":"","sources":["../../../src/store/event/store-order.event.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const __1 = require("../");
|
|
4
3
|
const shared_1 = require("../../shared");
|
|
5
4
|
const domain_1 = require("../../domain");
|
|
6
5
|
const store_order_event_1 = require("./store-order.event");
|
|
6
|
+
const store_1 = require("../store");
|
|
7
7
|
const instrument = new domain_1.Instrument(new domain_1.Asset('btc', 'binance', 8), new domain_1.Asset('usdt', 'binance', 2), 'binance:btc-usdt');
|
|
8
8
|
describe('order load event tests', () => {
|
|
9
9
|
test('should load order to store', () => {
|
|
10
10
|
const timestamp = (0, shared_1.now)();
|
|
11
|
-
const
|
|
11
|
+
const store = new store_1.Store();
|
|
12
12
|
const order = domain_1.Order.buyMarket(instrument, 1.0);
|
|
13
13
|
order.state = 'PENDING';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
expect(Object.keys(
|
|
18
|
-
expect(
|
|
14
|
+
store.snapshot.universe.instrument[instrument.toString()] = instrument;
|
|
15
|
+
store.snapshot.subscription.instrument[instrument.toString()] = instrument;
|
|
16
|
+
store.dispatch(new store_order_event_1.OrderLoadEvent(order, timestamp));
|
|
17
|
+
expect(Object.keys(store.snapshot.order).length).toEqual(1);
|
|
18
|
+
expect(store.snapshot.order[order.id]).toEqual(order);
|
|
19
19
|
});
|
|
20
20
|
});
|
|
21
21
|
//# sourceMappingURL=store-order.event.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-order.event.spec.js","sourceRoot":"","sources":["../../../src/store/event/store-order.event.spec.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"store-order.event.spec.js","sourceRoot":"","sources":["../../../src/store/event/store-order.event.spec.ts"],"names":[],"mappings":";;AAAA,yCAAmC;AACnC,yCAAwD;AACxD,2DAAqD;AACrD,oCAAiC;AAEjC,MAAM,UAAU,GAAG,IAAI,mBAAU,CAC/B,IAAI,cAAK,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAC9B,IAAI,cAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,EAC/B,kBAAkB,CACnB,CAAC;AAEF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACtC,MAAM,SAAS,GAAG,IAAA,YAAG,GAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,cAAK,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAE/C,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;QAExB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC;QACvE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC;QAE3E,KAAK,CAAC,QAAQ,CAAC,IAAI,kCAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QAErD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { timestamp } from '../../shared';
|
|
2
2
|
import { InstrumentSelector } from '../../domain/instrument';
|
|
3
|
-
import {
|
|
4
|
-
import { State } from '../store.state';
|
|
3
|
+
import { State, StateChangeTracker } from '../store.state';
|
|
5
4
|
import { StoreEvent } from './store.event';
|
|
6
5
|
export declare class OrderbookPatchEvent implements StoreEvent {
|
|
7
6
|
readonly instrument: InstrumentSelector;
|
|
@@ -13,4 +12,4 @@ export declare class OrderbookPatchEvent implements StoreEvent {
|
|
|
13
12
|
type: string;
|
|
14
13
|
constructor(instrument: InstrumentSelector, bestAskRate: number, bestAskQuantity: number, bestBidRate: number, bestBidQuantity: number, timestamp: timestamp);
|
|
15
14
|
}
|
|
16
|
-
export declare function OrderbookPatchEventHandler(event: OrderbookPatchEvent, state: State):
|
|
15
|
+
export declare function OrderbookPatchEventHandler(event: OrderbookPatchEvent, state: State, changes: StateChangeTracker): void;
|
|
@@ -29,7 +29,7 @@ OrderbookPatchEvent = __decorate([
|
|
|
29
29
|
__metadata("design:paramtypes", [instrument_1.InstrumentSelector, Number, Number, Number, Number, Number])
|
|
30
30
|
], OrderbookPatchEvent);
|
|
31
31
|
exports.OrderbookPatchEvent = OrderbookPatchEvent;
|
|
32
|
-
function OrderbookPatchEventHandler(event, state) {
|
|
32
|
+
function OrderbookPatchEventHandler(event, state, changes) {
|
|
33
33
|
const instrumentKey = event.instrument.toString();
|
|
34
34
|
if (!(instrumentKey in state.subscription.instrument)) {
|
|
35
35
|
throw new Error(`Trying to patch unsubscribed instrument: ${instrumentKey}`);
|
|
@@ -59,7 +59,7 @@ function OrderbookPatchEventHandler(event, state) {
|
|
|
59
59
|
throw new Error('liquidated');
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
changes.commit(orderbook);
|
|
63
63
|
}
|
|
64
64
|
exports.OrderbookPatchEventHandler = OrderbookPatchEventHandler;
|
|
65
65
|
//# sourceMappingURL=store-orderbook.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-orderbook.event.js","sourceRoot":"","sources":["../../../src/store/event/store-orderbook.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2C;AAE3C,wDAA6D;AAC7D,sDAAmD;AAKnD,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAG9B,YACW,UAA8B,EAC9B,WAAmB,EACnB,eAAuB,EACvB,WAAmB,EACnB,eAAuB,EACvB,SAAoB;QALpB,eAAU,GAAV,UAAU,CAAoB;QAC9B,gBAAW,GAAX,WAAW,CAAQ;QACnB,oBAAe,GAAf,eAAe,CAAQ;QACvB,gBAAW,GAAX,WAAW,CAAQ;QACnB,oBAAe,GAAf,eAAe,CAAQ;QACvB,cAAS,GAAT,SAAS,CAAW;QAR/B,SAAI,GAAG,iBAAiB,CAAC;IAStB,CAAC;CACL,CAAA;AAXY,mBAAmB;IAD/B,aAAK;qCAKmB,+BAAkB;GAJ9B,mBAAmB,CAW/B;AAXY,kDAAmB;AAahC,SAAgB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"store-orderbook.event.js","sourceRoot":"","sources":["../../../src/store/event/store-orderbook.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2C;AAE3C,wDAA6D;AAC7D,sDAAmD;AAKnD,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAG9B,YACW,UAA8B,EAC9B,WAAmB,EACnB,eAAuB,EACvB,WAAmB,EACnB,eAAuB,EACvB,SAAoB;QALpB,eAAU,GAAV,UAAU,CAAoB;QAC9B,gBAAW,GAAX,WAAW,CAAQ;QACnB,oBAAe,GAAf,eAAe,CAAQ;QACvB,gBAAW,GAAX,WAAW,CAAQ;QACnB,oBAAe,GAAf,eAAe,CAAQ;QACvB,cAAS,GAAT,SAAS,CAAW;QAR/B,SAAI,GAAG,iBAAiB,CAAC;IAStB,CAAC;CACL,CAAA;AAXY,mBAAmB;IAD/B,aAAK;qCAKmB,+BAAkB;GAJ9B,mBAAmB,CAW/B;AAXY,kDAAmB;AAahC,SAAgB,0BAA0B,CACxC,KAA0B,EAC1B,KAAY,EACZ,OAA2B;IAE3B,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAElD,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;QACrD,MAAM,IAAI,KAAK,CAAC,4CAA4C,aAAa,EAAE,CAAC,CAAC;KAC9E;IAED,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAE/C,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAE5D,SAAS,GAAG,IAAI,qBAAS,CAAC,UAAU,CAAC,CAAC;QAEtC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;KAC5C;IAED,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAElC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5E,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACnF,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5E,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAEnF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEnE,IAAI,KAAK,EAAE;QACT,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACpD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE;gBAC1D,SAAS;aACV;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;YAEhF,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAC7B;QAED,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;KACF;IAED,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAhDD,gEAgDC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { timestamp } from '../../shared';
|
|
2
2
|
import { Position, Instrument, PositionMode } from '../../domain';
|
|
3
|
-
import { State } from '../store.state';
|
|
3
|
+
import { State, StateChangeTracker } from '../store.state';
|
|
4
4
|
import { StoreEvent } from './store.event';
|
|
5
5
|
export declare class PositionLoadEvent implements StoreEvent {
|
|
6
6
|
readonly position: Position;
|
|
@@ -8,7 +8,7 @@ export declare class PositionLoadEvent implements StoreEvent {
|
|
|
8
8
|
type: string;
|
|
9
9
|
constructor(position: Position, timestamp: timestamp);
|
|
10
10
|
}
|
|
11
|
-
export declare function PositionLoadEventHandler(event: PositionLoadEvent, state: State): Position;
|
|
11
|
+
export declare function PositionLoadEventHandler(event: PositionLoadEvent, state: State, changes: StateChangeTracker): Position;
|
|
12
12
|
export declare class PositionPatchEvent implements StoreEvent {
|
|
13
13
|
readonly id: string;
|
|
14
14
|
readonly instrument: Instrument;
|
|
@@ -20,4 +20,4 @@ export declare class PositionPatchEvent implements StoreEvent {
|
|
|
20
20
|
type: string;
|
|
21
21
|
constructor(id: string, instrument: Instrument, rate: number, size: number, leverage: number, mode: PositionMode, timestamp: timestamp);
|
|
22
22
|
}
|
|
23
|
-
export declare function PositionPatchEventHandler(event: PositionPatchEvent, state: State):
|
|
23
|
+
export declare function PositionPatchEventHandler(event: PositionPatchEvent, state: State, changes: StateChangeTracker): void;
|
|
@@ -24,7 +24,7 @@ PositionLoadEvent = __decorate([
|
|
|
24
24
|
__metadata("design:paramtypes", [domain_1.Position, Number])
|
|
25
25
|
], PositionLoadEvent);
|
|
26
26
|
exports.PositionLoadEvent = PositionLoadEvent;
|
|
27
|
-
function PositionLoadEventHandler(event, state) {
|
|
27
|
+
function PositionLoadEventHandler(event, state, changes) {
|
|
28
28
|
if (event.position.instrument.toString() in state.subscription.instrument ||
|
|
29
29
|
event.position.size == 0) {
|
|
30
30
|
return;
|
|
@@ -57,7 +57,7 @@ PositionPatchEvent = __decorate([
|
|
|
57
57
|
__metadata("design:paramtypes", [String, domain_1.Instrument, Number, Number, Number, String, Number])
|
|
58
58
|
], PositionPatchEvent);
|
|
59
59
|
exports.PositionPatchEvent = PositionPatchEvent;
|
|
60
|
-
function PositionPatchEventHandler(event, state) {
|
|
60
|
+
function PositionPatchEventHandler(event, state, changes) {
|
|
61
61
|
if (!(event.instrument.toString() in state.subscription.instrument)) {
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
@@ -74,9 +74,9 @@ function PositionPatchEventHandler(event, state) {
|
|
|
74
74
|
const rate = position.size >= 0 ? orderbook.bestBidRate : orderbook.bestAskRate;
|
|
75
75
|
position.calculatePnL(rate);
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
changes.commit(position);
|
|
78
|
+
changes.commit(balance);
|
|
78
79
|
}
|
|
79
|
-
return;
|
|
80
80
|
}
|
|
81
81
|
if (!position) {
|
|
82
82
|
position = new domain_1.Position(event.id, event.instrument);
|
|
@@ -90,7 +90,8 @@ function PositionPatchEventHandler(event, state) {
|
|
|
90
90
|
const rate = position.size >= 0 ? orderbook.bestBidRate : orderbook.bestAskRate;
|
|
91
91
|
position.calculatePnL(rate);
|
|
92
92
|
}
|
|
93
|
-
|
|
93
|
+
changes.commit(position);
|
|
94
|
+
changes.commit(balance);
|
|
94
95
|
}
|
|
95
96
|
exports.PositionPatchEventHandler = PositionPatchEventHandler;
|
|
96
97
|
//# sourceMappingURL=store-position.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-position.event.js","sourceRoot":"","sources":["../../../src/store/event/store-position.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2C;AAE3C,yCAAkE;AAKlE,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAG5B,YAAqB,QAAkB,EAAW,SAAoB;QAAjD,aAAQ,GAAR,QAAQ,CAAU;QAAW,cAAS,GAAT,SAAS,CAAW;QAFtE,SAAI,GAAG,eAAe,CAAC;IAEkD,CAAC;CAC3E,CAAA;AAJY,iBAAiB;IAD7B,aAAK;qCAI2B,iBAAQ;GAH5B,iBAAiB,CAI7B;AAJY,8CAAiB;AAM9B,SAAgB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"store-position.event.js","sourceRoot":"","sources":["../../../src/store/event/store-position.event.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { timestamp } from '../../shared';
|
|
2
|
-
import { Trade } from '../../domain';
|
|
3
2
|
import { InstrumentSelector } from '../../domain/instrument';
|
|
4
|
-
import { State } from '../store.state';
|
|
3
|
+
import { State, StateChangeTracker } from '../store.state';
|
|
5
4
|
import { StoreEvent } from './store.event';
|
|
6
5
|
export declare class TradePatchEvent implements StoreEvent {
|
|
7
6
|
readonly instrument: InstrumentSelector;
|
|
@@ -11,4 +10,4 @@ export declare class TradePatchEvent implements StoreEvent {
|
|
|
11
10
|
type: string;
|
|
12
11
|
constructor(instrument: InstrumentSelector, rate: number, quantity: number, timestamp: timestamp);
|
|
13
12
|
}
|
|
14
|
-
export declare function TradePatchEventHandler(event: TradePatchEvent, state: State):
|
|
13
|
+
export declare function TradePatchEventHandler(event: TradePatchEvent, state: State, changes: StateChangeTracker): void;
|
|
@@ -27,7 +27,7 @@ TradePatchEvent = __decorate([
|
|
|
27
27
|
__metadata("design:paramtypes", [instrument_1.InstrumentSelector, Number, Number, Number])
|
|
28
28
|
], TradePatchEvent);
|
|
29
29
|
exports.TradePatchEvent = TradePatchEvent;
|
|
30
|
-
function TradePatchEventHandler(event, state) {
|
|
30
|
+
function TradePatchEventHandler(event, state, changes) {
|
|
31
31
|
const instrumentKey = event.instrument.toString();
|
|
32
32
|
if (!(instrumentKey in state.subscription.instrument)) {
|
|
33
33
|
throw new Error(`Trying to patch unsubscribed instrument: ${instrumentKey}`);
|
|
@@ -41,7 +41,7 @@ function TradePatchEventHandler(event, state) {
|
|
|
41
41
|
trade.timestamp = event.timestamp;
|
|
42
42
|
trade.rate = trade.instrument.quote.fixed(event.rate);
|
|
43
43
|
trade.quantity = trade.instrument.base.fixed(event.quantity);
|
|
44
|
-
|
|
44
|
+
changes.commit(trade);
|
|
45
45
|
}
|
|
46
46
|
exports.TradePatchEventHandler = TradePatchEventHandler;
|
|
47
47
|
//# sourceMappingURL=store-trade.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-trade.event.js","sourceRoot":"","sources":["../../../src/store/event/store-trade.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2C;AAE3C,yCAAqC;AACrC,wDAA6D;AAQ7D,IAAa,eAAe,GAA5B,MAAa,eAAe;IAG1B,YACW,UAA8B,EAC9B,IAAY,EACZ,QAAgB,EAChB,SAAoB;QAHpB,eAAU,GAAV,UAAU,CAAoB;QAC9B,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAW;QAN/B,SAAI,GAAG,aAAa,CAAC;IAOlB,CAAC;CACL,CAAA;AATY,eAAe;IAD3B,aAAK;qCAKmB,+BAAkB;GAJ9B,eAAe,CAS3B;AATY,0CAAe;AAe5B,SAAgB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"store-trade.event.js","sourceRoot":"","sources":["../../../src/store/event/store-trade.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2C;AAE3C,yCAAqC;AACrC,wDAA6D;AAQ7D,IAAa,eAAe,GAA5B,MAAa,eAAe;IAG1B,YACW,UAA8B,EAC9B,IAAY,EACZ,QAAgB,EAChB,SAAoB;QAHpB,eAAU,GAAV,UAAU,CAAoB;QAC9B,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAW;QAN/B,SAAI,GAAG,aAAa,CAAC;IAOlB,CAAC;CACL,CAAA;AATY,eAAe;IAD3B,aAAK;qCAKmB,+BAAkB;GAJ9B,eAAe,CAS3B;AATY,0CAAe;AAe5B,SAAgB,sBAAsB,CACpC,KAAsB,EACtB,KAAY,EACZ,OAA2B;IAE3B,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAElD,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;QACrD,MAAM,IAAI,KAAK,CAAC,4CAA4C,aAAa,EAAE,CAAC,CAAC;KAC9E;IAED,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE;QACV,KAAK,GAAG,IAAI,cAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;QAE5D,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;KACpC;IAED,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAElC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAzBD,wDAyBC"}
|
|
@@ -2,42 +2,41 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const domain_1 = require("../../domain");
|
|
4
4
|
const _1 = require(".");
|
|
5
|
-
const store_state_1 = require("../store.state");
|
|
6
5
|
const shared_1 = require("../../shared");
|
|
6
|
+
const __1 = require("..");
|
|
7
7
|
const instrument = new domain_1.Instrument(new domain_1.Asset('btc', 'binance', 8), new domain_1.Asset('usdt', 'binance', 2), 'binance:btc-usdt');
|
|
8
8
|
describe('trade patch event tests', () => {
|
|
9
9
|
test('should create a new trade object and patch a store', () => {
|
|
10
10
|
const timestamp = (0, shared_1.now)();
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const trade = state.trade[instrument.toString()];
|
|
11
|
+
const store = new __1.Store();
|
|
12
|
+
store.snapshot.universe.instrument[instrument.toString()] = instrument;
|
|
13
|
+
store.snapshot.subscription.instrument[instrument.toString()] = instrument;
|
|
14
|
+
store.dispatch(new _1.TradePatchEvent(instrument, 1000, 0.1, timestamp));
|
|
15
|
+
const trade = store.snapshot.trade[instrument.toString()];
|
|
17
16
|
expect(trade.timestamp).toEqual(timestamp);
|
|
18
17
|
expect(trade.instrument.toString()).toEqual(trade.instrument.toString());
|
|
19
18
|
expect(trade.rate).toEqual(1000);
|
|
20
19
|
expect(trade.quantity).toEqual(0.1);
|
|
21
|
-
expect(
|
|
20
|
+
expect(store.snapshot.timestamp).toEqual(timestamp);
|
|
22
21
|
});
|
|
23
22
|
test('should use the existing instance of trade when patching a store', () => {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
const store = new __1.Store();
|
|
24
|
+
store.snapshot.universe.instrument[instrument.toString()] = instrument;
|
|
25
|
+
store.snapshot.subscription.instrument[instrument.toString()] = instrument;
|
|
26
|
+
store.dispatch(new _1.TradePatchEvent(instrument, 1000, 0.1, (0, shared_1.now)()));
|
|
28
27
|
const timestamp = (0, shared_1.now)();
|
|
29
|
-
const trade =
|
|
30
|
-
|
|
28
|
+
const trade = store.snapshot.trade[instrument.toString()];
|
|
29
|
+
store.dispatch(new _1.TradePatchEvent(instrument, 2000, 0.2, (0, shared_1.now)()));
|
|
31
30
|
expect(trade.timestamp).toEqual(timestamp);
|
|
32
31
|
expect(trade.instrument.toString()).toEqual(instrument.toString());
|
|
33
32
|
expect(trade.rate).toEqual(2000);
|
|
34
33
|
expect(trade.quantity).toEqual(0.2);
|
|
35
|
-
expect(
|
|
34
|
+
expect(store.snapshot.timestamp).toEqual(timestamp);
|
|
36
35
|
});
|
|
37
36
|
test('should throw exception when patching unsubscribed instrument', () => {
|
|
37
|
+
const store = new __1.Store();
|
|
38
38
|
const fn = () => {
|
|
39
|
-
|
|
40
|
-
(0, _1.TradePatchEventHandler)(event, new store_state_1.State());
|
|
39
|
+
store.dispatch(new _1.TradePatchEvent(instrument, 1000, 0.1, (0, shared_1.now)()));
|
|
41
40
|
};
|
|
42
41
|
expect(fn).toThrow(Error);
|
|
43
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-trade.event.spec.js","sourceRoot":"","sources":["../../../src/store/event/store-trade.event.spec.ts"],"names":[],"mappings":";;AAAA,yCAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"store-trade.event.spec.js","sourceRoot":"","sources":["../../../src/store/event/store-trade.event.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/store/store.d.ts
CHANGED
|
@@ -1,35 +1,38 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import { State } from './store.state';
|
|
2
|
+
import { State, StateChangeTracker } from './store.state';
|
|
3
3
|
import { Component } from '../domain';
|
|
4
4
|
import { StoreEvent } from './event/store.event';
|
|
5
5
|
import { Topic } from '../shared/topic';
|
|
6
6
|
import { TradePatchEvent } from './event/store-trade.event';
|
|
7
7
|
import { BalanceFreezEvent, BalancePatchEvent, BalanceTransactEvent, BalanceUnfreezEvent, CandleEvent, InstrumentPatchEvent, InstrumentSubscriptionEvent, OrderbookPatchEvent, OrderCanceledEvent, OrderCancelFailedEvent, OrderCancelingEvent, OrderFilledEvent, OrderLoadEvent, OrderNewEvent, OrderPendingEvent, OrderRejectedEvent, PositionLoadEvent, PositionPatchEvent } from './event';
|
|
8
|
-
export declare class Store extends Topic<StoreEvent, any> {
|
|
8
|
+
export declare class Store extends Topic<StoreEvent, any> implements StateChangeTracker {
|
|
9
|
+
private readonly pendingChanges;
|
|
9
10
|
private readonly changes;
|
|
10
11
|
private readonly state;
|
|
11
12
|
get state$(): Observable<State>;
|
|
12
13
|
get changes$(): Observable<Component>;
|
|
13
14
|
get snapshot(): State;
|
|
14
15
|
dispatch(...events: StoreEvent[]): void;
|
|
16
|
+
commit(component: Component): void;
|
|
17
|
+
commitPendingChanges(): void;
|
|
15
18
|
dispose(): void;
|
|
16
|
-
onInstrumentPatch(event: InstrumentPatchEvent):
|
|
17
|
-
onInstrumentSubscription(event: InstrumentSubscriptionEvent):
|
|
18
|
-
onBalancePatch(event: BalancePatchEvent):
|
|
19
|
-
onBalanceTransact(event: BalanceTransactEvent):
|
|
20
|
-
onBalanceFreez(event: BalanceFreezEvent):
|
|
21
|
-
onBalanceUnfreez(event: BalanceUnfreezEvent):
|
|
22
|
-
onOrderLoad(event: OrderLoadEvent):
|
|
23
|
-
onOrderNew(event: OrderNewEvent):
|
|
24
|
-
onOrderPending(event: OrderPendingEvent):
|
|
25
|
-
onOrderFilled(event: OrderFilledEvent):
|
|
26
|
-
onOrderCanceling(event: OrderCancelingEvent):
|
|
27
|
-
onOrderCanceled(event: OrderCanceledEvent):
|
|
28
|
-
onOrderCancelFailed(event: OrderCancelFailedEvent):
|
|
29
|
-
onOrderRejected(event: OrderRejectedEvent):
|
|
30
|
-
onOrderbookPatch(event: OrderbookPatchEvent):
|
|
19
|
+
onInstrumentPatch(event: InstrumentPatchEvent): void;
|
|
20
|
+
onInstrumentSubscription(event: InstrumentSubscriptionEvent): void;
|
|
21
|
+
onBalancePatch(event: BalancePatchEvent): void;
|
|
22
|
+
onBalanceTransact(event: BalanceTransactEvent): void;
|
|
23
|
+
onBalanceFreez(event: BalanceFreezEvent): void;
|
|
24
|
+
onBalanceUnfreez(event: BalanceUnfreezEvent): void;
|
|
25
|
+
onOrderLoad(event: OrderLoadEvent): void;
|
|
26
|
+
onOrderNew(event: OrderNewEvent): void;
|
|
27
|
+
onOrderPending(event: OrderPendingEvent): void;
|
|
28
|
+
onOrderFilled(event: OrderFilledEvent): void;
|
|
29
|
+
onOrderCanceling(event: OrderCancelingEvent): void;
|
|
30
|
+
onOrderCanceled(event: OrderCanceledEvent): void;
|
|
31
|
+
onOrderCancelFailed(event: OrderCancelFailedEvent): void;
|
|
32
|
+
onOrderRejected(event: OrderRejectedEvent): void;
|
|
33
|
+
onOrderbookPatch(event: OrderbookPatchEvent): void;
|
|
31
34
|
onPositionLoad(event: PositionLoadEvent): import("../domain").Position;
|
|
32
|
-
onPositionPatch(event: PositionPatchEvent):
|
|
33
|
-
onTradePatch(event: TradePatchEvent):
|
|
34
|
-
onCandle(event: CandleEvent):
|
|
35
|
+
onPositionPatch(event: PositionPatchEvent): void;
|
|
36
|
+
onTradePatch(event: TradePatchEvent): void;
|
|
37
|
+
onCandle(event: CandleEvent): void;
|
|
35
38
|
}
|