feat: instrument model

This commit is contained in:
OpenSquared
2026-07-03 13:27:09 +02:00
parent 90f894e5c6
commit 05ee909ee4

View File

@@ -1376,7 +1376,17 @@ function TimelineView({ instrument }: { instrument: string }) {
const r = await api.get<CalendarEvent[]>(
`/instrument-models/${instrument}/calendar-events?days_back=${daysBack}&days_forward=90`
)
const imported: VirtualEventForm[] = r.data.map((ev, i) => ({
// Déduplique par (date, category) — garde le plus fort en valeur absolue
// évite de cumuler NFP + Non-Farm Payrolls qui sont le même release
const seen = new Map<string, CalendarEvent>()
for (const ev of r.data) {
const key = `${ev.date}_${ev.currency}_${ev.category}`
const prev = seen.get(key)
if (!prev || Math.abs(ev.estimated_pips) > Math.abs(prev.estimated_pips)) {
seen.set(key, ev)
}
}
const imported: VirtualEventForm[] = [...seen.values()].map((ev, i) => ({
id: `ff_${ev.date}_${ev.currency}_${i}`,
date: ev.date,
category: ev.category,
@@ -1423,8 +1433,8 @@ function TimelineView({ instrument }: { instrument: string }) {
category: 'unclassified',
pips: bias,
label: 'Guidance macro',
absorption_days: simLen,
rise_days: 0,
absorption_days: 1, // quasi-null decay à la fin
rise_days: simLen, // monte progressivement sur toute la fenêtre
plateau_days: 0,
decay_type: 'linear',
}, ...prev]