@quantform/core 0.3.257 → 0.3.263
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/dist/adapter/adapter-aggregate.d.ts +4 -5
- package/dist/adapter/adapter-aggregate.js +50 -21
- package/dist/adapter/adapter-aggregate.js.map +1 -1
- package/dist/adapter/adapter.d.ts +30 -7
- package/dist/adapter/adapter.js +29 -2
- package/dist/adapter/adapter.js.map +1 -1
- package/dist/adapter/backtester/backtester-adapter.d.ts +13 -8
- package/dist/adapter/backtester/backtester-adapter.js +25 -32
- package/dist/adapter/backtester/backtester-adapter.js.map +1 -1
- package/dist/adapter/index.d.ts +0 -1
- package/dist/adapter/index.js +0 -1
- package/dist/adapter/index.js.map +1 -1
- package/dist/adapter/paper/paper-adapter.d.ts +10 -7
- package/dist/adapter/paper/paper-adapter.js +24 -42
- package/dist/adapter/paper/paper-adapter.js.map +1 -1
- package/dist/adapter/paper/paper-adapter.spec.js +25 -7
- package/dist/adapter/paper/paper-adapter.spec.js.map +1 -1
- package/dist/bootstrap.js +1 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/ipc.js +11 -5
- package/dist/ipc.js.map +1 -1
- package/dist/ipc.spec.js +4 -57
- package/dist/ipc.spec.js.map +1 -1
- package/dist/session/session.d.ts +4 -7
- package/dist/session/session.js +9 -19
- package/dist/session/session.js.map +1 -1
- package/dist/store/event/store-order.event.js +11 -32
- package/dist/store/event/store-order.event.js.map +1 -1
- package/dist/store/event/store-order.event.spec.js +2 -2
- package/dist/store/event/store-order.event.spec.js.map +1 -1
- package/dist/store/store.state.d.ts +1 -6
- package/dist/store/store.state.js +1 -6
- package/dist/store/store.state.js.map +1 -1
- package/dist/tests/backtester-adapter.spec.js +7 -24
- package/dist/tests/backtester-adapter.spec.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/adapter/adapter-aggregate.ts +55 -75
- package/src/adapter/adapter.ts +83 -5
- package/src/adapter/backtester/backtester-adapter.ts +39 -19
- package/src/adapter/index.ts +0 -1
- package/src/adapter/paper/paper-adapter.spec.ts +42 -7
- package/src/adapter/paper/paper-adapter.ts +31 -23
- package/src/bootstrap.ts +1 -1
- package/src/ipc.spec.ts +7 -45
- package/src/ipc.ts +6 -6
- package/src/session/session.ts +30 -45
- package/src/store/event/store-order.event.spec.ts +2 -2
- package/src/store/event/store-order.event.ts +11 -38
- package/src/store/store.state.ts +1 -12
- package/src/tests/backtester-adapter.spec.ts +6 -12
- package/dist/adapter/adapter.event.d.ts +0 -43
- package/dist/adapter/adapter.event.js +0 -104
- package/dist/adapter/adapter.event.js.map +0 -1
- package/src/adapter/adapter.event.ts +0 -64
package/src/session/session.ts
CHANGED
|
@@ -146,19 +146,29 @@ export class Session {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
/**
|
|
149
|
-
* Opens
|
|
149
|
+
* Opens a new order.
|
|
150
150
|
* Example:
|
|
151
151
|
* session.open(Order.buyMarket(instrument, 100));
|
|
152
152
|
*/
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
open(order: Order): Observable<Order> {
|
|
154
|
+
return from(this.aggregate.open(order)).pipe(
|
|
155
|
+
switchMap(it =>
|
|
156
|
+
this.store.changes$.pipe(filter(it => it instanceof Order && it.id == it.id))
|
|
157
|
+
),
|
|
158
|
+
map(it => it as Order)
|
|
159
|
+
);
|
|
155
160
|
}
|
|
156
161
|
|
|
157
162
|
/**
|
|
158
163
|
* Cancels specific order.
|
|
159
164
|
*/
|
|
160
|
-
cancel(order: Order):
|
|
161
|
-
return this.aggregate.cancel(order)
|
|
165
|
+
cancel(order: Order): Observable<Order> {
|
|
166
|
+
return from(this.aggregate.cancel(order)).pipe(
|
|
167
|
+
switchMap(it =>
|
|
168
|
+
this.store.changes$.pipe(filter(it => it instanceof Order && it.id == it.id))
|
|
169
|
+
),
|
|
170
|
+
map(it => it as Order)
|
|
171
|
+
);
|
|
162
172
|
}
|
|
163
173
|
|
|
164
174
|
/**
|
|
@@ -261,57 +271,30 @@ export class Session {
|
|
|
261
271
|
);
|
|
262
272
|
}
|
|
263
273
|
|
|
264
|
-
|
|
265
|
-
orders: Order[],
|
|
266
|
-
states: OrderState[],
|
|
267
|
-
selector?: InstrumentSelector
|
|
268
|
-
): Observable<Order[]> {
|
|
274
|
+
orders(selector: InstrumentSelector, states?: OrderState[]): Observable<Order[]> {
|
|
269
275
|
this.subscribe([selector]);
|
|
270
276
|
|
|
271
277
|
return this.store.changes$.pipe(
|
|
272
278
|
filter(
|
|
273
279
|
it =>
|
|
274
280
|
it instanceof Order &&
|
|
275
|
-
|
|
276
|
-
(states.
|
|
281
|
+
it.instrument.toString() == selector.toString() &&
|
|
282
|
+
(!states || states.includes(it.state))
|
|
277
283
|
),
|
|
278
|
-
map(() =>
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
284
|
+
map(() => this.store.snapshot.order),
|
|
285
|
+
startWith(this.store.snapshot.order),
|
|
286
|
+
map(it =>
|
|
287
|
+
Object.values(it)
|
|
288
|
+
.filter(
|
|
289
|
+
it =>
|
|
290
|
+
it.instrument.toString() == selector.toString() &&
|
|
291
|
+
(states ? states.includes(it.state) : true)
|
|
292
|
+
)
|
|
286
293
|
.sort((lhs, rhs) => rhs.createdAt - lhs.createdAt)
|
|
287
294
|
)
|
|
288
295
|
);
|
|
289
296
|
}
|
|
290
297
|
|
|
291
|
-
pending(selector?: InstrumentSelector): Observable<Order[]> {
|
|
292
|
-
return this.ordersOf(
|
|
293
|
-
Object.values(this.store.snapshot.order.pending),
|
|
294
|
-
['PENDING', 'NEW'],
|
|
295
|
-
selector
|
|
296
|
-
);
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
filled(selector?: InstrumentSelector): Observable<Order[]> {
|
|
300
|
-
return this.ordersOf(
|
|
301
|
-
Object.values(this.store.snapshot.order.filled),
|
|
302
|
-
['FILLED'],
|
|
303
|
-
selector
|
|
304
|
-
);
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
canceled(selector?: InstrumentSelector): Observable<Order[]> {
|
|
308
|
-
return this.ordersOf(
|
|
309
|
-
Object.values(this.store.snapshot.order.canceled),
|
|
310
|
-
['CANCELING', 'CANCELED'],
|
|
311
|
-
selector
|
|
312
|
-
);
|
|
313
|
-
}
|
|
314
|
-
|
|
315
298
|
balance(selector: AssetSelector): Observable<Balance> {
|
|
316
299
|
return this.store.changes$.pipe(
|
|
317
300
|
startWith(this.store.snapshot.balance[selector.toString()]),
|
|
@@ -332,7 +315,9 @@ export class Session {
|
|
|
332
315
|
return this.store.changes$.pipe(
|
|
333
316
|
startWith(this.store.snapshot.universe.instrument[selector.toString()]),
|
|
334
317
|
filter(it => it instanceof Instrument && it.toString() == selector.toString()),
|
|
335
|
-
switchMap(() =>
|
|
318
|
+
switchMap(() =>
|
|
319
|
+
from(this.aggregate.history({ instrument: selector, timeframe, length }))
|
|
320
|
+
),
|
|
336
321
|
take(1),
|
|
337
322
|
shareReplay(),
|
|
338
323
|
mergeMap(it => it)
|
|
@@ -22,7 +22,7 @@ describe('order load event tests', () => {
|
|
|
22
22
|
|
|
23
23
|
store.dispatch(new OrderLoadEvent(order, timestamp));
|
|
24
24
|
|
|
25
|
-
expect(Object.keys(store.snapshot.order
|
|
26
|
-
expect(store.snapshot.order
|
|
25
|
+
expect(Object.keys(store.snapshot.order).length).toEqual(1);
|
|
26
|
+
expect(store.snapshot.order[order.id]).toEqual(order);
|
|
27
27
|
});
|
|
28
28
|
});
|
|
@@ -18,22 +18,7 @@ export function OrderLoadEventHandler(
|
|
|
18
18
|
) {
|
|
19
19
|
event.order.timestamp = event.timestamp;
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
case 'NEW':
|
|
23
|
-
case 'PENDING':
|
|
24
|
-
state.order.pending[event.order.id] = event.order;
|
|
25
|
-
break;
|
|
26
|
-
case 'FILLED':
|
|
27
|
-
state.order.filled[event.order.id] = event.order;
|
|
28
|
-
break;
|
|
29
|
-
case 'CANCELING':
|
|
30
|
-
case 'CANCELED':
|
|
31
|
-
state.order.canceled[event.order.id] = event.order;
|
|
32
|
-
break;
|
|
33
|
-
case 'REJECTED':
|
|
34
|
-
state.order.rejected[event.order.id] = event.order;
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
21
|
+
state.order[event.order.id] = event.order;
|
|
37
22
|
|
|
38
23
|
changes.commit(event.order);
|
|
39
24
|
}
|
|
@@ -57,7 +42,7 @@ export function OrderNewEventHandler(
|
|
|
57
42
|
event.order.createdAt = event.timestamp;
|
|
58
43
|
event.order.timestamp = event.timestamp;
|
|
59
44
|
|
|
60
|
-
state.order
|
|
45
|
+
state.order[event.order.id] = event.order;
|
|
61
46
|
|
|
62
47
|
changes.commit(event.order);
|
|
63
48
|
}
|
|
@@ -74,11 +59,11 @@ export function OrderPendingEventHandler(
|
|
|
74
59
|
state: State,
|
|
75
60
|
changes: StateChangeTracker
|
|
76
61
|
) {
|
|
77
|
-
if (!(event.id in state.order
|
|
62
|
+
if (!(event.id in state.order)) {
|
|
78
63
|
throw new Error(`Trying to patch unknown order: ${event.id}`);
|
|
79
64
|
}
|
|
80
65
|
|
|
81
|
-
const order = state.order
|
|
66
|
+
const order = state.order[event.id];
|
|
82
67
|
|
|
83
68
|
if (order.state != 'NEW') {
|
|
84
69
|
throw new Error(`Order is not new`);
|
|
@@ -106,11 +91,11 @@ export function OrderFilledEventHandler(
|
|
|
106
91
|
state: State,
|
|
107
92
|
changes: StateChangeTracker
|
|
108
93
|
) {
|
|
109
|
-
if (!(event.id in state.order
|
|
94
|
+
if (!(event.id in state.order)) {
|
|
110
95
|
throw new Error(`Trying to patch unknown order: ${event.id}`);
|
|
111
96
|
}
|
|
112
97
|
|
|
113
|
-
const order = state.order
|
|
98
|
+
const order = state.order[event.id];
|
|
114
99
|
|
|
115
100
|
if (order.state != 'PENDING' && order.state != 'CANCELING') {
|
|
116
101
|
throw new Error('Order is not pending');
|
|
@@ -121,10 +106,6 @@ export function OrderFilledEventHandler(
|
|
|
121
106
|
order.quantityExecuted = order.quantity;
|
|
122
107
|
order.averageExecutionRate = event.averageExecutionRate;
|
|
123
108
|
|
|
124
|
-
delete state.order.pending[event.id];
|
|
125
|
-
|
|
126
|
-
state.order.filled[event.id] = order;
|
|
127
|
-
|
|
128
109
|
changes.commit(order);
|
|
129
110
|
}
|
|
130
111
|
|
|
@@ -140,11 +121,11 @@ export function OrderCancelingEventHandler(
|
|
|
140
121
|
state: State,
|
|
141
122
|
changes: StateChangeTracker
|
|
142
123
|
) {
|
|
143
|
-
if (!(event.id in state.order
|
|
124
|
+
if (!(event.id in state.order)) {
|
|
144
125
|
throw new Error(`Trying to patch unknown order: ${event.id}`);
|
|
145
126
|
}
|
|
146
127
|
|
|
147
|
-
const order = state.order
|
|
128
|
+
const order = state.order[event.id];
|
|
148
129
|
|
|
149
130
|
if (order.state == 'CANCELING' || order.state == 'CANCELED') {
|
|
150
131
|
return;
|
|
@@ -172,7 +153,7 @@ export function OrderCanceledEventHandler(
|
|
|
172
153
|
state: State,
|
|
173
154
|
changes: StateChangeTracker
|
|
174
155
|
) {
|
|
175
|
-
const order = state.order
|
|
156
|
+
const order = state.order[event.id];
|
|
176
157
|
|
|
177
158
|
if (order.state == 'CANCELED') {
|
|
178
159
|
return;
|
|
@@ -185,10 +166,6 @@ export function OrderCanceledEventHandler(
|
|
|
185
166
|
order.state = 'CANCELED';
|
|
186
167
|
order.timestamp = event.timestamp;
|
|
187
168
|
|
|
188
|
-
delete state.order.pending[event.id];
|
|
189
|
-
|
|
190
|
-
state.order.canceled[event.id] = order;
|
|
191
|
-
|
|
192
169
|
changes.commit(order);
|
|
193
170
|
}
|
|
194
171
|
|
|
@@ -204,7 +181,7 @@ export function OrderCancelFailedEventHandler(
|
|
|
204
181
|
state: State,
|
|
205
182
|
changes: StateChangeTracker
|
|
206
183
|
) {
|
|
207
|
-
const order = state.order
|
|
184
|
+
const order = state.order[event.id];
|
|
208
185
|
|
|
209
186
|
if (order.state != 'CANCELING') {
|
|
210
187
|
return;
|
|
@@ -228,7 +205,7 @@ export function OrderRejectedEventHandler(
|
|
|
228
205
|
state: State,
|
|
229
206
|
changes: StateChangeTracker
|
|
230
207
|
) {
|
|
231
|
-
const order = state.order
|
|
208
|
+
const order = state.order[event.id];
|
|
232
209
|
|
|
233
210
|
if (order.state != 'NEW') {
|
|
234
211
|
throw new Error('Order is not new.');
|
|
@@ -237,9 +214,5 @@ export function OrderRejectedEventHandler(
|
|
|
237
214
|
order.state = 'REJECTED';
|
|
238
215
|
order.timestamp = event.timestamp;
|
|
239
216
|
|
|
240
|
-
delete state.order.pending[event.id];
|
|
241
|
-
|
|
242
|
-
state.order.rejected[event.id] = order;
|
|
243
|
-
|
|
244
217
|
changes.commit(order);
|
|
245
218
|
}
|
package/src/store/store.state.ts
CHANGED
|
@@ -39,16 +39,5 @@ export class State {
|
|
|
39
39
|
trade: Record<string, Trade> = {};
|
|
40
40
|
orderbook: Record<string, Orderbook> = {};
|
|
41
41
|
balance: Record<string, Balance> = {};
|
|
42
|
-
|
|
43
|
-
order: {
|
|
44
|
-
pending: Record<string, Order>;
|
|
45
|
-
filled: Record<string, Order>;
|
|
46
|
-
canceled: Record<string, Order>;
|
|
47
|
-
rejected: Record<string, Order>;
|
|
48
|
-
} = {
|
|
49
|
-
pending: {},
|
|
50
|
-
filled: {},
|
|
51
|
-
canceled: {},
|
|
52
|
-
rejected: {}
|
|
53
|
-
};
|
|
42
|
+
order: Record<string, Order> = {};
|
|
54
43
|
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { AdapterAwakeCommand } from '../adapter';
|
|
2
|
-
import { AdapterSubscribeCommand } from '../adapter';
|
|
3
1
|
import { Asset, Commission, instrumentOf } from '../domain';
|
|
4
2
|
import { InMemoryStorage, Feed } from '../storage';
|
|
5
3
|
import { Store } from '../store';
|
|
@@ -10,7 +8,6 @@ import { PaperExecutor } from '../adapter/paper/executor/paper-executor';
|
|
|
10
8
|
import { PaperAdapter } from '../adapter/paper/paper-adapter';
|
|
11
9
|
import { BacktesterAdapter } from '../adapter/backtester/backtester-adapter';
|
|
12
10
|
import { BacktesterStreamer } from '../adapter/backtester/backtester-streamer';
|
|
13
|
-
import { handler } from '../shared';
|
|
14
11
|
|
|
15
12
|
const base = new Asset('btc', 'binance', 8);
|
|
16
13
|
const quote = new Asset('usdt', 'binance', 4);
|
|
@@ -26,9 +23,10 @@ class DefaultAdapter extends Adapter {
|
|
|
26
23
|
return new PaperSpotExecutor(adapter);
|
|
27
24
|
}
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
async awake(context: AdapterContext): Promise<void> {
|
|
27
|
+
await super.awake(context);
|
|
28
|
+
|
|
29
|
+
context.dispatch(
|
|
32
30
|
new InstrumentPatchEvent(
|
|
33
31
|
context.timestamp,
|
|
34
32
|
base,
|
|
@@ -88,12 +86,8 @@ describe('backtester adapter tests', () => {
|
|
|
88
86
|
|
|
89
87
|
const sut = new BacktesterAdapter(adapter, streamer);
|
|
90
88
|
|
|
91
|
-
sut.
|
|
92
|
-
|
|
93
|
-
sut.dispatch(
|
|
94
|
-
new AdapterSubscribeCommand([instrument]),
|
|
95
|
-
new AdapterContext(sut, store)
|
|
96
|
-
);
|
|
89
|
+
sut.awake(new AdapterContext(sut, store));
|
|
90
|
+
sut.subscribe([instrument]);
|
|
97
91
|
|
|
98
92
|
expect(sut.name).toEqual('default');
|
|
99
93
|
});
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Feed } from '../storage';
|
|
2
|
-
import { timestamp } from '../shared';
|
|
3
|
-
import { InstrumentSelector, Order } from '../domain';
|
|
4
|
-
export declare class AdapterAwakeCommand {
|
|
5
|
-
type: string;
|
|
6
|
-
}
|
|
7
|
-
export declare class AdapterDisposeCommand {
|
|
8
|
-
type: string;
|
|
9
|
-
}
|
|
10
|
-
export declare class AdapterAccountCommand {
|
|
11
|
-
type: string;
|
|
12
|
-
}
|
|
13
|
-
export declare class AdapterSubscribeCommand {
|
|
14
|
-
readonly instrument: Array<InstrumentSelector>;
|
|
15
|
-
type: string;
|
|
16
|
-
constructor(instrument: Array<InstrumentSelector>);
|
|
17
|
-
}
|
|
18
|
-
export declare class AdapterOrderOpenCommand {
|
|
19
|
-
readonly order: Order;
|
|
20
|
-
type: string;
|
|
21
|
-
constructor(order: Order);
|
|
22
|
-
}
|
|
23
|
-
export declare class AdapterOrderCancelCommand {
|
|
24
|
-
readonly order: Order;
|
|
25
|
-
type: string;
|
|
26
|
-
constructor(order: Order);
|
|
27
|
-
}
|
|
28
|
-
export declare class AdapterHistoryQuery {
|
|
29
|
-
readonly instrument: InstrumentSelector;
|
|
30
|
-
readonly timeframe: number;
|
|
31
|
-
readonly length: number;
|
|
32
|
-
type: string;
|
|
33
|
-
constructor(instrument: InstrumentSelector, timeframe: number, length: number);
|
|
34
|
-
}
|
|
35
|
-
export declare class AdapterFeedCommand {
|
|
36
|
-
readonly instrument: InstrumentSelector;
|
|
37
|
-
readonly from: timestamp;
|
|
38
|
-
readonly to: timestamp;
|
|
39
|
-
readonly feed: Feed;
|
|
40
|
-
readonly progress: (timestamp: number) => void;
|
|
41
|
-
type: string;
|
|
42
|
-
constructor(instrument: InstrumentSelector, from: timestamp, to: timestamp, feed: Feed, progress: (timestamp: number) => void);
|
|
43
|
-
}
|
|
@@ -1,104 +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
|
-
exports.AdapterFeedCommand = exports.AdapterHistoryQuery = exports.AdapterOrderCancelCommand = exports.AdapterOrderOpenCommand = exports.AdapterSubscribeCommand = exports.AdapterAccountCommand = exports.AdapterDisposeCommand = exports.AdapterAwakeCommand = void 0;
|
|
13
|
-
const storage_1 = require("../storage");
|
|
14
|
-
const domain_1 = require("../domain");
|
|
15
|
-
const topic_1 = require("../shared/topic");
|
|
16
|
-
let AdapterAwakeCommand = class AdapterAwakeCommand {
|
|
17
|
-
constructor() {
|
|
18
|
-
this.type = 'awake';
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
AdapterAwakeCommand = __decorate([
|
|
22
|
-
topic_1.event
|
|
23
|
-
], AdapterAwakeCommand);
|
|
24
|
-
exports.AdapterAwakeCommand = AdapterAwakeCommand;
|
|
25
|
-
let AdapterDisposeCommand = class AdapterDisposeCommand {
|
|
26
|
-
constructor() {
|
|
27
|
-
this.type = 'dispose';
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
AdapterDisposeCommand = __decorate([
|
|
31
|
-
topic_1.event
|
|
32
|
-
], AdapterDisposeCommand);
|
|
33
|
-
exports.AdapterDisposeCommand = AdapterDisposeCommand;
|
|
34
|
-
let AdapterAccountCommand = class AdapterAccountCommand {
|
|
35
|
-
constructor() {
|
|
36
|
-
this.type = 'account';
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
AdapterAccountCommand = __decorate([
|
|
40
|
-
topic_1.event
|
|
41
|
-
], AdapterAccountCommand);
|
|
42
|
-
exports.AdapterAccountCommand = AdapterAccountCommand;
|
|
43
|
-
let AdapterSubscribeCommand = class AdapterSubscribeCommand {
|
|
44
|
-
constructor(instrument) {
|
|
45
|
-
this.instrument = instrument;
|
|
46
|
-
this.type = 'subscribe';
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
AdapterSubscribeCommand = __decorate([
|
|
50
|
-
topic_1.event,
|
|
51
|
-
__metadata("design:paramtypes", [Array])
|
|
52
|
-
], AdapterSubscribeCommand);
|
|
53
|
-
exports.AdapterSubscribeCommand = AdapterSubscribeCommand;
|
|
54
|
-
let AdapterOrderOpenCommand = class AdapterOrderOpenCommand {
|
|
55
|
-
constructor(order) {
|
|
56
|
-
this.order = order;
|
|
57
|
-
this.type = 'order-open';
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
AdapterOrderOpenCommand = __decorate([
|
|
61
|
-
topic_1.event,
|
|
62
|
-
__metadata("design:paramtypes", [domain_1.Order])
|
|
63
|
-
], AdapterOrderOpenCommand);
|
|
64
|
-
exports.AdapterOrderOpenCommand = AdapterOrderOpenCommand;
|
|
65
|
-
let AdapterOrderCancelCommand = class AdapterOrderCancelCommand {
|
|
66
|
-
constructor(order) {
|
|
67
|
-
this.order = order;
|
|
68
|
-
this.type = 'order-cancel';
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
AdapterOrderCancelCommand = __decorate([
|
|
72
|
-
topic_1.event,
|
|
73
|
-
__metadata("design:paramtypes", [domain_1.Order])
|
|
74
|
-
], AdapterOrderCancelCommand);
|
|
75
|
-
exports.AdapterOrderCancelCommand = AdapterOrderCancelCommand;
|
|
76
|
-
let AdapterHistoryQuery = class AdapterHistoryQuery {
|
|
77
|
-
constructor(instrument, timeframe, length) {
|
|
78
|
-
this.instrument = instrument;
|
|
79
|
-
this.timeframe = timeframe;
|
|
80
|
-
this.length = length;
|
|
81
|
-
this.type = 'history';
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
AdapterHistoryQuery = __decorate([
|
|
85
|
-
topic_1.event,
|
|
86
|
-
__metadata("design:paramtypes", [domain_1.InstrumentSelector, Number, Number])
|
|
87
|
-
], AdapterHistoryQuery);
|
|
88
|
-
exports.AdapterHistoryQuery = AdapterHistoryQuery;
|
|
89
|
-
let AdapterFeedCommand = class AdapterFeedCommand {
|
|
90
|
-
constructor(instrument, from, to, feed, progress) {
|
|
91
|
-
this.instrument = instrument;
|
|
92
|
-
this.from = from;
|
|
93
|
-
this.to = to;
|
|
94
|
-
this.feed = feed;
|
|
95
|
-
this.progress = progress;
|
|
96
|
-
this.type = 'feed';
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
AdapterFeedCommand = __decorate([
|
|
100
|
-
topic_1.event,
|
|
101
|
-
__metadata("design:paramtypes", [domain_1.InstrumentSelector, Number, Number, storage_1.Feed, Function])
|
|
102
|
-
], AdapterFeedCommand);
|
|
103
|
-
exports.AdapterFeedCommand = AdapterFeedCommand;
|
|
104
|
-
//# sourceMappingURL=adapter.event.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.event.js","sourceRoot":"","sources":["../../src/adapter/adapter.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAkC;AAElC,sCAAsD;AACtD,2CAAwC;AAGxC,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAAhC;QACE,SAAI,GAAG,OAAO,CAAC;IACjB,CAAC;CAAA,CAAA;AAFY,mBAAmB;IAD/B,aAAK;GACO,mBAAmB,CAE/B;AAFY,kDAAmB;AAKhC,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IAAlC;QACE,SAAI,GAAG,SAAS,CAAC;IACnB,CAAC;CAAA,CAAA;AAFY,qBAAqB;IADjC,aAAK;GACO,qBAAqB,CAEjC;AAFY,sDAAqB;AAKlC,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IAAlC;QACE,SAAI,GAAG,SAAS,CAAC;IACnB,CAAC;CAAA,CAAA;AAFY,qBAAqB;IADjC,aAAK;GACO,qBAAqB,CAEjC;AAFY,sDAAqB;AAKlC,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAGlC,YAAqB,UAAqC;QAArC,eAAU,GAAV,UAAU,CAA2B;QAF1D,SAAI,GAAG,WAAW,CAAC;IAE0C,CAAC;CAC/D,CAAA;AAJY,uBAAuB;IADnC,aAAK;qCAI6B,KAAK;GAH3B,uBAAuB,CAInC;AAJY,0DAAuB;AAOpC,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAGlC,YAAqB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAFjC,SAAI,GAAG,YAAY,CAAC;IAEgB,CAAC;CACtC,CAAA;AAJY,uBAAuB;IADnC,aAAK;qCAIwB,cAAK;GAHtB,uBAAuB,CAInC;AAJY,0DAAuB;AAOpC,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAGpC,YAAqB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAFjC,SAAI,GAAG,cAAc,CAAC;IAEc,CAAC;CACtC,CAAA;AAJY,yBAAyB;IADrC,aAAK;qCAIwB,cAAK;GAHtB,yBAAyB,CAIrC;AAJY,8DAAyB;AAOtC,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAG9B,YACW,UAA8B,EAC9B,SAAiB,EACjB,MAAc;QAFd,eAAU,GAAV,UAAU,CAAoB;QAC9B,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAAQ;QALzB,SAAI,GAAG,SAAS,CAAC;IAMd,CAAC;CACL,CAAA;AARY,mBAAmB;IAD/B,aAAK;qCAKmB,2BAAkB;GAJ9B,mBAAmB,CAQ/B;AARY,kDAAmB;AAWhC,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAG7B,YACW,UAA8B,EAC9B,IAAe,EACf,EAAa,EACb,IAAU,EACV,QAAqC;QAJrC,eAAU,GAAV,UAAU,CAAoB;QAC9B,SAAI,GAAJ,IAAI,CAAW;QACf,OAAE,GAAF,EAAE,CAAW;QACb,SAAI,GAAJ,IAAI,CAAM;QACV,aAAQ,GAAR,QAAQ,CAA6B;QAPhD,SAAI,GAAG,MAAM,CAAC;IAQX,CAAC;CACL,CAAA;AAVY,kBAAkB;IAD9B,aAAK;qCAKmB,2BAAkB,kBAGxB,cAAI;GAPV,kBAAkB,CAU9B;AAVY,gDAAkB"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Feed } from '../storage';
|
|
2
|
-
import { timestamp } from '../shared';
|
|
3
|
-
import { InstrumentSelector, Order } from '../domain';
|
|
4
|
-
import { event } from '../shared/topic';
|
|
5
|
-
|
|
6
|
-
@event
|
|
7
|
-
export class AdapterAwakeCommand {
|
|
8
|
-
type = 'awake';
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
@event
|
|
12
|
-
export class AdapterDisposeCommand {
|
|
13
|
-
type = 'dispose';
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
@event
|
|
17
|
-
export class AdapterAccountCommand {
|
|
18
|
-
type = 'account';
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@event
|
|
22
|
-
export class AdapterSubscribeCommand {
|
|
23
|
-
type = 'subscribe';
|
|
24
|
-
|
|
25
|
-
constructor(readonly instrument: Array<InstrumentSelector>) {}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@event
|
|
29
|
-
export class AdapterOrderOpenCommand {
|
|
30
|
-
type = 'order-open';
|
|
31
|
-
|
|
32
|
-
constructor(readonly order: Order) {}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@event
|
|
36
|
-
export class AdapterOrderCancelCommand {
|
|
37
|
-
type = 'order-cancel';
|
|
38
|
-
|
|
39
|
-
constructor(readonly order: Order) {}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@event
|
|
43
|
-
export class AdapterHistoryQuery {
|
|
44
|
-
type = 'history';
|
|
45
|
-
|
|
46
|
-
constructor(
|
|
47
|
-
readonly instrument: InstrumentSelector,
|
|
48
|
-
readonly timeframe: number,
|
|
49
|
-
readonly length: number
|
|
50
|
-
) {}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
@event
|
|
54
|
-
export class AdapterFeedCommand {
|
|
55
|
-
type = 'feed';
|
|
56
|
-
|
|
57
|
-
constructor(
|
|
58
|
-
readonly instrument: InstrumentSelector,
|
|
59
|
-
readonly from: timestamp,
|
|
60
|
-
readonly to: timestamp,
|
|
61
|
-
readonly feed: Feed,
|
|
62
|
-
readonly progress: (timestamp: number) => void
|
|
63
|
-
) {}
|
|
64
|
-
}
|