Sentiment must not be forced into the weekly strategic forecast. The system will use two independently trained and evaluated decision layers:
- A weekly strategic model forecasts the return from the next open to the next rebalance open. It may use slow news state such as seven-day sentiment, sustained mention spikes, and event novelty.
- A tactical sentiment overlay reacts to sufficiently fresh, relevant, and high-confidence events. With the project's daily OHLCV history it is evaluated at the daily close and filled at the next open using a one-session target.
True intraday event-time execution must not be reported until timestamped intraday quotes are available. Daily bars cannot establish whether a 10:05 headline could have been filled at 10:06 without lookahead.
flowchart LR
NEWS["Timestamped news and social posts"] --> CLOCK["Availability clock<br/>publication + processing latency"]
CLOCK --> SLOW["Strategic aggregation<br/>7-day state and novelty"]
CLOCK --> FAST["Fresh-event gate<br/>age, confidence, relevance"]
MARKET["Market and macro features"] --> WEEKLY["Weekly 5-session model"]
SLOW --> WEEKLY
FAST --> REACTION["Reaction and duplicate checks"]
REACTION --> OVERLAY["Small tactical overlay<br/>1-session target"]
WEEKLY --> COMBINE["Risk-controlled portfolio"]
OVERLAY --> COMBINE
COMBINE --> EXEC["Next tradable open"]
Every record requires, at minimum:
- source publication timestamp and timezone;
- ingestion timestamp;
- sentiment-model completion timestamp or an explicit latency assumption;
- the first portfolio decision timestamp at which the record was available.
For the daily historical simulation, information available by 15:45 New York time, after applying the configured processing latency, can affect that close's decision and the following open's order. Later information moves to the next trading session. Weekends and exchange holidays move to the next valid session.
The current implementation does not yet meet this rule: NLPFeatureBuilder
converts timestamps directly to calendar dates, and FeatureStore subsequently
shifts all NLP values one business day. These operations must be replaced by an
explicit availability timestamp before the hybrid experiment is run.
A post does not automatically rebalance the portfolio. A trigger must pass:
- maximum news age;
- minimum ticker relevance and sentiment confidence;
- minimum absolute aggregated sentiment;
- source/post confirmation, except for predeclared high-severity event types;
- duplicate and novelty checks;
- a price-reaction filter to avoid chasing an already exhausted move;
- per-ticker cooldown and signal expiry;
- expected benefit greater than spread, slippage, fees, and a safety margin.
The overlay changes only affected positions and is capped by ticker weight and portfolio turnover. It does not rerun a full strategic rebalance for every headline. Negative triggers may first reduce an existing position; positive triggers may add only within the overlay risk budget.
Every event receives both a sentiment score and a scope:
| Scope | Primary impact | Propagation method |
|---|---|---|
| Macro | Broad market, rates, commodities, currencies | Estimated market and factor betas |
| Industry | Sector and supply-chain group | Sector beta plus learned peer/competitor response |
| Company | Named ticker | Direct overlay plus validated relationship graph |
The sign must be learned or predeclared by event type. Same-industry companies often move together on demand or regulatory news, but competitors can move in opposite directions after a product, pricing, or market-share event. The system must not infer that distinction from sector membership alone.
Macro sentiment is not copied as the same ticker signal. It is translated through exposures: interest-rate duration, market beta, sector beta, oil or commodity sensitivity, and other available factors. This avoids treating a rate surprise as equally positive or negative for every company.
Correlation, cointegration, and negative correlation have different meanings:
- A positively correlated, cointegrated pair can support a relative-value trade. A company event is only an entry candidate when the observed spread also crosses its predeclared threshold.
- A negatively correlated ticker is a possible hedge, not proof of an opposite alpha response. It enters the candidate set only after checking correlation stability, factor exposure, liquidity, and expected cost.
- A high-severity fundamental event can break a historical equilibrium. For regulation, litigation, earnings, and major product events, the default is to pause the affected pair for five trading days and retest stability rather than immediately assume mean reversion.
The current selector pre-screens with absolute correlation while the portfolio manager sizes legs as a conventional long-short spread. Negative-correlation pairs therefore need to be separated from cointegrated relative-value pairs before news propagation is implemented.
All sleeves are netted before orders are created. Risk reduction has first priority, followed by the tactical event overlay, strategic allocation, and pair trading. This prevents, for example, the news layer selling a ticker while the pair sleeve independently buys it back, or several layers exceeding the ticker weight cap.
The sentiment experiment has three arms with identical universe, dates, costs, base model, optimizer, and outer folds:
- Strategic model without sentiment.
- Strategic model with only slow weekly sentiment state.
- Strategic model plus the tactical event-driven overlay.
The third arm must additionally report results by event scope and propagation path: direct company, industry peer, macro factor, positive-cointegration pair, and negative-correlation hedge.
Report gross and net return, Sharpe, drawdown, turnover, fee drag, event hit rate, return by signal age, and incremental return relative to the no-sentiment arm. The 2026-H1 lockbox remains sealed until all thresholds and event rules are frozen.