@quantform/core 0.3.262 → 0.3.267
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/adapter.d.ts +2 -2
- package/dist/adapter/backtester/backtester-adapter.d.ts +2 -2
- package/dist/adapter/backtester/backtester-adapter.js +3 -3
- package/dist/adapter/backtester/backtester-adapter.js.map +1 -1
- package/dist/adapter/paper/index.d.ts +2 -2
- package/dist/adapter/paper/index.js +2 -2
- 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 +5 -5
- package/dist/adapter/paper/paper-adapter.js.map +1 -1
- package/dist/adapter/paper/paper-adapter.spec.js +2 -2
- package/dist/adapter/paper/paper-adapter.spec.js.map +1 -1
- package/dist/adapter/paper/{executor/paper-margin-executor.d.ts → simulator/paper-margin-simulator.d.ts} +2 -2
- package/dist/adapter/paper/{executor/paper-margin-executor.js → simulator/paper-margin-simulator.js} +5 -5
- package/dist/adapter/paper/simulator/paper-margin-simulator.js.map +1 -0
- package/dist/adapter/paper/{executor/paper-executor.d.ts → simulator/paper-simulator.d.ts} +1 -1
- package/dist/adapter/paper/{executor/paper-executor.js → simulator/paper-simulator.js} +4 -4
- package/dist/adapter/paper/simulator/paper-simulator.js.map +1 -0
- package/dist/adapter/paper/{executor/paper-spot-executor.d.ts → simulator/paper-spot-simulator.d.ts} +2 -2
- package/dist/adapter/paper/{executor/paper-spot-executor.js → simulator/paper-spot-simulator.js} +5 -5
- package/dist/adapter/paper/simulator/paper-spot-simulator.js.map +1 -0
- package/dist/{session/session-optimizer.spec.d.ts → adapter/paper/simulator/paper-spot-simulator.spec.d.ts} +0 -0
- package/dist/adapter/paper/simulator/paper-spot-simulator.spec.js +50 -0
- package/dist/adapter/paper/simulator/paper-spot-simulator.spec.js.map +1 -0
- package/dist/bootstrap.d.ts +1 -1
- package/dist/bootstrap.js +4 -4
- package/dist/bootstrap.js.map +1 -1
- package/dist/domain/index.d.ts +3 -0
- package/dist/domain/index.js +3 -0
- package/dist/domain/index.js.map +1 -1
- package/dist/{session → domain}/session-descriptor.d.ts +2 -2
- package/dist/{session → domain}/session-descriptor.js +0 -0
- package/dist/domain/session-descriptor.js.map +1 -0
- package/dist/{session → domain}/session.d.ts +0 -0
- package/dist/{session → domain}/session.js +0 -0
- package/dist/domain/session.js.map +1 -0
- package/dist/{session → domain}/session.spec.d.ts +0 -0
- package/dist/{session → domain}/session.spec.js +0 -0
- package/dist/domain/session.spec.js.map +1 -0
- package/dist/{session/session-statement.d.ts → domain/statement.d.ts} +2 -2
- package/dist/{session/session-statement.js → domain/statement.js} +1 -1
- package/dist/domain/statement.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/ipc.d.ts +1 -1
- package/dist/ipc.js.map +1 -1
- package/dist/ipc.spec.js +2 -2
- package/dist/ipc.spec.js.map +1 -1
- package/dist/shared/task.d.ts +1 -1
- package/dist/store/event/store-order.event.js +5 -5
- package/dist/store/event/store-order.event.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/adapter.ts +2 -2
- package/src/adapter/backtester/backtester-adapter.ts +4 -4
- package/src/adapter/paper/index.ts +2 -2
- package/src/adapter/paper/paper-adapter.spec.ts +4 -4
- package/src/adapter/paper/paper-adapter.ts +7 -7
- package/src/adapter/paper/{executor/paper-margin-executor.ts → simulator/paper-margin-simulator.ts} +2 -2
- package/src/adapter/paper/{executor/paper-executor.ts → simulator/paper-simulator.ts} +1 -1
- package/src/adapter/paper/simulator/paper-spot-simulator.spec.ts +88 -0
- package/src/adapter/paper/{executor/paper-spot-executor.ts → simulator/paper-spot-simulator.ts} +2 -2
- package/src/bootstrap.ts +1 -1
- package/src/domain/index.ts +3 -0
- package/src/{session → domain}/session-descriptor.ts +2 -2
- package/src/{session → domain}/session.spec.ts +0 -0
- package/src/{session → domain}/session.ts +0 -0
- package/src/{session/session-statement.ts → domain/statement.ts} +1 -1
- package/src/index.ts +0 -1
- package/src/ipc.spec.ts +4 -4
- package/src/ipc.ts +1 -2
- package/src/shared/task.ts +1 -1
- package/src/store/event/store-order.event.ts +5 -5
- package/src/tests/backtester-adapter.spec.ts +4 -4
- package/src/tests/session.spec.ts +1 -1
- package/dist/adapter/paper/executor/paper-executor.js.map +0 -1
- package/dist/adapter/paper/executor/paper-margin-executor.js.map +0 -1
- package/dist/adapter/paper/executor/paper-spot-executor.js.map +0 -1
- package/dist/session/index.d.ts +0 -4
- package/dist/session/index.js +0 -17
- package/dist/session/index.js.map +0 -1
- package/dist/session/session-descriptor.js.map +0 -1
- package/dist/session/session-optimizer.d.ts +0 -10
- package/dist/session/session-optimizer.js +0 -62
- package/dist/session/session-optimizer.js.map +0 -1
- package/dist/session/session-optimizer.spec.js +0 -103
- package/dist/session/session-optimizer.spec.js.map +0 -1
- package/dist/session/session-statement.js.map +0 -1
- package/dist/session/session.js.map +0 -1
- package/dist/session/session.spec.js.map +0 -1
- package/src/session/index.ts +0 -4
- package/src/session/session-optimizer.spec.ts +0 -86
- package/src/session/session-optimizer.ts +0 -81
package/src/adapter/adapter.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { now, timestamp } from '../shared';
|
|
2
|
-
import {
|
|
2
|
+
import { PaperSimulator } from './paper/simulator/paper-simulator';
|
|
3
3
|
import { PaperAdapter } from './paper';
|
|
4
4
|
import { State, Store } from '../store';
|
|
5
5
|
import { InstrumentSelector, Order, Candle } from '../domain';
|
|
@@ -106,5 +106,5 @@ export abstract class Adapter {
|
|
|
106
106
|
throw new Error('method not implemented');
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
abstract
|
|
109
|
+
abstract createPaperSimulator(adapter: PaperAdapter): PaperSimulator;
|
|
110
110
|
}
|
|
@@ -4,7 +4,7 @@ import { PaperAdapter, PaperOptions } from '../paper';
|
|
|
4
4
|
import { timestamp } from '../../shared';
|
|
5
5
|
import { InstrumentSubscriptionEvent } from '../../store/event';
|
|
6
6
|
import { InstrumentSelector, Order, Candle } from '../../domain';
|
|
7
|
-
import {
|
|
7
|
+
import { PaperSimulator } from '../paper/simulator/paper-simulator';
|
|
8
8
|
import { FeedQuery, HistoryQuery } from '../adapter';
|
|
9
9
|
|
|
10
10
|
export class BacktesterOptions extends PaperOptions {
|
|
@@ -24,7 +24,7 @@ export class BacktesterAdapter extends Adapter {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
async awake(context: AdapterContext): Promise<void> {
|
|
27
|
-
await
|
|
27
|
+
await super.awake(context);
|
|
28
28
|
await this.decoratedAdapter.awake(context);
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -70,7 +70,7 @@ export class BacktesterAdapter extends Adapter {
|
|
|
70
70
|
return this.decoratedAdapter.feed(query);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
return this.decoratedAdapter.
|
|
73
|
+
createPaperSimulator(adapter: PaperAdapter): PaperSimulator {
|
|
74
|
+
return this.decoratedAdapter.createPaperSimulator(adapter);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './paper-adapter';
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
2
|
+
export * from './simulator/paper-spot-simulator';
|
|
3
|
+
export * from './simulator/paper-margin-simulator';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PaperSpotSimulator } from '.';
|
|
2
2
|
import { AdapterContext } from '..';
|
|
3
3
|
import { Store } from '../../store';
|
|
4
4
|
import { Adapter } from '../adapter';
|
|
5
|
-
import {
|
|
5
|
+
import { PaperSimulator } from './simulator/paper-simulator';
|
|
6
6
|
import { PaperAdapter } from './paper-adapter';
|
|
7
7
|
import { Order, Asset, Commission, assetOf } from './../../domain';
|
|
8
8
|
import { instrumentOf } from './../../domain/instrument';
|
|
@@ -29,8 +29,8 @@ class DefaultAdapter extends Adapter {
|
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
return new
|
|
32
|
+
createPaperSimulator(adapter: PaperAdapter): PaperSimulator {
|
|
33
|
+
return new PaperSpotSimulator(adapter);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Adapter, AdapterContext } from '..';
|
|
2
2
|
import { Store } from '../../store';
|
|
3
|
-
import {
|
|
3
|
+
import { PaperSimulator } from './simulator/paper-simulator';
|
|
4
4
|
import { assetOf, Candle, InstrumentSelector, Order } from '../../domain';
|
|
5
5
|
import { BalancePatchEvent } from '../../store/event';
|
|
6
6
|
import { Feed } from 'src/storage';
|
|
@@ -12,7 +12,7 @@ export class PaperOptions {
|
|
|
12
12
|
|
|
13
13
|
export class PaperAdapter extends Adapter {
|
|
14
14
|
readonly name = this.decoratedAdapter.name;
|
|
15
|
-
readonly
|
|
15
|
+
readonly simulator: PaperSimulator;
|
|
16
16
|
|
|
17
17
|
constructor(
|
|
18
18
|
readonly decoratedAdapter: Adapter,
|
|
@@ -21,7 +21,7 @@ export class PaperAdapter extends Adapter {
|
|
|
21
21
|
) {
|
|
22
22
|
super();
|
|
23
23
|
|
|
24
|
-
this.
|
|
24
|
+
this.simulator = this.createPaperSimulator(this);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
timestamp() {
|
|
@@ -68,11 +68,11 @@ export class PaperAdapter extends Adapter {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
async open(order: Order): Promise<void> {
|
|
71
|
-
this.
|
|
71
|
+
this.simulator.open(order);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
async cancel(order: Order): Promise<void> {
|
|
75
|
-
this.
|
|
75
|
+
this.simulator.cancel(order);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
history(query: HistoryQuery): Promise<Candle[]> {
|
|
@@ -83,7 +83,7 @@ export class PaperAdapter extends Adapter {
|
|
|
83
83
|
return this.decoratedAdapter.feed(query);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
return this.decoratedAdapter.
|
|
86
|
+
createPaperSimulator(adapter: PaperAdapter): PaperSimulator {
|
|
87
|
+
return this.decoratedAdapter.createPaperSimulator(adapter);
|
|
88
88
|
}
|
|
89
89
|
}
|
package/src/adapter/paper/{executor/paper-margin-executor.ts → simulator/paper-margin-simulator.ts}
RENAMED
|
@@ -10,9 +10,9 @@ import {
|
|
|
10
10
|
PositionPatchEvent
|
|
11
11
|
} from '../../../store/event';
|
|
12
12
|
import { PaperAdapter } from '..';
|
|
13
|
-
import {
|
|
13
|
+
import { PaperSimulator } from './paper-simulator';
|
|
14
14
|
|
|
15
|
-
export class
|
|
15
|
+
export class PaperMarginSimulator extends PaperSimulator {
|
|
16
16
|
leverage = 10;
|
|
17
17
|
|
|
18
18
|
constructor(adapter: PaperAdapter) {
|
|
@@ -3,7 +3,7 @@ import { Component, InstrumentSelector, Order, Orderbook, Trade } from '../../..
|
|
|
3
3
|
import { PaperAdapter } from '..';
|
|
4
4
|
import { Set } from 'typescript-collections';
|
|
5
5
|
|
|
6
|
-
export abstract class
|
|
6
|
+
export abstract class PaperSimulator {
|
|
7
7
|
private readonly pending: Record<string, Set<Order>> = {};
|
|
8
8
|
|
|
9
9
|
constructor(readonly adapter: PaperAdapter) {
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Adapter, AdapterContext } from './../../adapter';
|
|
2
|
+
import {
|
|
3
|
+
BalancePatchEvent,
|
|
4
|
+
InstrumentPatchEvent,
|
|
5
|
+
InstrumentSubscriptionEvent,
|
|
6
|
+
OrderbookPatchEvent,
|
|
7
|
+
TradePatchEvent
|
|
8
|
+
} from './../../../store/event';
|
|
9
|
+
import { Store } from './../../../store';
|
|
10
|
+
import { PaperSimulator } from './paper-simulator';
|
|
11
|
+
import { PaperAdapter } from '../paper-adapter';
|
|
12
|
+
import { PaperSpotSimulator } from './paper-spot-simulator';
|
|
13
|
+
import {
|
|
14
|
+
Asset,
|
|
15
|
+
Commission,
|
|
16
|
+
Order,
|
|
17
|
+
instrumentOf,
|
|
18
|
+
assetOf,
|
|
19
|
+
commissionPercentOf
|
|
20
|
+
} from './../../../domain';
|
|
21
|
+
|
|
22
|
+
class DefaultAdapter extends Adapter {
|
|
23
|
+
name = 'default';
|
|
24
|
+
|
|
25
|
+
timestamp() {
|
|
26
|
+
return 123;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async awake(context: AdapterContext): Promise<void> {
|
|
30
|
+
await super.awake(context);
|
|
31
|
+
|
|
32
|
+
context.dispatch(
|
|
33
|
+
new InstrumentPatchEvent(
|
|
34
|
+
context.timestamp,
|
|
35
|
+
new Asset('a', this.name, 8),
|
|
36
|
+
new Asset('b', this.name, 4),
|
|
37
|
+
new Commission(0.1, 0.1),
|
|
38
|
+
'a-b'
|
|
39
|
+
)
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
createPaperSimulator(adapter: PaperAdapter): PaperSimulator {
|
|
44
|
+
return new PaperSpotSimulator(adapter);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
describe('paper spot simulator tests', () => {
|
|
49
|
+
const options = {
|
|
50
|
+
balance: {
|
|
51
|
+
['default:a']: 1000,
|
|
52
|
+
['default:b']: 200
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
test('should open an market order', async () => {
|
|
57
|
+
const store = new Store();
|
|
58
|
+
const adapter = new DefaultAdapter();
|
|
59
|
+
const order = Order.buyMarket(instrumentOf('default:a-b'), 1);
|
|
60
|
+
|
|
61
|
+
store.dispatch(
|
|
62
|
+
new InstrumentPatchEvent(
|
|
63
|
+
0,
|
|
64
|
+
new Asset('a', 'default', 8),
|
|
65
|
+
new Asset('b', 'default', 4),
|
|
66
|
+
commissionPercentOf(0.1, 0.1),
|
|
67
|
+
'a-b'
|
|
68
|
+
),
|
|
69
|
+
new BalancePatchEvent(assetOf('default:a'), 1000, 0, 1)
|
|
70
|
+
);
|
|
71
|
+
store.dispatch(new BalancePatchEvent(assetOf('default:b'), 1000, 0, 1));
|
|
72
|
+
store.dispatch(new InstrumentSubscriptionEvent(1, instrumentOf('default:a-b'), true));
|
|
73
|
+
|
|
74
|
+
const sut = new PaperSpotSimulator(new PaperAdapter(adapter, store, options));
|
|
75
|
+
|
|
76
|
+
await sut.open(order);
|
|
77
|
+
|
|
78
|
+
expect(store.snapshot.order[order.id].state).toBe('PENDING');
|
|
79
|
+
|
|
80
|
+
store.dispatch(new TradePatchEvent(instrumentOf('default:a-b'), 5, 1, 2));
|
|
81
|
+
|
|
82
|
+
expect(store.snapshot.order[order.id].quantity).toBe(1);
|
|
83
|
+
expect(store.snapshot.order[order.id].averageExecutionRate).toBe(5);
|
|
84
|
+
expect(store.snapshot.order[order.id].state).toBe('FILLED');
|
|
85
|
+
expect(store.snapshot.balance['default:b'].free).toBe(995);
|
|
86
|
+
expect(store.snapshot.balance['default:a'].free).toBe(1000.999);
|
|
87
|
+
});
|
|
88
|
+
});
|
package/src/adapter/paper/{executor/paper-spot-executor.ts → simulator/paper-spot-simulator.ts}
RENAMED
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
OrderPendingEvent
|
|
11
11
|
} from '../../../store/event';
|
|
12
12
|
import { PaperAdapter } from '..';
|
|
13
|
-
import {
|
|
13
|
+
import { PaperSimulator } from './paper-simulator';
|
|
14
14
|
import { timestamp } from '../../../shared';
|
|
15
15
|
|
|
16
|
-
export class
|
|
16
|
+
export class PaperSpotSimulator extends PaperSimulator {
|
|
17
17
|
constructor(readonly adapter: PaperAdapter) {
|
|
18
18
|
super(adapter);
|
|
19
19
|
}
|
package/src/bootstrap.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from './adapter/backtester';
|
|
6
6
|
import { AdapterAggregate } from './adapter';
|
|
7
7
|
import { PaperAdapter } from './adapter/paper';
|
|
8
|
-
import { Session, SessionDescriptor } from './
|
|
8
|
+
import { Session, SessionDescriptor } from './domain';
|
|
9
9
|
import { Store } from './store';
|
|
10
10
|
|
|
11
11
|
export class Bootstrap {
|
package/src/domain/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Adapter } from '../adapter';
|
|
2
2
|
import { Measurement } from '../storage/measurement';
|
|
3
3
|
import { Feed } from '../storage';
|
|
4
|
-
import { BacktesterOptions } from '
|
|
5
|
-
import { PaperOptions } from '
|
|
4
|
+
import { BacktesterOptions } from '../adapter/backtester';
|
|
5
|
+
import { PaperOptions } from '../adapter/paper';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Describes a single session.
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Session } from '.';
|
|
2
|
-
import { InstrumentSelector } from '
|
|
2
|
+
import { InstrumentSelector } from '.';
|
|
3
3
|
import { combineLatest, finalize, map, take, tap } from 'rxjs';
|
|
4
4
|
import { drawdown } from '../indicator';
|
|
5
5
|
import { floor, precision } from '../shared';
|
package/src/index.ts
CHANGED
package/src/ipc.spec.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Adapter, AdapterContext } from './adapter';
|
|
2
|
-
import { PaperAdapter,
|
|
3
|
-
import {
|
|
2
|
+
import { PaperAdapter, PaperSpotSimulator } from './adapter/paper';
|
|
3
|
+
import { PaperSimulator } from './adapter/paper/simulator/paper-simulator';
|
|
4
4
|
import { run } from './ipc';
|
|
5
5
|
import { task } from './shared';
|
|
6
6
|
import { EventEmitter } from 'events';
|
|
@@ -13,8 +13,8 @@ class DefaultAdapter extends Adapter {
|
|
|
13
13
|
return 123;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
return new
|
|
16
|
+
createPaperSimulator(adapter: PaperAdapter): PaperSimulator {
|
|
17
|
+
return new PaperSpotSimulator(adapter);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
awake(context: AdapterContext): Promise<void> {
|
package/src/ipc.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Session, SessionDescriptor } from './
|
|
2
|
-
import { instrumentOf } from './domain';
|
|
1
|
+
import { Session, SessionDescriptor, instrumentOf } from './domain';
|
|
3
2
|
import { Topic, event, handler } from './shared/topic';
|
|
4
3
|
import { runTask, Logger } from './shared';
|
|
5
4
|
import { Bootstrap } from './bootstrap';
|
package/src/shared/task.ts
CHANGED
|
@@ -66,7 +66,7 @@ export function OrderPendingEventHandler(
|
|
|
66
66
|
const order = state.order[event.id];
|
|
67
67
|
|
|
68
68
|
if (order.state != 'NEW') {
|
|
69
|
-
throw new Error(`Order is not
|
|
69
|
+
throw new Error(`Order is not NEW: ${order.state}`);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
order.state = 'PENDING';
|
|
@@ -98,7 +98,7 @@ export function OrderFilledEventHandler(
|
|
|
98
98
|
const order = state.order[event.id];
|
|
99
99
|
|
|
100
100
|
if (order.state != 'PENDING' && order.state != 'CANCELING') {
|
|
101
|
-
throw new Error(
|
|
101
|
+
throw new Error(`Order is not PENDING or CANCELING: ${order.state}`);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
order.state = 'FILLED';
|
|
@@ -132,7 +132,7 @@ export function OrderCancelingEventHandler(
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
if (order.state != 'PENDING') {
|
|
135
|
-
throw new Error(
|
|
135
|
+
throw new Error(`Order is not PENDING: ${order.state}`);
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
order.state = 'CANCELING';
|
|
@@ -160,7 +160,7 @@ export function OrderCanceledEventHandler(
|
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
if (order.state != 'CANCELING') {
|
|
163
|
-
throw new Error(
|
|
163
|
+
throw new Error(`Order is not CANCELING: ${order.state}`);
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
order.state = 'CANCELED';
|
|
@@ -208,7 +208,7 @@ export function OrderRejectedEventHandler(
|
|
|
208
208
|
const order = state.order[event.id];
|
|
209
209
|
|
|
210
210
|
if (order.state != 'NEW') {
|
|
211
|
-
throw new Error(
|
|
211
|
+
throw new Error(`Order is not NEW: ${order.state}`);
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
order.state = 'REJECTED';
|
|
@@ -3,8 +3,8 @@ import { InMemoryStorage, Feed } from '../storage';
|
|
|
3
3
|
import { Store } from '../store';
|
|
4
4
|
import { InstrumentPatchEvent, TradePatchEvent } from '../store/event';
|
|
5
5
|
import { Adapter, AdapterContext } from '../adapter/adapter';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { PaperSpotSimulator } from '../adapter/paper';
|
|
7
|
+
import { PaperSimulator } from '../adapter/paper/simulator/paper-simulator';
|
|
8
8
|
import { PaperAdapter } from '../adapter/paper/paper-adapter';
|
|
9
9
|
import { BacktesterAdapter } from '../adapter/backtester/backtester-adapter';
|
|
10
10
|
import { BacktesterStreamer } from '../adapter/backtester/backtester-streamer';
|
|
@@ -19,8 +19,8 @@ class DefaultAdapter extends Adapter {
|
|
|
19
19
|
return 123;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
return new
|
|
22
|
+
createPaperSimulator(adapter: PaperAdapter): PaperSimulator {
|
|
23
|
+
return new PaperSpotSimulator(adapter);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
async awake(context: AdapterContext): Promise<void> {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paper-executor.js","sourceRoot":"","sources":["../../../../src/adapter/paper/executor/paper-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paper-margin-executor.js","sourceRoot":"","sources":["../../../../src/adapter/paper/executor/paper-margin-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paper-spot-executor.js","sourceRoot":"","sources":["../../../../src/adapter/paper/executor/paper-spot-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/session/index.d.ts
DELETED
package/dist/session/index.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./session"), exports);
|
|
14
|
-
__exportStar(require("./session-descriptor"), exports);
|
|
15
|
-
__exportStar(require("./session-optimizer"), exports);
|
|
16
|
-
__exportStar(require("./session-statement"), exports);
|
|
17
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,uDAAqC;AACrC,sDAAoC;AACpC,sDAAoC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-descriptor.js","sourceRoot":"","sources":["../../src/session/session-descriptor.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare function fit(key: string, generator?: any[]): (target: any, propertyKey: string) => void;
|
|
2
|
-
export declare class SessionOptimizer {
|
|
3
|
-
static source: any;
|
|
4
|
-
static provide(key: string): any;
|
|
5
|
-
}
|
|
6
|
-
export declare class SessionOptimizerGenerator {
|
|
7
|
-
static values: Record<string, any[]>;
|
|
8
|
-
static get count(): number;
|
|
9
|
-
static product(): any[];
|
|
10
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SessionOptimizerGenerator = exports.SessionOptimizer = exports.fit = void 0;
|
|
4
|
-
function fit(key, generator) {
|
|
5
|
-
return function (target, propertyKey) {
|
|
6
|
-
let defaultSetterValue;
|
|
7
|
-
if (generator) {
|
|
8
|
-
SessionOptimizerGenerator.values[key] = generator;
|
|
9
|
-
}
|
|
10
|
-
Object.defineProperty(target, propertyKey, {
|
|
11
|
-
get: () => { var _a; return (_a = SessionOptimizer.provide(key)) !== null && _a !== void 0 ? _a : defaultSetterValue; },
|
|
12
|
-
set: (newValue) => {
|
|
13
|
-
if (!defaultSetterValue) {
|
|
14
|
-
defaultSetterValue = newValue;
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
if (defaultSetterValue == newValue) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
throw new Error('can not set a value of optimized property.');
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
exports.fit = fit;
|
|
26
|
-
class SessionOptimizer {
|
|
27
|
-
static provide(key) {
|
|
28
|
-
return key
|
|
29
|
-
.split('.')
|
|
30
|
-
.reduce((aggregate, propertyName) => (aggregate ? aggregate[propertyName] : null), this.source);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.SessionOptimizer = SessionOptimizer;
|
|
34
|
-
SessionOptimizer.source = {};
|
|
35
|
-
class SessionOptimizerGenerator {
|
|
36
|
-
static get count() {
|
|
37
|
-
return Object.values(this.values).reduce((aggregate, value) => (aggregate *= value.length), 1);
|
|
38
|
-
}
|
|
39
|
-
static product() {
|
|
40
|
-
const matrix = [];
|
|
41
|
-
const keys = Object.keys(this.values);
|
|
42
|
-
const values = Object.values(this.values).reduce((a, b) => a.map(x => b.map(y => x.concat(y))).reduce((a, b) => a.concat(b), []), [[]]);
|
|
43
|
-
for (const value of values) {
|
|
44
|
-
const result = {};
|
|
45
|
-
for (let i = 0; i < keys.length; i++) {
|
|
46
|
-
const path = keys[i];
|
|
47
|
-
const parts = path.split('.');
|
|
48
|
-
let it = result;
|
|
49
|
-
while (parts.length > 1) {
|
|
50
|
-
const part = parts.shift();
|
|
51
|
-
it = it[part] = it[part] || {};
|
|
52
|
-
}
|
|
53
|
-
it[parts[0]] = value[i];
|
|
54
|
-
}
|
|
55
|
-
matrix.push(result);
|
|
56
|
-
}
|
|
57
|
-
return matrix;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
exports.SessionOptimizerGenerator = SessionOptimizerGenerator;
|
|
61
|
-
SessionOptimizerGenerator.values = {};
|
|
62
|
-
//# sourceMappingURL=session-optimizer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-optimizer.js","sourceRoot":"","sources":["../../src/session/session-optimizer.ts"],"names":[],"mappings":"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"}
|