Vest: a crypto leg's stop holds back the engine's default slippage, not NDX's
Crypto (exchangeInfo asset "crypto": BTC, ETH, SOL, HYPE) trades on weekends when NDX, SPX and GC are shut, but its stop slippage on Vest is unmeasured, and its book is a fraction of NDX's: about $10M an hour on a weekend against $600M, with a batch's stops firing together. Its stops now leave 0.1% of the position unspent (the engine's default) instead of the 0.02% measured on NDX stop-outs; every other symbol keeps 0.02%. The share rides on the picked contract and is used wherever a Vest leg's stop is sized: the batch's plan, the leg's own stop, the dashboard's next stop, and the 7:55 PM ET reset guard, which now sums each open position's own share. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
618976bf5f
commit
10da0ca83e
@@ -15,7 +15,7 @@ import {
|
||||
hourlyVolatility, marketOpen, MIN_HOURLY_RETURNS, nextVestResetMs, resetSafeStop, parseHistoryPosition, jwtClaimStrings,
|
||||
accountScopedToken, VestApiError, VestNotSentError, nothingWentIn, tokenForRequest, claimWithdrawal, settleClaims,
|
||||
claimFundRows, readClaims, payoutDaysOf, payoutsSince, longClosure, unknownOpenFill, awaitingActivation, vestStatusName,
|
||||
VEST_STATUS,
|
||||
VEST_STATUS, vestStopSlippageFraction, VEST_STOP_SLIPPAGE_FRACTION, VEST_CRYPTO_STOP_SLIPPAGE_FRACTION,
|
||||
} from '../lib/vest-helpers.ts';
|
||||
import { putVestSession, vestSessionFor, dropVestSession, listVestSessions, refuseVestSession } from '../lib/vest-session.ts';
|
||||
import { computeDayPlan, currentTradeDateCT, tradeDateFor, cycleCompletion } from '../lib/trading-logic.ts';
|
||||
@@ -664,3 +664,9 @@ test('a refused account token falls back to the login\'s and stays refused', ()
|
||||
refuseVestSession(wallet2, account.replace('acct', 'accu'), now);
|
||||
assert.equal(vestSessionFor(wallet2, now), null);
|
||||
});
|
||||
|
||||
test("a crypto stop's slippage share is the engine default; everything else keeps NDX's measured one", () => {
|
||||
assert.equal(VEST_CRYPTO_STOP_SLIPPAGE_FRACTION, 0.001);
|
||||
assert.equal(vestStopSlippageFraction('crypto'), VEST_CRYPTO_STOP_SLIPPAGE_FRACTION);
|
||||
for (const asset of ['stock', 'forex', '', undefined]) assert.equal(vestStopSlippageFraction(asset), VEST_STOP_SLIPPAGE_FRACTION);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user