@quantform/core 0.3.253 → 0.3.257
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.d.ts +2 -3
- package/dist/adapter/backtester/backtester-streamer.js +1 -5
- package/dist/adapter/backtester/backtester-streamer.js.map +1 -1
- package/dist/adapter/backtester/backtester-streamer.spec.js +1 -2
- package/dist/adapter/backtester/backtester-streamer.spec.js.map +1 -1
- package/dist/bootstrap.js +1 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/session/session.d.ts +5 -6
- package/dist/session/session.js +6 -10
- 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 +16 -16
- 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 +5 -1
- package/dist/store/store.state.js.map +1 -1
- package/dist/tests/backtester-adapter.spec.js +2 -2
- package/dist/tests/backtester-adapter.spec.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 -2
- package/src/adapter/backtester/backtester-streamer.ts +0 -7
- package/src/bootstrap.ts +2 -7
- package/src/session/session.ts +10 -18
- 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 +46 -17
- 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 +8 -2
- package/src/store/store.ts +33 -31
- package/src/tests/backtester-adapter.spec.ts +2 -3
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backtester-cursor.spec.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-cursor.spec.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"backtester-cursor.spec.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-cursor.spec.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,2CAAsD;AACtD,6CAAoD;AACpD,2DAAuD;AAEvD,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,cAAI,CAAC,IAAI,yBAAe,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,oCAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,uBAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACzC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEzC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEzC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InstrumentSelector } from '../../domain';
|
|
2
2
|
import { Store } from '../../store';
|
|
3
|
-
import { timestamp
|
|
3
|
+
import { timestamp } from '../../shared';
|
|
4
4
|
import { Feed } from '../../storage';
|
|
5
5
|
import { BacktesterOptions } from './backtester-adapter';
|
|
6
6
|
export interface BacktesterListener {
|
|
@@ -9,7 +9,6 @@ export interface BacktesterListener {
|
|
|
9
9
|
onBacktestCompleted?(streamer: BacktesterStreamer): void;
|
|
10
10
|
}
|
|
11
11
|
export declare class BacktesterStreamer {
|
|
12
|
-
private readonly worker;
|
|
13
12
|
private readonly store;
|
|
14
13
|
private readonly feed;
|
|
15
14
|
private readonly options;
|
|
@@ -19,7 +18,7 @@ export declare class BacktesterStreamer {
|
|
|
19
18
|
private stopAcquire;
|
|
20
19
|
timestamp: timestamp;
|
|
21
20
|
sequence: number;
|
|
22
|
-
constructor(
|
|
21
|
+
constructor(store: Store, feed: Feed, options: BacktesterOptions, listener?: BacktesterListener);
|
|
23
22
|
subscribe(instrument: InstrumentSelector): void;
|
|
24
23
|
stop(): void;
|
|
25
24
|
tryContinue(): Promise<void>;
|
|
@@ -3,8 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BacktesterStreamer = void 0;
|
|
4
4
|
const backtester_cursor_1 = require("./backtester-cursor");
|
|
5
5
|
class BacktesterStreamer {
|
|
6
|
-
constructor(
|
|
7
|
-
this.worker = worker;
|
|
6
|
+
constructor(store, feed, options, listener) {
|
|
8
7
|
this.store = store;
|
|
9
8
|
this.feed = feed;
|
|
10
9
|
this.options = options;
|
|
@@ -38,14 +37,12 @@ class BacktesterStreamer {
|
|
|
38
37
|
}
|
|
39
38
|
if (this.sequence == 0) {
|
|
40
39
|
if (this.listener.onBacktestStarted) {
|
|
41
|
-
await this.worker.wait();
|
|
42
40
|
this.listener.onBacktestStarted(this);
|
|
43
41
|
}
|
|
44
42
|
}
|
|
45
43
|
while (await this.processNext()) {
|
|
46
44
|
if (this.sequence % this.sequenceUpdateBatch == 0) {
|
|
47
45
|
if (this.listener.onBacktestUpdated) {
|
|
48
|
-
await this.worker.wait();
|
|
49
46
|
this.listener.onBacktestUpdated(this);
|
|
50
47
|
}
|
|
51
48
|
}
|
|
@@ -54,7 +51,6 @@ class BacktesterStreamer {
|
|
|
54
51
|
}
|
|
55
52
|
}
|
|
56
53
|
if (this.listener.onBacktestCompleted) {
|
|
57
|
-
await this.worker.wait();
|
|
58
54
|
this.listener.onBacktestCompleted(this);
|
|
59
55
|
}
|
|
60
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backtester-streamer.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-streamer.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AA0BvD,MAAa,kBAAkB;IAQ7B,YACmB,
|
|
1
|
+
{"version":3,"file":"backtester-streamer.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-streamer.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ const domain_1 = require("../../domain");
|
|
|
5
5
|
const storage_1 = require("../../storage");
|
|
6
6
|
const event_1 = require("../../store/event");
|
|
7
7
|
const backtester_streamer_1 = require("./backtester-streamer");
|
|
8
|
-
const shared_1 = require("../../shared");
|
|
9
8
|
const instrument = new domain_1.Instrument(new domain_1.Asset('btc', 'binance', 8), new domain_1.Asset('usdt', 'binance', 2), 'binance:btc-usdt');
|
|
10
9
|
describe('backtester streamer tests', () => {
|
|
11
10
|
test('should repeat specific events', done => {
|
|
@@ -13,7 +12,7 @@ describe('backtester streamer tests', () => {
|
|
|
13
12
|
const store = new store_1.Store();
|
|
14
13
|
store.snapshot.universe.instrument[instrument.toString()] = instrument;
|
|
15
14
|
store.snapshot.subscription.instrument[instrument.toString()] = instrument;
|
|
16
|
-
const streamer = new backtester_streamer_1.BacktesterStreamer(
|
|
15
|
+
const streamer = new backtester_streamer_1.BacktesterStreamer(store, feed, {
|
|
17
16
|
balance: {},
|
|
18
17
|
from: 0,
|
|
19
18
|
to: 10
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backtester-streamer.spec.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-streamer.spec.ts"],"names":[],"mappings":";;AAAA,uCAAoC;AACpC,yCAA4D;AAC5D,2CAAsD;AACtD,6CAAgD;AAChD,+DAA2D;
|
|
1
|
+
{"version":3,"file":"backtester-streamer.spec.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-streamer.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/bootstrap.js
CHANGED
|
@@ -29,9 +29,9 @@ class Bootstrap {
|
|
|
29
29
|
const store = new store_1.Store();
|
|
30
30
|
const { feed } = this.descriptor;
|
|
31
31
|
const { backtester } = this.descriptor.options;
|
|
32
|
+
const streamer = new backtester_1.BacktesterStreamer(store, feed, backtester, listener);
|
|
32
33
|
const aggregate = new adapter_1.AdapterAggregate(this.descriptor.adapter.map(it => new paper_1.PaperAdapter(new backtester_1.BacktesterAdapter(it, streamer), store, backtester)), store);
|
|
33
34
|
const session = new session_1.Session(store, aggregate, this.descriptor);
|
|
34
|
-
const streamer = new backtester_1.BacktesterStreamer(session.worker, store, feed, backtester, listener);
|
|
35
35
|
return [session, streamer];
|
|
36
36
|
}
|
|
37
37
|
paper() {
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";;;AAAA,qDAI8B;AAC9B,uCAA6C;AAC7C,2CAA+C;AAC/C,uCAAuD;AACvD,mCAAgC;AAEhC,MAAa,SAAS;IACpB,YAAqB,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAMtD,YAAY,CAAC,EAAW;QACtB,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;SACzB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,iBAAiB,CAAC,IAAa,EAAE,EAAW;QAC1C,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;SAChD;QAED,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,QAAQ,CAAC,QAA6B;QACpC,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAE/C,MAAM,SAAS,GAAG,IAAI,0BAAgB,CACpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CACzB,EAAE,CAAC,EAAE,CAAC,IAAI,oBAAY,CAAC,IAAI,8BAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAC/E,EACD,KAAK,CACN,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";;;AAAA,qDAI8B;AAC9B,uCAA6C;AAC7C,2CAA+C;AAC/C,uCAAuD;AACvD,mCAAgC;AAEhC,MAAa,SAAS;IACpB,YAAqB,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAMtD,YAAY,CAAC,EAAW;QACtB,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;SACzB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,iBAAiB,CAAC,IAAa,EAAE,EAAW;QAC1C,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;SAChD;QAED,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,QAAQ,CAAC,QAA6B;QACpC,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAE/C,MAAM,QAAQ,GAAG,IAAI,+BAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE3E,MAAM,SAAS,GAAG,IAAI,0BAAgB,CACpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CACzB,EAAE,CAAC,EAAE,CAAC,IAAI,oBAAY,CAAC,IAAI,8BAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAC/E,EACD,KAAK,CACN,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE/D,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAMD,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;SAC9B;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG;gBAC9B,OAAO,EAAE,EAAE;aACZ,CAAC;SACH;QAED,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAE1C,MAAM,SAAS,GAAG,IAAI,0BAAgB,CACpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,oBAAY,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EACrE,KAAK,CACN,CAAC;QAEF,OAAO,IAAI,iBAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAMD,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,0BAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEvE,OAAO,IAAI,iBAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;CACF;AA5FD,8BA4FC"}
|
|
@@ -2,7 +2,6 @@ import { AssetSelector, Balance, Candle, Instrument, InstrumentSelector, Order,
|
|
|
2
2
|
import { Store } from '../store';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import { AdapterAggregate } from '../adapter/adapter-aggregate';
|
|
5
|
-
import { Worker } from '../shared';
|
|
6
5
|
import { Trade } from '../domain/trade';
|
|
7
6
|
import { SessionDescriptor } from './session-descriptor';
|
|
8
7
|
declare type Optional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
|
|
@@ -12,9 +11,9 @@ export declare class Session {
|
|
|
12
11
|
readonly descriptor?: SessionDescriptor;
|
|
13
12
|
private initialized;
|
|
14
13
|
private subscription;
|
|
14
|
+
private worker;
|
|
15
15
|
get timestamp(): number;
|
|
16
16
|
readonly statement: Record<string, Record<string, any>>;
|
|
17
|
-
readonly worker: Worker;
|
|
18
17
|
constructor(store: Store, aggregate: AdapterAggregate, descriptor?: SessionDescriptor);
|
|
19
18
|
awake(describe: (session: Session) => Observable<any>): Promise<void>;
|
|
20
19
|
dispose(): Promise<void>;
|
|
@@ -31,11 +30,11 @@ export declare class Session {
|
|
|
31
30
|
cancel(order: Order): Promise<void>;
|
|
32
31
|
instrument(selector: InstrumentSelector): Observable<Instrument>;
|
|
33
32
|
instruments(): Observable<Instrument[]>;
|
|
34
|
-
trade(selector
|
|
35
|
-
orderbook(selector
|
|
36
|
-
position(selector
|
|
33
|
+
trade(selector: InstrumentSelector): Observable<Trade>;
|
|
34
|
+
orderbook(selector: InstrumentSelector): Observable<Orderbook>;
|
|
35
|
+
position(selector: InstrumentSelector): Observable<Position>;
|
|
37
36
|
positions(selector: InstrumentSelector): Observable<Position[]>;
|
|
38
|
-
order(selector
|
|
37
|
+
order(selector: InstrumentSelector): Observable<Order>;
|
|
39
38
|
private ordersOf;
|
|
40
39
|
pending(selector?: InstrumentSelector): Observable<Order[]>;
|
|
41
40
|
filled(selector?: InstrumentSelector): Observable<Order[]>;
|
package/dist/session/session.js
CHANGED
|
@@ -12,8 +12,8 @@ class Session {
|
|
|
12
12
|
this.aggregate = aggregate;
|
|
13
13
|
this.descriptor = descriptor;
|
|
14
14
|
this.initialized = false;
|
|
15
|
-
this.statement = {};
|
|
16
15
|
this.worker = new shared_1.Worker();
|
|
16
|
+
this.statement = {};
|
|
17
17
|
if (descriptor && !descriptor.id) {
|
|
18
18
|
descriptor.id = (0, shared_1.now)();
|
|
19
19
|
}
|
|
@@ -84,18 +84,15 @@ class Session {
|
|
|
84
84
|
}
|
|
85
85
|
trade(selector) {
|
|
86
86
|
this.subscribe([selector]);
|
|
87
|
-
return this.store.changes$.pipe((0, operators_1.filter)(it => it instanceof trade_1.Trade &&
|
|
88
|
-
(!selector || it.instrument.toString() == selector.toString())), (0, operators_1.map)(it => it));
|
|
87
|
+
return this.store.changes$.pipe((0, operators_1.filter)(it => it instanceof trade_1.Trade && it.instrument.toString() == selector.toString()), (0, operators_1.map)(it => it));
|
|
89
88
|
}
|
|
90
89
|
orderbook(selector) {
|
|
91
90
|
this.subscribe([selector]);
|
|
92
|
-
return this.store.changes$.pipe((0, operators_1.filter)(it => it instanceof domain_1.Orderbook &&
|
|
93
|
-
(!selector || it.instrument.toString() == selector.toString())), (0, operators_1.map)(it => it));
|
|
91
|
+
return this.store.changes$.pipe((0, operators_1.filter)(it => it instanceof domain_1.Orderbook && it.instrument.toString() == selector.toString()), (0, operators_1.map)(it => it));
|
|
94
92
|
}
|
|
95
93
|
position(selector) {
|
|
96
94
|
this.subscribe([selector]);
|
|
97
|
-
return this.store.changes$.pipe((0, operators_1.filter)(it => it instanceof domain_1.Position &&
|
|
98
|
-
(!selector || it.instrument.toString() == selector.toString())), (0, operators_1.map)(it => it));
|
|
95
|
+
return this.store.changes$.pipe((0, operators_1.filter)(it => it instanceof domain_1.Position && it.instrument.toString() == selector.toString()), (0, operators_1.map)(it => it));
|
|
99
96
|
}
|
|
100
97
|
positions(selector) {
|
|
101
98
|
this.subscribe([selector]);
|
|
@@ -103,8 +100,7 @@ class Session {
|
|
|
103
100
|
}
|
|
104
101
|
order(selector) {
|
|
105
102
|
this.subscribe([selector]);
|
|
106
|
-
return this.store.changes$.pipe((0, operators_1.filter)(it => it instanceof domain_1.Order &&
|
|
107
|
-
(!selector || it.instrument.toString() == selector.toString())), (0, operators_1.map)(it => it));
|
|
103
|
+
return this.store.changes$.pipe((0, operators_1.filter)(it => it instanceof domain_1.Order && it.instrument.toString() == selector.toString()), (0, operators_1.map)(it => it));
|
|
108
104
|
}
|
|
109
105
|
ordersOf(orders, states, selector) {
|
|
110
106
|
this.subscribe([selector]);
|
|
@@ -126,7 +122,7 @@ class Session {
|
|
|
126
122
|
return this.ordersOf(Object.values(this.store.snapshot.order.canceled), ['CANCELING', 'CANCELED'], selector);
|
|
127
123
|
}
|
|
128
124
|
balance(selector) {
|
|
129
|
-
return this.store.changes$.pipe((0, operators_1.startWith)(
|
|
125
|
+
return this.store.changes$.pipe((0, operators_1.startWith)(this.store.snapshot.balance[selector.toString()]), (0, operators_1.filter)(it => it instanceof domain_1.Balance &&
|
|
130
126
|
(!selector || it.asset.toString() == selector.toString())), (0, operators_1.map)(it => it));
|
|
131
127
|
}
|
|
132
128
|
history(selector, timeframe, length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":";;;AAAA,8CAUwB;AACxB,sCAUmB;AAEnB,+BAAuE;AAEvE,sCAAwC;AACxC,2CAAwC;AAKxC,MAAa,OAAO;IAWlB,YACW,KAAY,EACZ,SAA2B,EAC3B,UAA8B;QAF9B,UAAK,GAAL,KAAK,CAAO;QACZ,cAAS,GAAT,SAAS,CAAkB;QAC3B,eAAU,GAAV,UAAU,CAAoB;QAbjC,gBAAW,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { timestamp } from '../../shared';
|
|
2
2
|
import { AssetSelector } from '../../domain/asset';
|
|
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 BalancePatchEvent implements StoreEvent {
|
|
7
6
|
readonly asset: AssetSelector;
|
|
@@ -11,7 +10,7 @@ export declare class BalancePatchEvent implements StoreEvent {
|
|
|
11
10
|
type: string;
|
|
12
11
|
constructor(asset: AssetSelector, free: number, freezed: number, timestamp: timestamp);
|
|
13
12
|
}
|
|
14
|
-
export declare function BalancePatchEventHandler(event: BalancePatchEvent, state: State):
|
|
13
|
+
export declare function BalancePatchEventHandler(event: BalancePatchEvent, state: State, changes: StateChangeTracker): void;
|
|
15
14
|
export declare class BalanceTransactEvent implements StoreEvent {
|
|
16
15
|
readonly asset: AssetSelector;
|
|
17
16
|
readonly amount: number;
|
|
@@ -19,7 +18,7 @@ export declare class BalanceTransactEvent implements StoreEvent {
|
|
|
19
18
|
type: string;
|
|
20
19
|
constructor(asset: AssetSelector, amount: number, timestamp: timestamp);
|
|
21
20
|
}
|
|
22
|
-
export declare function BalanceTransactEventHandler(event: BalanceTransactEvent, state: State):
|
|
21
|
+
export declare function BalanceTransactEventHandler(event: BalanceTransactEvent, state: State, changes: StateChangeTracker): void;
|
|
23
22
|
export declare class BalanceFreezEvent implements StoreEvent {
|
|
24
23
|
readonly asset: AssetSelector;
|
|
25
24
|
readonly amount: number;
|
|
@@ -27,7 +26,7 @@ export declare class BalanceFreezEvent implements StoreEvent {
|
|
|
27
26
|
type: string;
|
|
28
27
|
constructor(asset: AssetSelector, amount: number, timestamp: timestamp);
|
|
29
28
|
}
|
|
30
|
-
export declare function BalanceFreezEventHandler(event: BalanceFreezEvent, state: State):
|
|
29
|
+
export declare function BalanceFreezEventHandler(event: BalanceFreezEvent, state: State, changes: StateChangeTracker): void;
|
|
31
30
|
export declare class BalanceUnfreezEvent implements StoreEvent {
|
|
32
31
|
readonly asset: AssetSelector;
|
|
33
32
|
readonly amount: number;
|
|
@@ -35,4 +34,4 @@ export declare class BalanceUnfreezEvent implements StoreEvent {
|
|
|
35
34
|
type: string;
|
|
36
35
|
constructor(asset: AssetSelector, amount: number, timestamp: timestamp);
|
|
37
36
|
}
|
|
38
|
-
export declare function BalanceUnfreezEventHandler(event: BalanceUnfreezEvent, state: State):
|
|
37
|
+
export declare function BalanceUnfreezEventHandler(event: BalanceUnfreezEvent, state: State, changes: StateChangeTracker): void;
|
|
@@ -27,7 +27,7 @@ BalancePatchEvent = __decorate([
|
|
|
27
27
|
__metadata("design:paramtypes", [asset_1.AssetSelector, Number, Number, Number])
|
|
28
28
|
], BalancePatchEvent);
|
|
29
29
|
exports.BalancePatchEvent = BalancePatchEvent;
|
|
30
|
-
function BalancePatchEventHandler(event, state) {
|
|
30
|
+
function BalancePatchEventHandler(event, state, changes) {
|
|
31
31
|
let balance = state.balance[event.asset.toString()];
|
|
32
32
|
if (!balance) {
|
|
33
33
|
const asset = state.universe.asset[event.asset.toString()];
|
|
@@ -39,7 +39,7 @@ function BalancePatchEventHandler(event, state) {
|
|
|
39
39
|
balance.timestamp = event.timestamp;
|
|
40
40
|
balance.set(event.free, event.freezed);
|
|
41
41
|
state.timestamp = event.timestamp;
|
|
42
|
-
|
|
42
|
+
changes.commit(balance);
|
|
43
43
|
}
|
|
44
44
|
exports.BalancePatchEventHandler = BalancePatchEventHandler;
|
|
45
45
|
let BalanceTransactEvent = class BalanceTransactEvent {
|
|
@@ -55,7 +55,7 @@ BalanceTransactEvent = __decorate([
|
|
|
55
55
|
__metadata("design:paramtypes", [asset_1.AssetSelector, Number, Number])
|
|
56
56
|
], BalanceTransactEvent);
|
|
57
57
|
exports.BalanceTransactEvent = BalanceTransactEvent;
|
|
58
|
-
function BalanceTransactEventHandler(event, state) {
|
|
58
|
+
function BalanceTransactEventHandler(event, state, changes) {
|
|
59
59
|
let balance = state.balance[event.asset.toString()];
|
|
60
60
|
if (!balance) {
|
|
61
61
|
const asset = state.universe.asset[event.asset.toString()];
|
|
@@ -65,7 +65,7 @@ function BalanceTransactEventHandler(event, state) {
|
|
|
65
65
|
balance.timestamp = event.timestamp;
|
|
66
66
|
balance.transact(event.amount);
|
|
67
67
|
state.timestamp = event.timestamp;
|
|
68
|
-
|
|
68
|
+
changes.commit(balance);
|
|
69
69
|
}
|
|
70
70
|
exports.BalanceTransactEventHandler = BalanceTransactEventHandler;
|
|
71
71
|
let BalanceFreezEvent = class BalanceFreezEvent {
|
|
@@ -81,7 +81,7 @@ BalanceFreezEvent = __decorate([
|
|
|
81
81
|
__metadata("design:paramtypes", [asset_1.AssetSelector, Number, Number])
|
|
82
82
|
], BalanceFreezEvent);
|
|
83
83
|
exports.BalanceFreezEvent = BalanceFreezEvent;
|
|
84
|
-
function BalanceFreezEventHandler(event, state) {
|
|
84
|
+
function BalanceFreezEventHandler(event, state, changes) {
|
|
85
85
|
const balance = state.balance[event.asset.toString()];
|
|
86
86
|
if (!balance) {
|
|
87
87
|
throw new Error('invalid balance');
|
|
@@ -89,7 +89,7 @@ function BalanceFreezEventHandler(event, state) {
|
|
|
89
89
|
balance.timestamp = event.timestamp;
|
|
90
90
|
balance.freez(event.amount);
|
|
91
91
|
state.timestamp = event.timestamp;
|
|
92
|
-
|
|
92
|
+
changes.commit(balance);
|
|
93
93
|
}
|
|
94
94
|
exports.BalanceFreezEventHandler = BalanceFreezEventHandler;
|
|
95
95
|
let BalanceUnfreezEvent = class BalanceUnfreezEvent {
|
|
@@ -105,7 +105,7 @@ BalanceUnfreezEvent = __decorate([
|
|
|
105
105
|
__metadata("design:paramtypes", [asset_1.AssetSelector, Number, Number])
|
|
106
106
|
], BalanceUnfreezEvent);
|
|
107
107
|
exports.BalanceUnfreezEvent = BalanceUnfreezEvent;
|
|
108
|
-
function BalanceUnfreezEventHandler(event, state) {
|
|
108
|
+
function BalanceUnfreezEventHandler(event, state, changes) {
|
|
109
109
|
const balance = state.balance[event.asset.toString()];
|
|
110
110
|
if (!balance) {
|
|
111
111
|
throw new Error('invalid balance');
|
|
@@ -113,7 +113,7 @@ function BalanceUnfreezEventHandler(event, state) {
|
|
|
113
113
|
balance.timestamp = event.timestamp;
|
|
114
114
|
balance.unfreez(event.amount);
|
|
115
115
|
state.timestamp = event.timestamp;
|
|
116
|
-
|
|
116
|
+
changes.commit(balance);
|
|
117
117
|
}
|
|
118
118
|
exports.BalanceUnfreezEventHandler = BalanceUnfreezEventHandler;
|
|
119
119
|
//# sourceMappingURL=store-balance.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-balance.event.js","sourceRoot":"","sources":["../../../src/store/event/store-balance.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2C;AAE3C,8CAAmD;AACnD,kDAA+C;AAQ/C,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAG5B,YACW,KAAoB,EACpB,IAAY,EACZ,OAAe,EACf,SAAoB;QAHpB,UAAK,GAAL,KAAK,CAAe;QACpB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAW;QAN/B,SAAI,GAAG,eAAe,CAAC;IAOpB,CAAC;CACL,CAAA;AATY,iBAAiB;IAD7B,aAAK;qCAKc,qBAAa;GAJpB,iBAAiB,CAS7B;AATY,8CAAiB;AAc9B,SAAgB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"store-balance.event.js","sourceRoot":"","sources":["../../../src/store/event/store-balance.event.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { timestamp } from '../../shared/datetime';
|
|
|
2
2
|
import { InstrumentSelector } from '../../domain';
|
|
3
3
|
import { State } from '../store.state';
|
|
4
4
|
import { StoreEvent } from './store.event';
|
|
5
|
+
import { StateChangeTracker } from '..';
|
|
5
6
|
export declare class CandleEvent implements StoreEvent {
|
|
6
7
|
readonly instrument: InstrumentSelector;
|
|
7
8
|
readonly timeframe: number;
|
|
@@ -14,4 +15,4 @@ export declare class CandleEvent implements StoreEvent {
|
|
|
14
15
|
type: string;
|
|
15
16
|
constructor(instrument: InstrumentSelector, timeframe: number, open: number, high: number, low: number, close: number, volume: number, timestamp: timestamp);
|
|
16
17
|
}
|
|
17
|
-
export declare function CandleEventHandler(event: CandleEvent, state: State
|
|
18
|
+
export declare function CandleEventHandler(event: CandleEvent, state: State, changes: StateChangeTracker): void;
|
|
@@ -32,26 +32,32 @@ CandleEvent = __decorate([
|
|
|
32
32
|
__metadata("design:paramtypes", [domain_1.InstrumentSelector, Number, Number, Number, Number, Number, Number, Number])
|
|
33
33
|
], CandleEvent);
|
|
34
34
|
exports.CandleEvent = CandleEvent;
|
|
35
|
-
function CandleEventHandler(event, state) {
|
|
35
|
+
function CandleEventHandler(event, state, changes) {
|
|
36
36
|
const instrument = state.universe.instrument[event.instrument.toString()];
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
37
|
+
const patch = (timestamp, rate) => {
|
|
38
|
+
(0, store_trade_event_1.TradePatchEventHandler)({
|
|
39
|
+
type: 'trade-patch',
|
|
40
|
+
instrument: event.instrument,
|
|
41
|
+
quantity: event.volume,
|
|
42
|
+
rate,
|
|
43
|
+
timestamp
|
|
44
|
+
}, state, changes);
|
|
45
|
+
(0, store_orderbook_event_1.OrderbookPatchEventHandler)({
|
|
46
|
+
type: 'orderbook-patch',
|
|
47
|
+
instrument: event.instrument,
|
|
48
|
+
bestAskQuantity: instrument.base.fixed(event.volume * 0.5),
|
|
49
|
+
bestAskRate: rate,
|
|
50
|
+
bestBidQuantity: instrument.base.fixed(event.volume * 0.5),
|
|
51
|
+
bestBidRate: rate,
|
|
52
|
+
timestamp
|
|
53
|
+
}, state, changes);
|
|
54
|
+
state.timestamp = event.timestamp;
|
|
55
|
+
changes.commitPendingChanges();
|
|
56
|
+
};
|
|
57
|
+
patch(event.timestamp, instrument.quote.fixed(event.open));
|
|
58
|
+
patch(event.timestamp, instrument.quote.fixed(event.high));
|
|
59
|
+
patch(event.timestamp, instrument.quote.fixed(event.low));
|
|
60
|
+
patch(event.timestamp, instrument.quote.fixed(event.close));
|
|
55
61
|
}
|
|
56
62
|
exports.CandleEventHandler = CandleEventHandler;
|
|
57
63
|
//# sourceMappingURL=store-candle.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-candle.event.js","sourceRoot":"","sources":["../../../src/store/event/store-candle.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAA6D;AAC7D,mEAAqE;AAErE,yCAAkD;AAGlD,8CAA2C;
|
|
1
|
+
{"version":3,"file":"store-candle.event.js","sourceRoot":"","sources":["../../../src/store/event/store-candle.event.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAA6D;AAC7D,mEAAqE;AAErE,yCAAkD;AAGlD,8CAA2C;AAI3C,IAAa,WAAW,GAAxB,MAAa,WAAW;IAGtB,YACW,UAA8B,EAC9B,SAAiB,EACjB,IAAY,EACZ,IAAY,EACZ,GAAW,EACX,KAAa,EACb,MAAc,EACd,SAAoB;QAPpB,eAAU,GAAV,UAAU,CAAoB;QAC9B,cAAS,GAAT,SAAS,CAAQ;QACjB,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,QAAG,GAAH,GAAG,CAAQ;QACX,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAW;QAV/B,SAAI,GAAG,QAAQ,CAAC;IAWb,CAAC;CACL,CAAA;AAbY,WAAW;IADvB,aAAK;qCAKmB,2BAAkB;GAJ9B,WAAW,CAavB;AAbY,kCAAW;AAexB,SAAgB,kBAAkB,CAChC,KAAkB,EAClB,KAAY,EACZ,OAA2B;IAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAE,EAAE;QAEhD,IAAA,0CAAsB,EACpB;YACE,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,MAAM;YACtB,IAAI;YACJ,SAAS;SACV,EACD,KAAK,EACL,OAAO,CACR,CAAC;QAGF,IAAA,kDAA0B,EACxB;YACE,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;YAC1D,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;YAC1D,WAAW,EAAE,IAAI;YACjB,SAAS;SACV,EACD,KAAK,EACL,OAAO,CACR,CAAC;QAEF,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IACjC,CAAC,CAAC;IAEF,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AA7CD,gDA6CC"}
|
|
@@ -2,23 +2,22 @@
|
|
|
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 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('candle patch event tests', () => {
|
|
9
9
|
test('should patch trade object', () => {
|
|
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 store_1.Store();
|
|
12
|
+
store.snapshot.universe.instrument[instrument.toString()] = instrument;
|
|
13
|
+
store.snapshot.subscription.instrument[instrument.toString()] = instrument;
|
|
14
|
+
store.dispatch(new _1.CandleEvent(instrument, 1, 1, 1, 1, 1, 1, timestamp));
|
|
15
|
+
const trade = store.snapshot.trade[instrument.toString()];
|
|
17
16
|
expect(trade.timestamp).toEqual(timestamp);
|
|
18
17
|
expect(trade.instrument.toString()).toEqual(instrument.toString());
|
|
19
18
|
expect(trade.rate).toEqual(1);
|
|
20
19
|
expect(trade.quantity).toEqual(1);
|
|
21
|
-
expect(
|
|
20
|
+
expect(store.snapshot.timestamp).toEqual(timestamp);
|
|
22
21
|
});
|
|
23
22
|
});
|
|
24
23
|
//# sourceMappingURL=store-candle.event.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-candle.event.spec.js","sourceRoot":"","sources":["../../../src/store/event/store-candle.event.spec.ts"],"names":[],"mappings":";;AAAA,yCAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"store-candle.event.spec.js","sourceRoot":"","sources":["../../../src/store/event/store-candle.event.spec.ts"],"names":[],"mappings":";;AAAA,yCAAiD;AACjD,wBAAgC;AAChC,yCAAmC;AACnC,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,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,SAAS,GAAG,IAAA,YAAG,GAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAE1B,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,cAAW,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAEzE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { timestamp } from '../../shared';
|
|
2
2
|
import { Asset, Commission } from '../../domain';
|
|
3
|
-
import {
|
|
4
|
-
import { State } from '../../store';
|
|
3
|
+
import { InstrumentSelector } from '../../domain/instrument';
|
|
4
|
+
import { State, StateChangeTracker } from '../../store';
|
|
5
5
|
import { StoreEvent } from './store.event';
|
|
6
6
|
export declare class InstrumentPatchEvent implements StoreEvent {
|
|
7
7
|
readonly timestamp: timestamp;
|
|
8
8
|
readonly base: Asset;
|
|
9
9
|
readonly quote: Asset;
|
|
10
|
-
readonly
|
|
10
|
+
readonly commission: Commission;
|
|
11
11
|
readonly raw: string;
|
|
12
12
|
readonly leverage?: number;
|
|
13
13
|
type: string;
|
|
14
|
-
constructor(timestamp: timestamp, base: Asset, quote: Asset,
|
|
14
|
+
constructor(timestamp: timestamp, base: Asset, quote: Asset, commission: Commission, raw: string, leverage?: number);
|
|
15
15
|
}
|
|
16
|
-
export declare function InstrumentPatchEventHandler(event: InstrumentPatchEvent, state: State):
|
|
16
|
+
export declare function InstrumentPatchEventHandler(event: InstrumentPatchEvent, state: State, changes: StateChangeTracker): void;
|
|
17
17
|
export declare class InstrumentSubscriptionEvent implements StoreEvent {
|
|
18
18
|
readonly timestamp: timestamp;
|
|
19
19
|
readonly instrument: InstrumentSelector;
|
|
@@ -21,4 +21,4 @@ export declare class InstrumentSubscriptionEvent implements StoreEvent {
|
|
|
21
21
|
type: string;
|
|
22
22
|
constructor(timestamp: timestamp, instrument: InstrumentSelector, subscribed: boolean);
|
|
23
23
|
}
|
|
24
|
-
export declare function InstrumentSubscriptionEventHandler(event: InstrumentSubscriptionEvent, state: State):
|
|
24
|
+
export declare function InstrumentSubscriptionEventHandler(event: InstrumentSubscriptionEvent, state: State, changes: StateChangeTracker): void;
|