CI / Test & Type-Check (push) Canceled after 0s
Snapshot of in-progress module work across multiple slices: - Dealer Flow: dealerExposureEngine, dealerMapService, dealerMapExplain, dealerMapIntegrity, dealerMapReplay, dealerStudyEngine, hanStyleLevels - Mirror Portfolio (M21): fundRepository, captureIngest, mirrorAlertProducers, fund holdings strip, live book, position capture ingest - Options: BSM, NormalizedOptionSurface types, OptionsChainRouter, ConvexityGate, option legs panel - Alert producers: vixLevel, rotation, thesis, unlock, portfolioRisk, mirror (fund_capture, fund_13f, mirror_diff) - FINRA short interest adapter + queue integration - SEC company tickers adapter + ingest (symbol search index seed) - Vendor gate (rate-limit-first data plane, ADR-0009) - CUSIP registry, reverse 13F refresh, stock float service - LRU cache, portfolio backtest engine - Frontend: dealer-flow, funds, journal, lab, monitor, plan, portfolio, reports, screener, strategies, theses, guided-start, exits, more pages - Volume profile, workspace profile, visibility-aware poll - ADRs 0010 (mirror math not advice), 0011 (symbol search index) - VENDOR_INTEGRATIONS.md, END_USER_TEST.md - .gitignore: exclude DBs, .DS_Store, local config, agent scratch
140 lines
5.5 KiB
TypeScript
140 lines
5.5 KiB
TypeScript
"use client";
|
|
import { useMarketOutlookSections, visibleCount } from "@/stores/market-outlook-sections-store";
|
|
import { HeavyTruckSalesChart } from "./HeavyTruckSalesChart";
|
|
import { ManufacturingPmiChart } from "./ManufacturingPmiChart";
|
|
import { MarketRotationPanel } from "./MarketRotationPanel";
|
|
import { RotationSignalAlert } from "./RotationSignalAlert";
|
|
import { MacroCommentaryPanel } from "./MacroCommentaryPanel";
|
|
import { MarketConditionStrip } from "./MarketConditionStrip";
|
|
import { SeasonalityPanel } from "./SeasonalityPanel";
|
|
import { InfoTooltip } from "./InfoTooltip";
|
|
import { SectionCollapse } from "./SectionCollapse";
|
|
|
|
/**
|
|
* Market Outlook — market condition, relative leadership, seasonality, macro context.
|
|
*/
|
|
export function MarketOutlookPanel() {
|
|
const open = useMarketOutlookSections((s) => s.open);
|
|
const expandAll = useMarketOutlookSections((s) => s.expandAll);
|
|
const collapseAll = useMarketOutlookSections((s) => s.collapseAll);
|
|
const numVisible = visibleCount(open);
|
|
|
|
return (
|
|
<div className="space-y-6">
|
|
<header className="flex items-baseline justify-between gap-4">
|
|
<div>
|
|
<h1 className="text-xl font-bold text-fg">Market Outlook</h1>
|
|
<p className="text-sm text-fg-faint mt-1">
|
|
Market regime, relative sector leadership, seasonal context, and macro indicators.
|
|
</p>
|
|
</div>
|
|
<div className="flex items-center gap-3">
|
|
<span className="text-[11px] text-fg-muted tabular-nums">{numVisible}/5 sections open</span>
|
|
<button
|
|
type="button"
|
|
onClick={numVisible < 5 ? expandAll : collapseAll}
|
|
className="text-[11px] text-link hover:underline"
|
|
>
|
|
{numVisible < 5 ? "Expand all" : "Collapse all"}
|
|
</button>
|
|
</div>
|
|
</header>
|
|
|
|
<MarketConditionStrip />
|
|
|
|
<SectionCollapse
|
|
id="rotation"
|
|
title="Sector & style leadership"
|
|
info={
|
|
<InfoTooltip>
|
|
<strong>What it is:</strong> Relative performance of sector and style ETFs versus the broad market (SPY).<br />
|
|
<strong>Why it matters:</strong> Shows where strength is concentrating across the market.<br />
|
|
<strong>How to read it:</strong> Positive relative return means outperformance versus SPY; negative means underperformance. Start with the one-month column.
|
|
</InfoTooltip>
|
|
}
|
|
>
|
|
<div className="space-y-4">
|
|
<p className="text-[11px] text-fg-muted">
|
|
Values are relative to the broad market (SPY), not absolute returns and not measured fund flows.
|
|
</p>
|
|
<MarketRotationPanel />
|
|
<div className="border-t border-line pt-3">
|
|
<p className="text-xs font-medium text-fg mb-2">Leadership alerts</p>
|
|
<RotationSignalAlert />
|
|
</div>
|
|
</div>
|
|
</SectionCollapse>
|
|
|
|
<SectionCollapse
|
|
id="seasonality"
|
|
title="Seasonality & calendar"
|
|
info={
|
|
<InfoTooltip>
|
|
<strong>What it is:</strong> Historical monthly patterns and recurring high-attention market dates.<br />
|
|
<strong>Why it matters:</strong> Certain windows (Fed decisions, jobs, inflation prints) tend to raise volatility.<br />
|
|
<strong>How to read it:</strong> Historical averages are context only; any given year can diverge.
|
|
</InfoTooltip>
|
|
}
|
|
>
|
|
<SeasonalityPanel />
|
|
</SectionCollapse>
|
|
|
|
<SectionCollapse id="peers" title="Macro commentary">
|
|
<div className="space-y-3">
|
|
<p className="text-[11px] text-fg-muted">
|
|
Near-term and structural commentary from public economic data (growth, inflation, labor, rates).
|
|
</p>
|
|
<MacroCommentaryPanel />
|
|
</div>
|
|
</SectionCollapse>
|
|
|
|
<SectionCollapse
|
|
id="truck-sales"
|
|
title="Heavy truck sales"
|
|
info={
|
|
<InfoTooltip>
|
|
<strong>What it is:</strong> Monthly US heavy truck sales (FRED HTRUCKSSAAR).<br />
|
|
<strong>Why it matters:</strong> A real-economy activity gauge that often turns before broader slowdowns or recoveries.<br />
|
|
<strong>How to read it:</strong> Focus on multi-month direction rather than a single print.
|
|
</InfoTooltip>
|
|
}
|
|
>
|
|
<div className="space-y-4">
|
|
<p className="text-[11px] text-fg-muted">
|
|
Source: FRED (
|
|
<a href="https://fred.stlouisfed.org/series/HTRUCKSSAAR" target="_blank" rel="noopener noreferrer" className="text-link underline">
|
|
HTRUCKSSAAR
|
|
</a>
|
|
).
|
|
</p>
|
|
<HeavyTruckSalesChart />
|
|
</div>
|
|
</SectionCollapse>
|
|
|
|
<SectionCollapse
|
|
id="manufacturing-pmi"
|
|
title="Manufacturing output"
|
|
info={
|
|
<InfoTooltip>
|
|
<strong>What it is:</strong> Federal Reserve industrial production: manufacturing (IPMAN).<br />
|
|
<strong>Why it matters:</strong> Hard output measure of the goods-producing economy.<br />
|
|
<strong>How to read it:</strong> Multi-month direction indicates expansion or contraction in factory activity.
|
|
</InfoTooltip>
|
|
}
|
|
>
|
|
<div className="space-y-4">
|
|
<p className="text-[11px] text-fg-muted">
|
|
Source: FRED (
|
|
<a href="https://fred.stlouisfed.org/series/IPMAN" target="_blank" rel="noopener noreferrer" className="text-link underline">
|
|
IPMAN
|
|
</a>
|
|
).
|
|
</p>
|
|
<ManufacturingPmiChart />
|
|
</div>
|
|
</SectionCollapse>
|
|
|
|
</div>
|
|
);
|
|
}
|