|
|
@@ -76,6 +76,7 @@ const fillHandlers = new Map<string, Array<(fill: Fill) => Promise<void>>>();
|
|
|
let killSwitchActive = false;
|
|
|
let gridMakerInstance: GridMaker | undefined;
|
|
|
const baseClipEquityPct = cfg.grid?.base_clip_equity_pct ?? 0;
|
|
|
+const baseClipLeverage = cfg.grid?.base_clip_leverage ?? 1;
|
|
|
const baseClipUsdFloor = cfg.grid?.base_clip_usd ?? 0;
|
|
|
const wsRateLimiterConfig = cfg.execution?.ws_rate_limiter;
|
|
|
let marketMakerInstance: MarketMaker | undefined;
|
|
|
@@ -287,7 +288,8 @@ const defaultGridSymbol = cfg.grid?.symbol || primarySymbol;
|
|
|
const equity = aggregated.quote + aggregated.base * mid;
|
|
|
riskEngine.updateEquity(equity);
|
|
|
if (gridMakerInstance && baseClipEquityPct > 0) {
|
|
|
- const dynamicClip = Math.max(baseClipUsdFloor, equity * baseClipEquityPct);
|
|
|
+ const effectiveEquity = equity * Math.max(1, baseClipLeverage);
|
|
|
+ const dynamicClip = Math.max(baseClipUsdFloor, effectiveEquity * baseClipEquityPct);
|
|
|
gridMakerInstance.updateBaseClipUsd(dynamicClip);
|
|
|
}
|
|
|
await maybeTriggerKillSwitch('risk_refresh');
|
|
|
@@ -456,7 +458,8 @@ const defaultGridSymbol = cfg.grid?.symbol || primarySymbol;
|
|
|
if (baseClipEquityPct <= 0) return baseClipUsdFloor;
|
|
|
const status = riskEngine.getStatus();
|
|
|
const equity = status.currentEquity > 0 ? status.currentEquity : status.peakEquity;
|
|
|
- const dynamic = equity * baseClipEquityPct;
|
|
|
+ const effectiveEquity = equity * Math.max(1, baseClipLeverage);
|
|
|
+ const dynamic = effectiveEquity * baseClipEquityPct;
|
|
|
return Math.max(baseClipUsdFloor, dynamic);
|
|
|
};
|
|
|
|