jcc_hyper_tool 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +124 -17
- package/dist/advisor/actionRunner.d.ts +6 -0
- package/dist/advisor/actionRunner.d.ts.map +1 -1
- package/dist/advisor/actionRunner.js +38 -7
- package/dist/advisor/actionRunner.js.map +1 -1
- package/dist/advisor/actionSchema.d.ts +1209 -75
- package/dist/advisor/actionSchema.d.ts.map +1 -1
- package/dist/advisor/actionSchema.js +117 -5
- package/dist/advisor/actionSchema.js.map +1 -1
- package/dist/advisor/adviseDisplay.d.ts +26 -0
- package/dist/advisor/adviseDisplay.d.ts.map +1 -0
- package/dist/advisor/adviseDisplay.js +174 -0
- package/dist/advisor/adviseDisplay.js.map +1 -0
- package/dist/advisor/adviseEngine.d.ts +12 -2
- package/dist/advisor/adviseEngine.d.ts.map +1 -1
- package/dist/advisor/adviseEngine.js +88 -7
- package/dist/advisor/adviseEngine.js.map +1 -1
- package/dist/advisor/ambushPolicy.d.ts +47 -0
- package/dist/advisor/ambushPolicy.d.ts.map +1 -0
- package/dist/advisor/ambushPolicy.js +161 -0
- package/dist/advisor/ambushPolicy.js.map +1 -0
- package/dist/advisor/contextBuilder.d.ts +17 -0
- package/dist/advisor/contextBuilder.d.ts.map +1 -1
- package/dist/advisor/contextBuilder.js +25 -6
- package/dist/advisor/contextBuilder.js.map +1 -1
- package/dist/advisor/executionPolicy.d.ts +92 -0
- package/dist/advisor/executionPolicy.d.ts.map +1 -0
- package/dist/advisor/executionPolicy.js +273 -0
- package/dist/advisor/executionPolicy.js.map +1 -0
- package/dist/advisor/guards.d.ts +14 -0
- package/dist/advisor/guards.d.ts.map +1 -1
- package/dist/advisor/guards.js +143 -16
- package/dist/advisor/guards.js.map +1 -1
- package/dist/advisor/indicatorCompute.d.ts +45 -0
- package/dist/advisor/indicatorCompute.d.ts.map +1 -0
- package/dist/advisor/indicatorCompute.js +259 -0
- package/dist/advisor/indicatorCompute.js.map +1 -0
- package/dist/advisor/positionPlan.d.ts +33 -0
- package/dist/advisor/positionPlan.d.ts.map +1 -0
- package/dist/advisor/positionPlan.js +118 -0
- package/dist/advisor/positionPlan.js.map +1 -0
- package/dist/advisor/promptTemplate.d.ts +8 -2
- package/dist/advisor/promptTemplate.d.ts.map +1 -1
- package/dist/advisor/promptTemplate.js +175 -23
- package/dist/advisor/promptTemplate.js.map +1 -1
- package/dist/advisor/touchProbability.d.ts +54 -0
- package/dist/advisor/touchProbability.d.ts.map +1 -0
- package/dist/advisor/touchProbability.js +215 -0
- package/dist/advisor/touchProbability.js.map +1 -0
- package/dist/advisor/tpslPolicy.d.ts +22 -0
- package/dist/advisor/tpslPolicy.d.ts.map +1 -0
- package/dist/advisor/tpslPolicy.js +120 -0
- package/dist/advisor/tpslPolicy.js.map +1 -0
- package/dist/cli/advisorCli.d.ts.map +1 -1
- package/dist/cli/advisorCli.js +478 -126
- package/dist/cli/advisorCli.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/riskCli.d.ts +3 -0
- package/dist/cli/riskCli.d.ts.map +1 -0
- package/dist/cli/riskCli.js +120 -0
- package/dist/cli/riskCli.js.map +1 -0
- package/dist/cli/strategyCli.d.ts.map +1 -1
- package/dist/cli/strategyCli.js +3 -1
- package/dist/cli/strategyCli.js.map +1 -1
- package/dist/cli/tradingCli.d.ts.map +1 -1
- package/dist/cli/tradingCli.js +31 -1
- package/dist/cli/tradingCli.js.map +1 -1
- package/dist/core/hyperliquid/asset.d.ts +2 -0
- package/dist/core/hyperliquid/asset.d.ts.map +1 -1
- package/dist/core/hyperliquid/asset.js +25 -0
- package/dist/core/hyperliquid/asset.js.map +1 -1
- package/dist/core/hyperliquid/orders.d.ts +5 -0
- package/dist/core/hyperliquid/orders.d.ts.map +1 -1
- package/dist/core/hyperliquid/orders.js +15 -5
- package/dist/core/hyperliquid/orders.js.map +1 -1
- package/dist/core/hyperliquid/rounding.d.ts +23 -0
- package/dist/core/hyperliquid/rounding.d.ts.map +1 -0
- package/dist/core/hyperliquid/rounding.js +53 -0
- package/dist/core/hyperliquid/rounding.js.map +1 -0
- package/dist/core/risk/isolatedTopUp.d.ts +112 -0
- package/dist/core/risk/isolatedTopUp.d.ts.map +1 -0
- package/dist/core/risk/isolatedTopUp.js +209 -0
- package/dist/core/risk/isolatedTopUp.js.map +1 -0
- package/dist/core/risk/isolatedTopUpHistory.d.ts +7 -0
- package/dist/core/risk/isolatedTopUpHistory.d.ts.map +1 -0
- package/dist/core/risk/isolatedTopUpHistory.js +26 -0
- package/dist/core/risk/isolatedTopUpHistory.js.map +1 -0
- package/dist/core/risk/isolatedTopUpParse.d.ts +16 -0
- package/dist/core/risk/isolatedTopUpParse.d.ts.map +1 -0
- package/dist/core/risk/isolatedTopUpParse.js +78 -0
- package/dist/core/risk/isolatedTopUpParse.js.map +1 -0
- package/dist/core/risk/runIsolatedTopUpReconcile.d.ts +28 -0
- package/dist/core/risk/runIsolatedTopUpReconcile.d.ts.map +1 -0
- package/dist/core/risk/runIsolatedTopUpReconcile.js +184 -0
- package/dist/core/risk/runIsolatedTopUpReconcile.js.map +1 -0
- package/dist/core/state/gridReconcile.d.ts +2 -0
- package/dist/core/state/gridReconcile.d.ts.map +1 -1
- package/dist/core/state/gridReconcile.js +42 -2
- package/dist/core/state/gridReconcile.js.map +1 -1
- package/dist/core/state/intentFactory.d.ts +1 -0
- package/dist/core/state/intentFactory.d.ts.map +1 -1
- package/dist/core/state/intentFactory.js +1 -0
- package/dist/core/state/intentFactory.js.map +1 -1
- package/dist/core/state/profileStore.d.ts.map +1 -1
- package/dist/core/state/profileStore.js +12 -16
- package/dist/core/state/profileStore.js.map +1 -1
- package/dist/core/state/runReconcile.d.ts.map +1 -1
- package/dist/core/state/runReconcile.js +53 -18
- package/dist/core/state/runReconcile.js.map +1 -1
- package/dist/core/state/schema.d.ts +439 -68
- package/dist/core/state/schema.d.ts.map +1 -1
- package/dist/core/state/schema.js +51 -0
- package/dist/core/state/schema.js.map +1 -1
- package/dist/core/state/snapshot.d.ts +13 -0
- package/dist/core/state/snapshot.d.ts.map +1 -1
- package/dist/core/state/snapshot.js +36 -0
- package/dist/core/state/snapshot.js.map +1 -1
- package/dist/core/state/store.d.ts +21 -3
- package/dist/core/state/store.d.ts.map +1 -1
- package/dist/core/state/store.js +122 -13
- package/dist/core/state/store.js.map +1 -1
- package/dist/core/state/types.d.ts +13 -0
- package/dist/core/state/types.d.ts.map +1 -1
- package/dist/daemon/index.js +47 -2
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/validateChild.d.ts +13 -0
- package/dist/daemon/validateChild.d.ts.map +1 -0
- package/dist/daemon/validateChild.js +77 -0
- package/dist/daemon/validateChild.js.map +1 -0
- package/dist/strategies/grid.d.ts +1 -0
- package/dist/strategies/grid.d.ts.map +1 -1
- package/dist/strategies/grid.js +1 -0
- package/dist/strategies/grid.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { BracketIntentRecord, TradeStateFile } from "../core/state/schema.js";
|
|
2
|
+
import type { AdvisorAction } from "./actionSchema.js";
|
|
3
|
+
export type PendingAmbushSummary = {
|
|
4
|
+
intentId: string;
|
|
5
|
+
phase: string;
|
|
6
|
+
side: "buy" | "sell";
|
|
7
|
+
limitPx: number;
|
|
8
|
+
sz: number;
|
|
9
|
+
tpPx: number;
|
|
10
|
+
slPx: number;
|
|
11
|
+
expiresAtMs: number;
|
|
12
|
+
expiresInSec: number;
|
|
13
|
+
strategy?: "scalp" | "ambush";
|
|
14
|
+
};
|
|
15
|
+
export declare function isAmbushBracket(intent: BracketIntentRecord): boolean;
|
|
16
|
+
export declare function isActivePendingAmbush(intent: BracketIntentRecord, nowMs: number): boolean;
|
|
17
|
+
export declare function listPendingAmbushIntents(state: TradeStateFile, coin: string, nowMs: number): PendingAmbushSummary[];
|
|
18
|
+
export declare function hasActiveUnexpiredAmbush(state: TradeStateFile, coin: string, nowMs: number): boolean;
|
|
19
|
+
export declare function priceDeviationFraction(oldPx: number, newPx: number): number;
|
|
20
|
+
export declare function shouldReplaceAmbush(existingLimitPx: number, newLimitPx: number, thresholdPct: number): boolean;
|
|
21
|
+
export declare function requestBracketEntryCancel(statePath: string, intentId: string, nowMs: number): Promise<void>;
|
|
22
|
+
export declare function findActiveProtectionBracket(state: TradeStateFile, coin: string): BracketIntentRecord | undefined;
|
|
23
|
+
export declare function resolvePositionOpenAgeSec(params: {
|
|
24
|
+
state: TradeStateFile;
|
|
25
|
+
coin: string;
|
|
26
|
+
nowMs: number;
|
|
27
|
+
}): number | undefined;
|
|
28
|
+
export declare function hasPriceHitTpOrSl(side: "buy" | "sell", mid: number, tp: number, sl: number): boolean;
|
|
29
|
+
export type AmbushReplaceResult = {
|
|
30
|
+
cancelledIntentIds: string[];
|
|
31
|
+
skippedDuplicate: boolean;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Before placing a new ambush: cancel stale pending ambushes when price/side diverges;
|
|
35
|
+
* block duplicate placement when an unexpired ambush already matches the new estimate.
|
|
36
|
+
*/
|
|
37
|
+
export declare function reconcilePendingAmbushBeforePlace(params: {
|
|
38
|
+
statePath: string;
|
|
39
|
+
coin: string;
|
|
40
|
+
action: Extract<AdvisorAction, {
|
|
41
|
+
action: "place_limit_ambush";
|
|
42
|
+
}>;
|
|
43
|
+
replaceDeviationPct: number;
|
|
44
|
+
nowMs: number;
|
|
45
|
+
}): Promise<AmbushReplaceResult>;
|
|
46
|
+
export declare function ambushActionSummary(action: AdvisorAction): string | undefined;
|
|
47
|
+
//# sourceMappingURL=ambushPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambushPolicy.d.ts","sourceRoot":"","sources":["../../src/advisor/ambushPolicy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAGpE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAWzF;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,oBAAoB,EAAE,CAwBxB;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAET;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK3E;AAED,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAET;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,MAAM,GACX,mBAAmB,GAAG,SAAS,CAUjC;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,GAAG,SAAS,CAqCrB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,KAAK,GAAG,MAAM,EACpB,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAKT;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,wBAAsB,iCAAiC,CAAC,MAAM,EAAE;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE;QAAE,MAAM,EAAE,oBAAoB,CAAA;KAAE,CAAC,CAAC;IACjE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuB/B;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAO7E"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { ConfigError } from "../core/errors.js";
|
|
2
|
+
import { readOrCreateTradeStateFile, updateTradeStateFileAtomic } from "../core/state/store.js";
|
|
3
|
+
import { isAdvisorBracketOpenAction } from "./actionSchema.js";
|
|
4
|
+
const PENDING_ENTRY_PHASES = new Set(["planned", "entry_pending", "entry_partial"]);
|
|
5
|
+
export function isAmbushBracket(intent) {
|
|
6
|
+
// undefined strategy = legacy intent, treated as ambush
|
|
7
|
+
return intent.strategy !== "scalp";
|
|
8
|
+
}
|
|
9
|
+
export function isActivePendingAmbush(intent, nowMs) {
|
|
10
|
+
if (!isAmbushBracket(intent)) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
if (!PENDING_ENTRY_PHASES.has(intent.phase)) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if (intent.expiresAtMs !== undefined && nowMs > intent.expiresAtMs) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return intent.phase !== "expired" && intent.phase !== "cancelled";
|
|
20
|
+
}
|
|
21
|
+
export function listPendingAmbushIntents(state, coin, nowMs) {
|
|
22
|
+
const out = [];
|
|
23
|
+
for (const [intentId, intent] of Object.entries(state.intents)) {
|
|
24
|
+
if (intent.kind !== "bracket" || intent.coin !== coin) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (!isActivePendingAmbush(intent, nowMs)) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const expiresAtMs = intent.expiresAtMs ?? nowMs;
|
|
31
|
+
out.push({
|
|
32
|
+
intentId,
|
|
33
|
+
phase: intent.phase,
|
|
34
|
+
side: intent.entrySide,
|
|
35
|
+
limitPx: intent.entryLimitPx,
|
|
36
|
+
sz: intent.entrySz,
|
|
37
|
+
tpPx: intent.tpTriggerPx,
|
|
38
|
+
slPx: intent.slTriggerPx,
|
|
39
|
+
expiresAtMs,
|
|
40
|
+
expiresInSec: Math.max(0, Math.ceil((expiresAtMs - nowMs) / 1000)),
|
|
41
|
+
strategy: intent.strategy,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return out.sort((a, b) => a.expiresAtMs - b.expiresAtMs);
|
|
45
|
+
}
|
|
46
|
+
export function hasActiveUnexpiredAmbush(state, coin, nowMs) {
|
|
47
|
+
return listPendingAmbushIntents(state, coin, nowMs).length > 0;
|
|
48
|
+
}
|
|
49
|
+
export function priceDeviationFraction(oldPx, newPx) {
|
|
50
|
+
if (!Number.isFinite(oldPx) || oldPx <= 0) {
|
|
51
|
+
return Number.POSITIVE_INFINITY;
|
|
52
|
+
}
|
|
53
|
+
return Math.abs(newPx - oldPx) / oldPx;
|
|
54
|
+
}
|
|
55
|
+
export function shouldReplaceAmbush(existingLimitPx, newLimitPx, thresholdPct) {
|
|
56
|
+
return priceDeviationFraction(existingLimitPx, newLimitPx) > thresholdPct;
|
|
57
|
+
}
|
|
58
|
+
export async function requestBracketEntryCancel(statePath, intentId, nowMs) {
|
|
59
|
+
await updateTradeStateFileAtomic(statePath, (cur) => {
|
|
60
|
+
const row = cur.intents[intentId];
|
|
61
|
+
if (!row || row.kind !== "bracket") {
|
|
62
|
+
throw new ConfigError(`Bracket intent not found: ${intentId}`);
|
|
63
|
+
}
|
|
64
|
+
const nextB = { ...row, cancelRequested: true, updatedAtMs: nowMs };
|
|
65
|
+
return {
|
|
66
|
+
...cur,
|
|
67
|
+
updatedAtMs: nowMs,
|
|
68
|
+
intents: { ...cur.intents, [intentId]: nextB },
|
|
69
|
+
events: [
|
|
70
|
+
...cur.events,
|
|
71
|
+
{
|
|
72
|
+
t: nowMs,
|
|
73
|
+
intentId,
|
|
74
|
+
type: "user_cancel_request",
|
|
75
|
+
message: "cancelRequested=true (advise ambush replace)",
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
};
|
|
79
|
+
}, nowMs);
|
|
80
|
+
}
|
|
81
|
+
export function findActiveProtectionBracket(state, coin) {
|
|
82
|
+
for (const intent of Object.values(state.intents)) {
|
|
83
|
+
if (intent.kind !== "bracket" || intent.coin !== coin) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (intent.phase === "protection_active" || intent.phase === "entry_filled") {
|
|
87
|
+
return intent;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
export function resolvePositionOpenAgeSec(params) {
|
|
93
|
+
const bracket = findActiveProtectionBracket(params.state, params.coin);
|
|
94
|
+
if (bracket) {
|
|
95
|
+
for (let i = params.state.events.length - 1; i >= 0; i--) {
|
|
96
|
+
const ev = params.state.events[i];
|
|
97
|
+
if (ev.intentId !== bracket.id) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (ev.message?.includes("entry_filled") || ev.type === "phase" && ev.message?.includes("entry_filled")) {
|
|
101
|
+
return Math.max(0, (params.nowMs - ev.t) / 1000);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return Math.max(0, (params.nowMs - bracket.createdAtMs) / 1000);
|
|
105
|
+
}
|
|
106
|
+
const history = params.state.adviseExecuteHistory;
|
|
107
|
+
if (!history) {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
let latest;
|
|
111
|
+
for (const [key, rec] of Object.entries(history)) {
|
|
112
|
+
if (!key.startsWith(`${params.coin}:`)) {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (rec.action !== "place_limit_ambush" &&
|
|
116
|
+
rec.action !== "open_with_bracket") {
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
if (latest === undefined || rec.atMs > latest) {
|
|
120
|
+
latest = rec.atMs;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (latest === undefined) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
return Math.max(0, (params.nowMs - latest) / 1000);
|
|
127
|
+
}
|
|
128
|
+
export function hasPriceHitTpOrSl(side, mid, tp, sl) {
|
|
129
|
+
if (side === "buy") {
|
|
130
|
+
return mid >= tp || mid <= sl;
|
|
131
|
+
}
|
|
132
|
+
return mid <= tp || mid >= sl;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Before placing a new ambush: cancel stale pending ambushes when price/side diverges;
|
|
136
|
+
* block duplicate placement when an unexpired ambush already matches the new estimate.
|
|
137
|
+
*/
|
|
138
|
+
export async function reconcilePendingAmbushBeforePlace(params) {
|
|
139
|
+
const state = await readOrCreateTradeStateFile(params.statePath, params.nowMs);
|
|
140
|
+
const pending = listPendingAmbushIntents(state, params.coin, params.nowMs);
|
|
141
|
+
const cancelledIntentIds = [];
|
|
142
|
+
for (const p of pending) {
|
|
143
|
+
const sideChanged = p.side !== params.action.side;
|
|
144
|
+
const priceDiverged = shouldReplaceAmbush(p.limitPx, params.action.limit_px, params.replaceDeviationPct);
|
|
145
|
+
if (sideChanged || priceDiverged) {
|
|
146
|
+
await requestBracketEntryCancel(params.statePath, p.intentId, params.nowMs);
|
|
147
|
+
cancelledIntentIds.push(p.intentId);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
throw new ConfigError(`advise: pending ambush ${p.intentId} at ${p.limitPx} (${p.side}) matches new estimate within ${(params.replaceDeviationPct * 100).toFixed(2)}%; wait for TTL (${p.expiresInSec}s left) or choose "wait".`);
|
|
151
|
+
}
|
|
152
|
+
return { cancelledIntentIds, skippedDuplicate: false };
|
|
153
|
+
}
|
|
154
|
+
export function ambushActionSummary(action) {
|
|
155
|
+
if (!isAdvisorBracketOpenAction(action)) {
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
const ttl = action.action === "place_limit_ambush" ? ` TTL ${action.expires_in_min}m` : "";
|
|
159
|
+
return `${action.side} @ ${action.limit_px} sz ${action.sz} tp ${action.tp_px} sl ${action.sl_px}${ttl}`;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=ambushPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambushPolicy.js","sourceRoot":"","sources":["../../src/advisor/ambushPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGhG,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;AAepF,MAAM,UAAU,eAAe,CAAC,MAA2B;IACzD,wDAAwD;IACxD,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA2B,EAAE,KAAa;IAC9E,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAqB,EACrB,IAAY,EACZ,KAAa;IAEb,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC;YACP,QAAQ;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,SAAS;YACtB,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,EAAE,EAAE,MAAM,CAAC,OAAO;YAClB,IAAI,EAAE,MAAM,CAAC,WAAW;YACxB,IAAI,EAAE,MAAM,CAAC,WAAW;YACxB,WAAW;YACX,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAClE,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAqB,EACrB,IAAY,EACZ,KAAa;IAEb,OAAO,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,KAAa;IACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,eAAuB,EACvB,UAAkB,EAClB,YAAoB;IAEpB,OAAO,sBAAsB,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,SAAiB,EACjB,QAAgB,EAChB,KAAa;IAEb,MAAM,0BAA0B,CAC9B,SAAS,EACT,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,WAAW,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,KAAK,GAAwB,EAAE,GAAG,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACzF,OAAO;YACL,GAAG,GAAG;YACN,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE;YAC9C,MAAM,EAAE;gBACN,GAAG,GAAG,CAAC,MAAM;gBACb;oBACE,CAAC,EAAE,KAAK;oBACR,QAAQ;oBACR,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,8CAA8C;iBACxD;aACF;SACF,CAAC;IACJ,CAAC,EACD,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAqB,EACrB,IAAY;IAEZ,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,mBAAmB,IAAI,MAAM,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;YAC5E,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAIzC;IACC,MAAM,OAAO,GAAG,2BAA2B,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzD,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,EAAE,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACxG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,MAA0B,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACvC,SAAS;QACX,CAAC;QACD,IACE,GAAG,CAAC,MAAM,KAAK,oBAAoB;YACnC,GAAG,CAAC,MAAM,KAAK,mBAAmB,EAClC,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAoB,EACpB,GAAW,EACX,EAAU,EACV,EAAU;IAEV,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;AAChC,CAAC;AAOD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,MAMvD;IACC,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,kBAAkB,GAAa,EAAE,CAAC;IAExC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAClD,MAAM,aAAa,GAAG,mBAAmB,CACvC,CAAC,CAAC,OAAO,EACT,MAAM,CAAC,MAAM,CAAC,QAAQ,EACtB,MAAM,CAAC,mBAAmB,CAC3B,CAAC;QACF,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QACD,MAAM,IAAI,WAAW,CACnB,0BAA0B,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,iCAAiC,CAAC,MAAM,CAAC,mBAAmB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,YAAY,2BAA2B,CAC3M,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GACP,MAAM,CAAC,MAAM,KAAK,oBAAoB,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,OAAO,GAAG,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC;AAC3G,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { HyperliquidInfoClient } from "../core/hyperliquid/client.js";
|
|
2
2
|
import type { JsonValue } from "../core/hyperliquid/types.js";
|
|
3
|
+
import type { CompactCandle, IndicatorSummary } from "./indicatorCompute.js";
|
|
4
|
+
import type { ContextVersion } from "./promptTemplate.js";
|
|
3
5
|
export type AdvisorPositionRow = {
|
|
4
6
|
signed_sz: number;
|
|
5
7
|
entry_px?: number;
|
|
@@ -11,11 +13,25 @@ export type AdvisorMarketSnapshot = {
|
|
|
11
13
|
network: string;
|
|
12
14
|
now_ms: number;
|
|
13
15
|
mid: number | null;
|
|
16
|
+
/** Per-asset size decimals from HL meta (drives price rounding: max 6 - szDecimals decimal places). */
|
|
17
|
+
sz_decimals: number;
|
|
18
|
+
/** HL minimum order notional (USD). */
|
|
19
|
+
min_order_notional_usd: number;
|
|
20
|
+
/** Smallest sz at current mid meeting min notional; null when mid unknown. */
|
|
21
|
+
min_order_sz: number | null;
|
|
14
22
|
positions: Record<string, AdvisorPositionRow>;
|
|
15
23
|
kline_5m: JsonValue;
|
|
16
24
|
kline_1h: JsonValue;
|
|
17
25
|
kline_1d: JsonValue;
|
|
18
26
|
user_note?: string;
|
|
27
|
+
/** Prompt context version controlling K-line vs pre-computed indicators. */
|
|
28
|
+
context_version: ContextVersion;
|
|
29
|
+
/** Pre-computed indicator summary (v2 only). */
|
|
30
|
+
indicator_summary?: IndicatorSummary;
|
|
31
|
+
/** Compact h/l/o/c/v candles for wave/Chan theory (v2 only). */
|
|
32
|
+
kline_5m_compact?: CompactCandle[];
|
|
33
|
+
kline_1h_compact?: CompactCandle[];
|
|
34
|
+
kline_1d_compact?: CompactCandle[];
|
|
19
35
|
};
|
|
20
36
|
export declare function readMidFromAllMids(mids: JsonValue, coin: string): number | null;
|
|
21
37
|
/** Best-effort per-coin row from `clearinghouseState` (wire shapes vary). */
|
|
@@ -30,5 +46,6 @@ export declare function buildAdvisorMarketSnapshot(params: {
|
|
|
30
46
|
kline5mBars: number;
|
|
31
47
|
kline1hBars: number;
|
|
32
48
|
kline1dBars: number;
|
|
49
|
+
contextVersion: ContextVersion;
|
|
33
50
|
}): Promise<AdvisorMarketSnapshot>;
|
|
34
51
|
//# sourceMappingURL=contextBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextBuilder.d.ts","sourceRoot":"","sources":["../../src/advisor/contextBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"contextBuilder.d.ts","sourceRoot":"","sources":["../../src/advisor/contextBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAW3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,uGAAuG;IACvG,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,8EAA8E;IAC9E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,eAAe,EAAE,cAAc,CAAC;IAChC,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;CACpC,CAAC;AASF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa/E;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,MAAM,GACX,kBAAkB,GAAG,SAAS,CAuDhC;AAED,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqEjC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { perpSzDecimalsFromMeta } from "../core/hyperliquid/asset.js";
|
|
2
|
+
import { HL_MIN_ORDER_NOTIONAL_USD, minPerpOrderSzForNotional, } from "../core/hyperliquid/rounding.js";
|
|
1
3
|
import { assertPerpKlineCoinInMeta, resolvePerpKlineCoinArg, } from "../core/hyperliquid/klineCoin.js";
|
|
2
4
|
import { inferHlDexFromPrefixedPerpCoin } from "../core/hyperliquid/prefixedPerpCoin.js";
|
|
3
5
|
import { signedPositionSizeForCoin } from "../core/state/snapshot.js";
|
|
6
|
+
import { buildCompactKlines, computeIndicatorSummary } from "./indicatorCompute.js";
|
|
4
7
|
const MINUTE_MS = 60_000;
|
|
5
8
|
const HOUR_MS = 60 * MINUTE_MS;
|
|
6
9
|
const DAY_MS = 24 * HOUR_MS;
|
|
@@ -87,10 +90,11 @@ export function extractPositionDetail(chState, coin) {
|
|
|
87
90
|
export async function buildAdvisorMarketSnapshot(params) {
|
|
88
91
|
const resolvedCoin = resolvePerpKlineCoinArg(params.coin);
|
|
89
92
|
const dexForMeta = inferHlDexFromPrefixedPerpCoin(resolvedCoin);
|
|
93
|
+
const meta = await params.info.meta(dexForMeta);
|
|
90
94
|
if (dexForMeta) {
|
|
91
|
-
const meta = await params.info.meta(dexForMeta);
|
|
92
95
|
assertPerpKlineCoinInMeta(meta, resolvedCoin);
|
|
93
96
|
}
|
|
97
|
+
const szDecimals = perpSzDecimalsFromMeta(meta, resolvedCoin);
|
|
94
98
|
const endTime = params.nowMs;
|
|
95
99
|
const s5 = endTime - params.kline5mBars * 5 * MINUTE_MS;
|
|
96
100
|
const s1h = endTime - params.kline1hBars * HOUR_MS;
|
|
@@ -114,21 +118,36 @@ export async function buildAdvisorMarketSnapshot(params) {
|
|
|
114
118
|
startTime: s1d,
|
|
115
119
|
endTime,
|
|
116
120
|
}),
|
|
117
|
-
params.info.clearinghouseState(params.userAddress),
|
|
121
|
+
params.info.clearinghouseState(params.userAddress, dexForMeta),
|
|
118
122
|
params.info.allMids(dexForMeta),
|
|
119
123
|
]);
|
|
120
124
|
const pos = extractPositionDetail(ch, resolvedCoin);
|
|
121
125
|
const positions = pos ? { [resolvedCoin]: pos } : {};
|
|
126
|
+
const mid = readMidFromAllMids(mids, resolvedCoin);
|
|
127
|
+
const trimmed5m = trimCandles(raw5m, params.kline5mBars);
|
|
128
|
+
const trimmed1h = trimCandles(raw1h, params.kline1hBars);
|
|
129
|
+
const trimmed1d = trimCandles(raw1d, params.kline1dBars);
|
|
130
|
+
const isV2 = params.contextVersion === "precomputed_indicators";
|
|
122
131
|
return {
|
|
123
132
|
coin: resolvedCoin,
|
|
124
133
|
network: params.network,
|
|
125
134
|
now_ms: params.nowMs,
|
|
126
|
-
mid
|
|
135
|
+
mid,
|
|
136
|
+
sz_decimals: szDecimals,
|
|
137
|
+
min_order_notional_usd: HL_MIN_ORDER_NOTIONAL_USD,
|
|
138
|
+
min_order_sz: mid !== null && mid > 0 ? minPerpOrderSzForNotional(mid, szDecimals) : null,
|
|
127
139
|
positions,
|
|
128
|
-
kline_5m:
|
|
129
|
-
kline_1h:
|
|
130
|
-
kline_1d:
|
|
140
|
+
kline_5m: trimmed5m,
|
|
141
|
+
kline_1h: trimmed1h,
|
|
142
|
+
kline_1d: trimmed1d,
|
|
131
143
|
user_note: params.userNote,
|
|
144
|
+
context_version: params.contextVersion,
|
|
145
|
+
indicator_summary: isV2
|
|
146
|
+
? computeIndicatorSummary(trimmed5m, trimmed1h, trimmed1d)
|
|
147
|
+
: undefined,
|
|
148
|
+
kline_5m_compact: isV2 ? buildCompactKlines(trimmed5m, params.kline5mBars) : undefined,
|
|
149
|
+
kline_1h_compact: isV2 ? buildCompactKlines(trimmed1h, params.kline1hBars) : undefined,
|
|
150
|
+
kline_1d_compact: isV2 ? buildCompactKlines(trimmed1d, params.kline1dBars) : undefined,
|
|
132
151
|
};
|
|
133
152
|
}
|
|
134
153
|
//# sourceMappingURL=contextBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextBuilder.js","sourceRoot":"","sources":["../../src/advisor/contextBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,CAAC;AAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"contextBuilder.js","sourceRoot":"","sources":["../../src/advisor/contextBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { JsonValue } from "../core/hyperliquid/types.js";
|
|
2
|
+
import type { TradeStateFile, UserProfile } from "../core/state/schema.js";
|
|
3
|
+
import type { AdvisorAction } from "./actionSchema.js";
|
|
4
|
+
import type { AdvisorGuardInputs } from "./guards.js";
|
|
5
|
+
import { type BracketTouchProbabilities } from "./touchProbability.js";
|
|
6
|
+
export type AdvisorExecutionPolicy = {
|
|
7
|
+
minConfidence: number;
|
|
8
|
+
limitJitterPct: number;
|
|
9
|
+
executeCooldownSec: number;
|
|
10
|
+
/** 0=off, 1=place entry at model SL (TP/SL shift by same delta). */
|
|
11
|
+
bracketSlEntryShift: number;
|
|
12
|
+
ambushReplaceDeviationPct: number;
|
|
13
|
+
antiRushCloseMinSec: number;
|
|
14
|
+
defaultAmbushExpiresMin: number;
|
|
15
|
+
};
|
|
16
|
+
export type AdvisorExecutionPolicyCli = {
|
|
17
|
+
minConfidence?: number;
|
|
18
|
+
limitJitterPct?: number;
|
|
19
|
+
executeCooldownSec?: number;
|
|
20
|
+
slEntryShift?: number;
|
|
21
|
+
ambushReplaceDeviationPct?: number;
|
|
22
|
+
antiRushCloseMinSec?: number;
|
|
23
|
+
defaultAmbushExpiresMin?: number;
|
|
24
|
+
auto?: boolean;
|
|
25
|
+
};
|
|
26
|
+
export type AdviseExecuteRecord = {
|
|
27
|
+
action: string;
|
|
28
|
+
atMs: number;
|
|
29
|
+
};
|
|
30
|
+
/** Shared size cap for bracket open and partial close. */
|
|
31
|
+
export declare function resolveAdvisorSzCap(inputs: AdvisorGuardInputs): number;
|
|
32
|
+
/** Profile minimum sz for bracket open (`minSzByCoin` overrides `defaultMinSz`). */
|
|
33
|
+
export declare function resolveAdvisorMinSz(inputs: AdvisorGuardInputs): number | undefined;
|
|
34
|
+
export declare function resolveAdvisorExecutionPolicy(profile: UserProfile | undefined, cli: AdvisorExecutionPolicyCli): AdvisorExecutionPolicy;
|
|
35
|
+
export declare function assertAdvisorConfidenceGate(action: AdvisorAction, minConfidence: number): void;
|
|
36
|
+
export declare function adviseExecuteCooldownKey(coin: string, action: AdvisorAction): string | null;
|
|
37
|
+
export declare function assertAdviseExecuteCooldown(params: {
|
|
38
|
+
history: Record<string, AdviseExecuteRecord> | undefined;
|
|
39
|
+
coin: string;
|
|
40
|
+
action: AdvisorAction;
|
|
41
|
+
cooldownSec: number;
|
|
42
|
+
nowMs: number;
|
|
43
|
+
}): void;
|
|
44
|
+
export declare function recordAdviseExecuteCooldown(params: {
|
|
45
|
+
statePath: string;
|
|
46
|
+
coin: string;
|
|
47
|
+
action: AdvisorAction;
|
|
48
|
+
nowMs: number;
|
|
49
|
+
}): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Round advisor limit/trigger prices for exchange submission.
|
|
52
|
+
* When `szDecimals` is set, uses Hyperliquid per-asset rules (5 sig figs, 6 - szDecimals decimals).
|
|
53
|
+
*/
|
|
54
|
+
export declare function roundAdvisorLimitPx(px: number, szDecimals?: number): number;
|
|
55
|
+
export declare function jitterLimitPrice(px: number, jitterPct: number, rng?: () => number, szDecimals?: number): number;
|
|
56
|
+
export declare function applyLimitJitterWithinBand(px: number, mid: number | null, jitterPct: number, maxDevPct: number, rng?: () => number, szDecimals?: number): {
|
|
57
|
+
px: number;
|
|
58
|
+
applied: boolean;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Shift bracket entry toward the model stop: delta = factor × (sl_px − limit_px).
|
|
62
|
+
* factor=1 → entry at SL; TP/SL and optional protection_limit_px move by the same delta.
|
|
63
|
+
*/
|
|
64
|
+
export declare function applyBracketSlEntryShift(action: AdvisorAction, factor: number, szDecimals?: number): {
|
|
65
|
+
action: AdvisorAction;
|
|
66
|
+
notes: string[];
|
|
67
|
+
};
|
|
68
|
+
export declare function prepareAdvisorActionForExecution(action: AdvisorAction, options: {
|
|
69
|
+
slEntryShift: number;
|
|
70
|
+
limitJitterPct: number;
|
|
71
|
+
mid: number | null;
|
|
72
|
+
maxDevPct: number;
|
|
73
|
+
szDecimals?: number;
|
|
74
|
+
rng?: () => number;
|
|
75
|
+
kline1h?: JsonValue;
|
|
76
|
+
profile?: UserProfile;
|
|
77
|
+
}): {
|
|
78
|
+
action: AdvisorAction;
|
|
79
|
+
notes: string[];
|
|
80
|
+
touchProbs?: BracketTouchProbabilities;
|
|
81
|
+
};
|
|
82
|
+
export declare function applyAdvisorExecutionJitter(action: AdvisorAction, mid: number | null, jitterPct: number, maxDevPct: number, rng?: () => number, szDecimals?: number): {
|
|
83
|
+
action: AdvisorAction;
|
|
84
|
+
notes: string[];
|
|
85
|
+
};
|
|
86
|
+
export declare function resolveCloseSz(positionSignedSz: number | undefined, szCap: number): {
|
|
87
|
+
sz: number;
|
|
88
|
+
capped: boolean;
|
|
89
|
+
positionAbs: number;
|
|
90
|
+
};
|
|
91
|
+
export declare function readAdviseExecuteHistory(state: TradeStateFile | undefined): Record<string, AdviseExecuteRecord> | undefined;
|
|
92
|
+
//# sourceMappingURL=executionPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executionPolicy.d.ts","sourceRoot":"","sources":["../../src/advisor/executionPolicy.ts"],"names":[],"mappings":"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"}
|