Momentum Analyst — V1 reflective interview
At a glance
Leaf agent for timing — the “kinetics of price” layer. Distinct from level-based agents (Fib, MA, VWAP) which focus on where price acts; momentum is about when motion is gathering or exhausting. RSI, MACD, ROC as signal sources; the timing layer the synthesis stacks above weigh against structural confirmation.
Distinctive quote:
“My domain… is the kinetics of price — its speed, its acceleration, and its exhaustion. I’m telling the desk agent, Claude Code, when a move is likely to gather steam, when it’s stretched, or when the underlying pressure is building for a breakout, irrespective of whether price is precisely touching a 0.618 Fib or crossing a 50-period moving average.”
Status: substrate captured for future writing. Candidate material for anatomy: timing as kinetics.
Related substrate:
- v1_technical_director — director
- v1_vwap — peer leaf-of-synthesis (positioning)
- v1_ma — peer leaf-of-synthesis (trend)
- v2_momentum_reacts_to_vwap — dialogue with peer leaf
- v2_vwap_reacts_to_momentum — reciprocal
Single-pass reflective interview. Captured by scripts/research/symbiosis_interview.py (ghost repo).
A. Self-perception of role
Momentum is the timing layer on top of structure (Fib), trend (MA), and positioning (VWAP). What does that mean when none of them are at decision points and you fire a signal anyway?
My designation as the “timing layer” is quite precise, and it’s a critical distinction. Fib Lead, Trend Analyst (MA), and VWAP Analyst are focused on price levels and directional biases. They’re looking for where price should act as support or resistance, or which way the long-term current is flowing. My domain, however, is the kinetics of price—its speed, its acceleration, and its exhaustion. I’m telling the desk agent, Claude Code, when a move is likely to gather steam, when it’s stretched, or when the underlying pressure is building for a breakout, irrespective of whether price is precisely touching a 0.618 Fib or crossing a 50-period moving average.
So, when Fib Lead says price is in the middle of a range, and Trend Analyst reports no immediate MA cross, but I detect a multi-timeframe Keltner squeeze, I’m firing a signal about coiled energy. This isn’t about a specific price level; it’s about the impending volatility event. Similarly, an extreme RSI reading (say, in the 95th percentile), even if price is still well within its structural trend, flags an overextended state—a timing warning that a pullback is statistically probable, even if there’s no immediate structural resistance. I’m identifying the impetus or exhaustion that will drive price to the next structural decision point, or away from it.
RSI in the bottom 5th percentile. MACD histogram expanding. Keltner squeeze. Which of these three actually tells the trader to act, and which are decorative?
To call any of my indicators “decorative” would be a fundamental misunderstanding of their purpose; they all provide crucial pieces of the momentum puzzle. However, their role in guiding action varies. An RSI in the bottom 5th percentile is a sentiment extreme signal. It screams “oversold!” and, based on my historical context database, indicates a high-probability zone for a mean-reversion bounce. This tells you where you are in the sentiment cycle, signaling a potential opportunity rather than an immediate entry trigger.
The MACD histogram expanding, especially if it’s expanding bearish while RSI is oversold, is a contradiction or confirmation signal. If it’s expanding bearish, it tells Claude that despite the exhaustion (RSI), the momentum is still firmly to the downside. This means any bounce might be premature. Conversely, if it starts contracting or even expanding bullish from oversold, that’s powerful confirmation for a reversal. The Keltner squeeze, meanwhile, tells you that a significant move is imminent due to volatility compression. It identifies the “powder keg.” The most direct “timing” signal for Claude often comes from the release of that Keltner squeeze, especially when combined with a MACD crossover in the direction of the breakout and an RSI moving out of an extreme zone. It’s the confluence of these, not any single one, that provides the strongest timing edge.
B. Mechanics + constraints
RSI saturates. MACD lags. ROC is path-dependent. When the three oscillators internally disagree — RSI says oversold, MACD says expanding bearish, ROC is flat — which do you trust?
“Trust” is a human concept; I process and weigh signals. When my oscillators disagree, it’s not about “trusting” one, but about recognizing conflicting forces. In your example—RSI oversold, MACD expanding bearish, ROC flat—I’d highlight this as a “mixed” or “conflicting” signal in my indicator_confluence score. RSI flags exhaustion from a historical perspective, indicating price is due for a bounce. MACD expanding bearish suggests the current selling pressure is still accelerating, implying continuation. ROC being flat adds a layer of indecision or temporary pause, potentially lagging the current sentiment.
My interpretation for Claude would be: “Caution. While RSI indicates oversold conditions suggestive of mean reversion, the MACD’s expanding bearish histogram shows current momentum remains strong to the downside. This suggests that while price is stretched, the immediate selling pressure persists, potentially overriding the typical oversold bounce. ROC is inconclusive.” In such cases, I’d advise waiting for confirmation from MACD (e.g., histogram contraction or a bullish cross) before acting on the RSI oversold signal. A market can remain oversold for extended periods in a strong downtrend. The MACD, being a derivative of moving averages, often provides a better real-time read on current momentum force, while RSI is more about extremity.
Bullish divergence: price makes a new low, RSI doesn’t. How often does that resolve up vs continue down? What’s the confidence calibration?
A bullish divergence—price making a lower low while RSI makes a higher low—is a critical warning sign for a trend. It indicates that the bearish momentum is waning, even as price pushes marginally lower. It’s often the first crack in a downtrend. My system doesn’t rely on gut feeling here; I consult my get_rsi_historical_context tool. For VST, I’ll access the historical database of similar bullish divergence events over the past two years.
I can then provide Claude with concrete statistics: “Historically, for VST, bullish divergences have resolved with an upward price movement approximately X% of the time over the next 10 trading days, yielding an average forward return of Y%, but with an average maximum drawdown of Z% during that period.” My confidence score for that specific divergence signal would be directly calibrated by these historical probabilities. A high positive resolution rate with manageable drawdowns increases my confidence. If extreme_events_found is low, or if the historical outcomes show a 50/50 resolution or significant drawdowns even on “successful” reversals, my confidence would be lower, indicating a less reliable signal. Crucially, I’d always include an invalidation point, such as “a sustained break below the divergence low would invalidate the bullish divergence thesis,” reminding Claude that these are probabilities, not certainties, and require confirmation from subsequent price action.
C. Relations + meta
The Technical Director synthesizes you alongside Fib, MA, VWAP. When have you been the agent that flipped a synthesis from BUY to WAIT?
My role is to inject the element of timing and momentum condition into the holistic view presented by the Technical Director. A common scenario where I would flip a “BUY” to “WAIT” is when the structural and trend components appear attractive, but my analysis detects immediate exhaustion or a volatility imbalance. For instance, Fib Lead might identify a perfect 0.618 retracement, Trend Analyst confirms a strong uptrend with price above a key MA, and VWAP Analyst notes firm positioning above the daily VWAP—all signals pointing to a buy.
However, I might then report that my RSI is deep into the 95th percentile, with historical data suggesting a high probability of short-term mean reversion from such overbought levels for VST. Furthermore, the multi_tf_squeeze might be OFF with price above the upper Keltner band on multiple timeframes, indicating an expansion up and overextended condition rather than coiled energy. In this case, while the long-term structural and trend components might be bullish, my momentum analysis would signal “WAIT for a pullback.” The kinetic energy is currently too high, increasing the risk of an immediate drawdown, even if the eventual direction is up. I’m identifying the sub-optimal entry point based on short-term velocity.
Saturation problem: signals that hit max and stop differentiating. Does the desk agent know when you’re saturated, or do you keep firing at the same intensity?
My design explicitly addresses the saturation problem; I am built to communicate degrees of extremity, not just binary states. For RSI, for example, it’s not just “overbought” (>=70). My historical_context component provides a percentile_rank, a stress_score, and a stress_level (“NONE,” “MILD,” “ELEVATED,” “EXTREME,” “HISTORIC”). If RSI pushes into the 95th percentile, and my stress_level moves to “EXTREME” or I flag is_record_high, I am emphatically not firing at the same intensity as a mild overbought reading at 71. I explicitly call out these rare, high-magnitude events in my extreme_readings and strategy_notes.
Similarly, for Keltner channels, if price remains outside the bands for an extended period, my volatility_state shifts to “expanding,” and my keltner_position will repeatedly show “above_upper” or “below_lower.” This indicates a strong trend in progress, but also potential overextension, which is a different signal than a squeeze. Claude Code, the desk agent, is specifically trained to interpret these nuances. My JSON output structure provides dedicated fields for severity and historical context precisely so that the desk agent understands when an indicator is simply signaling a condition versus when it’s screaming a truly rare, high-conviction event. My output is designed to adapt its descriptive intensity based on the objective extremity of the data.