@senpi/trading-recipe 1.0.52 → 1.0.53
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/actions/position-tracker/position-tracker.action.js +1 -1
- package/dist/cli/guide-commands.js +2 -2
- package/dist/runtime/scanner-registry.d.ts.map +1 -1
- package/dist/runtime/scanner-registry.js +3 -6
- package/dist/runtime/scanner-registry.js.map +1 -1
- package/dist/runtime/validate-dsl-position-tracking.d.ts.map +1 -1
- package/dist/runtime/validate-dsl-position-tracking.js +11 -7
- package/dist/runtime/validate-dsl-position-tracking.js.map +1 -1
- package/dist/scanners/__tests__/fixtures/position-tracker-scenarios.d.ts +21 -0
- package/dist/scanners/__tests__/fixtures/{strategy-monitor-scenarios.d.ts.map → position-tracker-scenarios.d.ts.map} +1 -1
- package/dist/scanners/__tests__/fixtures/{strategy-monitor-scenarios.js → position-tracker-scenarios.js} +44 -44
- package/dist/scanners/__tests__/fixtures/{strategy-monitor-scenarios.js.map → position-tracker-scenarios.js.map} +1 -1
- package/dist/scanners/implementations/index.d.ts +1 -1
- package/dist/scanners/implementations/index.d.ts.map +1 -1
- package/dist/scanners/implementations/index.js +1 -1
- package/dist/scanners/implementations/index.js.map +1 -1
- package/dist/scanners/implementations/{strategy-monitor.d.ts → position-tracker.d.ts} +22 -22
- package/dist/scanners/implementations/{strategy-monitor.d.ts.map → position-tracker.d.ts.map} +1 -1
- package/dist/scanners/implementations/{strategy-monitor.js → position-tracker.js} +17 -17
- package/dist/scanners/implementations/{strategy-monitor.js.map → position-tracker.js.map} +1 -1
- package/dist/scanners/index.d.ts +1 -1
- package/dist/scanners/index.d.ts.map +1 -1
- package/dist/scanners/index.js +1 -1
- package/dist/scanners/index.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/dist/scanners/__tests__/fixtures/strategy-monitor-scenarios.d.ts +0 -21
|
@@ -187,7 +187,7 @@ export const positionTrackerFactory = (config, context) => new PositionTrackerAc
|
|
|
187
187
|
export const positionTrackerManifest = {
|
|
188
188
|
type: 'action/POSITION_TRACKER',
|
|
189
189
|
name: 'Position Tracker',
|
|
190
|
-
description: 'Translates
|
|
190
|
+
description: 'Translates position-tracker position deltas into DSL hook events',
|
|
191
191
|
eventsConsumed: [HOOK_EVENT.ON_SIGNAL_DETECTED],
|
|
192
192
|
eventsEmitted: [
|
|
193
193
|
HOOK_EVENT.ON_POSITION_OPENED,
|
|
@@ -107,12 +107,12 @@ oi_tracker
|
|
|
107
107
|
|
|
108
108
|
──────────────────────────────────────────────────────────────────────────────
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
position_tracker
|
|
111
111
|
Wallet position monitor: compares clearing-house snapshots and emits lifecycle deltas.
|
|
112
112
|
Use with action POSITION_TRACKER to feed the DSL exit engine.
|
|
113
113
|
Typical interval: 10s–60s
|
|
114
114
|
|
|
115
|
-
Type aliases (same scanner):
|
|
115
|
+
Type aliases (same scanner): position-tracker
|
|
116
116
|
|
|
117
117
|
Scanner signal types (signalType per result — not YAML action_type values):
|
|
118
118
|
POSITION_OPENED, POSITION_CLOSED, POSITION_INCREASED,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner-registry.d.ts","sourceRoot":"","sources":["../../src/runtime/scanner-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAc/D,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAIrD,gEAAgE;AAChE,iBAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED,oFAAoF;AACpF,iBAAS,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAErD;AAED;;;;GAIG;AACH,iBAAS,aAAa,CACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,OAAO,EACzB,SAAS,CAAC,EAAE,KAAK,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC,CAAC,GACD,cAAc,CAqBhB;
|
|
1
|
+
{"version":3,"file":"scanner-registry.d.ts","sourceRoot":"","sources":["../../src/runtime/scanner-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAc/D,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAIrD,gEAAgE;AAChE,iBAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED,oFAAoF;AACpF,iBAAS,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAErD;AAED;;;;GAIG;AACH,iBAAS,aAAa,CACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,OAAO,EACzB,SAAS,CAAC,EAAE,KAAK,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC,CAAC,GACD,cAAc,CAqBhB;AAoFD,eAAO,MAAM,eAAe;;;;CAI3B,CAAC"}
|
|
@@ -9,7 +9,7 @@ import { liquidationWatchdogScanner } from "../scanners/implementations/liquidat
|
|
|
9
9
|
import { marketRegimeScanner } from "../scanners/implementations/market-regime.js";
|
|
10
10
|
import { smFlipScanner } from "../scanners/implementations/sm-flip.js";
|
|
11
11
|
import { opportunityScanner } from "../scanners/implementations/opportunity.js";
|
|
12
|
-
import {
|
|
12
|
+
import { positionTrackerScanner } from "../scanners/implementations/position-tracker.js";
|
|
13
13
|
import { parseInterval } from "./parse-interval.js";
|
|
14
14
|
const registry = new Map();
|
|
15
15
|
/** Registers one scanner factory under a runtime type alias. */
|
|
@@ -104,11 +104,8 @@ register("market-regime", marketRegimeScanner);
|
|
|
104
104
|
register("sm_flip", smFlipScanner);
|
|
105
105
|
register("sm-flip", smFlipScanner);
|
|
106
106
|
register("opportunity", opportunityScanner);
|
|
107
|
-
register("
|
|
108
|
-
register("
|
|
109
|
-
/** Aliases documented for POSITION_TRACKER recipes — same implementation as strategy_monitor. */
|
|
110
|
-
register("position_tracker", strategyMonitorScanner);
|
|
111
|
-
register("position-tracker", strategyMonitorScanner);
|
|
107
|
+
register("position_tracker", positionTrackerScanner);
|
|
108
|
+
register("position-tracker", positionTrackerScanner);
|
|
112
109
|
export const ScannerRegistry = {
|
|
113
110
|
register,
|
|
114
111
|
get,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner-registry.js","sourceRoot":"","sources":["../../src/runtime/scanner-registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scanner-registry.js","sourceRoot":"","sources":["../../src/runtime/scanner-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-dsl-position-tracking.d.ts","sourceRoot":"","sources":["../../src/runtime/validate-dsl-position-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-dsl-position-tracking.d.ts","sourceRoot":"","sources":["../../src/runtime/validate-dsl-position-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAOtE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAgC9F"}
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
+
const POSITION_TRACKER_TYPES = new Set([
|
|
2
|
+
"position-tracker",
|
|
3
|
+
"position_tracker",
|
|
4
|
+
]);
|
|
1
5
|
export function validateDslPositionTracking(config, hasDsl) {
|
|
2
6
|
if (!hasDsl)
|
|
3
7
|
return;
|
|
4
|
-
const
|
|
5
|
-
if (
|
|
6
|
-
throw new Error("DSL requires at least one
|
|
8
|
+
const positionTrackerScanners = (config.scanners ?? []).filter((scanner) => POSITION_TRACKER_TYPES.has(scanner.type));
|
|
9
|
+
if (positionTrackerScanners.length === 0) {
|
|
10
|
+
throw new Error("DSL requires at least one position-tracker scanner so position openings are confirmed from clearing-house state.");
|
|
7
11
|
}
|
|
8
|
-
const
|
|
12
|
+
const positionTrackerNames = new Set(positionTrackerScanners.map((scanner) => scanner.name));
|
|
9
13
|
const trackerActions = (config.actions ?? []).filter((action) => action.action_type === "POSITION_TRACKER");
|
|
10
14
|
if (trackerActions.length === 0) {
|
|
11
|
-
throw new Error("DSL requires a POSITION_TRACKER action wired to a
|
|
15
|
+
throw new Error("DSL requires a POSITION_TRACKER action wired to a position-tracker scanner.");
|
|
12
16
|
}
|
|
13
17
|
const hasWiredTracker = trackerActions.some((action) => {
|
|
14
18
|
if (!Array.isArray(action.scanners) || action.scanners.length === 0) {
|
|
15
19
|
return true;
|
|
16
20
|
}
|
|
17
|
-
return action.scanners.some((scannerName) =>
|
|
21
|
+
return action.scanners.some((scannerName) => positionTrackerNames.has(scannerName));
|
|
18
22
|
});
|
|
19
23
|
if (!hasWiredTracker) {
|
|
20
|
-
throw new Error("DSL requires at least one POSITION_TRACKER action subscribed to a configured
|
|
24
|
+
throw new Error("DSL requires at least one POSITION_TRACKER action subscribed to a configured position-tracker scanner.");
|
|
21
25
|
}
|
|
22
26
|
}
|
|
23
27
|
//# sourceMappingURL=validate-dsl-position-tracking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-dsl-position-tracking.js","sourceRoot":"","sources":["../../src/runtime/validate-dsl-position-tracking.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,2BAA2B,CAAC,MAA2B,EAAE,MAAe;IACtF,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,uBAAuB,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAC5D,CAAC,OAAO,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"validate-dsl-position-tracking.js","sourceRoot":"","sources":["../../src/runtime/validate-dsl-position-tracking.ts"],"names":[],"mappings":"AAEA,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,kBAAkB;IAClB,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,UAAU,2BAA2B,CAAC,MAA2B,EAAE,MAAe;IACtF,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,uBAAuB,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAC5D,CAAC,OAAO,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CACtD,CAAC;IACF,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;IACJ,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,kBAAkB,CAAC,CAAC;IAC5G,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ClearingHousePosition, ClearingHouseState } from "../../implementations/liquidation-watchdog.js";
|
|
2
|
+
import type { PositionTrackerDeltaType } from "../../implementations/position-tracker.js";
|
|
3
|
+
export interface PositionTrackerExpectedSignal {
|
|
4
|
+
signalType: PositionTrackerDeltaType;
|
|
5
|
+
asset: string;
|
|
6
|
+
dex: string;
|
|
7
|
+
}
|
|
8
|
+
export interface PositionTrackerScenarioRun {
|
|
9
|
+
state: ClearingHouseState;
|
|
10
|
+
expectedSignals: PositionTrackerExpectedSignal[];
|
|
11
|
+
}
|
|
12
|
+
export interface PositionTrackerScenario {
|
|
13
|
+
name: string;
|
|
14
|
+
runs: PositionTrackerScenarioRun[];
|
|
15
|
+
}
|
|
16
|
+
export declare function positionTrackerPosition(overrides: Partial<ClearingHousePosition> & {
|
|
17
|
+
coin: string;
|
|
18
|
+
}): ClearingHousePosition;
|
|
19
|
+
export declare function positionTrackerState(positions: ClearingHousePosition[]): ClearingHouseState;
|
|
20
|
+
export declare const positionTrackerScenarios: PositionTrackerScenario[];
|
|
21
|
+
//# sourceMappingURL=position-tracker-scenarios.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"position-tracker-scenarios.d.ts","sourceRoot":"","sources":["../../../../src/scanners/__tests__/fixtures/position-tracker-scenarios.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAC/G,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAE1F,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,wBAAwB,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,eAAe,EAAE,6BAA6B,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,0BAA0B,EAAE,CAAC;CACpC;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3D,qBAAqB,CAavB;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,qBAAqB,EAAE,GACjC,kBAAkB,CASpB;AAED,eAAO,MAAM,wBAAwB,EAAE,uBAAuB,EA4K7D,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function
|
|
1
|
+
export function positionTrackerPosition(overrides) {
|
|
2
2
|
return {
|
|
3
3
|
dex: "main",
|
|
4
4
|
szi: 1,
|
|
@@ -12,7 +12,7 @@ export function strategyMonitorPosition(overrides) {
|
|
|
12
12
|
...overrides,
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
-
export function
|
|
15
|
+
export function positionTrackerState(positions) {
|
|
16
16
|
return {
|
|
17
17
|
accountValue: 10_000,
|
|
18
18
|
totalMarginUsed: 3_000,
|
|
@@ -22,15 +22,15 @@ export function strategyMonitorState(positions) {
|
|
|
22
22
|
positions,
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
export const
|
|
25
|
+
export const positionTrackerScenarios = [
|
|
26
26
|
{
|
|
27
27
|
name: "treats the first observed snapshot as opened positions",
|
|
28
28
|
runs: [
|
|
29
29
|
{
|
|
30
|
-
state:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
state: positionTrackerState([
|
|
31
|
+
positionTrackerPosition({ coin: "BTC", szi: 1 }),
|
|
32
|
+
positionTrackerPosition({ coin: "ETH", szi: -2 }),
|
|
33
|
+
positionTrackerPosition({ coin: "SOL", szi: 3 }),
|
|
34
34
|
]),
|
|
35
35
|
expectedSignals: [
|
|
36
36
|
{ signalType: "POSITION_OPENED", asset: "BTC", dex: "main" },
|
|
@@ -44,10 +44,10 @@ export const strategyMonitorScenarios = [
|
|
|
44
44
|
name: "detects closes after the initial scan",
|
|
45
45
|
runs: [
|
|
46
46
|
{
|
|
47
|
-
state:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
state: positionTrackerState([
|
|
48
|
+
positionTrackerPosition({ coin: "BTC", szi: 1 }),
|
|
49
|
+
positionTrackerPosition({ coin: "ETH", szi: -2 }),
|
|
50
|
+
positionTrackerPosition({ coin: "SOL", szi: 3 }),
|
|
51
51
|
]),
|
|
52
52
|
expectedSignals: [
|
|
53
53
|
{ signalType: "POSITION_OPENED", asset: "BTC", dex: "main" },
|
|
@@ -56,9 +56,9 @@ export const strategyMonitorScenarios = [
|
|
|
56
56
|
],
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
|
-
state:
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
state: positionTrackerState([
|
|
60
|
+
positionTrackerPosition({ coin: "BTC", szi: 1 }),
|
|
61
|
+
positionTrackerPosition({ coin: "ETH", szi: -2 }),
|
|
62
62
|
]),
|
|
63
63
|
expectedSignals: [{ signalType: "POSITION_CLOSED", asset: "SOL", dex: "main" }],
|
|
64
64
|
},
|
|
@@ -68,10 +68,10 @@ export const strategyMonitorScenarios = [
|
|
|
68
68
|
name: "detects increases, decreases, and flips in one sequence",
|
|
69
69
|
runs: [
|
|
70
70
|
{
|
|
71
|
-
state:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
state: positionTrackerState([
|
|
72
|
+
positionTrackerPosition({ coin: "BTC", szi: 1 }),
|
|
73
|
+
positionTrackerPosition({ coin: "ETH", szi: -4 }),
|
|
74
|
+
positionTrackerPosition({ coin: "SOL", szi: 2 }),
|
|
75
75
|
]),
|
|
76
76
|
expectedSignals: [
|
|
77
77
|
{ signalType: "POSITION_OPENED", asset: "BTC", dex: "main" },
|
|
@@ -80,10 +80,10 @@ export const strategyMonitorScenarios = [
|
|
|
80
80
|
],
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
|
-
state:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
state: positionTrackerState([
|
|
84
|
+
positionTrackerPosition({ coin: "BTC", szi: 2 }),
|
|
85
|
+
positionTrackerPosition({ coin: "ETH", szi: -3 }),
|
|
86
|
+
positionTrackerPosition({ coin: "SOL", szi: -1 }),
|
|
87
87
|
]),
|
|
88
88
|
expectedSignals: [
|
|
89
89
|
{ signalType: "POSITION_INCREASED", asset: "BTC", dex: "main" },
|
|
@@ -97,9 +97,9 @@ export const strategyMonitorScenarios = [
|
|
|
97
97
|
name: "handles mixed opened, closed, and unchanged positions",
|
|
98
98
|
runs: [
|
|
99
99
|
{
|
|
100
|
-
state:
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
state: positionTrackerState([
|
|
101
|
+
positionTrackerPosition({ coin: "BTC", szi: 1 }),
|
|
102
|
+
positionTrackerPosition({ coin: "ETH", szi: 1 }),
|
|
103
103
|
]),
|
|
104
104
|
expectedSignals: [
|
|
105
105
|
{ signalType: "POSITION_OPENED", asset: "BTC", dex: "main" },
|
|
@@ -107,9 +107,9 @@ export const strategyMonitorScenarios = [
|
|
|
107
107
|
],
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
|
-
state:
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
state: positionTrackerState([
|
|
111
|
+
positionTrackerPosition({ coin: "ETH", szi: 1 }),
|
|
112
|
+
positionTrackerPosition({ coin: "SOL", szi: -2 }),
|
|
113
113
|
]),
|
|
114
114
|
expectedSignals: [
|
|
115
115
|
{ signalType: "POSITION_CLOSED", asset: "BTC", dex: "main" },
|
|
@@ -122,7 +122,7 @@ export const strategyMonitorScenarios = [
|
|
|
122
122
|
name: "produces no deltas on an empty first run",
|
|
123
123
|
runs: [
|
|
124
124
|
{
|
|
125
|
-
state:
|
|
125
|
+
state: positionTrackerState([]),
|
|
126
126
|
expectedSignals: [],
|
|
127
127
|
},
|
|
128
128
|
],
|
|
@@ -131,10 +131,10 @@ export const strategyMonitorScenarios = [
|
|
|
131
131
|
name: "closes all positions when the snapshot becomes empty",
|
|
132
132
|
runs: [
|
|
133
133
|
{
|
|
134
|
-
state:
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
134
|
+
state: positionTrackerState([
|
|
135
|
+
positionTrackerPosition({ coin: "BTC", szi: 1 }),
|
|
136
|
+
positionTrackerPosition({ coin: "ETH", szi: -2 }),
|
|
137
|
+
positionTrackerPosition({ coin: "SOL", szi: 3 }),
|
|
138
138
|
]),
|
|
139
139
|
expectedSignals: [
|
|
140
140
|
{ signalType: "POSITION_OPENED", asset: "BTC", dex: "main" },
|
|
@@ -143,7 +143,7 @@ export const strategyMonitorScenarios = [
|
|
|
143
143
|
],
|
|
144
144
|
},
|
|
145
145
|
{
|
|
146
|
-
state:
|
|
146
|
+
state: positionTrackerState([]),
|
|
147
147
|
expectedSignals: [
|
|
148
148
|
{ signalType: "POSITION_CLOSED", asset: "BTC", dex: "main" },
|
|
149
149
|
{ signalType: "POSITION_CLOSED", asset: "ETH", dex: "main" },
|
|
@@ -156,16 +156,16 @@ export const strategyMonitorScenarios = [
|
|
|
156
156
|
name: "ignores entry-price-only changes when size and direction stay the same",
|
|
157
157
|
runs: [
|
|
158
158
|
{
|
|
159
|
-
state:
|
|
160
|
-
|
|
159
|
+
state: positionTrackerState([
|
|
160
|
+
positionTrackerPosition({ coin: "BTC", szi: 1, entryPx: 100 }),
|
|
161
161
|
]),
|
|
162
162
|
expectedSignals: [
|
|
163
163
|
{ signalType: "POSITION_OPENED", asset: "BTC", dex: "main" },
|
|
164
164
|
],
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
|
-
state:
|
|
168
|
-
|
|
167
|
+
state: positionTrackerState([
|
|
168
|
+
positionTrackerPosition({ coin: "BTC", szi: 1, entryPx: 110 }),
|
|
169
169
|
]),
|
|
170
170
|
expectedSignals: [],
|
|
171
171
|
},
|
|
@@ -175,9 +175,9 @@ export const strategyMonitorScenarios = [
|
|
|
175
175
|
name: "tracks same-asset positions independently across dexs",
|
|
176
176
|
runs: [
|
|
177
177
|
{
|
|
178
|
-
state:
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
state: positionTrackerState([
|
|
179
|
+
positionTrackerPosition({ coin: "BTC", dex: "main", szi: 1 }),
|
|
180
|
+
positionTrackerPosition({ coin: "BTC", dex: "xyz", szi: -2 }),
|
|
181
181
|
]),
|
|
182
182
|
expectedSignals: [
|
|
183
183
|
{ signalType: "POSITION_OPENED", asset: "BTC", dex: "main" },
|
|
@@ -185,8 +185,8 @@ export const strategyMonitorScenarios = [
|
|
|
185
185
|
],
|
|
186
186
|
},
|
|
187
187
|
{
|
|
188
|
-
state:
|
|
189
|
-
|
|
188
|
+
state: positionTrackerState([
|
|
189
|
+
positionTrackerPosition({ coin: "BTC", dex: "xyz", szi: -2 }),
|
|
190
190
|
]),
|
|
191
191
|
expectedSignals: [
|
|
192
192
|
{ signalType: "POSITION_CLOSED", asset: "BTC", dex: "main" },
|
|
@@ -195,4 +195,4 @@ export const strategyMonitorScenarios = [
|
|
|
195
195
|
],
|
|
196
196
|
},
|
|
197
197
|
];
|
|
198
|
-
//# sourceMappingURL=
|
|
198
|
+
//# sourceMappingURL=position-tracker-scenarios.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"position-tracker-scenarios.js","sourceRoot":"","sources":["../../../../src/scanners/__tests__/fixtures/position-tracker-scenarios.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@ export { emergingMoversScanner, type EmergingMoversConfig, type EmergingMoversSt
|
|
|
5
5
|
export { marketRegimeScanner, type MarketRegimeConfig, type MarketRegimeState, } from "./market-regime.js";
|
|
6
6
|
export { smFlipScanner, type SmFlipConfig, type SmFlipState, } from "./sm-flip.js";
|
|
7
7
|
export { opportunityScanner, type OpportunityConfig, type OpportunityState, } from "./opportunity.js";
|
|
8
|
-
export {
|
|
8
|
+
export { positionTrackerScanner, type PositionTrackerConfig, type PositionTrackerDelta, type PositionTrackerDeltaType, type PositionTrackerPositionSnapshot, type PositionTrackerState, normalizePositionTrackerPositions, diffPositionTrackerPositions, applyPositionTrackerDelta, } from "./position-tracker.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scanners/implementations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scanners/implementations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,oBAAoB,EACzB,iCAAiC,EACjC,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC"}
|
|
@@ -5,5 +5,5 @@ export { emergingMoversScanner, } from "./emerging-movers.js";
|
|
|
5
5
|
export { marketRegimeScanner, } from "./market-regime.js";
|
|
6
6
|
export { smFlipScanner, } from "./sm-flip.js";
|
|
7
7
|
export { opportunityScanner, } from "./opportunity.js";
|
|
8
|
-
export {
|
|
8
|
+
export { positionTrackerScanner, normalizePositionTrackerPositions, diffPositionTrackerPositions, applyPositionTrackerDelta, } from "./position-tracker.js";
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scanners/implementations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAInB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,GAGjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAuB,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,GAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,GAGd,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scanners/implementations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAInB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,GAGjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAuB,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,GAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,GAGd,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EAMtB,iCAAiC,EACjC,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type Static } from "@sinclair/typebox";
|
|
2
2
|
import type { ClearingHousePosition } from "./liquidation-watchdog.js";
|
|
3
|
-
declare const
|
|
3
|
+
declare const positionTrackerConfigSchema: import("@sinclair/typebox").TObject<{
|
|
4
4
|
sizeChangeEpsilon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
5
5
|
}>;
|
|
6
6
|
/**
|
|
7
|
-
* Scanner config for `
|
|
7
|
+
* Scanner config for `position-tracker`.
|
|
8
8
|
*
|
|
9
9
|
* @property sizeChangeEpsilon — Absolute threshold below which position size
|
|
10
10
|
* differences are treated as unchanged. Prevents false INCREASED/DECREASED
|
|
@@ -12,24 +12,24 @@ declare const strategyMonitorConfigSchema: import("@sinclair/typebox").TObject<{
|
|
|
12
12
|
* snapshots (e.g. `1.0` → `1.0000000001`).
|
|
13
13
|
*
|
|
14
14
|
* Used in two places:
|
|
15
|
-
* - {@link
|
|
15
|
+
* - {@link normalizePositionTrackerPositions}: positions with absolute size
|
|
16
16
|
* at or below epsilon are discarded (treated as "no position").
|
|
17
|
-
* - {@link
|
|
17
|
+
* - {@link diffPositionTrackerPositions}: same-key, same-direction positions
|
|
18
18
|
* whose size difference falls within epsilon are treated as unchanged.
|
|
19
19
|
*
|
|
20
20
|
* Default `1e-9` is small enough to suppress float noise without masking
|
|
21
21
|
* real sub-unit size changes on any major perpetual venue.
|
|
22
22
|
*/
|
|
23
|
-
export type
|
|
23
|
+
export type PositionTrackerConfig = Static<typeof positionTrackerConfigSchema>;
|
|
24
24
|
/**
|
|
25
|
-
* Supported position delta categories emitted by the
|
|
25
|
+
* Supported position delta categories emitted by the position tracker.
|
|
26
26
|
*
|
|
27
27
|
* Assumption:
|
|
28
28
|
* one state transition for one position key maps to exactly one delta type per
|
|
29
29
|
* run. A flipped position does not also emit increased/decreased in the same
|
|
30
30
|
* iteration.
|
|
31
31
|
*/
|
|
32
|
-
export type
|
|
32
|
+
export type PositionTrackerDeltaType = "POSITION_OPENED" | "POSITION_CLOSED" | "POSITION_INCREASED" | "POSITION_DECREASED" | "POSITION_FLIPPED";
|
|
33
33
|
/**
|
|
34
34
|
* Canonical in-memory snapshot for one open strategy position.
|
|
35
35
|
*
|
|
@@ -37,7 +37,7 @@ export type StrategyMonitorDeltaType = "POSITION_OPENED" | "POSITION_CLOSED" | "
|
|
|
37
37
|
* position identity is tracked by the composite `(dex, asset)` pair so the
|
|
38
38
|
* same base asset can be monitored independently across multiple venues.
|
|
39
39
|
*/
|
|
40
|
-
export interface
|
|
40
|
+
export interface PositionTrackerPositionSnapshot {
|
|
41
41
|
key: string;
|
|
42
42
|
asset: string;
|
|
43
43
|
dex: string;
|
|
@@ -58,25 +58,25 @@ export interface StrategyMonitorPositionSnapshot {
|
|
|
58
58
|
* `previous` and `current` are both carried so the delta stream can later be
|
|
59
59
|
* replayed without re-fetching clearing house state.
|
|
60
60
|
*/
|
|
61
|
-
export interface
|
|
62
|
-
type:
|
|
61
|
+
export interface PositionTrackerDelta {
|
|
62
|
+
type: PositionTrackerDeltaType;
|
|
63
63
|
asset: string;
|
|
64
64
|
dex: string;
|
|
65
65
|
positionKey: string;
|
|
66
|
-
previous:
|
|
67
|
-
current:
|
|
66
|
+
previous: PositionTrackerPositionSnapshot | null;
|
|
67
|
+
current: PositionTrackerPositionSnapshot | null;
|
|
68
68
|
sizeDelta: number | null;
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
|
-
* Persisted scanner-local state for `
|
|
71
|
+
* Persisted scanner-local state for `position-tracker`.
|
|
72
72
|
*
|
|
73
73
|
* Only the latest canonical snapshot is stored here. The historical delta
|
|
74
74
|
* series lives in persisted scan results.
|
|
75
75
|
*/
|
|
76
|
-
export interface
|
|
76
|
+
export interface PositionTrackerState {
|
|
77
77
|
iteration: number;
|
|
78
78
|
lastObservedAt: number;
|
|
79
|
-
currentPositions: Record<string,
|
|
79
|
+
currentPositions: Record<string, PositionTrackerPositionSnapshot>;
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
82
|
* Normalizes clearing-house positions into a canonical snapshot keyed by
|
|
@@ -89,7 +89,7 @@ export interface StrategyMonitorState {
|
|
|
89
89
|
* - position size is stored as an absolute value; direction is tracked
|
|
90
90
|
* separately
|
|
91
91
|
*/
|
|
92
|
-
export declare function
|
|
92
|
+
export declare function normalizePositionTrackerPositions(positions: readonly ClearingHousePosition[], sizeChangeEpsilon?: number): Record<string, PositionTrackerPositionSnapshot>;
|
|
93
93
|
/**
|
|
94
94
|
* Compares two canonical snapshot maps and returns the position deltas needed
|
|
95
95
|
* to move from `previous` to `current`.
|
|
@@ -97,15 +97,15 @@ export declare function normalizeStrategyMonitorPositions(positions: readonly Cl
|
|
|
97
97
|
* Precedence:
|
|
98
98
|
* flipped > opened/closed > increased/decreased
|
|
99
99
|
*/
|
|
100
|
-
export declare function
|
|
100
|
+
export declare function diffPositionTrackerPositions(previous: Record<string, PositionTrackerPositionSnapshot>, current: Record<string, PositionTrackerPositionSnapshot>, sizeChangeEpsilon?: number): PositionTrackerDelta[];
|
|
101
101
|
/**
|
|
102
102
|
* Applies one emitted delta to a snapshot map.
|
|
103
103
|
*
|
|
104
104
|
* This is primarily intended for tests and future replay support.
|
|
105
105
|
*/
|
|
106
|
-
export declare function
|
|
106
|
+
export declare function applyPositionTrackerDelta(snapshot: Record<string, PositionTrackerPositionSnapshot>, delta: PositionTrackerDelta): Record<string, PositionTrackerPositionSnapshot>;
|
|
107
107
|
/**
|
|
108
|
-
* Creates the
|
|
108
|
+
* Creates the position-tracker scanner.
|
|
109
109
|
*
|
|
110
110
|
* Behavior:
|
|
111
111
|
* - reads the latest clearing-house snapshot for the registered strategy wallet
|
|
@@ -113,8 +113,8 @@ export declare function applyStrategyMonitorDelta(snapshot: Record<string, Strat
|
|
|
113
113
|
* - persists the new canonical snapshot
|
|
114
114
|
* - emits one non-actionable signal per detected delta
|
|
115
115
|
*/
|
|
116
|
-
export declare function
|
|
116
|
+
export declare function positionTrackerScanner(): import("../index.js").Scanner<{
|
|
117
117
|
sizeChangeEpsilon?: number | undefined;
|
|
118
|
-
},
|
|
118
|
+
}, PositionTrackerState>;
|
|
119
119
|
export {};
|
|
120
|
-
//# sourceMappingURL=
|
|
120
|
+
//# sourceMappingURL=position-tracker.d.ts.map
|
package/dist/scanners/implementations/{strategy-monitor.d.ts.map → position-tracker.d.ts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"position-tracker.d.ts","sourceRoot":"","sources":["../../../src/scanners/implementations/position-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,QAAA,MAAM,2BAA2B;;EAE/B,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAG/E;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAChC,iBAAiB,GACjB,iBAAiB,GACjB,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,CAAC;AAEvB;;;;;;GAMG;AACH,MAAM,WAAW,+BAA+B;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,GAAG,UAAU,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,+BAA+B,GAAG,IAAI,CAAC;IACjD,OAAO,EAAE,+BAA+B,GAAG,IAAI,CAAC;IAChD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;CACnE;AAyFD;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,SAAS,qBAAqB,EAAE,EAC3C,iBAAiB,SAA8B,GAC9C,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAoCjD;AAkED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,EACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,EACxD,iBAAiB,SAA8B,GAC9C,oBAAoB,EAAE,CAyCxB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,EACzD,KAAK,EAAE,oBAAoB,GAC1B,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAcjD;AAmFD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB;;yBAuErC"}
|
|
@@ -2,7 +2,7 @@ import { Type } from "@sinclair/typebox";
|
|
|
2
2
|
import { createScanner } from "../create-scanner.js";
|
|
3
3
|
import { providerInput } from "../input-descriptors.js";
|
|
4
4
|
import { PersistencePolicy, RetentionPolicy } from "../scanner-definition.js";
|
|
5
|
-
const
|
|
5
|
+
const positionTrackerConfigSchema = Type.Object({
|
|
6
6
|
sizeChangeEpsilon: Type.Optional(Type.Number({ minimum: 0, default: 1e-9 })),
|
|
7
7
|
});
|
|
8
8
|
const DEFAULT_SIZE_CHANGE_EPSILON = 1e-9;
|
|
@@ -28,7 +28,7 @@ const positionSnapshotSchema = Type.Object({
|
|
|
28
28
|
unrealizedPnl: Type.Number(),
|
|
29
29
|
roe: Type.Number(),
|
|
30
30
|
});
|
|
31
|
-
const
|
|
31
|
+
const positionTrackerStateSchema = Type.Object({
|
|
32
32
|
iteration: Type.Number({ minimum: 0 }),
|
|
33
33
|
lastObservedAt: Type.Number({ minimum: 0 }),
|
|
34
34
|
currentPositions: Type.Record(Type.String(), positionSnapshotSchema),
|
|
@@ -82,7 +82,7 @@ function cloneSnapshotMap(snapshots) {
|
|
|
82
82
|
* - position size is stored as an absolute value; direction is tracked
|
|
83
83
|
* separately
|
|
84
84
|
*/
|
|
85
|
-
export function
|
|
85
|
+
export function normalizePositionTrackerPositions(positions, sizeChangeEpsilon = DEFAULT_SIZE_CHANGE_EPSILON) {
|
|
86
86
|
const normalized = {};
|
|
87
87
|
for (const position of positions) {
|
|
88
88
|
const asset = position.coin.trim();
|
|
@@ -131,7 +131,7 @@ function computeDeltaSize(previous, current) {
|
|
|
131
131
|
function resolveDeltaSnapshot(previous, current) {
|
|
132
132
|
const snapshot = current ?? previous;
|
|
133
133
|
if (!snapshot) {
|
|
134
|
-
throw new Error("
|
|
134
|
+
throw new Error("Position tracker delta requires previous or current snapshot.");
|
|
135
135
|
}
|
|
136
136
|
return snapshot;
|
|
137
137
|
}
|
|
@@ -164,7 +164,7 @@ function collectComparableKeys(previous, current) {
|
|
|
164
164
|
* Precedence:
|
|
165
165
|
* flipped > opened/closed > increased/decreased
|
|
166
166
|
*/
|
|
167
|
-
export function
|
|
167
|
+
export function diffPositionTrackerPositions(previous, current, sizeChangeEpsilon = DEFAULT_SIZE_CHANGE_EPSILON) {
|
|
168
168
|
const keys = collectComparableKeys(previous, current);
|
|
169
169
|
const deltas = [];
|
|
170
170
|
for (const key of keys) {
|
|
@@ -203,14 +203,14 @@ export function diffStrategyMonitorPositions(previous, current, sizeChangeEpsilo
|
|
|
203
203
|
*
|
|
204
204
|
* This is primarily intended for tests and future replay support.
|
|
205
205
|
*/
|
|
206
|
-
export function
|
|
206
|
+
export function applyPositionTrackerDelta(snapshot, delta) {
|
|
207
207
|
const next = cloneSnapshotMap(snapshot);
|
|
208
208
|
if (delta.type === "POSITION_CLOSED") {
|
|
209
209
|
delete next[delta.positionKey];
|
|
210
210
|
return next;
|
|
211
211
|
}
|
|
212
212
|
if (!delta.current) {
|
|
213
|
-
throw new Error(`
|
|
213
|
+
throw new Error(`Position tracker delta '${delta.type}' is missing current snapshot.`);
|
|
214
214
|
}
|
|
215
215
|
next[delta.positionKey] = cloneSnapshot(delta.current);
|
|
216
216
|
return next;
|
|
@@ -281,7 +281,7 @@ function summarizeDeltas(deltas) {
|
|
|
281
281
|
return summary;
|
|
282
282
|
}
|
|
283
283
|
/**
|
|
284
|
-
* Creates the
|
|
284
|
+
* Creates the position-tracker scanner.
|
|
285
285
|
*
|
|
286
286
|
* Behavior:
|
|
287
287
|
* - reads the latest clearing-house snapshot for the registered strategy wallet
|
|
@@ -289,10 +289,10 @@ function summarizeDeltas(deltas) {
|
|
|
289
289
|
* - persists the new canonical snapshot
|
|
290
290
|
* - emits one non-actionable signal per detected delta
|
|
291
291
|
*/
|
|
292
|
-
export function
|
|
292
|
+
export function positionTrackerScanner() {
|
|
293
293
|
return createScanner({
|
|
294
|
-
id: "
|
|
295
|
-
signalType: "
|
|
294
|
+
id: "position-tracker",
|
|
295
|
+
signalType: "POSITION_TRACKER",
|
|
296
296
|
outputs: {
|
|
297
297
|
signals: true,
|
|
298
298
|
context: false,
|
|
@@ -303,9 +303,9 @@ export function strategyMonitorScanner() {
|
|
|
303
303
|
retentionMaxRuns: 200,
|
|
304
304
|
persistence: PersistencePolicy.ALWAYS,
|
|
305
305
|
inputs: [providerInput.clearingHouseState()],
|
|
306
|
-
configSchema:
|
|
306
|
+
configSchema: positionTrackerConfigSchema,
|
|
307
307
|
defaultConfig,
|
|
308
|
-
stateSchema:
|
|
308
|
+
stateSchema: positionTrackerStateSchema,
|
|
309
309
|
defaultState,
|
|
310
310
|
hooks: {
|
|
311
311
|
isActionable: () => false,
|
|
@@ -315,11 +315,11 @@ export function strategyMonitorScanner() {
|
|
|
315
315
|
const config = resolveConfig(ctx.config);
|
|
316
316
|
const clearingHouseState = ctx.inputs.clearingHouseState;
|
|
317
317
|
if (!clearingHouseState) {
|
|
318
|
-
throw new Error("
|
|
318
|
+
throw new Error("Position tracker requires clearing house state.");
|
|
319
319
|
}
|
|
320
|
-
const currentPositions =
|
|
320
|
+
const currentPositions = normalizePositionTrackerPositions(clearingHouseState.positions, config.sizeChangeEpsilon);
|
|
321
321
|
const previousPositions = ctx.state.currentPositions ?? {};
|
|
322
|
-
const deltas =
|
|
322
|
+
const deltas = diffPositionTrackerPositions(previousPositions, currentPositions, config.sizeChangeEpsilon);
|
|
323
323
|
const nextState = {
|
|
324
324
|
iteration: ctx.state.iteration + 1,
|
|
325
325
|
lastObservedAt: now,
|
|
@@ -346,4 +346,4 @@ export function strategyMonitorScanner() {
|
|
|
346
346
|
},
|
|
347
347
|
});
|
|
348
348
|
}
|
|
349
|
-
//# sourceMappingURL=
|
|
349
|
+
//# sourceMappingURL=position-tracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"position-tracker.js","sourceRoot":"","sources":["../../../src/scanners/implementations/position-tracker.ts"],"names":[],"mappings":"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"}
|
package/dist/scanners/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export { prescreenerScanner } from "./implementations/prescreener.js";
|
|
|
20
20
|
export { marketRegimeScanner } from "./implementations/market-regime.js";
|
|
21
21
|
export { smFlipScanner } from "./implementations/sm-flip.js";
|
|
22
22
|
export { opportunityScanner } from "./implementations/opportunity.js";
|
|
23
|
-
export {
|
|
23
|
+
export { positionTrackerScanner, type PositionTrackerConfig, type PositionTrackerDelta, type PositionTrackerDeltaType, type PositionTrackerPositionSnapshot, type PositionTrackerState, normalizePositionTrackerPositions, diffPositionTrackerPositions, applyPositionTrackerDelta, } from "./implementations/position-tracker.js";
|
|
24
24
|
export { liquidationWatchdogScanner, type ClearingHouseState, type ClearingHousePosition, type WatchdogConfig, type WatchdogAlert, } from "./implementations/liquidation-watchdog.js";
|
|
25
25
|
export { marketRegimeArtifact, MarketRegime, type MarketRegimeArtifact, } from "./artifacts.js";
|
|
26
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"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"}
|
package/dist/scanners/index.js
CHANGED
|
@@ -13,7 +13,7 @@ export { prescreenerScanner } from "./implementations/prescreener.js";
|
|
|
13
13
|
export { marketRegimeScanner } from "./implementations/market-regime.js";
|
|
14
14
|
export { smFlipScanner } from "./implementations/sm-flip.js";
|
|
15
15
|
export { opportunityScanner } from "./implementations/opportunity.js";
|
|
16
|
-
export {
|
|
16
|
+
export { positionTrackerScanner, normalizePositionTrackerPositions, diffPositionTrackerPositions, applyPositionTrackerDelta, } from "./implementations/position-tracker.js";
|
|
17
17
|
export { liquidationWatchdogScanner, } from "./implementations/liquidation-watchdog.js";
|
|
18
18
|
export { marketRegimeArtifact, MarketRegime, } from "./artifacts.js";
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAK3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,aAAa,GASd,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GAUpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAML,UAAU,GAKX,MAAM,YAAY,CAAC;AAQpB,OAAO,EACL,2BAA2B,GAK5B,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAK3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,aAAa,GASd,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GAUpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAML,UAAU,GAKX,MAAM,YAAY,CAAC;AAQpB,OAAO,EACL,2BAA2B,GAK5B,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EACL,sBAAsB,EAMtB,iCAAiC,EACjC,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,0BAA0B,GAK3B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,YAAY,GAEb,MAAM,gBAAgB,CAAC"}
|
package/openclaw.plugin.json
CHANGED
package/package.json
CHANGED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { ClearingHousePosition, ClearingHouseState } from "../../implementations/liquidation-watchdog.js";
|
|
2
|
-
import type { StrategyMonitorDeltaType } from "../../implementations/strategy-monitor.js";
|
|
3
|
-
export interface StrategyMonitorExpectedSignal {
|
|
4
|
-
signalType: StrategyMonitorDeltaType;
|
|
5
|
-
asset: string;
|
|
6
|
-
dex: string;
|
|
7
|
-
}
|
|
8
|
-
export interface StrategyMonitorScenarioRun {
|
|
9
|
-
state: ClearingHouseState;
|
|
10
|
-
expectedSignals: StrategyMonitorExpectedSignal[];
|
|
11
|
-
}
|
|
12
|
-
export interface StrategyMonitorScenario {
|
|
13
|
-
name: string;
|
|
14
|
-
runs: StrategyMonitorScenarioRun[];
|
|
15
|
-
}
|
|
16
|
-
export declare function strategyMonitorPosition(overrides: Partial<ClearingHousePosition> & {
|
|
17
|
-
coin: string;
|
|
18
|
-
}): ClearingHousePosition;
|
|
19
|
-
export declare function strategyMonitorState(positions: ClearingHousePosition[]): ClearingHouseState;
|
|
20
|
-
export declare const strategyMonitorScenarios: StrategyMonitorScenario[];
|
|
21
|
-
//# sourceMappingURL=strategy-monitor-scenarios.d.ts.map
|