@quantform/core 0.3.267 → 0.4.5
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 +2 -2
- package/dist/adapter/adapter-aggregate.js.map +1 -1
- package/dist/adapter/adapter.d.ts +4 -5
- package/dist/adapter/adapter.js.map +1 -1
- package/dist/adapter/backtester/backtester-adapter.d.ts +5 -5
- package/dist/adapter/backtester/backtester-adapter.js +3 -7
- package/dist/adapter/backtester/backtester-adapter.js.map +1 -1
- package/dist/adapter/backtester/backtester-cursor.d.ts +2 -2
- package/dist/adapter/backtester/backtester-cursor.spec.js +9 -9
- package/dist/adapter/backtester/backtester-cursor.spec.js.map +1 -1
- package/dist/adapter/backtester/backtester-streamer.d.ts +6 -4
- package/dist/adapter/backtester/backtester-streamer.js +5 -5
- package/dist/adapter/backtester/backtester-streamer.js.map +1 -1
- package/dist/adapter/backtester/backtester-streamer.spec.js +9 -11
- package/dist/adapter/backtester/backtester-streamer.spec.js.map +1 -1
- package/dist/adapter/index.d.ts +2 -0
- package/dist/adapter/index.js +2 -0
- package/dist/adapter/index.js.map +1 -1
- package/dist/adapter/paper/index.d.ts +1 -1
- package/dist/adapter/paper/index.js +1 -1
- package/dist/adapter/paper/index.js.map +1 -1
- package/dist/adapter/paper/paper-adapter.d.ts +3 -3
- package/dist/adapter/paper/paper-adapter.js +4 -7
- package/dist/adapter/paper/paper-adapter.js.map +1 -1
- package/dist/adapter/paper/paper-adapter.spec.js +3 -5
- package/dist/adapter/paper/paper-adapter.spec.js.map +1 -1
- package/dist/adapter/paper/simulator/paper-margin-simulator.d.ts +1 -1
- package/dist/adapter/paper/simulator/paper-margin-simulator.js +6 -6
- package/dist/adapter/paper/simulator/paper-margin-simulator.js.map +1 -1
- package/dist/adapter/paper/simulator/paper-simulator.d.ts +1 -1
- package/dist/adapter/paper/simulator/paper-simulator.js +3 -3
- package/dist/adapter/paper/simulator/paper-simulator.js.map +1 -1
- package/dist/adapter/paper/simulator/paper-spot-simulator.d.ts +2 -2
- package/dist/adapter/paper/simulator/paper-spot-simulator.js +12 -12
- package/dist/adapter/paper/simulator/paper-spot-simulator.js.map +1 -1
- package/dist/adapter/paper/simulator/paper-spot-simulator.spec.js +8 -9
- package/dist/adapter/paper/simulator/paper-spot-simulator.spec.js.map +1 -1
- package/dist/bootstrap.d.ts +1 -1
- package/dist/bootstrap.js +3 -5
- package/dist/bootstrap.js.map +1 -1
- package/dist/domain/balance.d.ts +1 -1
- package/dist/domain/candle.d.ts +14 -0
- package/dist/domain/candle.js +65 -1
- package/dist/domain/candle.js.map +1 -1
- package/dist/domain/candle.spec.js +11 -13
- package/dist/domain/candle.spec.js.map +1 -1
- package/dist/domain/index.d.ts +6 -8
- package/dist/domain/index.js +6 -8
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/order.d.ts +1 -1
- package/dist/domain/order.js.map +1 -1
- package/dist/domain/orderbook.d.ts +1 -1
- package/dist/domain/position.d.ts +2 -2
- package/dist/domain/position.js +3 -3
- package/dist/domain/position.js.map +1 -1
- package/dist/domain/session.d.ts +14 -3
- package/dist/domain/session.js +17 -18
- package/dist/domain/session.js.map +1 -1
- package/dist/domain/session.spec.js +3 -3
- package/dist/domain/session.spec.js.map +1 -1
- package/dist/domain/statement.d.ts +1 -2
- package/dist/domain/statement.js.map +1 -1
- package/dist/domain/trade.d.ts +1 -1
- package/dist/index.d.ts +4 -7
- package/dist/index.js +4 -7
- package/dist/index.js.map +1 -1
- package/dist/indicator/atr.js +3 -3
- package/dist/indicator/atr.js.map +1 -1
- package/dist/indicator/cross.js +3 -3
- package/dist/indicator/cross.js.map +1 -1
- package/dist/indicator/donchian.js +3 -4
- package/dist/indicator/donchian.js.map +1 -1
- package/dist/indicator/drawdown.js +3 -3
- package/dist/indicator/drawdown.js.map +1 -1
- package/dist/indicator/ema.js +3 -3
- package/dist/indicator/ema.js.map +1 -1
- package/dist/indicator/envelope.js +3 -3
- package/dist/indicator/envelope.js.map +1 -1
- package/dist/indicator/index.d.ts +3 -3
- package/dist/indicator/index.js +3 -3
- package/dist/indicator/index.js.map +1 -1
- package/dist/indicator/macd.js +2 -3
- package/dist/indicator/macd.js.map +1 -1
- package/dist/indicator/min-max.js +3 -3
- package/dist/indicator/min-max.js.map +1 -1
- package/dist/indicator/rma.js +3 -3
- package/dist/indicator/rma.js.map +1 -1
- package/dist/indicator/sma.js +2 -3
- package/dist/indicator/sma.js.map +1 -1
- package/dist/indicator/swma.js +3 -3
- package/dist/indicator/swma.js.map +1 -1
- package/dist/indicator/tma.js +3 -3
- package/dist/indicator/tma.js.map +1 -1
- package/dist/indicator/trailing.js +3 -3
- package/dist/indicator/trailing.js.map +1 -1
- package/dist/indicator/truerange.js +3 -3
- package/dist/indicator/truerange.js.map +1 -1
- package/dist/indicator/truerange.spec.js +2 -2
- package/dist/indicator/truerange.spec.js.map +1 -1
- package/dist/indicator/wma.js +3 -3
- package/dist/indicator/wma.js.map +1 -1
- package/dist/ipc.d.ts +1 -1
- package/dist/ipc.js +3 -3
- package/dist/ipc.js.map +1 -1
- package/dist/ipc.spec.js +3 -4
- package/dist/ipc.spec.js.map +1 -1
- package/dist/shared/index.d.ts +4 -4
- package/dist/shared/index.js +4 -4
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/policy.js +1 -1
- package/dist/shared/policy.js.map +1 -1
- package/dist/storage/feed.d.ts +1 -1
- package/dist/storage/feed.js.map +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/measurement.js.map +1 -1
- package/dist/storage/storage.js.map +1 -1
- package/dist/store/event/index.d.ts +4 -4
- package/dist/store/event/index.js +4 -4
- package/dist/store/event/index.js.map +1 -1
- package/dist/store/event/store-balance.event.d.ts +1 -1
- package/dist/store/event/store-balance.event.js +1 -1
- package/dist/store/event/store-balance.event.js.map +1 -1
- package/dist/store/event/store-balance.event.spec.js +3 -3
- package/dist/store/event/store-balance.event.spec.js.map +1 -1
- package/dist/store/event/store-candle.event.d.ts +2 -2
- package/dist/store/event/store-candle.event.js +2 -2
- package/dist/store/event/store-candle.event.js.map +1 -1
- package/dist/store/event/store-candle.event.spec.js +1 -1
- package/dist/store/event/store-candle.event.spec.js.map +1 -1
- package/dist/store/event/store-instrument.event.d.ts +1 -1
- package/dist/store/event/store-instrument.event.js +1 -1
- package/dist/store/event/store-instrument.event.js.map +1 -1
- package/dist/store/event/store-instrument.event.spec.js +1 -1
- package/dist/store/event/store-instrument.event.spec.js.map +1 -1
- package/dist/store/event/store-order.event.d.ts +1 -1
- package/dist/store/event/store-order.event.js +1 -1
- 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/event/store-orderbook.event.d.ts +1 -1
- package/dist/store/event/store-orderbook.event.js +1 -1
- package/dist/store/event/store-orderbook.event.js.map +1 -1
- package/dist/store/event/store-position.event.d.ts +1 -1
- package/dist/store/event/store-position.event.js +1 -1
- package/dist/store/event/store-position.event.js.map +1 -1
- package/dist/store/event/store-trade.event.d.ts +1 -1
- package/dist/store/event/store-trade.event.js +1 -1
- package/dist/store/event/store-trade.event.js.map +1 -1
- package/dist/store/event/store-trade.event.spec.js +2 -2
- package/dist/store/event/store-trade.event.spec.js.map +1 -1
- package/dist/store/index.d.ts +1 -0
- package/dist/store/index.js +1 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/store.d.ts +2 -5
- package/dist/store/store.js +4 -8
- package/dist/store/store.js.map +1 -1
- package/dist/store/store.state.d.ts +1 -1
- package/dist/tests/backtester-adapter.spec.js +6 -13
- package/dist/tests/backtester-adapter.spec.js.map +1 -1
- package/dist/tests/session.spec.d.ts +0 -1
- package/dist/tests/session.spec.js +0 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/adapter/adapter-aggregate.ts +2 -3
- package/src/adapter/adapter.ts +4 -5
- package/src/adapter/backtester/backtester-adapter.ts +6 -6
- package/src/adapter/backtester/backtester-cursor.spec.ts +1 -1
- package/src/adapter/backtester/backtester-cursor.ts +2 -2
- package/src/adapter/backtester/backtester-streamer.spec.ts +1 -3
- package/src/adapter/backtester/backtester-streamer.ts +7 -8
- package/src/adapter/index.ts +2 -0
- package/src/adapter/paper/index.ts +1 -1
- package/src/adapter/paper/paper-adapter.spec.ts +3 -5
- package/src/adapter/paper/paper-adapter.ts +3 -5
- package/src/adapter/paper/simulator/paper-margin-simulator.ts +3 -3
- package/src/adapter/paper/simulator/paper-simulator.ts +3 -3
- package/src/adapter/paper/simulator/paper-spot-simulator.spec.ts +12 -13
- package/src/adapter/paper/simulator/paper-spot-simulator.ts +4 -4
- package/src/bootstrap.ts +4 -4
- package/src/domain/balance.ts +1 -1
- package/src/domain/candle.spec.ts +3 -5
- package/src/domain/candle.ts +103 -0
- package/src/domain/index.ts +6 -8
- package/src/domain/order.ts +2 -2
- package/src/domain/orderbook.ts +1 -1
- package/src/domain/position.ts +2 -3
- package/src/domain/session.spec.ts +3 -3
- package/src/domain/session.ts +61 -8
- package/src/domain/statement.ts +1 -2
- package/src/domain/trade.ts +1 -1
- package/src/index.ts +4 -7
- package/src/indicator/atr.ts +1 -2
- package/src/indicator/cross.ts +3 -4
- package/src/indicator/donchian.ts +2 -3
- package/src/indicator/drawdown.ts +2 -3
- package/src/indicator/ema.ts +1 -2
- package/src/indicator/envelope.ts +1 -2
- package/src/indicator/index.ts +3 -3
- package/src/indicator/macd.ts +1 -2
- package/src/indicator/min-max.ts +1 -2
- package/src/indicator/rma.ts +1 -2
- package/src/indicator/sma.ts +1 -2
- package/src/indicator/swma.ts +1 -2
- package/src/indicator/tma.ts +1 -2
- package/src/indicator/trailing.ts +3 -4
- package/src/indicator/truerange.spec.ts +2 -2
- package/src/indicator/truerange.ts +1 -2
- package/src/indicator/window.ts +1 -1
- package/src/indicator/wma.ts +1 -2
- package/src/ipc.spec.ts +3 -4
- package/src/ipc.ts +6 -6
- package/src/shared/index.ts +4 -4
- package/src/shared/policy.ts +1 -1
- package/src/shared/topic.spec.ts +1 -1
- package/src/storage/feed.ts +20 -1
- package/src/storage/index.ts +1 -1
- package/src/storage/measurement.ts +19 -0
- package/src/storage/storage.ts +37 -0
- package/src/store/event/index.ts +4 -4
- package/src/store/event/store-balance.event.spec.ts +3 -3
- package/src/store/event/store-balance.event.ts +2 -2
- package/src/store/event/store-candle.event.spec.ts +1 -1
- package/src/store/event/store-candle.event.ts +5 -5
- package/src/store/event/store-instrument.event.spec.ts +1 -1
- package/src/store/event/store-instrument.event.ts +2 -2
- package/src/store/event/store-order.event.spec.ts +2 -2
- package/src/store/event/store-order.event.ts +2 -2
- package/src/store/event/store-orderbook.event.ts +2 -2
- package/src/store/event/store-position.event.ts +2 -2
- package/src/store/event/store-trade.event.spec.ts +2 -2
- package/src/store/event/store-trade.event.ts +2 -2
- package/src/store/index.ts +1 -0
- package/src/store/store.state.ts +7 -7
- package/src/store/store.ts +6 -9
- package/src/tests/backtester-adapter.spec.ts +6 -13
- package/src/tests/session.spec.ts +0 -3
- package/dist/domain/candle-builder.d.ts +0 -16
- package/dist/domain/candle-builder.js +0 -70
- package/dist/domain/candle-builder.js.map +0 -1
- package/dist/domain/session-descriptor.d.ts +0 -15
- package/dist/domain/session-descriptor.js +0 -3
- package/dist/domain/session-descriptor.js.map +0 -1
- package/src/domain/candle-builder.ts +0 -104
- package/src/domain/session-descriptor.ts +0 -53
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Store } from '../store';
|
|
2
1
|
import { Adapter, FeedQuery, HistoryQuery } from '.';
|
|
3
|
-
import { InstrumentSelector, Order
|
|
2
|
+
import { Candle, InstrumentSelector, Order } from '../domain';
|
|
3
|
+
import { Store } from '../store';
|
|
4
4
|
export declare class AdapterAggregate {
|
|
5
5
|
private readonly store;
|
|
6
6
|
private readonly adapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-aggregate.js","sourceRoot":"","sources":["../../src/adapter/adapter-aggregate.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"adapter-aggregate.js","sourceRoot":"","sources":["../../src/adapter/adapter-aggregate.ts"],"names":[],"mappings":";;;AAAA,wBAAqE;AAErE,sCAAmC;AAOnC,MAAa,gBAAgB;IAG3B,YAAY,QAAmB,EAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAF7C,YAAO,GAA4B,EAAE,CAAC;QAGrD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAOD,GAAG,CAAC,WAAmB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE1C,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CACb,oBAAoB,WAAW,qDAAqD,CACrF,CAAC;SACH;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAKD,KAAK,CAAC,KAAK;QACT,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACjD,IAAI;gBACF,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;aACzB;YAAC,OAAO,CAAC,EAAE;gBACV,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACjB;SACF;IACH,CAAC;IAKD,KAAK,CAAC,OAAO;QACX,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACjD,IAAI;gBACF,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;aACzB;YAAC,OAAO,CAAC,EAAE;gBACV,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACjB;SACF;IACH,CAAC;IAMD,KAAK,CAAC,SAAS,CAAC,SAA+B;QAC7C,MAAM,OAAO,GAAG,SAAS;aACtB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC;aACxB,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE;YACxB,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAEhC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE;gBACtB,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC7B;iBAAM;gBACL,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC3B;YAED,OAAO,SAAS,CAAC;QACnB,CAAC,EAAE,EAAE,CAAC,CAAC;QAET,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE;YACjC,IAAI;gBACF,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;aAC7D;YAAC,OAAO,CAAC,EAAE;gBACV,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACjB;SACF;IACH,CAAC;IAMD,IAAI,CAAC,KAAY;QACf,IAAI;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5D;QAAC,OAAO,CAAC,EAAE;YACV,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;IACH,CAAC;IAKD,MAAM,CAAC,KAAY;QACjB,IAAI;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC9D;QAAC,OAAO,CAAC,EAAE;YACV,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;IACH,CAAC;IAMD,OAAO,CAAC,KAAmB;QACzB,IAAI;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC/D;QAAC,OAAO,CAAC,EAAE;YACV,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;IACH,CAAC;IAMD,IAAI,CAAC,KAAgB;QACnB,IAAI;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5D;QAAC,OAAO,CAAC,EAAE;YACV,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;IACH,CAAC;IAOO,aAAa,CAAC,OAAgB;QACpC,OAAO,IAAI,iBAAc,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CACF;AAtID,4CAsIC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
import { Candle, InstrumentSelector, Order } from '../domain';
|
|
1
2
|
import { timestamp } from '../shared';
|
|
2
|
-
import { PaperSimulator } from './paper/simulator/paper-simulator';
|
|
3
|
-
import { PaperAdapter } from './paper';
|
|
4
|
-
import { State, Store } from '../store';
|
|
5
|
-
import { InstrumentSelector, Order, Candle } from '../domain';
|
|
6
3
|
import { Feed } from '../storage';
|
|
7
|
-
import { StoreEvent } from '../store
|
|
4
|
+
import { State, Store, StoreEvent } from '../store';
|
|
5
|
+
import { PaperAdapter } from './paper';
|
|
6
|
+
import { PaperSimulator } from './paper/simulator/paper-simulator';
|
|
8
7
|
export declare class AdapterContext {
|
|
9
8
|
private readonly adapter;
|
|
10
9
|
private readonly store;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":";;;AACA,sCAA2C;AAS3C,MAAa,cAAc;IAYzB,YAA6B,OAAgB,EAAmB,KAAY;QAA/C,YAAO,GAAP,OAAO,CAAS;QAAmB,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IARhF,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAID,QAAQ,CAAC,GAAG,MAAoB;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC;IACxC,CAAC;CACF;AAjBD,wCAiBC;AAoBD,MAAsB,OAAO;IAK3B,SAAS;QACP,OAAO,IAAA,YAAG,GAAE,CAAC;IACf,CAAC;IAMD,KAAK,CAAC,KAAK,CAAC,OAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAKD,KAAK,CAAC,OAAO,KAAmB,CAAC;IAMjC,SAAS,CAAC,WAAiC;QACzC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAKD,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAMD,IAAI,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAKD,MAAM,CAAC,KAAY;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,CAAC,KAAmB;QACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,KAAgB;QACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;CAGF;AA7DD,0BA6DC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Adapter, AdapterContext } from '..';
|
|
2
|
-
import {
|
|
3
|
-
import { PaperAdapter, PaperOptions } from '../paper';
|
|
2
|
+
import { Candle, InstrumentSelector, Order } from '../../domain';
|
|
4
3
|
import { timestamp } from '../../shared';
|
|
5
|
-
import { InstrumentSelector, Order, Candle } from '../../domain';
|
|
6
|
-
import { PaperSimulator } from '../paper/simulator/paper-simulator';
|
|
7
4
|
import { FeedQuery, HistoryQuery } from '../adapter';
|
|
8
|
-
|
|
5
|
+
import { PaperAdapter, PaperOptions } from '../paper';
|
|
6
|
+
import { PaperSimulator } from '../paper/simulator/paper-simulator';
|
|
7
|
+
import { BacktesterStreamer } from './backtester-streamer';
|
|
8
|
+
export interface BacktesterOptions extends PaperOptions {
|
|
9
9
|
from: timestamp;
|
|
10
10
|
to: timestamp;
|
|
11
11
|
}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BacktesterAdapter =
|
|
3
|
+
exports.BacktesterAdapter = void 0;
|
|
4
4
|
const __1 = require("..");
|
|
5
|
-
const
|
|
6
|
-
const event_1 = require("../../store/event");
|
|
7
|
-
class BacktesterOptions extends paper_1.PaperOptions {
|
|
8
|
-
}
|
|
9
|
-
exports.BacktesterOptions = BacktesterOptions;
|
|
5
|
+
const store_1 = require("../../store");
|
|
10
6
|
class BacktesterAdapter extends __1.Adapter {
|
|
11
7
|
constructor(decoratedAdapter, streamer) {
|
|
12
8
|
super();
|
|
@@ -28,7 +24,7 @@ class BacktesterAdapter extends __1.Adapter {
|
|
|
28
24
|
instruments.forEach(it => {
|
|
29
25
|
this.streamer.subscribe(it);
|
|
30
26
|
});
|
|
31
|
-
this.context.dispatch(...instruments.map(it => new
|
|
27
|
+
this.context.dispatch(...instruments.map(it => new store_1.InstrumentSubscriptionEvent(this.context.timestamp, it, true)));
|
|
32
28
|
}
|
|
33
29
|
account() {
|
|
34
30
|
return this.decoratedAdapter.account();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backtester-adapter.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-adapter.ts"],"names":[],"mappings":";;;AAAA,0BAA6C;
|
|
1
|
+
{"version":3,"file":"backtester-adapter.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-adapter.ts"],"names":[],"mappings":";;;AAAA,0BAA6C;AAG7C,uCAA0D;AAW1D,MAAa,iBAAkB,SAAQ,WAAO;IAO5C,YAAqB,gBAAyB,EAAW,QAA4B;QACnF,KAAK,EAAE,CAAC;QADW,qBAAgB,GAAhB,gBAAgB,CAAS;QAAW,aAAQ,GAAR,QAAQ,CAAoB;QAN5E,SAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IAQ3C,CAAC;IAND,SAAS;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACjC,CAAC;IAMD,KAAK,CAAC,KAAK,CAAC,OAAuB;QACjC,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAiC;QAC/C,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,QAAQ,CACnB,GAAG,WAAW,CAAC,GAAG,CAChB,EAAE,CAAC,EAAE,CAAC,IAAI,mCAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CACxE,CACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,KAAY;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,KAAY;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAmB;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAErB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE5D,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,KAAgB;QACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,oBAAoB,CAAC,OAAqB;QACxC,OAAO,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;CACF;AA7DD,8CA6DC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InstrumentSelector } from '../../domain';
|
|
2
|
-
import { StoreEvent } from '../../store/event';
|
|
3
|
-
import { Feed } from '../../storage';
|
|
4
2
|
import { timestamp } from '../../shared';
|
|
3
|
+
import { Feed } from '../../storage';
|
|
4
|
+
import { StoreEvent } from '../../store';
|
|
5
5
|
export declare class BacktesterCursor {
|
|
6
6
|
readonly instrument: InstrumentSelector;
|
|
7
7
|
private readonly feed;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const domain_1 = require("../../domain");
|
|
4
4
|
const storage_1 = require("../../storage");
|
|
5
|
-
const
|
|
5
|
+
const store_1 = require("../../store");
|
|
6
6
|
const backtester_cursor_1 = require("./backtester-cursor");
|
|
7
7
|
describe('backtester cursor tests', () => {
|
|
8
8
|
test('should reapeat specific events', async () => {
|
|
@@ -10,14 +10,14 @@ describe('backtester cursor tests', () => {
|
|
|
10
10
|
const feed = new storage_1.Feed(new storage_1.InMemoryStorage());
|
|
11
11
|
const cursor = new backtester_cursor_1.BacktesterCursor(instrument, feed);
|
|
12
12
|
feed.save(instrument, [
|
|
13
|
-
new
|
|
14
|
-
new
|
|
15
|
-
new
|
|
16
|
-
new
|
|
17
|
-
new
|
|
18
|
-
new
|
|
19
|
-
new
|
|
20
|
-
new
|
|
13
|
+
new store_1.TradePatchEvent(instrument, 1, 1, 1),
|
|
14
|
+
new store_1.TradePatchEvent(instrument, 2, 1, 2),
|
|
15
|
+
new store_1.TradePatchEvent(instrument, 3, 1, 3),
|
|
16
|
+
new store_1.TradePatchEvent(instrument, 4, 1, 4),
|
|
17
|
+
new store_1.TradePatchEvent(instrument, 5, 1, 5),
|
|
18
|
+
new store_1.TradePatchEvent(instrument, 6, 1, 6),
|
|
19
|
+
new store_1.TradePatchEvent(instrument, 7, 1, 7),
|
|
20
|
+
new store_1.TradePatchEvent(instrument, 8, 1, 8)
|
|
21
21
|
]);
|
|
22
22
|
await cursor.fetchNextPage(0, 4);
|
|
23
23
|
expect(cursor.dequeue().rate).toEqual(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backtester-cursor.spec.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-cursor.spec.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,2CAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"backtester-cursor.spec.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-cursor.spec.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,2CAAsD;AACtD,uCAA8C;AAC9C,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,8 +1,7 @@
|
|
|
1
1
|
import { InstrumentSelector } from '../../domain';
|
|
2
|
-
import { Store } from '../../store';
|
|
3
2
|
import { timestamp } from '../../shared';
|
|
4
3
|
import { Feed } from '../../storage';
|
|
5
|
-
import {
|
|
4
|
+
import { Store } from '../../store';
|
|
6
5
|
export interface BacktesterListener {
|
|
7
6
|
onBacktestStarted?(streamer: BacktesterStreamer): void;
|
|
8
7
|
onBacktestUpdated?(streamer: BacktesterStreamer): void;
|
|
@@ -11,14 +10,17 @@ export interface BacktesterListener {
|
|
|
11
10
|
export declare class BacktesterStreamer {
|
|
12
11
|
private readonly store;
|
|
13
12
|
private readonly feed;
|
|
14
|
-
private readonly
|
|
13
|
+
private readonly period;
|
|
15
14
|
private readonly listener?;
|
|
16
15
|
private sequenceUpdateBatch;
|
|
17
16
|
private cursor;
|
|
18
17
|
private stopAcquire;
|
|
19
18
|
timestamp: timestamp;
|
|
20
19
|
sequence: number;
|
|
21
|
-
constructor(store: Store, feed: Feed,
|
|
20
|
+
constructor(store: Store, feed: Feed, period: {
|
|
21
|
+
from: number;
|
|
22
|
+
to: number;
|
|
23
|
+
}, listener?: BacktesterListener);
|
|
22
24
|
subscribe(instrument: InstrumentSelector): void;
|
|
23
25
|
stop(): void;
|
|
24
26
|
tryContinue(): Promise<void>;
|
|
@@ -3,19 +3,19 @@ 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(store, feed,
|
|
6
|
+
constructor(store, feed, period, listener) {
|
|
7
7
|
this.store = store;
|
|
8
8
|
this.feed = feed;
|
|
9
|
-
this.
|
|
9
|
+
this.period = period;
|
|
10
10
|
this.listener = listener;
|
|
11
11
|
this.sequenceUpdateBatch = 10000;
|
|
12
12
|
this.cursor = {};
|
|
13
13
|
this.stopAcquire = 1;
|
|
14
14
|
this.sequence = 0;
|
|
15
|
-
if (
|
|
15
|
+
if (period.from == undefined || period.to == undefined) {
|
|
16
16
|
throw new Error('invalid backtest options, please provide from and to period.');
|
|
17
17
|
}
|
|
18
|
-
this.timestamp =
|
|
18
|
+
this.timestamp = period.from;
|
|
19
19
|
}
|
|
20
20
|
subscribe(instrument) {
|
|
21
21
|
if (instrument.toString() in this.cursor) {
|
|
@@ -55,7 +55,7 @@ class BacktesterStreamer {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
async processNext() {
|
|
58
|
-
const cursor = await this.current(this.timestamp, this.
|
|
58
|
+
const cursor = await this.current(this.timestamp, this.period.to);
|
|
59
59
|
if (!cursor) {
|
|
60
60
|
return false;
|
|
61
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backtester-streamer.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-streamer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"backtester-streamer.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-streamer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const store_1 = require("../../store");
|
|
4
3
|
const domain_1 = require("../../domain");
|
|
5
4
|
const storage_1 = require("../../storage");
|
|
6
|
-
const
|
|
5
|
+
const store_1 = require("../../store");
|
|
7
6
|
const backtester_streamer_1 = require("./backtester-streamer");
|
|
8
7
|
const instrument = new domain_1.Instrument(new domain_1.Asset('btc', 'binance', 8), new domain_1.Asset('usdt', 'binance', 2), 'binance:btc-usdt');
|
|
9
8
|
describe('backtester streamer tests', () => {
|
|
@@ -13,7 +12,6 @@ describe('backtester streamer tests', () => {
|
|
|
13
12
|
store.snapshot.universe.instrument[instrument.toString()] = instrument;
|
|
14
13
|
store.snapshot.subscription.instrument[instrument.toString()] = instrument;
|
|
15
14
|
const streamer = new backtester_streamer_1.BacktesterStreamer(store, feed, {
|
|
16
|
-
balance: {},
|
|
17
15
|
from: 0,
|
|
18
16
|
to: 10
|
|
19
17
|
}, {
|
|
@@ -28,14 +26,14 @@ describe('backtester streamer tests', () => {
|
|
|
28
26
|
});
|
|
29
27
|
feed
|
|
30
28
|
.save(instrument, [
|
|
31
|
-
new
|
|
32
|
-
new
|
|
33
|
-
new
|
|
34
|
-
new
|
|
35
|
-
new
|
|
36
|
-
new
|
|
37
|
-
new
|
|
38
|
-
new
|
|
29
|
+
new store_1.CandleEvent(instrument, domain_1.Timeframe.M1, 1, 1, 1, 1, 1, 1),
|
|
30
|
+
new store_1.CandleEvent(instrument, domain_1.Timeframe.M1, 2, 2, 2, 2, 2, 2),
|
|
31
|
+
new store_1.CandleEvent(instrument, domain_1.Timeframe.M1, 3, 3, 3, 3, 3, 3),
|
|
32
|
+
new store_1.CandleEvent(instrument, domain_1.Timeframe.M1, 4, 4, 4, 4, 4, 4),
|
|
33
|
+
new store_1.CandleEvent(instrument, domain_1.Timeframe.M1, 5, 5, 5, 5, 5, 5),
|
|
34
|
+
new store_1.CandleEvent(instrument, domain_1.Timeframe.M1, 6, 6, 6, 6, 6, 6),
|
|
35
|
+
new store_1.CandleEvent(instrument, domain_1.Timeframe.M1, 7, 7, 7, 7, 7, 7),
|
|
36
|
+
new store_1.CandleEvent(instrument, domain_1.Timeframe.M1, 8, 8, 8, 8, 8, 8)
|
|
39
37
|
])
|
|
40
38
|
.then(() => {
|
|
41
39
|
streamer.subscribe(instrument);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backtester-streamer.spec.js","sourceRoot":"","sources":["../../../src/adapter/backtester/backtester-streamer.spec.ts"],"names":[],"mappings":";;AAAA,
|
|
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/adapter/index.d.ts
CHANGED
package/dist/adapter/index.js
CHANGED
|
@@ -12,4 +12,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./adapter"), exports);
|
|
14
14
|
__exportStar(require("./adapter-aggregate"), exports);
|
|
15
|
+
__exportStar(require("./backtester"), exports);
|
|
16
|
+
__exportStar(require("./paper"), exports);
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapter/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,sDAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapter/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,sDAAoC;AACpC,+CAA6B;AAC7B,0CAAwB"}
|
|
@@ -11,6 +11,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./paper-adapter"), exports);
|
|
14
|
-
__exportStar(require("./simulator/paper-spot-simulator"), exports);
|
|
15
14
|
__exportStar(require("./simulator/paper-margin-simulator"), exports);
|
|
15
|
+
__exportStar(require("./simulator/paper-spot-simulator"), exports);
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapter/paper/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapter/paper/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAgC;AAChC,qEAAmD;AACnD,mEAAiD"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Adapter, AdapterContext } from '..';
|
|
2
|
-
import { Store } from '../../store';
|
|
3
|
-
import { PaperSimulator } from './simulator/paper-simulator';
|
|
4
2
|
import { Candle, InstrumentSelector, Order } from '../../domain';
|
|
3
|
+
import { Store } from '../../store';
|
|
5
4
|
import { FeedQuery, HistoryQuery } from '../adapter';
|
|
6
|
-
|
|
5
|
+
import { PaperSimulator } from './simulator/paper-simulator';
|
|
6
|
+
export interface PaperOptions {
|
|
7
7
|
balance: {
|
|
8
8
|
[key: string]: number;
|
|
9
9
|
};
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PaperAdapter =
|
|
3
|
+
exports.PaperAdapter = void 0;
|
|
4
4
|
const __1 = require("..");
|
|
5
5
|
const domain_1 = require("../../domain");
|
|
6
|
-
const
|
|
7
|
-
class PaperOptions {
|
|
8
|
-
}
|
|
9
|
-
exports.PaperOptions = PaperOptions;
|
|
6
|
+
const store_1 = require("../../store");
|
|
10
7
|
class PaperAdapter extends __1.Adapter {
|
|
11
8
|
constructor(decoratedAdapter, store, options) {
|
|
12
9
|
super();
|
|
@@ -38,10 +35,10 @@ class PaperAdapter extends __1.Adapter {
|
|
|
38
35
|
}
|
|
39
36
|
const free = this.options.balance[balance];
|
|
40
37
|
subscribed = subscribed.filter(it => it.toString() != asset.toString());
|
|
41
|
-
this.store.dispatch(new
|
|
38
|
+
this.store.dispatch(new store_1.BalancePatchEvent(asset, free, 0, this.context.timestamp));
|
|
42
39
|
}
|
|
43
40
|
for (const missingAsset of subscribed) {
|
|
44
|
-
this.store.dispatch(new
|
|
41
|
+
this.store.dispatch(new store_1.BalancePatchEvent(missingAsset, 0, 0, this.context.timestamp));
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
44
|
async open(order) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paper-adapter.js","sourceRoot":"","sources":["../../../src/adapter/paper/paper-adapter.ts"],"names":[],"mappings":";;;AAAA,0BAA6C;
|
|
1
|
+
{"version":3,"file":"paper-adapter.js","sourceRoot":"","sources":["../../../src/adapter/paper/paper-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,8 @@ const _1 = require(".");
|
|
|
4
4
|
const __1 = require("..");
|
|
5
5
|
const store_1 = require("../../store");
|
|
6
6
|
const adapter_1 = require("../adapter");
|
|
7
|
-
const paper_adapter_1 = require("./paper-adapter");
|
|
8
7
|
const domain_1 = require("./../../domain");
|
|
9
|
-
const
|
|
10
|
-
const event_1 = require("../../store/event");
|
|
8
|
+
const paper_adapter_1 = require("./paper-adapter");
|
|
11
9
|
class DefaultAdapter extends adapter_1.Adapter {
|
|
12
10
|
constructor() {
|
|
13
11
|
super(...arguments);
|
|
@@ -18,7 +16,7 @@ class DefaultAdapter extends adapter_1.Adapter {
|
|
|
18
16
|
}
|
|
19
17
|
async awake(context) {
|
|
20
18
|
super.awake(context);
|
|
21
|
-
context.dispatch(new
|
|
19
|
+
context.dispatch(new store_1.InstrumentPatchEvent(context.timestamp, new domain_1.Asset('a', this.name, 8), new domain_1.Asset('b', this.name, 4), new domain_1.Commission(0.1, 0.1), 'a-b'));
|
|
22
20
|
}
|
|
23
21
|
createPaperSimulator(adapter) {
|
|
24
22
|
return new _1.PaperSpotSimulator(adapter);
|
|
@@ -43,7 +41,7 @@ describe('paper adapter tests', () => {
|
|
|
43
41
|
const sut = new paper_adapter_1.PaperAdapter(adapter, store, options);
|
|
44
42
|
await sut.awake(new __1.AdapterContext(sut, store));
|
|
45
43
|
await sut.account();
|
|
46
|
-
const order = domain_1.Order.buyMarket((0,
|
|
44
|
+
const order = domain_1.Order.buyMarket((0, domain_1.instrumentOf)('default:a-b'), 1.0);
|
|
47
45
|
await sut.open(order);
|
|
48
46
|
expect(store.snapshot.order[order.id]).toEqual(order);
|
|
49
47
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paper-adapter.spec.js","sourceRoot":"","sources":["../../../src/adapter/paper/paper-adapter.spec.ts"],"names":[],"mappings":";;AAAA,wBAAuC;AACvC,0BAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"paper-adapter.spec.js","sourceRoot":"","sources":["../../../src/adapter/paper/paper-adapter.spec.ts"],"names":[],"mappings":";;AAAA,wBAAuC;AACvC,0BAAoC;AACpC,uCAA0D;AAC1D,wCAAqC;AACrC,2CAAwE;AACxE,mDAA+C;AAG/C,MAAM,cAAe,SAAQ,iBAAO;IAApC;;QACE,SAAI,GAAG,SAAS,CAAC;IAuBnB,CAAC;IArBC,SAAS;QACP,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAuB;QACjC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAErB,OAAO,CAAC,QAAQ,CACd,IAAI,4BAAoB,CACtB,OAAO,CAAC,SAAS,EACjB,IAAI,cAAK,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAC5B,IAAI,cAAK,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAC5B,IAAI,mBAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EACxB,KAAK,CACN,CACF,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,OAAqB;QACxC,OAAO,IAAI,qBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CACF;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,OAAO,GAAG;QACd,OAAO,EAAE;YACP,CAAC,WAAW,CAAC,EAAE,IAAI;YACnB,CAAC,WAAW,CAAC,EAAE,GAAG;SACnB;KACF,CAAC;IAEF,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC5D,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAE1B,MAAM,GAAG,GAAG,IAAI,4BAAY,CAAC,IAAI,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEnE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QAErC,MAAM,GAAG,GAAG,IAAI,4BAAY,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,kBAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAChD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QAEpB,MAAM,KAAK,GAAG,cAAK,CAAC,SAAS,CAAC,IAAA,qBAAY,EAAC,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;QAEhE,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtB,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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PaperMarginSimulator = void 0;
|
|
4
4
|
const shared_1 = require("../../../shared");
|
|
5
|
-
const
|
|
5
|
+
const store_1 = require("../../../store");
|
|
6
6
|
const paper_simulator_1 = require("./paper-simulator");
|
|
7
7
|
class PaperMarginSimulator extends paper_simulator_1.PaperSimulator {
|
|
8
8
|
constructor(adapter) {
|
|
@@ -11,8 +11,8 @@ class PaperMarginSimulator extends paper_simulator_1.PaperSimulator {
|
|
|
11
11
|
}
|
|
12
12
|
onOrderOpened(order) {
|
|
13
13
|
const timestamp = this.adapter.timestamp();
|
|
14
|
-
this.adapter.store.dispatch(new
|
|
15
|
-
this.adapter.store.dispatch(new
|
|
14
|
+
this.adapter.store.dispatch(new store_1.OrderNewEvent(order, timestamp));
|
|
15
|
+
this.adapter.store.dispatch(new store_1.OrderPendingEvent(order.id, timestamp));
|
|
16
16
|
}
|
|
17
17
|
onOrderCompleted(order, averageExecutionRate, timestamp) {
|
|
18
18
|
var _a, _b;
|
|
@@ -57,12 +57,12 @@ class PaperMarginSimulator extends paper_simulator_1.PaperSimulator {
|
|
|
57
57
|
}
|
|
58
58
|
break;
|
|
59
59
|
}
|
|
60
|
-
this.adapter.store.dispatch(new
|
|
60
|
+
this.adapter.store.dispatch(new store_1.OrderFilledEvent(order.id, averageExecutionRate, timestamp), new store_1.BalanceTransactEvent(instrument.quote, transact, timestamp), new store_1.PositionPatchEvent(id, instrument, rate, size, this.leverage, 'CROSS', timestamp));
|
|
61
61
|
}
|
|
62
62
|
onOrderCanceled(order) {
|
|
63
63
|
const timestamp = this.adapter.timestamp();
|
|
64
|
-
this.adapter.store.dispatch(new
|
|
65
|
-
this.adapter.store.dispatch(new
|
|
64
|
+
this.adapter.store.dispatch(new store_1.OrderCancelingEvent(order.id, timestamp));
|
|
65
|
+
this.adapter.store.dispatch(new store_1.OrderCanceledEvent(order.id, timestamp));
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
exports.PaperMarginSimulator = PaperMarginSimulator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paper-margin-simulator.js","sourceRoot":"","sources":["../../../../src/adapter/paper/simulator/paper-margin-simulator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"paper-margin-simulator.js","sourceRoot":"","sources":["../../../../src/adapter/paper/simulator/paper-margin-simulator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PaperSimulator = void 0;
|
|
4
|
-
const
|
|
5
|
-
const domain_1 = require("../../../domain");
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
6
5
|
const typescript_collections_1 = require("typescript-collections");
|
|
6
|
+
const domain_1 = require("../../../domain");
|
|
7
7
|
class PaperSimulator {
|
|
8
8
|
constructor(adapter) {
|
|
9
9
|
this.adapter = adapter;
|
|
10
10
|
this.pending = {};
|
|
11
|
-
this.adapter.store.changes$.pipe((0,
|
|
11
|
+
this.adapter.store.changes$.pipe((0, rxjs_1.tap)(it => this.intercept(it))).subscribe();
|
|
12
12
|
}
|
|
13
13
|
intercept(component) {
|
|
14
14
|
if (component instanceof domain_1.Orderbook) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paper-simulator.js","sourceRoot":"","sources":["../../../../src/adapter/paper/simulator/paper-simulator.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"paper-simulator.js","sourceRoot":"","sources":["../../../../src/adapter/paper/simulator/paper-simulator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Order } from '../../../domain';
|
|
2
1
|
import { PaperAdapter } from '..';
|
|
3
|
-
import {
|
|
2
|
+
import { Order } from '../../../domain';
|
|
4
3
|
import { timestamp } from '../../../shared';
|
|
4
|
+
import { PaperSimulator } from './paper-simulator';
|
|
5
5
|
export declare class PaperSpotSimulator extends PaperSimulator {
|
|
6
6
|
readonly adapter: PaperAdapter;
|
|
7
7
|
constructor(adapter: PaperAdapter);
|