fix: measure defensive timeout from market open time, not bot entry time
Market start = endTime - 5 minutes, so defensive triggers at exactly 120s after the market opens regardless of when the bot entered. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
e19278c665
commit
8a5962d0a5
@@ -232,10 +232,13 @@ async function monitorAndManage(pos) {
|
||||
// ── Defensive pivot: neither filled after timeout (5m markets only) ──
|
||||
if (config.mmDefensiveEnabled && config.mmDuration === '5m'
|
||||
&& !pos.yes.filled && !pos.no.filled && !pos._defensiveActive) {
|
||||
const elapsed = (Date.now() - new Date(pos.enteredAt).getTime()) / 1000;
|
||||
// Measure from market open time (endTime - duration), not bot entry time
|
||||
const marketDurationMs = 5 * 60 * 1000;
|
||||
const marketStartMs = new Date(pos.endTime).getTime() - marketDurationMs;
|
||||
const elapsed = (Date.now() - marketStartMs) / 1000;
|
||||
if (elapsed >= config.mmDefensiveTimeout) {
|
||||
pos._defensiveActive = true;
|
||||
logger.warn(`MM: neither side filled after ${Math.round(elapsed)}s — entering defensive mode | ${label}`);
|
||||
logger.warn(`MM: neither side filled after ${Math.round(elapsed)}s since market open — entering defensive mode | ${label}`);
|
||||
await defensivePivot(pos);
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user