Reporter: name the accounts whose final day completed their cycle
cycleCompletion() says whether today's P&L finished the current cycle (profit target, consistency and minimum days all met) — projectPerfectPath's completion probe run without and with today. The reporter counts those as `completed` (a subset of targetHit) and sends their names, so the master can keep an account a firm erases after it passes. Checked ahead of the lockout branch: a firm locking a passed account is no DLL loss. The local dashboard shows them with a purple Completed pill. Because the master keeps a completion for good, doubtful reads stay 'none': weekends, a Monday with a weekend-dated row, the first minutes after the 5 PM roll, and history that hasn't freshly loaded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
a47a86a59c
commit
acb8879575
@@ -82,3 +82,20 @@ export interface PlatformClient {
|
||||
disconnect(): void;
|
||||
onFill(orderId: number, callback: (fill: Record<string, unknown>) => void): void;
|
||||
}
|
||||
|
||||
/** lastFetchErrors note for a Tradovate account whose Cash History is
|
||||
* unavailable (passed accounts) and whose rows came from the Fills report —
|
||||
* a fresh fetch, not a failure. */
|
||||
export const FILLS_FALLBACK_NOTE = 'cash history unavailable (using fills fallback)';
|
||||
|
||||
/**
|
||||
* Can this account's daily P&L be trusted for a verdict the master keeps
|
||||
* for good (cycleCompletion 'today')? Not while a fetch run is in flight —
|
||||
* at startup Tradovate serves the DB cache before each account's fetch —
|
||||
* and not when the account's last fetch failed and left cached rows behind.
|
||||
*/
|
||||
export function historyFresh(client: PlatformClient, account: PlatformAccount): boolean {
|
||||
if (!client.fetchDaysComplete) return false;
|
||||
const error = client.lastFetchErrors?.[account.name];
|
||||
return !error || error === FILLS_FALLBACK_NOTE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user