Update
This commit is contained in:
parent
1c20dc8c90
commit
ec8309a34e
|
|
@ -5,112 +5,142 @@
|
|||
{
|
||||
"ticker": "META",
|
||||
"rank": 1,
|
||||
"strategy_match": "Momentum/Hype",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.4,
|
||||
"confidence": 8,
|
||||
"reason": "META shows strong momentum driven by AI strategy optimism, global Threads ads rollout, and a new AI lab. Jefferies raised its price target to $910, reflecting undervaluation and AI progress. Technicals are bullish with a MACD crossover and price above the 20 EMA, along with rising OBV and institutional buying (VWAP). Options flow is highly bullish, with unusual call activity at $880, $835, and $1000 strikes for the Jan 30 expiry. Upcoming earnings on Jan 28 could be a significant catalyst. However, significant insider selling ($25M+) is a notable red flag. Actionable insight: Consider a long position targeting $700-720 post-earnings, with a stop-loss at $630 to manage risk from insider selling and potential earnings volatility.",
|
||||
"entry_price": 658.760009765625,
|
||||
"discovery_date": "2026-01-25",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "META",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "APLD",
|
||||
"rank": 2,
|
||||
"strategy_match": "Momentum/Hype / Short Squeeze",
|
||||
"strategy_match": "short_squeeze",
|
||||
"final_score": 8.8,
|
||||
"confidence": 8,
|
||||
"reason": "APLD presents a compelling momentum and short squeeze opportunity. The company announced groundbreaking for Delta Forge 1, a 430MW AI data center, causing a 10% stock surge. Fundamentals show extremely strong quarterly revenue growth (250% YOY), despite negative EPS. Technicals are robust with a strong uptrend, price above all key moving averages, and a bullish MACD crossover. Short interest is extremely high at 29.7% of float, making it ripe for a squeeze. Options activity shows extremely bullish call volume and unusual call activity at several high strikes. Insider selling ($17M+) and bearish OBV divergence are notable risks. Actionable insight: Monitor for continued upward momentum, targeting $40-45, with a tight stop at $34 due to high volatility and insider selling.",
|
||||
"entry_price": 37.689998626708984,
|
||||
"discovery_date": "2026-01-25",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "short_squeeze",
|
||||
"company_name": "APLD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "FCX",
|
||||
"rank": 3,
|
||||
"strategy_match": "Momentum/Hype",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 8.5,
|
||||
"confidence": 8,
|
||||
"reason": "Freeport-McMoRan (FCX) exhibits strong momentum driven by positive news and robust technicals. The stock surged following a strong Q3 2025 earnings beat, reaching a 52-week high. Analyst upgrades from HSBC ($69 target) and Wall Street Zen confirm a positive outlook, citing strong copper demand. Technical indicators show a strong uptrend, with price significantly above 50 and 200 SMAs, high RSI, and rising OBV. Unusual call activity at $69, $75, $63, and $60 strikes suggests bullish institutional positioning. Insider selling ($1.8M+) is a minor concern, but overall sentiment is bullish. Actionable insight: Look for entry on minor pullbacks towards $58-59, targeting a breakout above the 52-week high of $62.13 towards the $65-69 analyst targets, with a stop-loss at $56.",
|
||||
"entry_price": 60.40999984741211,
|
||||
"discovery_date": "2026-01-25",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "FCX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ANAB",
|
||||
"rank": 4,
|
||||
"strategy_match": "Momentum/Hype / Short Squeeze",
|
||||
"strategy_match": "short_squeeze",
|
||||
"final_score": 8.0,
|
||||
"confidence": 8,
|
||||
"reason": "AnaptysBio (ANAB) shows strong potential for a short squeeze combined with momentum. Barclays recently upgraded its price target to $78 with an 'Overweight' rating, indicating significant upside. The stock is in a strong uptrend, trading above its 50 and 200 SMAs with rising OBV. Crucially, short interest is extremely high at 35.25% of the float, and options open interest is very bullish (P/C OI ratio 0.015), suggesting institutional long positioning. While quarterly revenue growth is very strong (1.543 YOY), the company has negative EPS and ongoing insider selling ($6.7M+). Actionable insight: This is a high-risk, high-reward short squeeze play. Consider a long entry on strength above $48, targeting $55-60, with a stop-loss at $44 to mitigate fundamental and insider-selling risks.",
|
||||
"entry_price": 47.540000915527344,
|
||||
"discovery_date": "2026-01-25",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "short_squeeze",
|
||||
"company_name": "ANAB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ABCB",
|
||||
"rank": 5,
|
||||
"strategy_match": "Momentum/Hype",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 8.0,
|
||||
"confidence": 7,
|
||||
"reason": "Ameris Bancorp (ABCB) displays strong momentum, reaching a new 52-week high of $82.33. The company announced a $200M share repurchase program, signaling confidence and commitment to shareholder value. Technically, ABCB is in a strong uptrend, with price well above its 50 and 200 SMAs and rising OBV. Options activity, despite low volume, shows bullish sentiment with a low Put/Call Volume Ratio (0.333) and Open Interest Ratio (0.228). Fundamentals are solid with a low P/E (13.94) and moderate revenue/earnings growth. Upcoming Q4 earnings on Jan 29 could provide further catalysts. Actionable insight: Monitor for a breakout above the 52-week high ($83.64), targeting $85-90, with a stop-loss at $78.50, anticipating positive earnings sentiment and continued buybacks.",
|
||||
"entry_price": 80.44000244140625,
|
||||
"discovery_date": "2026-01-25",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "ABCB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "SAIC",
|
||||
"rank": 6,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 6.9,
|
||||
"confidence": 7,
|
||||
"reason": "Science Applications International Corp. (SAIC) shows a strong insider buying signal, with 5 purchases totaling over $336K, including a $200K purchase by the CFO. This insider confidence aligns with a significant $1.4B U.S. Air Force contract win, a key positive catalyst. Technically, the stock is in an uptrend, trading above its 50 and 200 SMAs with rising OBV, despite a recent bearish MACD crossover. Options open interest is bullish (P/C OI 0.683), although volume is bearish. Fundamentals show a low P/E (14.08), but revenue and earnings growth have been weak. High debt (Debt/Equity 175.0) is a risk. Actionable insight: Consider a long position on dips toward $108-109, targeting the analyst target of $117.56, with a stop-loss at $104, capitalizing on insider confidence and the new contract.",
|
||||
"entry_price": 110.13999938964844,
|
||||
"discovery_date": "2026-01-25",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "SAIC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PYPL",
|
||||
"rank": 7,
|
||||
"strategy_match": "Contrarian Value",
|
||||
"strategy_match": "contrarian_value",
|
||||
"final_score": 6.7,
|
||||
"confidence": 7,
|
||||
"reason": "PayPal (PYPL) presents a contrarian value opportunity, trading near its 52-week low ($55.015) after a significant YTD decline in 2025. Fundamentals are attractive with a low P/E (11.37) and Forward P/E (9.84), and strong quarterly earnings growth (31.3% YOY). Strategic initiatives like the Google partnership and a $15B buyback program provide potential long-term tailwinds. Technicals show a bullish MACD crossover and bullish OBV divergence (accumulation), suggesting a potential reversal despite a strong downtrend. Options volume is bullish, with unusual call activity at various strikes. However, significant insider selling ($2.4M+) and negative price action are concerns. Actionable insight: Consider accumulating shares on dips towards $55, targeting a recovery to $65-70, with a stop-loss at $53, ahead of earnings in two weeks.",
|
||||
"entry_price": 56.619998931884766,
|
||||
"discovery_date": "2026-01-25",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "contrarian_value",
|
||||
"company_name": "PYPL",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ORRF",
|
||||
"rank": 8,
|
||||
"strategy_match": "Contrarian Value",
|
||||
"strategy_match": "contrarian_value",
|
||||
"final_score": 6.4,
|
||||
"confidence": 6,
|
||||
"reason": "Orrstown Financial Services (ORRF) offers a potential contrarian value play, having recently experienced a 2% drop that analysts suggest could be a low-risk entry. Fundamentals are strong with a low P/E (9.21), good Price/Book (1.23), and strong quarterly revenue growth (26.9% YOY). The company also has a decent dividend yield (2.98%) with a history of growth. Technically, ORRF is in a strong uptrend, trading above its 50 and 200 SMAs, with bullish OBV divergence. Insider buying, though minimal ($10K+ by one director), adds a slight positive signal ahead of Q4 earnings on Jan 27. Options activity is too sparse to draw strong conclusions. Actionable insight: A long position could be considered on strength above $36.50, targeting $39-41, with a stop-loss at $34.50, betting on a positive earnings surprise and fundamental undervaluation.",
|
||||
"entry_price": 36.20000076293945,
|
||||
"discovery_date": "2026-01-25",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "contrarian_value",
|
||||
"company_name": "ORRF",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "NWBI",
|
||||
"rank": 9,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 5.7,
|
||||
"confidence": 6,
|
||||
"reason": "Northwest Bancshares (NWBI) shows bullish insider activity with 6 purchases totaling over $131K, including a $48K purchase by a Director. This insider confidence aligns with attractive valuation metrics like a low P/E (14.36) and Price/Book ratio (<1), along with a high dividend yield (6.41%). Technically, NWBI is in a strong uptrend, having experienced a Golden Cross, and trades above its 50 and 200 SMAs with rising OBV. Upcoming Q4 earnings on Jan 26 are anticipated to show positive EPS and revenue growth. However, options flow is bearish (P/C Volume 2.426, OI 3.04), and quarterly earnings growth has been very weak (-92.3% YOY). Actionable insight: Monitor closely post-earnings. If results are positive, consider a long entry above $12.50, targeting $13.50-14, with a stop-loss at $11.80, acknowledging the conflicting options signals.",
|
||||
"entry_price": 12.489999771118164,
|
||||
"discovery_date": "2026-01-25",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "NWBI",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "BGS",
|
||||
"rank": 10,
|
||||
"strategy_match": "Momentum/Hype / Short Squeeze",
|
||||
"strategy_match": "short_squeeze",
|
||||
"final_score": 5.6,
|
||||
"confidence": 7,
|
||||
"reason": "B&G Foods (BGS) presents a high-risk, high-reward opportunity due to extremely high short interest (26.63% of float) and a recent positive acquisition catalyst. The acquisition of Del Monte's broth/stock division is expected to enhance EPS and EBITDA. Technicals show a strong uptrend, with price above its 50 and 200 SMAs, and bullish MACD and Stochastic crossovers. Options open interest is bullish (P/C OI 0.485). However, fundamentals are very weak with negative EPS, negative profit margin, and extremely high debt (Debt/Equity 440.24). Analyst consensus is 'Sell,' and there is insider selling ($84K+). The OBV shows bearish divergence, indicating distribution. Actionable insight: This is a speculative short squeeze play. Consider a small, highly risk-managed long position on strength above $4.50, targeting $5.00-5.50, with a tight stop-loss at $4.10 due to significant fundamental risks and bearish technical divergence.",
|
||||
"entry_price": 4.409999847412109,
|
||||
"discovery_date": "2026-01-25",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "short_squeeze",
|
||||
"company_name": "BGS",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -5,112 +5,142 @@
|
|||
{
|
||||
"ticker": "GME",
|
||||
"rank": 1,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 11.5,
|
||||
"confidence": 9,
|
||||
"reason": "Highest conviction setup. CEO Ryan Cohen purchased $21.3M worth of stock on Jan 21, coupled with director buying. This aligns with store closure efficiency news. Options flow is flashing an extreme bullish signal with a Put/Call ratio of 0.11 (heavy call skew), suggesting institutional positioning for a move higher. Technicals show RSI at 64 with price holding above 200 SMA.",
|
||||
"entry_price": 24.010000228881836,
|
||||
"discovery_date": "2026-01-26",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "GME",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "BKR",
|
||||
"rank": 2,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 11.0,
|
||||
"confidence": 9,
|
||||
"reason": "Fresh breakout to 52-week highs following a Q4 earnings beat ($0.78 vs $0.67 est). Technicals confirm a 'Upper Bollinger Band Walk,' indicating strong momentum. Options activity is incredibly bullish with a P/C ratio of 0.209, confirming the post-earnings drift thesis. Analysts maintain a $56+ target, which price is now testing.",
|
||||
"entry_price": 56.290000915527344,
|
||||
"discovery_date": "2026-01-26",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "BKR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "VIAV",
|
||||
"rank": 3,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 10.0,
|
||||
"confidence": 8,
|
||||
"reason": "Stock hit 52-week high ($19.78) ahead of Jan 28 earnings. B. Riley raised PT to $22. Options flow is heavily skewed bullish with a P/C volume ratio of just 0.12, suggesting smart money is positioning for a beat or raised guidance. Technical trend is strong (Price > 20/50/200 SMAs).",
|
||||
"entry_price": 19.920000076293945,
|
||||
"discovery_date": "2026-01-26",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "VIAV",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "APLD",
|
||||
"rank": 4,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.5,
|
||||
"confidence": 8,
|
||||
"reason": "Recent groundbreaking on 430MW AI data center and analyst upgrade to 'Strong Buy'. Options volume shows P/C ratio of 0.495, confirming bullish sentiment. Technicals show an 8.5% daily jump and price significantly above moving averages. Note: High volatility (ATR $3.26) requires wider stops.",
|
||||
"entry_price": 36.18000030517578,
|
||||
"discovery_date": "2026-01-26",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "APLD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AMZN",
|
||||
"rank": 5,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.5,
|
||||
"confidence": 9,
|
||||
"reason": "Multiple analyst upgrades (Wells Fargo PT $301, Roth PT $295) citing AWS acceleration. Layoff news typically viewed as margin-positive by Wall Street. Options flow confirms the bullish thesis with a P/C ratio of 0.449. Price is consolidating near highs, setting up for a potential breakout toward $250.",
|
||||
"entry_price": 238.4199981689453,
|
||||
"discovery_date": "2026-01-26",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "AMZN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "DDOG",
|
||||
"rank": 6,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.5,
|
||||
"confidence": 8,
|
||||
"reason": "Technical breakout featuring a Golden Cross and bullish engulfing pattern. Stifel upgraded to Buy with $160 target. Options flow supports the move with a low P/C ratio of 0.30. The 9.3% 5-day change indicates strong accumulation ahead of earnings.",
|
||||
"entry_price": 136.63999938964844,
|
||||
"discovery_date": "2026-01-26",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "DDOG",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "SLV",
|
||||
"rank": 7,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.0,
|
||||
"confidence": 7,
|
||||
"reason": "Strong social momentum (Reddit threads regarding tariffs and inflation hedging) and breakout to new highs. Driven by tariff threats against Canada/Korea. Caution advised as RSI is 76 (Overbought), but the trend is undeniably strong. Options flow is neutral/mixed, suggesting some profit-taking at these levels.",
|
||||
"entry_price": 98.33999633789062,
|
||||
"discovery_date": "2026-01-26",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "SLV",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "NVDA",
|
||||
"rank": 8,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.0,
|
||||
"confidence": 8,
|
||||
"reason": "Approval to sell H20 chips in China removes a major overhang, outweighing the 15% revenue share fee. Options flow is bullish (P/C 0.63). Insider selling is a slight drag, but the catalyst is strong enough to drive near-term momentum. Support at $180 holds.",
|
||||
"entry_price": 186.47000122070312,
|
||||
"discovery_date": "2026-01-26",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "NVDA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "DHR",
|
||||
"rank": 9,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.0,
|
||||
"confidence": 8,
|
||||
"reason": "Goldman Sachs and Wells Fargo raised price targets ($270/$240). While price dipped slightly recently (-2%), the options flow is aggressively bullish with a P/C ratio of 0.175, indicating institutional accumulation during the dip.",
|
||||
"entry_price": 236.7100067138672,
|
||||
"discovery_date": "2026-01-26",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "DHR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "STLD",
|
||||
"rank": 10,
|
||||
"strategy_match": "Contrarian Value",
|
||||
"strategy_match": "contrarian_value",
|
||||
"final_score": 8.5,
|
||||
"confidence": 7,
|
||||
"reason": "Despite lowered guidance for Q4, the stock is up 4.4% in 5 days with strong technicals (Bullish MACD). Options traders are betting on a beat or looking past Q4 weakness, evidenced by a bullish P/C ratio of 0.43. Strong backlog supports 2026 outlook.",
|
||||
"entry_price": 173.32000732421875,
|
||||
"discovery_date": "2026-01-26",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "contrarian_value",
|
||||
"company_name": "STLD",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -5,112 +5,142 @@
|
|||
{
|
||||
"ticker": "META",
|
||||
"rank": 1,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.2,
|
||||
"confidence": 9,
|
||||
"reason": "Strong momentum driven by an aggressive AI strategy, positive analyst upgrades (Jefferies target $910), and significant social media buzz around earnings (Jan 28) and new monetization efforts (premium subscriptions, Threads ads). Technicals show a clear bullish trend, breaking out from a recent low, with price above key moving averages and bullish MACD crossover. Bullish options volume (P/C 0.56) confirms positive sentiment. Entry around $660-670, stop below $640 (50-SMA). Anticipate post-earnings volatility.",
|
||||
"entry_price": 672.969970703125,
|
||||
"discovery_date": "2026-01-27",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "META",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "GLW",
|
||||
"rank": 2,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 7.8,
|
||||
"confidence": 8,
|
||||
"reason": "Major positive catalyst with a new $6 billion Meta order for AI data centers, leading to a 16% stock surge. Technicals show a strong uptrend with all key moving averages confirming bullish momentum and price near 52-week highs ($113.99). Unusual options activity shows significant bullish institutional interest for near-term calls ($115, $111 strikes expiring Jan 30). Entry on a dip to $105-107, stop below $96.64 (recent high, also upper Bollinger Band).",
|
||||
"entry_price": 109.73999786376953,
|
||||
"discovery_date": "2026-01-27",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "GLW",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "SLV",
|
||||
"rank": 3,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 7.7,
|
||||
"confidence": 8,
|
||||
"reason": "Driven by strong silver prices (surged >150%) due to supply deficits and industrial demand, with SLV posting a 208% annual return and hitting a 52-week high. Technicals show a very strong uptrend with price far above all key moving averages. Options activity shows a recent large-volume call spread, confirming bullish momentum. However, the ETF is significantly overbought (RSI 79.4, Stochastic), and some Reddit sentiment indicates bearish bets, posing a risk of a pullback. Entry on a dip to $92-95 (near 23.6% Fib support) with a stop below $88.",
|
||||
"entry_price": 101.58999633789062,
|
||||
"discovery_date": "2026-01-27",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "SLV",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "FFIV",
|
||||
"rank": 4,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 6.9,
|
||||
"confidence": 7,
|
||||
"reason": "Strong earnings beat and positive guidance, coupled with an analyst upgrade by JPMorgan to 'Overweight' with a $345 target. Technicals show a short-term bullish trend (price above 50-SMA $253.73, rising OBV, price above 20-EMA $263.91 and VWAP). Bullish options flow confirms positive sentiment (P/C 0.479). However, significant insider selling ($8.4M) is a red flag. Entry on pullback to $265-268 (near 20-EMA/VWAP), with a stop below $253 (50-SMA).",
|
||||
"entry_price": 270.42999267578125,
|
||||
"discovery_date": "2026-01-27",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "FFIV",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TRX",
|
||||
"rank": 5,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 6.6,
|
||||
"confidence": 8,
|
||||
"reason": "Extremely strong momentum driven by record Q1 revenue ($25.12M, doubled YoY), 100% unhedged gold exposure benefiting from rising gold prices, and a massive surge in call option volume (5,352% increase). Technicals show a parabolic uptrend, but the stock is significantly overbought (RSI 79.8, 141% above upper Bollinger band), suggesting a potential pullback. Entry on pullback to $1.25-1.30 (near 23.6% Fib support) with a stop below $1.20 (upper Bollinger band).",
|
||||
"entry_price": 1.5199999809265137,
|
||||
"discovery_date": "2026-01-27",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "TRX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TXN",
|
||||
"rank": 6,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 6.0,
|
||||
"confidence": 7,
|
||||
"reason": "Strong technical uptrend with price above all key moving averages (50-SMA $177.28, 200-SMA $181.35, 20-EMA $188.06, VWAP $188.03), strong ADX (44.5), and bullish RSI/MACD. Positive news regarding a 16-year forecast. Bullish options volume (P/C 0.635). However, significant insider selling ($1.7M) and mixed analyst target adjustments (Susquehanna lowered, Barclays raised) introduce caution. Entry around $190-192 (near 20-EMA) with a stop below $185 (support below 23.6% Fib).",
|
||||
"entry_price": 196.6300048828125,
|
||||
"discovery_date": "2026-01-27",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "TXN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "KLAC",
|
||||
"rank": 7,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 5.8,
|
||||
"confidence": 7,
|
||||
"reason": "Strong technical uptrend, outperforming the market, with price well above key moving averages (50-SMA $1276.50, 200-SMA $1103.85) and positive RSI (67.2). Strong fundamentals with solid revenue (13.0% YoY) and earnings growth (20.8% YoY). Upcoming earnings expected to be positive. However, substantial insider selling ($15.7M, including $12.9M by CEO) and neutral options activity are cautionary signals. Entry on pullback to $1450-1480 (near 23.6% Fib support) with a stop below $1400 (20-EMA).",
|
||||
"entry_price": 1616.3299560546875,
|
||||
"discovery_date": "2026-01-27",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "KLAC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "KKR",
|
||||
"rank": 8,
|
||||
"strategy_match": "Contrarian Value",
|
||||
"strategy_match": "contrarian_value",
|
||||
"final_score": 5.8,
|
||||
"confidence": 6,
|
||||
"reason": "Strong fundamentals with good revenue (13.2% YoY) and earnings growth (40.6% YoY). Technicals show the stock is oversold (RSI 33.2) and at the lower Bollinger band, indicating a potential bounce. However, the overall trend is a strong downtrend, and bearish options volume (P/C 1.704) contradicts a bullish reversal play. The Nestle news is not a direct catalyst for KKR's stock price. Entry on confirmation of bounce from $112-115 support, stop below $110.",
|
||||
"entry_price": 116.0,
|
||||
"discovery_date": "2026-01-27",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "contrarian_value",
|
||||
"company_name": "KKR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "HOLO",
|
||||
"rank": 9,
|
||||
"strategy_match": "Contrarian Value",
|
||||
"strategy_match": "contrarian_value",
|
||||
"final_score": 5.3,
|
||||
"confidence": 6,
|
||||
"reason": "The core thesis is deep undervaluation (P/B 0.1, trading at 10% of NAV based on liquid assets). Technicals show it's at the lower Bollinger band with bullish OBV divergence, suggesting a potential bounce from oversold conditions. However, there's no insider or options data to confirm sentiment, and the stock exhibits high volatility and a weak overall trend (ADX 7.6). This is a speculative value play. Entry near $2.57 (52-week low/Fib support) with a stop below $2.50.",
|
||||
"entry_price": 2.75,
|
||||
"discovery_date": "2026-01-27",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "contrarian_value",
|
||||
"company_name": "HOLO",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "VYMI",
|
||||
"rank": 10,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 5.2,
|
||||
"confidence": 6,
|
||||
"reason": "Strong technical uptrend, outperforming VXUS, and a high dividend yield (369%) make it attractive for income-focused investors in a 'risk-on' international rotation. However, it's significantly overbought (RSI 76.9, Stochastic) and at the upper Bollinger band, suggesting a potential pullback. Institutional activity is mixed (some buying, some selling). Entry on a pullback to $91-92 (near 20-EMA) with a stop below $89 (50-SMA).",
|
||||
"entry_price": 95.98999786376953,
|
||||
"discovery_date": "2026-01-27",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "VYMI",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -5,112 +5,142 @@
|
|||
{
|
||||
"ticker": "HYMC",
|
||||
"rank": 1,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 10.5,
|
||||
"confidence": 9,
|
||||
"reason": "Exceptional insider strength with 10% owner Eric Sprott purchasing an aggregate of $84.9M over 3 months, including $5M on Jan 28. High-grade silver intercepts at the Nevada mine serve as a massive fundamental catalyst. Technicals show a very strong uptrend (ADX 67.9) with price 151% above the 50-SMA. Strategy: Momentum trade with entry at $51.50, targeting $60 resistance, with a tight stop at $47.50 (1.5x ATR).",
|
||||
"entry_price": 51.689998626708984,
|
||||
"discovery_date": "2026-01-28",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "HYMC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "META",
|
||||
"rank": 2,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 10.3,
|
||||
"confidence": 10,
|
||||
"reason": "Q4 earnings beat with $59.89B revenue and aggressive 2026 guidance. Social sentiment is highly positive following AI spend updates. MACD bullish crossover confirmed on Jan 28. Options flow is decisively bullish with a volume P/C ratio of 0.588 and unusual call activity at the $785 Jan 30 strikes (9.06x Vol/OI). Strategy: Buy on current strength targeting $710 (Fib high), stop at $645.",
|
||||
"entry_price": 668.72998046875,
|
||||
"discovery_date": "2026-01-28",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "META",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "MIRM",
|
||||
"rank": 3,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 10.0,
|
||||
"confidence": 9,
|
||||
"reason": "Following the Bluejay Therapeutics acquisition, Director Heron Patrick bought $8.9M in stock. Analysts (HC Wainwright) raised the target to $130 (28% upside). Technicals are in a strong uptrend with price above 20 EMA and a RSI of 77.5 indicating high demand. Strategy: Entry at $100.85, targeting $130, with a stop at $93.40 (1.5x ATR).",
|
||||
"entry_price": 100.8499984741211,
|
||||
"discovery_date": "2026-01-28",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "MIRM",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "LRCX",
|
||||
"rank": 4,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.6,
|
||||
"confidence": 9,
|
||||
"reason": "Fiscal Q2 revenue of $5.34B with record operating margins driven by AI data center demand. Bullish MACD crossover on Jan 28 and technical breakout above the 50-SMA (+33.4% position). Analyst sentiment is 73.7% bullish. Strategy: Ride semiconductor equipment tailwinds toward $265 target, stop loss at $223.",
|
||||
"entry_price": 239.5800018310547,
|
||||
"discovery_date": "2026-01-28",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "LRCX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AMAT",
|
||||
"rank": 5,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.5,
|
||||
"confidence": 8,
|
||||
"reason": "Upgraded by Mizuho and Deutsche Bank on accelerating wafer equipment spending. Technicals show a strong uptrend with a Golden Cross (50-SMA crossing 200-SMA) and MACD bullish crossover. Options volume P/C ratio is 0.698, confirming call-side dominance. Strategy: Enter on pullbacks to $330, targeting $360 resistance, stop at $315.",
|
||||
"entry_price": 336.75,
|
||||
"discovery_date": "2026-01-28",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "AMAT",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WDC",
|
||||
"rank": 6,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.3,
|
||||
"confidence": 8,
|
||||
"reason": "AI-driven memory shortage is improving margins, pushing shares to all-time highs. RSI 73.1 indicates overbought conditions but strong ADX (57.8) suggests trend persistence. Options activity shows massive unusual call volume at $285 Feb 6 strikes (220x OI). Strategy: Momentum play targeting $300 ahead of earnings, stop loss at $231.",
|
||||
"entry_price": 279.70001220703125,
|
||||
"discovery_date": "2026-01-28",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "WDC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WRB",
|
||||
"rank": 7,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 9.2,
|
||||
"confidence": 9,
|
||||
"reason": "Mitsui Sumitomo Insurance (10% owner) has purchased an aggregate of $413.5M in the last 3 months, including $69M recently. Q4 results beat revenue forecasts. While technicals are in a downtrend, the sheer scale of insider accumulation suggests a fundamental floor. Strategy: Value-entry at $67.67, targeting $78 (52-week high), stop at $64.50.",
|
||||
"entry_price": 67.66999816894531,
|
||||
"discovery_date": "2026-01-28",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "WRB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "VIAV",
|
||||
"rank": 8,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 8.3,
|
||||
"confidence": 8,
|
||||
"reason": "Earnings reported at the high end of guidance with an upbeat Q3 outlook. Technicals show a strong uptrend and price 11.4% above VWAP. Options flow is highly bullish with a volume P/C ratio of 0.071 and heavy call volume at $24 Feb strikes (16.8x OI). Strategy: Entry at $21, target $24, stop at $19.47.",
|
||||
"entry_price": 21.030000686645508,
|
||||
"discovery_date": "2026-01-28",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "VIAV",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "VSAT",
|
||||
"rank": 9,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 8.3,
|
||||
"confidence": 8,
|
||||
"reason": "Needham Buy rating and $45 target based on Viasat-3 satellite deployment which will triple global capacity. Strong technical uptrend (price +41% from 200-SMA). Unusual options activity at $42 Feb 20 calls (17.7x Vol/OI). Strategy: Ride breakout above 52-week high toward $55, stop at $41.",
|
||||
"entry_price": 47.58000183105469,
|
||||
"discovery_date": "2026-01-28",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "VSAT",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "INTC",
|
||||
"rank": 10,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 8.2,
|
||||
"confidence": 7,
|
||||
"reason": "Shares jumped 11% on reports of Apple/Nvidia foundry interest for 2028. CFO David Zinsner purchased $250k in stock at $42.50 to signal a dip-buy opportunity. Bullish options positioning (OI P/C 0.688) confirms market confidence in the pivot. Strategy: Long position at $48.78, target $54.60, stop at $43.70.",
|
||||
"entry_price": 48.779998779296875,
|
||||
"discovery_date": "2026-01-28",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "INTC",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -5,112 +5,142 @@
|
|||
{
|
||||
"ticker": "APLD",
|
||||
"rank": 1,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 10.5,
|
||||
"confidence": 9,
|
||||
"reason": "Extreme growth profile with 250% revenue growth YoY. Nvidia's $2B investment in anchor tenant CoreWeave effectively de-risks the Ellendale campus project. Technicals show a strong uptrend above 50 SMA with a bullish MACD crossover. Options activity is highly favorable with a Put/Call volume ratio of 0.325, indicating institutional accumulation. Strategy: Enter on pullbacks to $36.78 support with a target of $45.",
|
||||
"entry_price": 38.06999969482422,
|
||||
"discovery_date": "2026-01-29",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "APLD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AAPL",
|
||||
"rank": 2,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 10.4,
|
||||
"confidence": 9,
|
||||
"reason": "Reported record Q1 revenue of $143.8B with a bullish MACD crossover indicating shifting momentum. Acquisition rumors of AI startup Q.ai provide a catalyst for Siri enhancement. Options flow is bullish with a P/C ratio of 0.63 and strong institutional positioning. Strategy: Bullish breakout play toward $287 analyst target; stop-loss at $248.",
|
||||
"entry_price": 258.2799987792969,
|
||||
"discovery_date": "2026-01-29",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "AAPL",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "UA",
|
||||
"rank": 3,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 10.2,
|
||||
"confidence": 8,
|
||||
"reason": "Significant insider buying from V. Prem Watsa ($16.4M) and a total of over $90M in purchases this quarter shows extreme conviction. ADX of 62 indicates an incredibly strong trend. Options P/C ratio of 0.117 confirms bullish sentiment. Strategy: Follow insider lead for a move back toward $7.76 high; entry at $5.90, stop at $5.35.",
|
||||
"entry_price": 5.929999828338623,
|
||||
"discovery_date": "2026-01-29",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "UA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "MCHP",
|
||||
"rank": 4,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 10.0,
|
||||
"confidence": 8,
|
||||
"reason": "Fresh analyst upgrade from Investing.com paired with a confirmed Golden Cross (50 SMA crossing 200 SMA). Company launched new 3-nm switches for AI data centers. Put/Call ratio of 0.13 is exceptionally bullish. RSI is overbought (73.4), suggesting a brief consolidation before the Feb 5 earnings. Strategy: Long position at $78-80 range targeting $95.",
|
||||
"entry_price": 79.36000061035156,
|
||||
"discovery_date": "2026-01-29",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "MCHP",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "INTC",
|
||||
"rank": 5,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.8,
|
||||
"confidence": 8,
|
||||
"reason": "Recent 11% jump on rumors of 2028 foundry partnerships with Apple and Nvidia. Bullish insider activity from the CFO ($250k purchase) signals manufacturing confidence. Options flow confirms the bias with a P/C ratio of 0.655. Strategy: Momentum trade toward $54 resistance; tight stop at $44.03 (ATR based).",
|
||||
"entry_price": 48.65999984741211,
|
||||
"discovery_date": "2026-01-29",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "INTC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "USAR",
|
||||
"rank": 6,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.6,
|
||||
"confidence": 8,
|
||||
"reason": "Closing of $1.5B PIPE and CHIPS program LOI ($1.6B) provide multi-year funding runway for rare earth production. Technicals show very strong trend strength (ADX 55.5). Options P/C ratio of 0.382 indicates heavy call buying. Strategy: Target $37.20 analyst consensus with trailing stop under the 20 EMA ($20.08).",
|
||||
"entry_price": 22.06999969482422,
|
||||
"discovery_date": "2026-01-29",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "USAR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "LTRX",
|
||||
"rank": 7,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.5,
|
||||
"confidence": 7,
|
||||
"reason": "Announced high-impact AI drone partnership for defense. Extremely low Put/Call ratio (0.024) suggests speculative call buying ahead of Feb 5 earnings. Technicals show a strong uptrend above all major EMAs. Strategy: Speculative earnings play targeting $9.00; stop-loss at 50 SMA ($5.79).",
|
||||
"entry_price": 6.800000190734863,
|
||||
"discovery_date": "2026-01-29",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "LTRX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "KLAC",
|
||||
"rank": 8,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.1,
|
||||
"confidence": 8,
|
||||
"reason": "Crushed Q2 estimates with 17% growth driven by AI packaging demand. Strong guidance issued for the next quarter. Strong uptrend verified by OBV and VWAP. RSI is high (72.5), but momentum is supported by yielding management dominance. Strategy: Buy on confirmation of support at $1620; target $1800.",
|
||||
"entry_price": 1684.7099609375,
|
||||
"discovery_date": "2026-01-29",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "KLAC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AMD",
|
||||
"rank": 9,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.0,
|
||||
"confidence": 8,
|
||||
"reason": "Upgraded ahead of earnings due to MI308 chip demand and AI accelerator licenses. ADX of 39.6 indicates a solid trend. Options OI shows bullish long-term positioning. Insider selling is a minor concern (-0.1 modifier offset). Strategy: Play the earnings run-up to $267 resistance; stop at $237.",
|
||||
"entry_price": 252.17999267578125,
|
||||
"discovery_date": "2026-01-29",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "AMD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "THM",
|
||||
"rank": 10,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 8.5,
|
||||
"confidence": 7,
|
||||
"reason": "Paulson & Co. increased stake via a $40M purchase in a recent $115M financing round. Technicals show an extreme move (+26% in 5 days) and RSI is overbought (78.6). High institutional support (53.8%) provides floor. Strategy: Wait for mean reversion toward $2.55 (VWAP) before entering; target $3.65.",
|
||||
"entry_price": 2.990000009536743,
|
||||
"discovery_date": "2026-01-29",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "THM",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -5,112 +5,142 @@
|
|||
{
|
||||
"ticker": "META",
|
||||
"rank": 1,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 11.0,
|
||||
"confidence": 9,
|
||||
"reason": "Explosive Q4 earnings beat ($8.88 EPS vs expected) paired with a massive $6B AI infrastructure deal with Corning. Technicals show a bullish MACD crossover and a strong break above the 200-SMA. Options flow is highly supportive with a Volume P/C ratio of 0.548 and unusual activity at the $717.50 strike. Target $790 with a stop at $705.",
|
||||
"entry_price": 718.7100219726562,
|
||||
"discovery_date": "2026-01-30",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "META",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "INOD",
|
||||
"rank": 2,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 10.3,
|
||||
"confidence": 8,
|
||||
"reason": "Strategic partnership with Palantir Technologies for AI training data is a transformational catalyst. Technical indicators show a bullish stochastic crossover and price action holding above the 20 EMA. Options volume is heavily skewed toward calls (P/C 0.305) with high IV suggesting a volatility squeeze. Target $75 near-term with a tight stop at $56.",
|
||||
"entry_price": 56.5,
|
||||
"discovery_date": "2026-01-30",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "INOD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "USAR",
|
||||
"rank": 3,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 9.8,
|
||||
"confidence": 8,
|
||||
"reason": "Chairman Michael Blitzer purchased $2.14M in shares directly following a $1.6B LOI for federal funding under the CHIPS Act. While volatile, the ADX of 49.2 indicates a very strong trend developing. Options volume P/C ratio of 0.342 confirms bullish sentiment. Entry near $22.50, targeting $35, stop at $17.50.",
|
||||
"entry_price": 22.950000762939453,
|
||||
"discovery_date": "2026-01-30",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "USAR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CSCO",
|
||||
"rank": 4,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.5,
|
||||
"confidence": 9,
|
||||
"reason": "Upgraded to a $100 price target by Evercore ISI on the back of a new AI-driven networking hardware refresh cycle. Bullish MACD crossover confirmed on January 30. Options positioning is significantly bullish with a P/C volume ratio of 0.431 and heavy interest in $79 calls. Target $85-90 with a stop at $75.",
|
||||
"entry_price": 78.58000183105469,
|
||||
"discovery_date": "2026-01-30",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "CSCO",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ALGM",
|
||||
"rank": 5,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.5,
|
||||
"confidence": 8,
|
||||
"reason": "Reported record data center sales and strong automotive growth. TD Cowen raised target to $45. Despite an overbought RSI of 76.6, the ADX of 47 suggests trend durability. Extremely bullish options flow with a 0.116 volume P/C ratio confirms institutional accumulation. Target $44, stop at $35.",
|
||||
"entry_price": 37.064998626708984,
|
||||
"discovery_date": "2026-01-30",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "ALGM",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "NVDA",
|
||||
"rank": 6,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.5,
|
||||
"confidence": 9,
|
||||
"reason": "Strong sector sentiment following record earnings from peers and a fresh bullish MACD crossover. Price remains above the 50 and 200 SMA. Options volume P/C ratio of 0.617 remains bullish with high open interest supporting a move toward $210 resistance. Entry near $192, stop at $180.",
|
||||
"entry_price": 192.41000366210938,
|
||||
"discovery_date": "2026-01-30",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "NVDA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "UA",
|
||||
"rank": 7,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 9.5,
|
||||
"confidence": 8,
|
||||
"reason": "Prem Watsa (Fairfax) significantly increased his position by $16.4M in January. The stock shows a very strong trend (ADX 56.2) and is trading above the 20, 50, and 200 EMA. This turnaround play is gaining momentum ahead of February results. Target $7.50, stop at $5.30.",
|
||||
"entry_price": 5.989999771118164,
|
||||
"discovery_date": "2026-01-30",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "UA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WS",
|
||||
"rank": 8,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 9.0,
|
||||
"confidence": 7,
|
||||
"reason": "Director Scott Kelly bought $273k in shares as the company integrates its $2.4B Kl\u00f6ckner acquisition. Bullish MACD crossover and price above 20 EMA signal continued upside. Volume divergence suggests accumulation. Target $47 based on analyst targets, stop at $37.",
|
||||
"entry_price": 39.91999816894531,
|
||||
"discovery_date": "2026-01-30",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "WS",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WDC",
|
||||
"rank": 9,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 8.7,
|
||||
"confidence": 8,
|
||||
"reason": "Q2 earnings beat driven by booming AI storage demand. Despite a 9.8% pullback today, technicals remain in a strong uptrend above the 50 SMA. Bullish volume P/C ratio of 0.53 suggests the dip is being bought by institutional traders. Target recovery to $280, stop at $220.",
|
||||
"entry_price": 248.30999755859375,
|
||||
"discovery_date": "2026-01-30",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "WDC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AVGO",
|
||||
"rank": 10,
|
||||
"strategy_match": "Contrarian Value",
|
||||
"strategy_match": "contrarian_value",
|
||||
"final_score": 8.5,
|
||||
"confidence": 8,
|
||||
"reason": "Upgraded by Wells Fargo as a core AI infrastructure provider. While the technical trend is currently weak, the options volume P/C ratio of 0.572 shows heavy institutional call buying at near-term strikes ($335-$342). Target recovery to $370, stop at $310.",
|
||||
"entry_price": 331.6199951171875,
|
||||
"discovery_date": "2026-01-30",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "contrarian_value",
|
||||
"company_name": "AVGO",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "Extreme short interest of 63% combined with positive Phase 2b clinical trial results creates a massive asymmetric risk/reward. The recent technical correction to the $1.79 level presents a prime entry point for a violent short-covering rally triggered by any positive volume catalyst.",
|
||||
"entry_price": 1.7899999618530273,
|
||||
"discovery_date": "2026-01-31",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "short_squeeze",
|
||||
"company_name": "ACRV",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CHTR",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "Strong Q4 EPS beat and aggressive mobile line growth have triggered an institutional accumulation phase. Technicals show a fresh bullish MACD crossover and a clean break above the 50-day SMA, indicating a sustained momentum move over the next week.",
|
||||
"entry_price": 206.1199951171875,
|
||||
"discovery_date": "2026-01-31",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "early_accumulation",
|
||||
"company_name": "CHTR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "LTRX",
|
||||
|
|
@ -33,7 +39,10 @@
|
|||
"reason": "Strong pre-earnings accumulation with volume at 2.63x average ahead of its Feb 4 report. The strategic partnership with Safe Pro Group for AI-powered defense drones positions the company within a high-growth sector, supported by a 90% bullish analyst consensus.",
|
||||
"entry_price": 6.639999866485596,
|
||||
"discovery_date": "2026-01-31",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "pre_earnings_accumulation",
|
||||
"company_name": "LTRX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "FN",
|
||||
|
|
@ -44,7 +53,10 @@
|
|||
"reason": "As a key manufacturing partner for Nvidia's optical packaging, Fabrinet is seeing significant price target increases ($540-$600) ahead of its Feb 2 earnings. Technicals show a strong uptrend above all major moving averages and a rising VWAP indicating institutional support.",
|
||||
"entry_price": 489.44000244140625,
|
||||
"discovery_date": "2026-01-31",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "FN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "RMBS",
|
||||
|
|
@ -55,7 +67,10 @@
|
|||
"reason": "Institutional buyers like Mirae Asset are aggressively building positions ahead of the Feb 2 earnings. The company is a direct beneficiary of the AI-driven demand for high bandwidth memory, and the current pullback from recent highs offers a high-probability entry for an earnings gap-up.",
|
||||
"entry_price": 113.83000183105469,
|
||||
"discovery_date": "2026-01-31",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "RMBS",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PLTR",
|
||||
|
|
@ -66,7 +81,10 @@
|
|||
"reason": "Technically oversold (RSI 25.3) and trading at the lower Bollinger Band, Palantir is primed for a significant mean-reversion bounce ahead of its Feb 2 earnings. Massive open interest in calls suggests speculative traders are betting on an AI-driven revenue surprise.",
|
||||
"entry_price": 146.58999633789062,
|
||||
"discovery_date": "2026-01-31",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "PLTR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "MRVL",
|
||||
|
|
@ -77,7 +95,10 @@
|
|||
"reason": "FTC approval for the Celestial AI acquisition is a major fundamental catalyst that hasn't been priced in due to recent market volatility. Analyst price targets remain significantly higher at $117, suggesting a 48% upside from current levels as order visibility for custom silicon improves.",
|
||||
"entry_price": 78.91999816894531,
|
||||
"discovery_date": "2026-01-31",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "analyst_upgrade",
|
||||
"company_name": "MRVL",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "YSS",
|
||||
|
|
@ -88,7 +109,10 @@
|
|||
"reason": "This fresh IPO is a prime 'discovery' play in the defense-tech space, supported by a $642 million backlog and an upsized offering. Space-infrastructure assets are seeing high demand as national security priorities shift toward satellite constellations.",
|
||||
"entry_price": 33.95000076293945,
|
||||
"discovery_date": "2026-01-31",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "ipo_opportunity",
|
||||
"company_name": "YSS",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AMZN",
|
||||
|
|
@ -99,7 +123,10 @@
|
|||
"reason": "Recent layoffs and a 'cultural reset' toward AI efficiency are highly favored by institutional investors. With 95% bullish analyst sentiment and a price target of $296, the stock is positioned as a safe-haven growth play during broader market uncertainty.",
|
||||
"entry_price": 239.3000030517578,
|
||||
"discovery_date": "2026-01-31",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "analyst_upgrade",
|
||||
"company_name": "AMZN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "SNDK",
|
||||
|
|
@ -110,7 +137,10 @@
|
|||
"reason": "Blowout earnings and a global NAND flash shortage are driving violent momentum in this low-float name. Despite overbought technicals, momentum-chasing strategies typically favor such high-velocity moves until a stock split or secondary offering is announced.",
|
||||
"entry_price": 576.25,
|
||||
"discovery_date": "2026-01-31",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_hype",
|
||||
"company_name": "SNDK",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -5,112 +5,142 @@
|
|||
{
|
||||
"ticker": "ACRV",
|
||||
"rank": 1,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 95,
|
||||
"confidence": 9,
|
||||
"reason": "The CEO purchased 49,000 shares in mid-January, which, combined with an extremely high short interest of 63.0%, creates a textbook short squeeze setup. Upcoming Phase 2b data presentations provide a near-term fundamental catalyst to potentially ignite this volatility.",
|
||||
"entry_price": 1.7899999618530273,
|
||||
"discovery_date": "2026-02-01",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "ACRV",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "RTX",
|
||||
"rank": 2,
|
||||
"strategy_match": "Earnings Play",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 92,
|
||||
"confidence": 9,
|
||||
"reason": "RTX reports earnings on Feb 2, supported by a record $251 billion backlog and positive 2026 guidance. The stock is in a strong uptrend, trading above its 20 and 50-day moving averages, with recent news resolving liability concerns.",
|
||||
"entry_price": 200.92999267578125,
|
||||
"discovery_date": "2026-02-01",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "RTX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "IBM",
|
||||
"rank": 3,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 90,
|
||||
"confidence": 9,
|
||||
"reason": "Shares are breaking out near decade-highs driven by a generative AI book of business exceeding $12.5 billion. Technical indicators show a bullish MACD crossover and strong trend strength (ADX rising), signaling continued momentum.",
|
||||
"entry_price": 306.70001220703125,
|
||||
"discovery_date": "2026-02-01",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "IBM",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "GME",
|
||||
"rank": 4,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 88,
|
||||
"confidence": 8,
|
||||
"reason": "CEO Ryan Cohen recently purchased 1 million shares, a massive vote of confidence that establishes a psychological floor. Technicals show a bullish divergence in on-balance volume, indicating accumulation despite recent price consolidation.",
|
||||
"entry_price": 23.8799991607666,
|
||||
"discovery_date": "2026-02-01",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "GME",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "INTC",
|
||||
"rank": 5,
|
||||
"strategy_match": "Insider Play",
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 87,
|
||||
"confidence": 8,
|
||||
"reason": "Recent insider buying by the CFO aligns with a strong 1-year uptrend and positive sentiment around domestic manufacturing. The stock maintains a 'Strong Uptrend' technical status, trading well above its 50 and 200-day moving averages.",
|
||||
"entry_price": 46.470001220703125,
|
||||
"discovery_date": "2026-02-01",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "INTC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "SMCI",
|
||||
"rank": 6,
|
||||
"strategy_match": "Earnings Play",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 86,
|
||||
"confidence": 8,
|
||||
"reason": "Reporting earnings on Feb 3 with expectations of 84% revenue growth, the stock is primed for volatility. With 17-18% short interest and recent analyst upgrades, a positive report could trigger a sharp squeeze.",
|
||||
"entry_price": 29.110000610351562,
|
||||
"discovery_date": "2026-02-01",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "SMCI",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PLTR",
|
||||
"rank": 7,
|
||||
"strategy_match": "Earnings Play",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 85,
|
||||
"confidence": 8,
|
||||
"reason": "Set to report earnings on Feb 2 with projected 62.8% revenue growth. The stock is currently oversold (RSI ~25), presenting an asymmetric opportunity for a bounce if results validate its AI platform's expansion.",
|
||||
"entry_price": 146.58999633789062,
|
||||
"discovery_date": "2026-02-01",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "PLTR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WDC",
|
||||
"rank": 8,
|
||||
"strategy_match": "Momentum",
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 84,
|
||||
"confidence": 8,
|
||||
"reason": "Received a fresh 'Buy' upgrade following strong Q2 earnings and is positioned as a key beneficiary of AI storage demand. Technicals show a very strong trend (ADX 55+) with price holding above key moving averages.",
|
||||
"entry_price": 250.22999572753906,
|
||||
"discovery_date": "2026-02-01",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "WDC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "FFAI",
|
||||
"rank": 9,
|
||||
"strategy_match": "News Catalyst",
|
||||
"strategy_match": "news_catalyst",
|
||||
"final_score": 83,
|
||||
"confidence": 8,
|
||||
"reason": "Sales for its new AI robotics product begin Feb 4, providing a definitive near-term catalyst. BlackRock's increased stake and recent regulatory certification support the momentum in this high-volatility play.",
|
||||
"entry_price": 1.0399999618530273,
|
||||
"discovery_date": "2026-02-01",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "news_catalyst",
|
||||
"company_name": "FFAI",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "LBRDA",
|
||||
"rank": 10,
|
||||
"strategy_match": "Volume Accumulation",
|
||||
"strategy_match": "early_accumulation",
|
||||
"final_score": 82,
|
||||
"confidence": 8,
|
||||
"reason": "Displaying unusual volume (2.9x average) and a bullish MACD crossover, signaling accumulation ahead of earnings. The stock has rallied 7.79% recently, breaking out from lows with improving sentiment.",
|
||||
"entry_price": 48.02000045776367,
|
||||
"discovery_date": "2026-02-01",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "early_accumulation",
|
||||
"company_name": "LBRDA",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "Extreme short interest of 63% creates a massive squeeze risk as the company prepares to present late-breaking Phase 2b clinical data for its lead oncology candidate ACR-368. Sentiment is further bolstered by recent CEO and CFO insider buying in mid-January, providing a significant floor and asymmetric upside.",
|
||||
"entry_price": 1.809999942779541,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "short_squeeze",
|
||||
"company_name": "ACRV",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PLTR",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "Exceptional Q4 results showing 70% revenue growth and bullish 2026 guidance are currently overshadowed by a technical oversold condition (RSI 25.3). The rapid adoption of the AIP platform and bullish revenue projections of $7.2B make this a prime candidate for a massive technical bounce as the market digests the fundamental beat.",
|
||||
"entry_price": 147.75999450683594,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "PLTR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ATO",
|
||||
|
|
@ -33,7 +39,10 @@
|
|||
"reason": "Demonstrating classic pre-earnings accumulation with volume at 2.16x average and a bullish OBV divergence ahead of the February 3 earnings report. Analysts remain optimistic about the modernization program and high EPS estimate of $2.44, suggesting institutional positioning for a beat.",
|
||||
"entry_price": 166.52000427246094,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "pre_earnings_accumulation",
|
||||
"company_name": "ATO",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "LTRX",
|
||||
|
|
@ -44,7 +53,10 @@
|
|||
"reason": "Strong accumulation signals with volume at 2.3x average and a recent 4.5% price lift ahead of its February 4 earnings. The strategic partnership with Safe Pro Group for AI-powered defense drones provides a high-growth thematic catalyst for the upcoming results.",
|
||||
"entry_price": 6.800000190734863,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "pre_earnings_accumulation",
|
||||
"company_name": "LTRX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "IP",
|
||||
|
|
@ -55,7 +67,10 @@
|
|||
"reason": "The CEO's significant purchase of 50,000 shares (valued at approximately $2M) on January 30 provides a strong vote of confidence. Coupled with a recent Wells Fargo upgrade and the company's plan to split into two independent entities, the stock shows strong technical support at the 50 SMA.",
|
||||
"entry_price": 40.689998626708984,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "IP",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CR",
|
||||
|
|
@ -66,7 +81,10 @@
|
|||
"reason": "Following a Q4 earnings beat and dividend hike, multiple directors made large open-market purchases. This insider activity, combined with a 12.9% drop in the last 5 days, presents an asymmetric entry point as technicals signal a recovery toward the $219 analyst target.",
|
||||
"entry_price": 185.27000427246094,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "CR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TWST",
|
||||
|
|
@ -77,7 +95,10 @@
|
|||
"reason": "Reported record Q1 revenue and raised full-year guidance to $435M-$440M. The company's reiteration of its adjusted EBITDA breakeven target by late 2026 serves as a significant fundamental pivot that has not yet been fully reflected in the current price action.",
|
||||
"entry_price": 46.810001373291016,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "TWST",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AB",
|
||||
|
|
@ -88,7 +109,10 @@
|
|||
"reason": "Trading in a strong uptrend with volume 2.33x the average ahead of the February 5 earnings report. High institutional interest, including increasing stakes from major banks, suggests high expectations for its Q4 results and yield stability.",
|
||||
"entry_price": 41.880001068115234,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "pre_earnings_accumulation",
|
||||
"company_name": "AB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AI",
|
||||
|
|
@ -99,7 +123,10 @@
|
|||
"reason": "Technical oversold conditions (RSI 29.9) and high short interest (31.4%) are colliding with rumors of a potential merger with Automation Anywhere. An 89% jump in federal bookings suggests underlying fundamental improvements that could trigger a violent short-covering rally.",
|
||||
"entry_price": 10.920000076293945,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "short_squeeze",
|
||||
"company_name": "AI",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "APLD",
|
||||
|
|
@ -110,7 +137,10 @@
|
|||
"reason": "With a $16B backlog and a massive $5B lease agreement with a U.S. hyperscaler, the company is fundamentally well-positioned. High short interest (33.6%) and strong Q2 revenue growth make it a top candidate for a momentum squeeze as it scales AI capacity.",
|
||||
"entry_price": 34.79999923706055,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "short_squeeze",
|
||||
"company_name": "APLD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "DOCN",
|
||||
|
|
@ -121,7 +151,10 @@
|
|||
"reason": "Recently upgraded following the strategic hire of an Oracle veteran as CPTO and an AMD collaboration to double AI capacity. Unusual bullish options flow (P/C ratio 0.311) indicates high-conviction betting on upcoming earnings momentum.",
|
||||
"entry_price": 59.810001373291016,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "analyst_upgrade",
|
||||
"company_name": "DOCN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CEG",
|
||||
|
|
@ -132,7 +165,10 @@
|
|||
"reason": "Shares are deeply oversold with an RSI of 30.0, sitting near its lower Bollinger Band. As a top 'Nuclear-AI' play with recent regulatory approvals for upgrades, this represents a high-probability mean reversion opportunity with an analyst target of $402.",
|
||||
"entry_price": 270.8800048828125,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "analyst_upgrade",
|
||||
"company_name": "CEG",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ORCL",
|
||||
|
|
@ -143,7 +179,10 @@
|
|||
"reason": "The announcement of a $50B capital raise to fund massive AI cloud expansion caused an intraday dip to an RSI of 31.4 (oversold). Historically, such aggressive expansion to meet backlog demand (as seen in its recent news) precedes high institutional accumulation at these support levels.",
|
||||
"entry_price": 160.05999755859375,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "news_catalyst",
|
||||
"company_name": "ORCL",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "RTX",
|
||||
|
|
@ -154,7 +193,10 @@
|
|||
"reason": "Following an EPS beat and multiple analyst price target hikes, the stock is riding strong momentum backed by a massive $260B backlog. High volume on call options ($205 strike) suggests a near-term move past its current 52-week highs.",
|
||||
"entry_price": 201.08999633789062,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "RTX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WWD",
|
||||
|
|
@ -165,7 +207,10 @@
|
|||
"reason": "Exceptional Q1 results with a 29% sales surge and a significant EPS guidance hike to $8.20-$8.60. Management's confidence in the aerospace segment creates a fundamental tailwind that should overcome short-term technical resistance.",
|
||||
"entry_price": 327.25,
|
||||
"discovery_date": "2026-02-02",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "WWD",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "SMCI is experiencing significant momentum, with news directly mentioning its AI server sales driving a 120% revenue increase. Despite a bearish technical outlook with price below the 50 SMA, the strong fundamental growth and record revenue reported in its latest earnings indicate strong underlying business performance.",
|
||||
"entry_price": 29.670000076293945,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "SMCI",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "NVDA",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "NVIDIA is a key player in AI, with strong analyst sentiment and bullish options activity. While news mentions scrutiny over its AI chip supply chain, its robust fundamentals, including significant revenue growth, and its position above the 50 SMA suggest continued upward potential.",
|
||||
"entry_price": 180.33999633789062,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "NVDA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AMAT",
|
||||
|
|
@ -33,7 +39,10 @@
|
|||
"reason": "AMAT has received an analyst upgrade and shows strong upward momentum, trading above its 50 SMA. The company's strong fundamentals, including significant revenue and earnings growth, coupled with bullish options activity, support a positive outlook.",
|
||||
"entry_price": 318.6700134277344,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "analyst_upgrade",
|
||||
"company_name": "AMAT",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "LRCX",
|
||||
|
|
@ -44,7 +53,10 @@
|
|||
"reason": "LRCX has seen an analyst upgrade and exhibits a very strong uptrend with its price well above the 50 SMA. The company's fundamentals show robust growth in revenue and earnings, and its bullish options sentiment further strengthens its investment case.",
|
||||
"entry_price": 230.10000610351562,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "analyst_upgrade",
|
||||
"company_name": "LRCX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AMD",
|
||||
|
|
@ -55,18 +67,24 @@
|
|||
"reason": "AMD reported strong Q4 earnings driven by AI demand, and despite some insider selling, its positive analyst sentiment and upward trend above the 50 SMA make it a compelling pick. The social hype around AI continues to benefit AMD.",
|
||||
"entry_price": 242.11000061035156,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_hype",
|
||||
"company_name": "AMD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CSCO",
|
||||
"rank": 6,
|
||||
"strategy_match": "undiscovered_dd",
|
||||
"strategy_match": "social_dd",
|
||||
"final_score": 82,
|
||||
"confidence": 7,
|
||||
"reason": "CSCO's recent AI summit and focus on high-margin software and security services, combined with strong upward technicals (above 50 SMA and strong trend), position it well. The 'undiscovered DD' strategy match and bullish options flow suggest potential upside.",
|
||||
"entry_price": 83.11000061035156,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_dd",
|
||||
"company_name": "CSCO",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AKAM",
|
||||
|
|
@ -77,18 +95,24 @@
|
|||
"reason": "AKAM is described as a 'quiet cloud veteran suddenly looks like a growth story again,' indicating positive underlying sentiment. Its strong uptrend, price above 50 SMA, and bullish MACD support this, despite some recent insider selling and bearish options volume.",
|
||||
"entry_price": 91.79000091552734,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "AKAM",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "SIMO",
|
||||
"rank": 8,
|
||||
"strategy_match": "undiscovered_dd",
|
||||
"strategy_match": "social_dd",
|
||||
"final_score": 78,
|
||||
"confidence": 7,
|
||||
"reason": "SIMO has strong uptrend technicals, trading above its 50 SMA with a high RSI. The 'undiscovered DD' strategy and strong analyst buy ratings suggest potential for further upside, despite a slight bearish MACD signal.",
|
||||
"entry_price": 120.41999816894531,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_dd",
|
||||
"company_name": "SIMO",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AB",
|
||||
|
|
@ -99,7 +123,10 @@
|
|||
"reason": "AB shows bullish technicals with its price above the 50 SMA and a bullish OBV divergence indicating accumulation. The 'pre-earnings accumulation' strategy, coupled with strong analyst buy ratings, suggests a positive outlook heading into earnings.",
|
||||
"entry_price": 41.36000061035156,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "pre_earnings_accumulation",
|
||||
"company_name": "AB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AEIS",
|
||||
|
|
@ -110,7 +137,10 @@
|
|||
"reason": "AEIS is showing signs of pre-earnings accumulation with higher than average volume and a price above the 50 SMA. Despite a bearish OBV divergence, the strong analyst sentiment and bullish technicals make it a candidate for short-term gains.",
|
||||
"entry_price": 263.0299987792969,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "pre_earnings_accumulation",
|
||||
"company_name": "AEIS",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "LUMN",
|
||||
|
|
@ -121,7 +151,10 @@
|
|||
"reason": "LUMN reported strong earnings and debt reduction, with news highlighting significant new contracts. Its strong uptrend and price above the 50 SMA are positive indicators, although analyst sentiment is mixed.",
|
||||
"entry_price": 8.460000038146973,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "news_catalyst",
|
||||
"company_name": "LUMN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "INMD",
|
||||
|
|
@ -132,7 +165,10 @@
|
|||
"reason": "INMD shows strong bullish technicals, trading above its 50 SMA with a bullish MACD crossover and high RSI. The 'earnings play' strategy and positive analyst sentiment suggest potential for a short-term upward move.",
|
||||
"entry_price": 15.899999618530273,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "INMD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "FFIV",
|
||||
|
|
@ -143,7 +179,10 @@
|
|||
"reason": "FFIV exhibits positive momentum with a bullish MACD crossover and price above the 50 SMA. While there is significant insider selling and a bearish analyst sentiment, the strong uptrend and bullish options activity warrant consideration.",
|
||||
"entry_price": 274.6300048828125,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "FFIV",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "RRR",
|
||||
|
|
@ -154,7 +193,10 @@
|
|||
"reason": "RRR shows strong uptrend technicals with its price above the 50 SMA and positive OBV trend. The 'earnings play' strategy and high analyst buy ratings suggest potential for short-term gains, despite bearish options activity.",
|
||||
"entry_price": 63.459999084472656,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "RRR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AAPL",
|
||||
|
|
@ -165,7 +207,10 @@
|
|||
"reason": "AAPL has strong uptrend technicals, trading above its 50 SMA with bullish MACD and options flow. Despite reaching its upper Bollinger Band, indicating potential reversal, the overall positive sentiment and consistent performance make it a viable option.",
|
||||
"entry_price": 269.4800109863281,
|
||||
"discovery_date": "2026-02-03",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "AAPL",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "This is a textbook short squeeze setup triggering now, with 33.0% short interest and a +5.2% intraday move. Extremely unusual bullish options activity (P/C ratio 0.019) combined with a strong technical uptrend confirms aggressive buying pressure.",
|
||||
"entry_price": 8.835000038146973,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "short_squeeze",
|
||||
"company_name": "AXL",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AAP",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "High squeeze potential with 33.9% short interest and a +5.3% intraday surge. Technicals show a bullish MACD crossover and price reclaiming the 20 EMA, signaling a strong reversal and momentum shift.",
|
||||
"entry_price": 53.834999084472656,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "short_squeeze",
|
||||
"company_name": "AAP",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "RYN",
|
||||
|
|
@ -33,29 +39,38 @@
|
|||
"reason": "Classic pre-earnings accumulation pattern with volume running 2.28x average and unusual bullish options flow (P/C 0.169). Rising On-Balance Volume (OBV) indicates smart money positioning ahead of the Feb 11 report.",
|
||||
"entry_price": 22.80500030517578,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "pre_earnings_accumulation",
|
||||
"company_name": "RYN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "LLY",
|
||||
"rank": 4,
|
||||
"strategy_match": "earnings_momentum",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 91,
|
||||
"confidence": 9,
|
||||
"reason": "Reported a significant earnings beat ($7.54 vs $6.67) and raised guidance, driving a +2.5% intraday move. Bullish divergence in OBV suggests accumulation despite recent price consolidation, setting the stage for a breakout.",
|
||||
"entry_price": 1100.3299560546875,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "LLY",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "HON",
|
||||
"rank": 5,
|
||||
"strategy_match": "momentum_options",
|
||||
"strategy_match": "options_flow",
|
||||
"final_score": 89,
|
||||
"confidence": 9,
|
||||
"reason": "Strong momentum signaled by a 'Golden Cross' technical setup and a MACD bullish crossover. Unusual bullish options flow (P/C 0.255) supports the uptrend, indicating institutional confidence in further upside.",
|
||||
"entry_price": 236.21499633789062,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "HON",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "DELL",
|
||||
|
|
@ -66,18 +81,24 @@
|
|||
"reason": "Fresh analyst upgrade combined with a MACD bullish crossover signals a trend reversal. Unusual bullish options flow (P/C 0.344) and positive intraday action confirm immediate buyer interest.",
|
||||
"entry_price": 119.63500213623047,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "analyst_upgrade",
|
||||
"company_name": "DELL",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ADBE",
|
||||
"rank": 7,
|
||||
"strategy_match": "oversold_reversal",
|
||||
"strategy_match": "contrarian_value",
|
||||
"final_score": 87,
|
||||
"confidence": 8,
|
||||
"reason": "Deeply oversold conditions (RSI 23.4) have triggered a sharp mean-reversion bounce, with shares up +4.4% intraday. Bollinger Band positioning suggests the sell-off has exhausted, presenting a high risk/reward entry.",
|
||||
"entry_price": 278.9100036621094,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "contrarian_value",
|
||||
"company_name": "ADBE",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "HPE",
|
||||
|
|
@ -88,29 +109,38 @@
|
|||
"reason": "Analyst upgrade catalyzed a +3.8% intraday move and a MACD bullish crossover. While the long-term trend is down, this momentum shift indicates a strong short-term recovery play.",
|
||||
"entry_price": 22.645099639892578,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "analyst_upgrade",
|
||||
"company_name": "HPE",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "KO",
|
||||
"rank": 9,
|
||||
"strategy_match": "momentum_options",
|
||||
"strategy_match": "options_flow",
|
||||
"final_score": 85,
|
||||
"confidence": 8,
|
||||
"reason": "Defensive momentum play with unusual bullish options flow (P/C 0.196). A recent MACD bullish crossover and rising OBV confirm a strong uptrend backed by volume.",
|
||||
"entry_price": 77.70999908447266,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "KO",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ADP",
|
||||
"rank": 10,
|
||||
"strategy_match": "earnings_reversal",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 84,
|
||||
"confidence": 8,
|
||||
"reason": "Stock is heavily oversold (RSI 26.0) despite an earnings beat ($2.62 vs estimates). The discrepancy between strong fundamentals and depressed price creates a prime setup for a mean-reversion bounce.",
|
||||
"entry_price": 236.90499877929688,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "ADP",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "BWA",
|
||||
|
|
@ -121,7 +151,10 @@
|
|||
"reason": "Strong uptrend leading into Feb 11 earnings, supported by bullish options flow (P/C 0.344). Technicals remain bullish with price holding above the 20 EMA and rising VWAP.",
|
||||
"entry_price": 50.13999938964844,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "BWA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ACHC",
|
||||
|
|
@ -132,40 +165,52 @@
|
|||
"reason": "High short interest (28.3%) combined with a MACD bullish crossover and unusually bullish options activity (P/C 0.504). Technical reversal signals suggest short sellers may be forced to cover.",
|
||||
"entry_price": 13.84000015258789,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "short_squeeze",
|
||||
"company_name": "ACHC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "MCD",
|
||||
"rank": 13,
|
||||
"strategy_match": "earnings_momentum",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 81,
|
||||
"confidence": 8,
|
||||
"reason": "Robust technical strength with a MACD bullish crossover and price above 20/50/200 SMAs. Momentum is building into the Feb 11 earnings report, supported by rising OBV.",
|
||||
"entry_price": 325.6925048828125,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "MCD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "SMCI",
|
||||
"rank": 14,
|
||||
"strategy_match": "earnings_growth",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 80,
|
||||
"confidence": 7,
|
||||
"reason": "Reported massive 123% revenue growth, signaling fundamental strength despite a broken chart. Bullish options volume (P/C 0.454) suggests traders are betting on a recovery rally from these levels.",
|
||||
"entry_price": 32.88159942626953,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "SMCI",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "EA",
|
||||
"rank": 15,
|
||||
"strategy_match": "earnings_reversal",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 79,
|
||||
"confidence": 7,
|
||||
"reason": "Reported strong Q3 revenue, yet stock is oversold (RSI 24.3). This divergence between positive news and negative price action presents a buying opportunity near the lower Bollinger Band.",
|
||||
"entry_price": 198.91000366210938,
|
||||
"discovery_date": "2026-02-04",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "EA",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "Massive $21M insider purchase by CEO Ryan Cohen on Jan 21 serves as a major vote of confidence. Technicals show a 'Very Strong' trend with an ADX of 50.7 and rising On-Balance Volume, indicating sustained accumulation.",
|
||||
"entry_price": 24.690000534057617,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "GME",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "IP",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "Recent insider purchases totaling ~$3M by the CEO and Directors signal strong internal conviction. The stock is staging a breakout with a 6.25% daily gain, confirmed by rising OBV and price holding above all major Moving Averages.",
|
||||
"entry_price": 44.369998931884766,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "IP",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "LPG",
|
||||
|
|
@ -33,7 +39,10 @@
|
|||
"reason": "Earnings Before Market Open (BMO) catalyst today aligns with a Bullish Divergence in OBV. The stock maintains a 'Strong Uptrend' and is trading above its 20-day EMA and VWAP, suggesting institutional accumulation.",
|
||||
"entry_price": 30.059999465942383,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "LPG",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "POST",
|
||||
|
|
@ -44,7 +53,10 @@
|
|||
"reason": "Fresh earnings beat and raised guidance provide a fundamental tailwind. Technicals confirm momentum with a Bullish MACD crossover and price action holding firmly above the 50-day SMA.",
|
||||
"entry_price": 104.41000366210938,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "POST",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TCBI",
|
||||
|
|
@ -55,7 +67,10 @@
|
|||
"reason": "Insider buying by the CEO and Directors complements a 'Strong Uptrend' technical rating. A Bullish MACD crossover and price performance above the VWAP indicate continued buyer strength.",
|
||||
"entry_price": 103.5,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "TCBI",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AB",
|
||||
|
|
@ -66,7 +81,10 @@
|
|||
"reason": "Earnings catalyst today is supported by bullish options volume (Put/Call ratio 0.081). The stock is in a confirmed uptrend, trading above the 50 SMA and 200 SMA with rising momentum.",
|
||||
"entry_price": 42.36000061035156,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "AB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ROK",
|
||||
|
|
@ -77,7 +95,10 @@
|
|||
"reason": "Strong Q1 earnings beat and raised guidance drive the bullish thesis. A MACD bullish crossover confirms upward momentum, although the price is near the upper Bollinger Band which may invite volatility.",
|
||||
"entry_price": 406.70001220703125,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "ROK",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TSLA",
|
||||
|
|
@ -88,7 +109,10 @@
|
|||
"reason": "Potential asymmetric bounce play as price hits the Lower Bollinger Band. Despite the downtrend, a Bullish Divergence in OBV and high Reddit interest suggest potential for a sharp reversal.",
|
||||
"entry_price": 397.2099914550781,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "TSLA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PECO",
|
||||
|
|
@ -99,7 +123,10 @@
|
|||
"reason": "Earnings After Market Close (AMC) catalyst combined with a 'Strong Uptrend'. Bullish MACD crossover and rising OBV signal accumulation into the event, though RSI is nearing overbought levels.",
|
||||
"entry_price": 37.81999969482422,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "PECO",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "STE",
|
||||
|
|
@ -110,7 +137,10 @@
|
|||
"reason": "Unusual volume accumulation detected alongside a 'Strong Uptrend'. A bullish stochastic crossover suggests short-term momentum is recovering despite the recent mixed earnings reaction.",
|
||||
"entry_price": 243.80999755859375,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "STE",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "NTRS",
|
||||
|
|
@ -121,7 +151,10 @@
|
|||
"reason": "Insider purchasing signals confidence in the ongoing 'Strong Uptrend'. The stock is trading well above its 200 SMA and VWAP, indicating sustained institutional support.",
|
||||
"entry_price": 147.47999572753906,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "NTRS",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "MANE",
|
||||
|
|
@ -132,7 +165,10 @@
|
|||
"reason": "Massive $43M insider purchase provides a strong conviction backdrop. While current technicals are sideways, the bullish stochastic crossover indicates a potential bounce from support levels.",
|
||||
"entry_price": 37.15999984741211,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "MANE",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WEX",
|
||||
|
|
@ -143,7 +179,10 @@
|
|||
"reason": "Earnings beat and raised guidance provide a catalyst for reversal. Unusual bullish options flow (Calls > Puts) suggests traders are positioning for a recovery despite current technical weakness.",
|
||||
"entry_price": 148.5399932861328,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "WEX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "UDMY",
|
||||
|
|
@ -154,7 +193,10 @@
|
|||
"reason": "High-risk earnings play with Bullish Divergence in OBV. A stochastic crossover from oversold levels suggests potential for a sharp volatility-driven move post-earnings.",
|
||||
"entry_price": 4.690000057220459,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "UDMY",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CR",
|
||||
|
|
@ -165,7 +207,10 @@
|
|||
"reason": "Identified insider buying interest serves as a potential floor. Bullish stochastic crossover indicates the stock may be oversold and due for a technical mean reversion.",
|
||||
"entry_price": 187.77999877929688,
|
||||
"discovery_date": "2026-02-05",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "CR",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "CEO Ryan Cohen recently purchased ~$21M worth of stock, a massive vote of confidence that aligns with Reddit-driven short squeeze narratives. Technicals show an uptrend with the price above the 20 EMA, and bullish options flow supports further upside.",
|
||||
"entry_price": 24.93000030517578,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "GME",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "LIFE",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "The stock is trading with an extreme RSI of 10.0 (oversold), and an intraday bounce of +8.6% suggests a reversal is underway. Recent insider purchasing provides a fundamental floor and validation for a mean-reversion trade.",
|
||||
"entry_price": 12.289999961853027,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "LIFE",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "MSFT",
|
||||
|
|
@ -33,7 +39,10 @@
|
|||
"reason": "RSI is at 24.6 (oversold), a rare occurrence for this blue-chip, while price touches the lower Bollinger Band. Unusual bullish options activity and a low Put/Call ratio suggest institutional positioning for a technical bounce.",
|
||||
"entry_price": 394.7300109863281,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "MSFT",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TSLA",
|
||||
|
|
@ -44,7 +53,10 @@
|
|||
"reason": "Trading at the lower Bollinger Band with a bullish intraday move of +2.6% indicates strong support. Unusual options activity with 9 strikes showing bullish flow reinforces the setup for a momentum rebound.",
|
||||
"entry_price": 410.4100036621094,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "TSLA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AAPL",
|
||||
|
|
@ -55,7 +67,10 @@
|
|||
"reason": "Stock is in a strong uptrend with a bullish MACD crossover and RSI at 67. Unusual options flow with a low Put/Call ratio of 0.44 confirms strong institutional momentum favoring a breakout.",
|
||||
"entry_price": 279.0199890136719,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "AAPL",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "POET",
|
||||
|
|
@ -66,7 +81,10 @@
|
|||
"reason": "Extremely bullish options flow with a Put/Call ratio of 0.158 and 3 unusual call strikes highlights aggressive speculation. Combined with Reddit due diligence and a +4.1% intraday move, this presents a high-risk, high-reward squeeze setup.",
|
||||
"entry_price": 5.569900035858154,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "POET",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "MANE",
|
||||
|
|
@ -77,7 +95,10 @@
|
|||
"reason": "Technical indicators show an RSI of 0.0, indicating the stock is mathematically bottomed out and due for a reaction. Recent insider buying adds a crucial layer of confidence to this extreme mean-reversion opportunity.",
|
||||
"entry_price": 35.709999084472656,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "MANE",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ABT",
|
||||
|
|
@ -88,40 +109,52 @@
|
|||
"reason": "The CEO purchased ~$2M in stock, a significant vote of confidence. With the RSI at 32 approaching oversold territory, this insider accumulation signals a strong potential bottoming formation.",
|
||||
"entry_price": 109.41999816894531,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "ABT",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AN",
|
||||
"rank": 9,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 85,
|
||||
"confidence": 8,
|
||||
"reason": "Intraday price action is up +9.4% coincident with an earnings release, indicating a very positive market reaction. Bullish divergence in On-Balance Volume (OBV) prior to this move suggests accumulation.",
|
||||
"entry_price": 220.76499938964844,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "AN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CBOE",
|
||||
"rank": 10,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 84,
|
||||
"confidence": 8,
|
||||
"reason": "Strong uptrend confirmed by rising OBV and price above the 50 SMA. Earnings catalyst combined with unusual bullish options flow (P/C ratio 0.533) supports continued momentum.",
|
||||
"entry_price": 271.44000244140625,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "CBOE",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PM",
|
||||
"rank": 11,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 83,
|
||||
"confidence": 8,
|
||||
"reason": "Momentum is strong with a bullish MACD crossover and rising OBV. Trading intraday +3.1% on earnings day suggests the market is rewarding their results, favoring a short-term trend continuation.",
|
||||
"entry_price": 185.42999267578125,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "PM",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "NVDA",
|
||||
|
|
@ -132,7 +165,10 @@
|
|||
"reason": "Price is at the lower Bollinger Band, often a signal for a technical bounce. Despite insider selling, options flow remains bullish (P/C 0.67) and volume is high, supporting a tactical rebound.",
|
||||
"entry_price": 182.40069580078125,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "NVDA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "NTRS",
|
||||
|
|
@ -143,7 +179,10 @@
|
|||
"reason": "Stock is in a strong uptrend above the 50 SMA with bullish divergence in OBV, indicating accumulation. Insider buying from a Director further supports the bullish thesis despite some mixed analyst sentiment.",
|
||||
"entry_price": 150.97999572753906,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "NTRS",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PATH",
|
||||
|
|
@ -154,7 +193,10 @@
|
|||
"reason": "RSI is oversold at 30.4, and unusual call activity (5 strikes) suggests traders are betting on a bounce. Reddit attention adds a layer of retail hype potential, though insider selling requires caution.",
|
||||
"entry_price": 12.345000267028809,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "PATH",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "GOOGL",
|
||||
|
|
@ -165,7 +207,10 @@
|
|||
"reason": "Maintains a strong uptrend well above the 200 SMA. Unusual options activity is present, and while momentum has cooled slightly, the technical structure remains bullish for a swing trade.",
|
||||
"entry_price": 322.0899963378906,
|
||||
"discovery_date": "2026-02-06",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "GOOGL",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "GameStop presents a high-conviction setup driven by substantial insider buying, specifically Ryan Cohen's recent $21M purchase. With a high short interest of 16.1% and a 'Predicted: WIN' signal from the ML model, the stock is primed for a squeeze. Technicals confirm strength with an ADX of 52.5 indicating a very strong trend, and the RSI at 62 allows room for further upside. The alignment of insider conviction and retail momentum makes this the top asymmetric opportunity.",
|
||||
"entry_price": 24.639999389648438,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "GME",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "NVAX",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "Novavax carries an exceptionally high short interest of 32.9%, creating a powder keg for a short squeeze. The technical picture is bullish with a recent Golden Cross (50 SMA crossing above 200 SMA) and the stock holding a strong uptrend. The ML model supports this trade with a 50.5% win probability. Risk is managed by the clear technical support levels near the moving averages.",
|
||||
"entry_price": 8.699999809265137,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "NVAX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CRM",
|
||||
|
|
@ -33,7 +39,10 @@
|
|||
"reason": "Salesforce represents a classic mean reversion play, currently trading at deeply oversold levels with an RSI of 21.9. The ML model assigns it a high win probability of 53.2%, suggesting the selling pressure is exhausted. Despite recent headwinds, the technical extension to the downside offers a favorable risk/reward for a snap-back rally within the 7-day window.",
|
||||
"entry_price": 194.02999877929688,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "CRM",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WRB",
|
||||
|
|
@ -44,7 +53,10 @@
|
|||
"reason": "Institutional insider buying is the primary driver here, with Mitsui Sumitomo accumulating over $300M in stock recently. This level of capital commitment signals extreme confidence in the company's valuation. Technicals corroborate this view with a bullish MACD crossover, making it a strong candidate for continued upside independent of broader market noise.",
|
||||
"entry_price": 69.25,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "WRB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TDOC",
|
||||
|
|
@ -55,7 +67,10 @@
|
|||
"reason": "Teladoc combines high short interest (15.6%) with oversold technical conditions (RSI 27.3), creating a setup for a sharp relief rally. The stock is trading near the lower Bollinger Band, often a precursor to a bounce. The ML model's 51.6% win probability confirms the statistical edge for a short-term reversal.",
|
||||
"entry_price": 4.980000019073486,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "TDOC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CZR",
|
||||
|
|
@ -66,7 +81,10 @@
|
|||
"reason": "Caesars shows a bullish divergence in On-Balance Volume, indicating smart money accumulation despite recent price weakness. With a high short interest of 19.9% and a 51.7% ML win probability, the stock is poised for a squeeze. Trading near the lower Bollinger Band provides a clear entry point with defined risk.",
|
||||
"entry_price": 20.649999618530273,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "CZR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WOOF",
|
||||
|
|
@ -77,7 +95,10 @@
|
|||
"reason": "Petco is another strong squeeze candidate with 16.6% short interest and bullish OBV divergence. The stock is heavily oversold (RSI 38.9) and sitting at the lower Bollinger Band. The ML model predicts a win (51.6%), suggesting the negative sentiment is priced in and a bounce is likely.",
|
||||
"entry_price": 2.549999952316284,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "WOOF",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "UWMC",
|
||||
|
|
@ -88,7 +109,10 @@
|
|||
"reason": "UWM Holdings is trading at its lower Bollinger Band, a technical level that often acts as dynamic support. With 15.7% short interest and a 51.5% ML win probability, the setup favors a bounce. The high dividend yield also acts as a floor for the stock price at these levels.",
|
||||
"entry_price": 4.630000114440918,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "UWMC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "OGN",
|
||||
|
|
@ -99,7 +123,10 @@
|
|||
"reason": "Organon exhibits positive pre-earnings momentum and is currently holding above its 50-day moving average. The ML model gives it a 50.9% win probability, indicating a favorable reaction to upcoming events. The risk/reward is attractive as the stock consolidates before the potential catalyst.",
|
||||
"entry_price": 7.909999847412109,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "OGN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PMN",
|
||||
|
|
@ -110,18 +137,24 @@
|
|||
"reason": "A significant $11M insider purchase provides a strong vote of confidence in the company's pipeline. Technically, the stock shows bullish divergence in OBV, suggesting accumulation is occurring under the surface. This creates an asymmetric opportunity where insider conviction could drive a rapid repricing.",
|
||||
"entry_price": 13.050000190734863,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "PMN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AVXL",
|
||||
"rank": 11,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 75,
|
||||
"confidence": 6,
|
||||
"reason": "With earnings scheduled for today and a high short interest of 23.1%, AVXL is a high-volatility event play. Any positive news could trigger a massive short covering rally. The stock's recent intraday strength (+6.8%) suggests some market participants are positioning for an upside surprise.",
|
||||
"entry_price": 4.349999904632568,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "AVXL",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ASTS",
|
||||
|
|
@ -132,7 +165,10 @@
|
|||
"reason": "ASTS remains in a strong uptrend, trading well above its 50-day SMA. The high short interest of 18.5% keeps the squeeze potential alive, especially given the stock's popularity and volatility. Despite a cautious ML signal, the trend strength and market enthusiasm make it a viable momentum trade.",
|
||||
"entry_price": 102.12000274658203,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "ASTS",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "POET",
|
||||
|
|
@ -143,7 +179,10 @@
|
|||
"reason": "POET is showing explosive intraday momentum, up significantly, which often attracts further speculative volume. Stochastic indicators are oversold, suggesting the rally has room to run in the short term. The volatility here allows for quick percentage gains if the momentum sustains.",
|
||||
"entry_price": 6.210000038146973,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "POET",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "RYAN",
|
||||
|
|
@ -154,7 +193,10 @@
|
|||
"reason": "The significant intraday drop of nearly 8% has pushed RYAN into deep oversold territory, creating a mean reversion opportunity. The ML model maintains a bullish outlook (predicted WIN) despite the price action, suggesting the sell-off may be an overreaction that will correct quickly.",
|
||||
"entry_price": 43.779998779296875,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "RYAN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AVR",
|
||||
|
|
@ -165,7 +207,10 @@
|
|||
"reason": "AVR benefits from the confluence of a strong technical uptrend and insider buying activity. The stock is trading above its 50-day SMA, indicating sustained demand. This structural strength, backed by insider accumulation, offers a solid floor for a continued move higher.",
|
||||
"entry_price": 5.610000133514404,
|
||||
"discovery_date": "2026-02-09",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "AVR",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "GameStop leads the list with a high Quantitative Score of 45 and a robust ML Win Probability of 52.6%. The setup is primed for a squeeze with 16.1% short interest and significant recent insider buying, notably a $21 million purchase by CEO Ryan Cohen. Options sentiment is strongly bullish with a Put/Call ratio of 0.248, suggesting traders are positioning for upside. Technically, the stock is in an uptrend above its 200 SMA, and the convergence of retail momentum and insider conviction offers an asymmetric risk/reward profile.",
|
||||
"entry_price": 24.889999389648438,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "GME",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AVR",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "Anteris Technologies aligns with the high-win-rate 'Insider Buying' strategy, featuring $28.75 million in recent insider purchases. The stock carries a high Quantitative Score of 40 and shows highly unusual bullish options activity with a Put/Call ratio of just 0.007. Trading above its 50 SMA, the stock displays technical resilience despite recent volatility. The combination of heavy institutional accumulation and aggressive options betting supports a strong short-term bounce thesis.",
|
||||
"entry_price": 5.829999923706055,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "AVR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PEGA",
|
||||
|
|
@ -33,7 +39,10 @@
|
|||
"reason": "Pegasystems is a compelling earnings play with an ML Win Probability of 48.4% and an exceptionally strong ADX trend reading of 67.1. With earnings scheduled for today, the stock's oversold Stochastic reading suggests potential for a sharp mean-reversion rally if results exceed depressed expectations. While the longer-term trend is down, the immediate catalyst and high win probability make this a viable tactical trade. Volatility is elevated, allowing for the targeted >5% return within the 7-day window.",
|
||||
"entry_price": 42.525001525878906,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "PEGA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "BLKB",
|
||||
|
|
@ -44,7 +53,10 @@
|
|||
"reason": "Blackbaud presents a deep value/reversion opportunity heading into earnings today, backed by an ML Win Probability of 48.4%. The stock is significantly oversold with an RSI of 29.5, yet shows bullish divergence in On-Balance Volume, indicating underlying accumulation. Options volume heavily favors calls (P/C 0.446), suggesting market participants anticipate a post-earnings recovery. The trade targets a snapback from extreme oversold conditions triggered by the earnings event.",
|
||||
"entry_price": 49.790000915527344,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "BLKB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "INMD",
|
||||
|
|
@ -55,7 +67,10 @@
|
|||
"reason": "InMode enters its earnings release today with a supportive technical structure, including a Golden Cross (50 SMA above 200 SMA) and a price holding above the 20 EMA. The ML model predicts a win with 47.2% probability, and the company maintains a healthy financial position with a Current Ratio of 9.75. Despite a recent pullback, the alignment of earnings volatility and a confirmed uptrend creates a favorable setup for a momentum breakout. Risk is managed by the stock's strong balance sheet.",
|
||||
"entry_price": 15.300000190734863,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "INMD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TMC",
|
||||
|
|
@ -66,18 +81,24 @@
|
|||
"reason": "TMC is a high-volatility momentum play driven by retail sentiment and Reddit due diligence, supported by a 45.5% ML Win Probability. The stock has a high short interest of 10.7% and bullish options flow (P/C ratio 0.208), creating the conditions for a potential squeeze. Technicals show a bullish Stochastic crossover, and the high ATR of 12.3% ensures sufficient volatility to hit profit targets quickly. The catalyst is continued speculative interest and short covering.",
|
||||
"entry_price": 6.460000038146973,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "TMC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "DDOG",
|
||||
"rank": 7,
|
||||
"strategy_match": "volume_accumulation",
|
||||
"strategy_match": "early_accumulation",
|
||||
"final_score": 30,
|
||||
"confidence": 8,
|
||||
"reason": "Datadog is flagged for Volume Accumulation, a strategy with a historical 100% win rate, coinciding with its earnings release today. The ML Win Probability is solid at 43.6%, and the stock exhibits a bullish divergence in On-Balance Volume despite recent price weakness. Options sentiment is constructive with more call volume than puts. This setup suggests 'smart money' positioning ahead of the binary earnings event, offering a strong risk/reward for a reversal.",
|
||||
"entry_price": 131.63499450683594,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "early_accumulation",
|
||||
"company_name": "DDOG",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PATH",
|
||||
|
|
@ -88,7 +109,10 @@
|
|||
"reason": "UiPath is a prime short squeeze candidate with 15.6% short interest and highly unusual bullish options activity (Put/Call ratio of 0.111). The ML model predicts a 43.9% win probability, and Reddit due diligence is fueling retail interest. While the stock is in a downtrend, the rising On-Balance Volume indicates accumulation. The trade thesis relies on a rapid repricing event driven by options gamma exposure and short covering.",
|
||||
"entry_price": 13.074999809265137,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "PATH",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PMN",
|
||||
|
|
@ -99,7 +123,10 @@
|
|||
"reason": "ProMIS Neurosciences benefits from significant recent insider buying totaling over $11 million, a strong signal of internal confidence. The ML model assigns a 43.8% probability of a win, and the stock is trading above its 20 EMA, indicating short-term strength. With extremely high volatility (ATR >11%), the stock is capable of making the required >5% move rapidly. The investment case is built on following insider conviction in a high-beta biotech asset.",
|
||||
"entry_price": 13.550000190734863,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "PMN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "IGV",
|
||||
|
|
@ -110,7 +137,10 @@
|
|||
"reason": "IGV offers a diversified way to play the potential rebound in the software sector, backed by a 42.3% ML Win Probability. The ETF is currently oversold with a Stochastic reading below 20, often a precursor to a technical bounce. Options flows are bullish, and the strong trend strength (ADX 63.9) suggests the sector remains active. This trade captures the broader momentum recovery thesis with lower single-stock risk.",
|
||||
"entry_price": 86.29499816894531,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "IGV",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "POET",
|
||||
|
|
@ -121,7 +151,10 @@
|
|||
"reason": "POET Technologies is a high-volatility momentum play (ATR >10%) with a 41.1% ML Win Probability. The stock is the subject of Reddit due diligence and shows a bullish options Put/Call ratio of 0.224. Despite a downtrend, a recent bullish stochastic crossover signals potential for a relief rally. The thesis rests on speculative retail interest and high volatility driving a short-term price spike.",
|
||||
"entry_price": 6.114999771118164,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "POET",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ASTS",
|
||||
|
|
@ -132,7 +165,10 @@
|
|||
"reason": "AST SpaceMobile remains a favorite among momentum traders with 18.5% short interest and a strong long-term uptrend. The stock is trading well above major moving averages, and the ML model gives it a 40.5% chance of success. Options volume is call-heavy, supporting a bullish outlook. The trade targets a continuation of the volatility-driven uptrend, aided by potential short covering.",
|
||||
"entry_price": 99.80999755859375,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "ASTS",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "APH",
|
||||
|
|
@ -143,7 +179,10 @@
|
|||
"reason": "Amphenol represents a high-quality momentum play, confirmed by insider buying and a strong technical uptrend. The stock is trading above both its 50 and 200 SMAs and recently flashed a Golden Cross signal. With an ML Win Probability of 41.1%, it offers a favorable balance of probability and trend stability. The catalyst is the continued institutional support indicated by price action relative to VWAP.",
|
||||
"entry_price": 145.18910217285156,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "APH",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "META",
|
||||
|
|
@ -154,7 +193,10 @@
|
|||
"reason": "Meta Platforms is predicted to WIN by the ML model (39.6%) and maintains a solid technical uptrend, holding above its 20 EMA and VWAP. Despite some insider selling, the fundamental backdrop of revenue growth and profitability remains a tailwind. Options positioning is constructive, and the stock is not overbought. This trade is a bet on large-cap tech resilience and continued momentum.",
|
||||
"entry_price": 671.3660278320312,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "META",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WRB",
|
||||
|
|
@ -165,7 +207,10 @@
|
|||
"reason": "W. R. Berkley makes the list primarily due to massive insider buying totaling over $308 million, aligning with a historically high-win-rate strategy. The stock is in a technical uptrend and trading above its 20 EMA. While the ML prediction is neutral, the sheer scale of insider conviction provides a strong floor and potential upside catalyst. The trade follows the 'smart money' signal in a stable insurance play.",
|
||||
"entry_price": 69.02999877929688,
|
||||
"discovery_date": "2026-02-10",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "WRB",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "This stock represents a premier asymmetric opportunity driven by a massive $28.75M insider purchase by L1 Capital on Jan 22, signaling profound institutional confidence. Technically, AVR is in a strong uptrend, trading well above its 50 and 200 SMAs, and has recently triggered a bullish stochastic crossover. With a bullish options put/call ratio of 0.004, sentiment is overwhelmingly positive. The volatility (ATR 7.8%) allows for the target >5% move rapidly.",
|
||||
"entry_price": 5.664999961853027,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "AVR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "EIKN",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "EIKN shows a highly significant cluster of insider buying on Feb 6 totaling over $43M, a massive vote of confidence in the company's pipeline. The stock is currently holding above its 20, 50, and 200 SMAs, indicating a confirmed uptrend with a recent 6.6% daily jump. While RSI is neutral, the sheer scale of insider participation serves as a potent leading indicator for potential upcoming catalysts. Risk is managed by a clear stop-loss level near the 1.5x ATR mark ($11.40).",
|
||||
"entry_price": 14.574999809265137,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "EIKN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CHTR",
|
||||
|
|
@ -33,7 +39,10 @@
|
|||
"reason": "Charter presents a classic short squeeze setup with high short interest of 27.5% and a very bullish options put/call volume ratio of 0.216. Technicals confirm momentum with the price above the 20 and 50 SMAs and a bullish MACD histogram. The stock has risen nearly 8% in the last 5 days, and the convergence of technical strength with bearish positioning creates fuel for an explosive move upside.",
|
||||
"entry_price": 239.93499755859375,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "CHTR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ALB",
|
||||
|
|
@ -44,7 +53,10 @@
|
|||
"reason": "Albemarle is exhibiting powerful momentum with a 12.1% gain over the last 5 days and is trading firmly above its 50 SMA. Technical indicators include a bullish stochastic crossover and rising On-Balance Volume (OBV), confirming accumulation. With 11.7% short interest, any continued strength could force shorts to cover, accelerating the uptrend. The volatility is high (ATR $8.86), supporting the thesis for a quick >5% move.",
|
||||
"entry_price": 178.55999755859375,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "ALB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WRB",
|
||||
|
|
@ -55,18 +67,24 @@
|
|||
"reason": "WRB benefits from consistent, large-scale insider accumulation by Mitsui Sumitomo throughout January and February, totaling over $315M. Technically, the stock has triggered a bullish MACD crossover and is trading above its 20, 50, and 200 SMAs. While near the upper Bollinger Band, the relentless insider buying suggests a fundamental re-rating is underway rather than a simple technical overextension.",
|
||||
"entry_price": 71.4800033569336,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "WRB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "FLO",
|
||||
"rank": 6,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 84,
|
||||
"confidence": 8,
|
||||
"reason": "With earnings scheduled for today, FLO offers an immediate catalyst combined with a high short interest of 15.0%, creating a potential squeeze scenario on positive news. The stock is in an uptrend above the 20 and 50 SMAs, and options flow is bullish with a P/C ratio of 0.485. The risk is binary due to earnings, but the setup favors an upside surprise given the short positioning.",
|
||||
"entry_price": 11.569999694824219,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "FLO",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AAPL",
|
||||
|
|
@ -77,40 +95,52 @@
|
|||
"reason": "Apple shows strong technical health, trading above all key moving averages with a bullish divergence in On-Balance Volume (OBV), suggesting accumulation. Unusual bullish options activity creates a confluence of positive signals. While a mega-cap, the volatility is sufficient for a 5% move over a week, especially with RSI at 63 leaving room before becoming overbought.",
|
||||
"entry_price": 273.30999755859375,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "AAPL",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PX",
|
||||
"rank": 8,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 81,
|
||||
"confidence": 7,
|
||||
"reason": "P10 is heading into earnings with a solid technical backdrop, trading above its 20 and 50 SMAs with a recent 5-day gain of 7.3%. The RSI is neutral at 51.9, allowing ample room for an earnings-driven rally. Analyst sentiment is overwhelmingly bullish (76.9% Buy/Strong Buy), providing fundamental support for the technical trend.",
|
||||
"entry_price": 10.579999923706055,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "PX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ALKS",
|
||||
"rank": 9,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 80,
|
||||
"confidence": 7,
|
||||
"reason": "Approaching earnings today, ALKS sits in a strong uptrend above its 50 and 200 SMAs. The stock has a high short interest of 16.7%, which could fuel a squeeze if earnings beat expectations. Despite some recent insider selling, the technical momentum and analyst buy ratings (82.6% Bullish) favor the upside.",
|
||||
"entry_price": 33.56999969482422,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "ALKS",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TMC",
|
||||
"rank": 10,
|
||||
"strategy_match": "reddit_dd",
|
||||
"strategy_match": "social_dd",
|
||||
"final_score": 79,
|
||||
"confidence": 7,
|
||||
"reason": "TMC is a high-beta momentum play, up nearly 15% in the last 5 days, driven by retail interest and bullish options flow (P/C ratio 0.135). The stock recently crossed its 200 SMA, a significant bullish signal. While speculative, the combination of Reddit hype, rising OBV, and mining sector tailwinds creates an asymmetric risk/reward for a short-term trade.",
|
||||
"entry_price": 6.380000114440918,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_dd",
|
||||
"company_name": "TMC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "RUM",
|
||||
|
|
@ -121,7 +151,10 @@
|
|||
"reason": "Rumble has shown explosive short-term momentum, up nearly 15% in 5 days, supported by a bullish MACD crossover. Options activity is bullish with a P/C ratio of 0.34. Although the long-term trend is down, the recent price action and rising OBV suggest a counter-trend rally is in effect, suitable for a 1-7 day swing trade.",
|
||||
"entry_price": 6.114999771118164,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "RUM",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AMD",
|
||||
|
|
@ -132,7 +165,10 @@
|
|||
"reason": "AMD is staging a recovery, up nearly 11% in the past week despite a broader downtrend. A bullish stochastic crossover indicates short-term momentum is shifting. High options volume and analyst support (76.7% Bullish) suggest the bottom may be in for the near term, offering a good entry for a mean reversion trade.",
|
||||
"entry_price": 216.80999755859375,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "AMD",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CVNA",
|
||||
|
|
@ -143,7 +179,10 @@
|
|||
"reason": "Carvana is a high-volatility play currently trading at its lower Bollinger Band, often a signal for a technical bounce. With 12% short interest and unusual options activity, the stock is primed for a sharp move. The high ATR ($29.20) ensures that if the bounce occurs, it will likely exceed the 5% target quickly.",
|
||||
"entry_price": 366.2449951171875,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "CVNA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "KMB",
|
||||
|
|
@ -154,18 +193,24 @@
|
|||
"reason": "KMB combines momentum (bullish MACD) with insider buying support, a rare combination near highs. While RSI is overbought, the bullish options volume (P/C 0.479) suggests traders expect the breakout to continue. The stock is in a confirmed uptrend above all key moving averages.",
|
||||
"entry_price": 107.58000183105469,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "KMB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "HOOD",
|
||||
"rank": 15,
|
||||
"strategy_match": "reddit_trending",
|
||||
"strategy_match": "social_hype",
|
||||
"final_score": 72,
|
||||
"confidence": 6,
|
||||
"reason": "HOOD is an aggressive contrarian play, currently oversold with an RSI of 29.9. The stock is seeing Reddit interest and bullish volume on the options side (P/C 0.589). An oversold bounce is highly probable in the short term, though the broader trend remains negative, requiring tight risk management.",
|
||||
"entry_price": 76.20999908447266,
|
||||
"discovery_date": "2026-02-12",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_hype",
|
||||
"company_name": "HOOD",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "This is a high-conviction trade driven by a massive cluster of insider buying totaling over $43 million, including a $30.7M purchase by Column Group and significant buys by Directors. Technically, the stock is showing a bullish MACD crossover and a strengthening ADX trend of 62.0, indicating powerful momentum. With the price above the 20, 50, and 200 SMAs, the alignment of institutional accumulation and technical breakout is perfect. The volatility is high (ATR 13%), offering rapid upside potential in the short term.",
|
||||
"entry_price": 14.829999923706055,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "EIKN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WRB",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "Institutional insider Mitsui Sumitomo has aggressively accumulated shares, with 9 transactions totaling over $315 million in recent weeks, providing a massive floor for the stock price. The technicals confirm this bullish sentiment with a fresh MACD crossover and the price holding above all major moving averages. RSI is healthy at 61.1, leaving room for further upside before becoming overbought. The confluence of relentless insider support and a confirmed uptrend makes this a low-risk, high-probability setup.",
|
||||
"entry_price": 71.6500015258789,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "WRB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AVR",
|
||||
|
|
@ -33,7 +39,10 @@
|
|||
"reason": "A massive $28.75 million purchase by L1 Capital represents a significant vote of confidence relative to the company's $550M market cap. The stock is in a strong uptrend, currently trading above its 20, 50, and 200 SMAs. While the MACD is slightly cooling, the OBV is rising, confirming accumulation volume alongside price. The recent price action (+3.46% over 5 days) suggests the market is beginning to price in this institutional interest.",
|
||||
"entry_price": 5.679999828338623,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "AVR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AMGN",
|
||||
|
|
@ -44,7 +53,10 @@
|
|||
"reason": "Amgen displays exceptionally bullish options flow with a Put/Call ratio of just 0.009 and volume heavily skewed toward calls (279k vs 2k puts). Technically, the stock is in a strong uptrend above all key moving averages, with a bullish stochastic setup. The divergence between the slight recent price dip and the aggressive bullish positioning in the options market suggests an imminent rebound or continuation of the macro uptrend. Volatility is moderate, offering a stable entry.",
|
||||
"entry_price": 366.20001220703125,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "AMGN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "DUK",
|
||||
|
|
@ -55,73 +67,94 @@
|
|||
"reason": "Duke Energy shows a rare bullish options signal with a Put/Call ratio of nearly zero (0.009), indicating extreme bullish sentiment among derivatives traders. The stock has just triggered a bullish MACD crossover and is trading above its 20, 50, and 200 SMAs. While the RSI is overbought at 70, strong momentum in utilities often persists; the tight Bollinger Bands bandwidth suggests a volatility expansion could drive price higher. The 3.49% 5-day gain confirms immediate strength.",
|
||||
"entry_price": 126.11000061035156,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "DUK",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "DCH",
|
||||
"rank": 6,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 87,
|
||||
"confidence": 8,
|
||||
"reason": "With earnings arriving today, DCH presents a high-risk, high-reward squeeze opportunity given its massive 33.0% short interest. The stock is in a strong uptrend generally (above 50/200 SMA), though it has dipped recently, potentially setting up a 'buy the news' event if earnings surprise. The risk is asymmetric: a positive report could trigger a violent short squeeze. Volatility is moderate, allowing for managed stop-losses.",
|
||||
"entry_price": 8.430000305175781,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "DCH",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AAP",
|
||||
"rank": 7,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 86,
|
||||
"confidence": 8,
|
||||
"reason": "Advance Auto Parts reports earnings today with a very high short interest of 29.8%, creating ideal conditions for a short squeeze. The stock is trading significantly above its 50 and 200 SMAs, and while RSI is overbought (72), this often precedes a parabolic move in squeeze scenarios. Options volume is bullish with a low Put/Call ratio of 0.474. The trade targets a volatility event post-earnings.",
|
||||
"entry_price": 58.220001220703125,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "AAP",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "IMPP",
|
||||
"rank": 8,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 85,
|
||||
"confidence": 8,
|
||||
"reason": "IMPP reports earnings today with a substantial 17.9% short interest, offering squeeze potential. Despite a recent death cross, the MACD has just turned bullish, and the 5-day change is a strong +9.01%. Bullish options flow (P/C 0.07) supports the thesis that smart money is positioning for an upside surprise. The low share price and high volatility make this a candidate for rapid percentage gains.",
|
||||
"entry_price": 3.630000114440918,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "IMPP",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ESNT",
|
||||
"rank": 9,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"strategy_match": "earnings_play",
|
||||
"final_score": 84,
|
||||
"confidence": 7,
|
||||
"reason": "Essent reports earnings today and enters the event with a pristine technical setup: bullish MACD crossover, price above all key SMAs, and rising OBV. The stock is trading near its upper Bollinger Band, indicating strong momentum. While options volume is low, the technical strength suggests the market anticipates a positive result. A break above recent highs is likely if earnings confirm the trend.",
|
||||
"entry_price": 65.63999938964844,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "earnings_play",
|
||||
"company_name": "ESNT",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TMC",
|
||||
"rank": 10,
|
||||
"strategy_match": "reddit_dd",
|
||||
"strategy_match": "social_dd",
|
||||
"final_score": 82,
|
||||
"confidence": 7,
|
||||
"reason": "Driven by Reddit DD regarding executive orders and deep sea mining, TMC shows bullish divergence in On-Balance Volume (OBV) despite recent price drops. Options flow is notably bullish with a P/C ratio of 0.188. While the trend is currently down, the combination of social sentiment catalyst, insider option exercises, and accumulation volume sets the stage for a sharp reversal. High volatility (ATR 11.9%) implies quick potential returns.",
|
||||
"entry_price": 6.179999828338623,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_dd",
|
||||
"company_name": "TMC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "POET",
|
||||
"rank": 11,
|
||||
"strategy_match": "reddit_dd",
|
||||
"strategy_match": "social_dd",
|
||||
"final_score": 80,
|
||||
"confidence": 7,
|
||||
"reason": "Speculation regarding a $75M investment serves as a major catalyst. Options activity is highly unusual with a Put/Call ratio of 0.104, suggesting traders are betting heavily on upside. Technically the stock is beaten down (RSI 41), providing an attractive entry point for a reversion trade if the rumor mill gains traction. The high volatility (ATR 10.5%) fits the asymmetric risk profile required.",
|
||||
"entry_price": 5.650000095367432,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_dd",
|
||||
"company_name": "POET",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "COST",
|
||||
|
|
@ -132,7 +165,10 @@
|
|||
"reason": "Costco exhibits a Bullish Divergence in OBV, suggesting accumulation despite recent flat price action. Unusual bullish options activity (P/C 0.56) and a bullish stochastic crossover support a move back toward highs. Trading above the 20, 50, and 200 SMAs keeps the primary trend intact. The stock is near the upper Bollinger Band, indicating strength, though insider selling is a minor caution.",
|
||||
"entry_price": 998.8599853515625,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "COST",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PSEC",
|
||||
|
|
@ -143,18 +179,24 @@
|
|||
"reason": "With a 10.5% short interest and a recent 9.47% 5-day gain, PSEC has momentum. A bullish MACD crossover and rising OBV confirm the trend. The stock is trading above its 20, 50, and 200 SMAs, signaling a breakout. The low price point and high yield attract retail attention, adding to the momentum fuel. Options sentiment is also bullish.",
|
||||
"entry_price": 2.890000104904175,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "PSEC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PATH",
|
||||
"rank": 14,
|
||||
"strategy_match": "reddit_dd",
|
||||
"strategy_match": "social_dd",
|
||||
"final_score": 72,
|
||||
"confidence": 6,
|
||||
"reason": "A contrarian squeeze play, PATH has high short interest (20.7%) and is currently oversold (RSI 29.7). Reddit attention ('30K YOLO') provides a social catalyst that could trigger a relief rally from these depressed levels. While the trend is bearish, the lower Bollinger Band position suggests an immediate bounce is statistically probable.",
|
||||
"entry_price": 11.180000305175781,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_dd",
|
||||
"company_name": "PATH",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "KKR",
|
||||
|
|
@ -165,7 +207,10 @@
|
|||
"reason": "Despite a strong technical downtrend, a Director purchased over $5.2 million in shares on Feb 9, signaling strong value at these levels. The RSI is nearing oversold territory (30.2), and the stock is at the lower Bollinger Band, setting up a mean-reversion trade supported by high-conviction insider money.",
|
||||
"entry_price": 101.12000274658203,
|
||||
"discovery_date": "2026-02-13",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "KKR",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -11,7 +11,10 @@
|
|||
"reason": "ADM presents a perfect convergence of bullish signals with an extraordinarily low Put/Call ratio of 0.007 on high volume, indicating massive bullish positioning. Insider confidence is confirmed by a recent Director purchase of $486k. Technically, the stock is in a strong uptrend, trading above both its 50 and 200 SMAs with rising OBV. The combination of institutional accumulation and technical strength suggests immediate upside.",
|
||||
"entry_price": 69.51000213623047,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "ADM",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WRB",
|
||||
|
|
@ -22,7 +25,10 @@
|
|||
"reason": "Institutional insider Mitsui Sumitomo has aggressively accumulated over $223M in shares, including a $68M purchase on Feb 11. This level of insider conviction is a leading indicator of undervaluation or upcoming catalysts. The stock is technically healthy, holding an uptrend above its 50 SMA. The risk/reward is skewed heavily to the upside given the magnitude of capital commitment from insiders.",
|
||||
"entry_price": 69.69999694824219,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "WRB",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AMGN",
|
||||
|
|
@ -33,7 +39,10 @@
|
|||
"reason": "Amgen shows extremely bullish options activity with a volume Put/Call ratio of 0.016 and over 100k calls traded, signaling an expectation of a sharp move. The stock is in a strong uptrend, trading well above its 50 SMA with a bullish MACD setup. The confluence of momentum and aggressive call buying makes this a high-probability trade for the coming week.",
|
||||
"entry_price": 369.19000244140625,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "AMGN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "APA",
|
||||
|
|
@ -44,7 +53,10 @@
|
|||
"reason": "APA is exhibiting strong technical momentum with a fresh MACD bullish crossover and a stochastic buy signal. Options flow supports the move with a bullish P/C ratio of 0.094. The stock is trading above key moving averages with rising on-balance volume, indicating accumulation. Short-term momentum is robust heading into earnings later this month.",
|
||||
"entry_price": 27.920000076293945,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "APA",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "KKR",
|
||||
|
|
@ -55,7 +67,10 @@
|
|||
"reason": "A Director recently purchased $5.2M in shares, providing a strong vote of confidence despite the recent downtrend. The stock is currently oversold (RSI 31.4), creating a prime setup for a mean-reversion bounce supported by the insider floor. Bullish options flow (P/C 0.121) further suggests traders are positioning for a reversal.",
|
||||
"entry_price": 101.7300033569336,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "KKR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AI",
|
||||
|
|
@ -66,7 +81,10 @@
|
|||
"reason": "This is a high-conviction squeeze play; despite insider selling, the options market shows explosive bullish sentiment with a P/C ratio of 0.012 on massive volume (129k calls). With short interest at 32%, any upward momentum could trigger a violent short squeeze. The stock recently flashed a stochastic bullish crossover, adding technical fuel to the gamma squeeze potential.",
|
||||
"entry_price": 10.779999732971191,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "AI",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "RDDT",
|
||||
|
|
@ -77,7 +95,10 @@
|
|||
"reason": "A Director purchased $7.4M worth of shares on Feb 11, signaling value at these levels. The stock is deeply oversold with an RSI of 28.6, often a precursor to a sharp relief rally. Combined with high short interest (15.5%), the insider buying could act as the catalyst for a rapid repricing upwards.",
|
||||
"entry_price": 139.64999389648438,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "RDDT",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "BBWI",
|
||||
|
|
@ -88,7 +109,10 @@
|
|||
"reason": "BBWI is showing strong momentum with a 5% daily gain and a MACD bullish crossover. Options flow is supportive with a P/C ratio of 0.164. While it is near the upper Bollinger Band, the strength of the trend and volume suggests a continuation breakout is possible.",
|
||||
"entry_price": 24.06999969482422,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "momentum",
|
||||
"company_name": "BBWI",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "BKR",
|
||||
|
|
@ -99,7 +123,10 @@
|
|||
"reason": "Options traders are aggressively betting on upside with a P/C ratio of 0.016, contradicting recent insider selling. The stock is in a strong uptrend, trading well above moving averages. The divergence between insider creates risk, but the sheer volume of bullish options suggests near-term momentum will prevail.",
|
||||
"entry_price": 61.20000076293945,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "BKR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CAG",
|
||||
|
|
@ -110,7 +137,10 @@
|
|||
"reason": "Conagra displays a steady uptrend and solid relative strength. The options flow is bullish (P/C 0.23), and technicals show rising on-balance volume. It offers a lower-beta, defensive trade setup with clear support around the 50 SMA.",
|
||||
"entry_price": 19.760000228881836,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "CAG",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AON",
|
||||
|
|
@ -121,7 +151,10 @@
|
|||
"reason": "A Director purchased $1.2M in shares, catching the stock as it sits near the lower Bollinger Band. This insider activity suggests the recent pullback is an overreaction. OBV is rising despite the price drop, indicating smart money accumulation ahead of a potential reversal.",
|
||||
"entry_price": 321.70001220703125,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "insider_buying",
|
||||
"company_name": "AON",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "BBY",
|
||||
|
|
@ -132,7 +165,10 @@
|
|||
"reason": "Best Buy shows a classic bullish divergence on OBV, where volume is rising while price consolidates, often preceding a breakout. Bullish options flow (P/C 0.49) supports this thesis. The stock is oversold and due for a rotation back toward the mean.",
|
||||
"entry_price": 65.80000305175781,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "BBY",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "BAC",
|
||||
|
|
@ -143,29 +179,38 @@
|
|||
"reason": "Unusual bullish options activity with a P/C ratio of 0.385 suggests traders expect a bounce. The stock is testing support levels, and the financials sector remains robust. Analyst sentiment is overwhelmingly bullish (80%), providing a backstop.",
|
||||
"entry_price": 52.54999923706055,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "options_flow",
|
||||
"company_name": "BAC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TMC",
|
||||
"rank": 14,
|
||||
"strategy_match": "reddit_dd",
|
||||
"strategy_match": "social_dd",
|
||||
"final_score": 70,
|
||||
"confidence": 5,
|
||||
"reason": "Driven by retail speculation and Reddit DD regarding deep-sea mining catalysts, TMC sees bullish options positioning. Short interest is moderate at 10.5%, providing some squeeze fuel. This is a high-volatility speculative play based on sentiment and news catalysts.",
|
||||
"entry_price": 6.090000152587891,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_dd",
|
||||
"company_name": "TMC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "POET",
|
||||
"rank": 15,
|
||||
"strategy_match": "reddit_dd",
|
||||
"strategy_match": "social_dd",
|
||||
"final_score": 68,
|
||||
"confidence": 5,
|
||||
"reason": "Speculative interest driven by rumors of a large partner/investment ('$75M drop'). Options volume is tilting bullish. While technicals are weak, the stock has high volatility, making it a candidate for a rapid 5-10% move if rumors substantiate or retail volume surges.",
|
||||
"entry_price": 5.579999923706055,
|
||||
"discovery_date": "2026-02-16",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"pipeline": "social_dd",
|
||||
"company_name": "POET",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -3,169 +3,214 @@
|
|||
"llm_provider": "google",
|
||||
"recommendations": [
|
||||
{
|
||||
"ticker": "ADM",
|
||||
"ticker": "CZR",
|
||||
"rank": 1,
|
||||
"strategy_match": "options_flow",
|
||||
"strategy_match": "earnings_play",
|
||||
"pipeline": "earnings_play",
|
||||
"final_score": 92,
|
||||
"confidence": 9,
|
||||
"reason": "ADM presents a powerful confluence of bullish signals, highlighted by an extraordinarily low Put/Call ratio of 0.007 and 10 unusual call strikes versus zero puts, indicating aggressive institutional positioning. Insider buying from a Director adds conviction to the strong uptrend, with the price currently holding above the 20 EMA and 50 SMA. The technical setup is robust, and the heavy options volume suggests an imminent move. Risk is managed by a clear stop-loss level near the 50 SMA.",
|
||||
"entry_price": 69.51000213623047,
|
||||
"reason": "CZR presents a compelling mean-reversion opportunity with an ML Win Probability of 54.9% (Predicted: WIN) heading into earnings today. The stock is technically oversold with an RSI of 28.1 and is trading at its lower Bollinger Band, suggesting a potential bounce. Bullish options flow is evident with a volume P/C ratio of 0.132 and unusual call activity at the $18.5 strike. With short interest at 17.6%, a positive earnings surprise could trigger a squeeze.",
|
||||
"entry_price": 18.950000762939453,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"company_name": "CZR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CVX",
|
||||
"ticker": "ZM",
|
||||
"rank": 2,
|
||||
"strategy_match": "options_flow",
|
||||
"strategy_match": "social_hype",
|
||||
"pipeline": "social_hype",
|
||||
"final_score": 89,
|
||||
"confidence": 9,
|
||||
"reason": "Chevron is exhibiting one of the strongest options flow signals in the market, with a Put/Call ratio of 0.003 and 23 unusual call strikes, suggesting massive bullish bets are being placed. The stock is in a strong uptrend, trading above all key moving averages, though the RSI is approaching overbought levels which implies strong momentum rather than exhaustion. While insider selling is noted, the sheer magnitude of the options volume overrides this as a short-term catalyst. The primary risk is a sector-wide pullback in energy.",
|
||||
"entry_price": 183.74000549316406,
|
||||
"reason": "Zoom shows a strong ML Win Probability of 51.6% (Predicted: WIN) supported by a solid uptrend, trading above both 50 and 200 SMAs. Recent social trending status combined with bullish options flow (P/C ratio 0.523) indicates accumulating interest ahead of earnings in 8 days. The technical setup remains bullish with the price holding above the 20 EMA despite recent consolidation. The risk/reward is favorable given the strong trend metrics.",
|
||||
"entry_price": 88.6500015258789,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"company_name": "ZM",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ADBE",
|
||||
"rank": 3,
|
||||
"strategy_match": "options_flow",
|
||||
"pipeline": "options_flow",
|
||||
"final_score": 87,
|
||||
"confidence": 8,
|
||||
"reason": "Adobe is flashing a deep value signal with an ML Win Probability of 49.0% (Predicted: WIN) and an oversold RSI of 29.9. Despite a downtrend, On-Balance Volume (OBV) shows a bullish divergence (rising while price falls), suggesting institutional accumulation. The stochastic oscillator indicates a bullish crossover, pointing to a potential reversal. The setup offers high reward potential if the stock snaps back from these oversold levels.",
|
||||
"entry_price": 260.45001220703125,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open",
|
||||
"company_name": "ADBE",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "DEI",
|
||||
"rank": 4,
|
||||
"strategy_match": "news_catalyst",
|
||||
"pipeline": "news_catalyst",
|
||||
"final_score": 85,
|
||||
"confidence": 8,
|
||||
"reason": "Douglas Emmett has a high ML Win Probability of 48.0% (Predicted: WIN) and is currently the subject of market news. The stock carries a very high short interest of 24.8%, creating a setup for a significant short squeeze on any positive momentum. While in a downtrend, the recent news catalyst could serve as the spark for a reversal. The risk is managed by the potential for a violent squeeze given the crowded short positioning.",
|
||||
"entry_price": 9.970000267028809,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open",
|
||||
"company_name": "DEI",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "BSX",
|
||||
"rank": 5,
|
||||
"strategy_match": "options_flow",
|
||||
"pipeline": "options_flow",
|
||||
"final_score": 84,
|
||||
"confidence": 8,
|
||||
"reason": "Boston Scientific has an ML Win Probability of 46.9% (Predicted: WIN) and is trading in oversold territory with an RSI of 26.0. The ADX remains high at 51.7, indicating a strong trend, but the extreme oversold condition suggests a relief rally is imminent. While insider selling is a concern, the technical extension to the downside offers an attractive entry for a mean-reversion trade. Options positioning shows some bullish resilience in open interest.",
|
||||
"entry_price": 76.29000091552734,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open",
|
||||
"company_name": "BSX",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "TMC",
|
||||
"rank": 6,
|
||||
"strategy_match": "social_dd",
|
||||
"pipeline": "social_dd",
|
||||
"final_score": 82,
|
||||
"confidence": 8,
|
||||
"reason": "TMC is driven by a specific social DD catalyst regarding executive orders for deep-sea mining, backed by a 45.9% ML Win Probability. Options flow is bullish with a P/C ratio of 0.219 and unusual call volume. The stock has high short interest (10.5%), adding fuel to a potential breakout. Volatility is high, but the specific catalyst provides a clear reason for immediate price action.",
|
||||
"entry_price": 5.829999923706055,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open",
|
||||
"company_name": "TMC",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "PSNL",
|
||||
"rank": 7,
|
||||
"strategy_match": "insider_buying",
|
||||
"pipeline": "insider_buying",
|
||||
"final_score": 81,
|
||||
"confidence": 7,
|
||||
"reason": "Personalis has a strong ML Win Probability of 44.8% alongside recent insider activity. While the trend is mixed, the OBV is rising, confirming accumulation. The stock has high volatility (ATR 10% of price), which suits an aggressive 7-day trade. The convergence of quantitative model support and insider interest makes this a viable candidate for a rapid move.",
|
||||
"entry_price": 8.569999694824219,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open",
|
||||
"company_name": "PSNL",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "ARE",
|
||||
"rank": 3,
|
||||
"rank": 8,
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 88,
|
||||
"confidence": 8,
|
||||
"reason": "ARE combines a high quantitative pre-score of 45/100 with a compelling mean-reversion setup, as the RSI is neutral-bearish at 44.6 following a recent pullback. A significant insider purchase of $1.34M by an officer/director signals strong internal confidence at these levels. Additionally, options flow is bullish with a low P/C ratio of 0.273. The trade offers a favorable risk/reward ratio as the stock attempts to reclaim support levels after a 6.6% 5-day drop.",
|
||||
"entry_price": 52.4900016784668,
|
||||
"pipeline": "insider_buying",
|
||||
"final_score": 80,
|
||||
"confidence": 7,
|
||||
"reason": "ARE combines insider buying from a Director with a solid ML Win Probability of 44.4% (Predicted: WIN). Options flow is bullish with a P/C ratio of 0.344 and unusual call activity. The stock is trading near its lower Bollinger Band, offering a good risk/reward entry point for a bounce. Insider confidence at these levels reinforces the value proposition.",
|
||||
"entry_price": 54.40999984741211,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"company_name": "ARE",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "WRB",
|
||||
"rank": 4,
|
||||
"ticker": "AMZN",
|
||||
"rank": 9,
|
||||
"strategy_match": "options_flow",
|
||||
"pipeline": "options_flow",
|
||||
"final_score": 79,
|
||||
"confidence": 8,
|
||||
"reason": "Amazon is deeply oversold with an RSI of 23.1 and stochastic below 10, yet maintains a 44.3% ML Win Probability (Predicted: WIN). Options open interest positioning is bullish (Put/Call OI ratio 0.442). As a market leader, such extreme oversold conditions often lead to a technical snap-back, providing a high-probability setup for a short-term long trade.",
|
||||
"entry_price": 201.14999389648438,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open",
|
||||
"company_name": "AMZN",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "NDAQ",
|
||||
"rank": 10,
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 87,
|
||||
"confidence": 8,
|
||||
"reason": "W. R. Berkley stands out due to substantial and persistent insider buying, with over $225M in purchases recorded recently, largely from a beneficial owner. The stock is in a confirmed uptrend with the OBV rising, despite a recent 2.7% daily pullback which offers an attractive entry point. Technicals remain bullish with the price above the 20 EMA and 50 SMA. The primary risk is general financial sector volatility, but the insider conviction provides a strong floor.",
|
||||
"entry_price": 69.69999694824219,
|
||||
"pipeline": "insider_buying",
|
||||
"final_score": 78,
|
||||
"confidence": 7,
|
||||
"reason": "Nasdaq benefits from significant insider buying by a major beneficial owner (Investor AB) and a 44.1% ML Win Probability (Predicted: WIN). The stock is technically oversold (RSI 22.3) and trading near the lower Bollinger Band. The combination of strong institutional support via insider purchases and extreme technical oversold conditions creates a classic asymmetric setup.",
|
||||
"entry_price": 80.23999786376953,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"company_name": "NDAQ",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "AI",
|
||||
"rank": 5,
|
||||
"strategy_match": "reddit_trending",
|
||||
"final_score": 85,
|
||||
"confidence": 8,
|
||||
"reason": "C3.ai presents a classic high-risk, high-reward short squeeze setup with 32% short interest and extremely high implied volatility. Despite a technical downtrend, the options volume is heavily skewed to calls (P/C 0.012), and the stock is generating buzz on Reddit. The RSI is low at 39.2, suggesting potential for an oversold bounce or squeeze if buying pressure ignites. This is a volatile trade requiring strict risk management.",
|
||||
"entry_price": 10.779999732971191,
|
||||
"ticker": "POET",
|
||||
"rank": 11,
|
||||
"strategy_match": "social_dd",
|
||||
"pipeline": "social_dd",
|
||||
"final_score": 77,
|
||||
"confidence": 7,
|
||||
"reason": "POET is a high-beta play with a 43.7% ML Win Probability and significant social retail interest due to a $75M investment rumor. Options flow is extremely bullish with a volume P/C ratio of 0.164. While fundamentals are weak, the speculative catalyst and options activity suggest a potential short-term spike driven by momentum and hype.",
|
||||
"entry_price": 5.519999980926514,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
},
|
||||
{
|
||||
"ticker": "RDDT",
|
||||
"rank": 6,
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 84,
|
||||
"confidence": 8,
|
||||
"reason": "Reddit is trading in deep oversold territory with an RSI of 28.6, often a precursor to a technical snap-back rally. High short interest at 15.5% adds fuel to a potential reversal, supported by recent insider buying activity. While the trend is currently down, the asymmetric upside from a squeeze or relief rally is significant. The risk is continued downward momentum if support at $127 fails.",
|
||||
"entry_price": 139.64999389648438,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
},
|
||||
{
|
||||
"ticker": "HALO",
|
||||
"rank": 7,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"final_score": 83,
|
||||
"confidence": 8,
|
||||
"reason": "Halozyme is a strong momentum play with earnings approaching immediately (0 days), acting as a potent catalyst. The stock maintains a strong uptrend above both the 50 and 200 SMAs, and high short interest of 16.0% creates the possibility of a squeeze on a positive report. Insider selling is a concern, but the technical strength and earnings volatility favor a short-term upside move. This is a binary event trade.",
|
||||
"entry_price": 79.44000244140625,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"company_name": "POET",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "KKR",
|
||||
"rank": 8,
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 82,
|
||||
"confidence": 7,
|
||||
"reason": "KKR offers a compelling value proposition with the RSI oversold at 31.4 and a significant insider purchase of $5.2M by a director. Bullish options flow (P/C 0.121) further supports the thesis of a near-term reversal. While technically in a downtrend below the 50 SMA, the combination of institutional accumulation and oversold conditions suggests the selling may be exhausted. A rebound to the 20 EMA is the immediate target.",
|
||||
"entry_price": 101.7300033569336,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
},
|
||||
{
|
||||
"ticker": "CF",
|
||||
"rank": 9,
|
||||
"strategy_match": "options_flow",
|
||||
"final_score": 81,
|
||||
"confidence": 7,
|
||||
"reason": "CF Industries shows strong alignment with a bullish P/C ratio of 0.058 and rising on-balance volume (OBV). The stock is in an uptrend, holding above key moving averages, and is positioned well ahead of earnings in 1 day. The volatility from earnings combined with bullish options positioning creates a favorable setup for a breakout. The stop loss should be tight due to the binary earnings event.",
|
||||
"entry_price": 94.66000366210938,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
},
|
||||
{
|
||||
"ticker": "AMGN",
|
||||
"rank": 10,
|
||||
"strategy_match": "momentum",
|
||||
"final_score": 80,
|
||||
"confidence": 7,
|
||||
"reason": "Amgen is displaying robust momentum, trading above all key moving averages in a strong uptrend. Institutional sentiment is bullish, evidenced by a low options P/C ratio of 0.016 and specific unusual call activity. The stock is not yet overbought (RSI 63), leaving room for further upside. Stability in the healthcare sector adds a defensive layer to this growth trade.",
|
||||
"entry_price": 369.19000244140625,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
},
|
||||
{
|
||||
"ticker": "ALLE",
|
||||
"rank": 11,
|
||||
"strategy_match": "earnings_calendar",
|
||||
"final_score": 79,
|
||||
"confidence": 7,
|
||||
"reason": "Allegion is trading with strong momentum going into earnings (0 days), with an RSI of 72 indicating powerful buying pressure. The stock is in a strong uptrend and rising OBV confirms accumulation. While overbought conditions present a risk of a ",
|
||||
"entry_price": 179.5,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
},
|
||||
{
|
||||
"ticker": "BMY",
|
||||
"rank": 12,
|
||||
"strategy_match": "options_flow",
|
||||
"final_score": 78,
|
||||
"strategy_match": "insider_buying",
|
||||
"pipeline": "insider_buying",
|
||||
"final_score": 76,
|
||||
"confidence": 7,
|
||||
"reason": "BMY is in a verified strong uptrend with a Golden Cross configuration and price above the 20 EMA. Options flow is bullish with a P/C ratio of 0.136, indicating market participants expect continuation. The stock offers a defensive growth profile with lower volatility compared to tech plays. A recent slight pullback on the 5-day chart provides a tactical entry.",
|
||||
"entry_price": 60.7400016784668,
|
||||
"reason": "KKR shows a 42.8% ML Win Probability (Predicted: WIN) supported by recent Director buying. The stock is in a pullback within a broader uptrend, currently below its 50 SMA, which offers a discount entry. Analyst sentiment is overwhelmingly bullish (88%). The insider purchase signals confidence in a rebound from these levels.",
|
||||
"entry_price": 102.55000305175781,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"company_name": "KKR",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "BKR",
|
||||
"ticker": "HALO",
|
||||
"rank": 13,
|
||||
"strategy_match": "options_flow",
|
||||
"final_score": 77,
|
||||
"strategy_match": "earnings_play",
|
||||
"pipeline": "earnings_play",
|
||||
"final_score": 75,
|
||||
"confidence": 7,
|
||||
"reason": "Baker Hughes shows overwhelmingly bullish options activity with 13 unusual call strikes and a P/C ratio of 0.016. The technicals confirm a strong uptrend, though the RSI is overbought at 73.2. While insider selling is a negative factor, the sheer volume of bullish options bets suggests near-term upside momentum remains intact. Stop losses should be managed carefully due to overbought conditions.",
|
||||
"entry_price": 61.20000076293945,
|
||||
"reason": "Halozyme reports earnings today and is in a strong uptrend, trading above both 50 and 200 SMAs. Options flow is bullish with a low P/C ratio of 0.341. Despite a lower ML score, the technical strength and immediate earnings catalyst provide a clear path for price action. The stock is well-positioned above key moving averages, indicating sustained momentum.",
|
||||
"entry_price": 80.4800033569336,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"company_name": "HALO",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "CCL",
|
||||
"ticker": "COP",
|
||||
"rank": 14,
|
||||
"strategy_match": "options_flow",
|
||||
"final_score": 76,
|
||||
"confidence": 6,
|
||||
"reason": "Carnival is benefitting from unusual bullish call activity and a strong technical uptrend, trading well above its 50 and 200 SMAs. A recent 5-day pullback of 2.7% has reset the RSI to neutral levels (54), offering a good risk/reward entry for trend continuation. Insider selling is present but outweighed by the recovery momentum in the travel sector.",
|
||||
"entry_price": 31.770000457763672,
|
||||
"pipeline": "options_flow",
|
||||
"final_score": 74,
|
||||
"confidence": 8,
|
||||
"reason": "ConocoPhillips displays exceptionally bullish options activity with a Put/Call volume ratio of 0.004 and 32 unusual call strikes. Technicals are strong with the price above the 50 and 200 SMAs and a rising RSI. Although the ML score is lower, the sheer magnitude of bullish options betting suggests institutional positioning for a move higher, overriding the model's caution.",
|
||||
"entry_price": 108.77999877929688,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"company_name": "COP",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"ticker": "FEAM",
|
||||
"ticker": "DHT",
|
||||
"rank": 15,
|
||||
"strategy_match": "insider_buying",
|
||||
"final_score": 75,
|
||||
"confidence": 5,
|
||||
"reason": "FEAM is a speculative, high-volatility play driven by a massive $8M insider purchase and an imminent earnings release. With short interest near 15%, any positive news could trigger a sharp squeeze. The stock is currently in a downtrend, making this a contrarian bet relying heavily on the insider's conviction and the binary earnings event.",
|
||||
"entry_price": 2.2100000381469727,
|
||||
"strategy_match": "social_hype",
|
||||
"pipeline": "social_hype",
|
||||
"final_score": 72,
|
||||
"confidence": 7,
|
||||
"reason": "DHT is in a strong uptrend (Golden Cross active) with social momentum and bullish options flow (P/C 0.015). The MACD has just crossed bullishly, and the ADX indicates a very strong trend. While overbought, the momentum is significant, and the options market is pricing in further upside. This is a pure momentum play backed by technical strength.",
|
||||
"entry_price": 16.270000457763672,
|
||||
"discovery_date": "2026-02-17",
|
||||
"status": "open"
|
||||
"status": "open",
|
||||
"company_name": "DHT",
|
||||
"description": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -72,35 +72,35 @@
|
|||
"win_rate_7d": 37.5
|
||||
},
|
||||
"contrarian_value": {
|
||||
"count": 6,
|
||||
"count": 7,
|
||||
"wins_1d": 3,
|
||||
"losses_1d": 3,
|
||||
"losses_1d": 4,
|
||||
"wins_7d": 3,
|
||||
"losses_7d": 3,
|
||||
"losses_7d": 4,
|
||||
"wins_30d": 0,
|
||||
"losses_30d": 0,
|
||||
"avg_return_1d": -4.91,
|
||||
"avg_return_7d": -4.91,
|
||||
"avg_return_1d": -4.94,
|
||||
"avg_return_7d": -5.27,
|
||||
"avg_return_30d": 0,
|
||||
"win_rate_1d": 50.0,
|
||||
"win_rate_7d": 50.0
|
||||
"win_rate_1d": 42.9,
|
||||
"win_rate_7d": 42.9
|
||||
},
|
||||
"news_catalyst": {
|
||||
"count": 3,
|
||||
"count": 4,
|
||||
"wins_1d": 0,
|
||||
"losses_1d": 3,
|
||||
"losses_1d": 4,
|
||||
"wins_7d": 0,
|
||||
"losses_7d": 3,
|
||||
"wins_30d": 0,
|
||||
"losses_30d": 0,
|
||||
"avg_return_1d": -13.55,
|
||||
"avg_return_1d": -10.51,
|
||||
"avg_return_7d": -13.55,
|
||||
"avg_return_30d": 0,
|
||||
"win_rate_1d": 0.0,
|
||||
"win_rate_7d": 0.0
|
||||
},
|
||||
"short_squeeze": {
|
||||
"count": 10,
|
||||
"count": 11,
|
||||
"wins_1d": 5,
|
||||
"losses_1d": 5,
|
||||
"wins_7d": 6,
|
||||
|
|
@ -113,20 +113,6 @@
|
|||
"win_rate_1d": 50.0,
|
||||
"win_rate_7d": 60.0
|
||||
},
|
||||
"early_accumulation": {
|
||||
"count": 1,
|
||||
"wins_1d": 1,
|
||||
"losses_1d": 0,
|
||||
"wins_7d": 1,
|
||||
"losses_7d": 0,
|
||||
"wins_30d": 0,
|
||||
"losses_30d": 0,
|
||||
"avg_return_1d": 20.41,
|
||||
"avg_return_7d": 20.41,
|
||||
"avg_return_30d": 0,
|
||||
"win_rate_1d": 100.0,
|
||||
"win_rate_7d": 100.0
|
||||
},
|
||||
"pre_earnings_accumulation": {
|
||||
"count": 7,
|
||||
"wins_1d": 2,
|
||||
|
|
@ -142,7 +128,7 @@
|
|||
"win_rate_7d": 28.6
|
||||
},
|
||||
"analyst_upgrade": {
|
||||
"count": 8,
|
||||
"count": 9,
|
||||
"wins_1d": 6,
|
||||
"losses_1d": 2,
|
||||
"wins_7d": 6,
|
||||
|
|
@ -170,17 +156,17 @@
|
|||
"win_rate_7d": 0.0
|
||||
},
|
||||
"social_hype": {
|
||||
"count": 2,
|
||||
"wins_1d": 0,
|
||||
"losses_1d": 2,
|
||||
"count": 9,
|
||||
"wins_1d": 2,
|
||||
"losses_1d": 4,
|
||||
"wins_7d": 0,
|
||||
"losses_7d": 2,
|
||||
"losses_7d": 3,
|
||||
"wins_30d": 0,
|
||||
"losses_30d": 0,
|
||||
"avg_return_1d": -8.9,
|
||||
"avg_return_7d": -8.9,
|
||||
"avg_return_1d": -3.47,
|
||||
"avg_return_7d": -6.18,
|
||||
"avg_return_30d": 0,
|
||||
"win_rate_1d": 0.0,
|
||||
"win_rate_1d": 33.3,
|
||||
"win_rate_7d": 0.0
|
||||
},
|
||||
"undiscovered_dd": {
|
||||
|
|
@ -188,69 +174,13 @@
|
|||
"wins_1d": 2,
|
||||
"losses_1d": 0,
|
||||
"wins_7d": 2,
|
||||
"losses_7d": 0,
|
||||
"wins_30d": 0,
|
||||
"losses_30d": 0,
|
||||
"avg_return_1d": 6.44,
|
||||
"avg_return_7d": 6.44,
|
||||
"avg_return_30d": 0,
|
||||
"win_rate_1d": 100.0,
|
||||
"win_rate_7d": 100.0
|
||||
},
|
||||
"earnings_momentum": {
|
||||
"count": 2,
|
||||
"wins_1d": 1,
|
||||
"losses_1d": 1,
|
||||
"wins_7d": 0,
|
||||
"losses_7d": 2,
|
||||
"wins_30d": 0,
|
||||
"losses_30d": 0,
|
||||
"avg_return_1d": -3.38,
|
||||
"avg_return_7d": -3.85,
|
||||
"avg_return_1d": 1.4,
|
||||
"avg_return_7d": 1.28,
|
||||
"avg_return_30d": 0,
|
||||
"win_rate_1d": 50.0,
|
||||
"win_rate_7d": 0.0
|
||||
},
|
||||
"momentum_options": {
|
||||
"count": 2,
|
||||
"wins_1d": 1,
|
||||
"losses_1d": 1,
|
||||
"wins_7d": 2,
|
||||
"losses_7d": 0,
|
||||
"wins_30d": 0,
|
||||
"losses_30d": 0,
|
||||
"avg_return_1d": 0.93,
|
||||
"avg_return_7d": 2.27,
|
||||
"avg_return_30d": 0,
|
||||
"win_rate_1d": 50.0,
|
||||
"win_rate_7d": 100.0
|
||||
},
|
||||
"oversold_reversal": {
|
||||
"count": 1,
|
||||
"wins_1d": 0,
|
||||
"losses_1d": 1,
|
||||
"wins_7d": 0,
|
||||
"losses_7d": 1,
|
||||
"wins_30d": 0,
|
||||
"losses_30d": 0,
|
||||
"avg_return_1d": -5.11,
|
||||
"avg_return_7d": -7.41,
|
||||
"avg_return_30d": 0,
|
||||
"win_rate_1d": 0.0,
|
||||
"win_rate_7d": 0.0
|
||||
},
|
||||
"earnings_reversal": {
|
||||
"count": 2,
|
||||
"wins_1d": 1,
|
||||
"losses_1d": 1,
|
||||
"wins_7d": 1,
|
||||
"losses_7d": 1,
|
||||
"wins_30d": 0,
|
||||
"losses_30d": 0,
|
||||
"avg_return_1d": -1.47,
|
||||
"avg_return_7d": -2.82,
|
||||
"avg_return_30d": 0,
|
||||
"win_rate_1d": 50.0,
|
||||
"win_rate_1d": 63.6,
|
||||
"win_rate_7d": 50.0
|
||||
},
|
||||
"earnings_growth": {
|
||||
|
|
|
|||
|
|
@ -27,11 +27,13 @@ logger = get_logger(__name__)
|
|||
|
||||
|
||||
def main():
|
||||
logger.info("""
|
||||
logger.info(
|
||||
"""
|
||||
╔══════════════════════════════════════════════════════════════╗
|
||||
║ TradingAgents - Historical Memory Builder ║
|
||||
╚══════════════════════════════════════════════════════════════╝
|
||||
""")
|
||||
"""
|
||||
)
|
||||
|
||||
# Configuration
|
||||
tickers = [
|
||||
|
|
|
|||
|
|
@ -89,7 +89,8 @@ def build_strategy_memories(strategy_name: str, config: dict):
|
|||
|
||||
strategy = STRATEGIES[strategy_name]
|
||||
|
||||
logger.info(f"""
|
||||
logger.info(
|
||||
f"""
|
||||
╔══════════════════════════════════════════════════════════════╗
|
||||
║ Building Memories: {strategy_name.upper().replace('_', ' ')}
|
||||
╚══════════════════════════════════════════════════════════════╝
|
||||
|
|
@ -98,7 +99,8 @@ Strategy: {strategy['description']}
|
|||
Lookforward: {strategy['lookforward_days']} days
|
||||
Sampling: Every {strategy['interval_days']} days
|
||||
Tickers: {', '.join(strategy['tickers'])}
|
||||
""")
|
||||
"""
|
||||
)
|
||||
|
||||
# Date range - last 2 years
|
||||
end_date = datetime.now()
|
||||
|
|
@ -157,7 +159,8 @@ Tickers: {', '.join(strategy['tickers'])}
|
|||
|
||||
|
||||
def main():
|
||||
logger.info("""
|
||||
logger.info(
|
||||
"""
|
||||
╔══════════════════════════════════════════════════════════════╗
|
||||
║ TradingAgents - Strategy-Specific Memory Builder ║
|
||||
╚══════════════════════════════════════════════════════════════╝
|
||||
|
|
@ -168,7 +171,8 @@ This script builds optimized memories for different trading styles:
|
|||
2. Swing Trading - 7-day returns, weekly samples
|
||||
3. Position Trading - 30-day returns, monthly samples
|
||||
4. Long-term - 90-day returns, quarterly samples
|
||||
""")
|
||||
"""
|
||||
)
|
||||
|
||||
logger.info("Available strategies:")
|
||||
for i, (name, config) in enumerate(STRATEGIES.items(), 1):
|
||||
|
|
@ -216,11 +220,13 @@ This script builds optimized memories for different trading styles:
|
|||
|
||||
logger.info("\n" + "=" * 70)
|
||||
logger.info("\n💡 TIP: To use a specific strategy's memories, update your config:")
|
||||
logger.info("""
|
||||
logger.info(
|
||||
"""
|
||||
config = DEFAULT_CONFIG.copy()
|
||||
config["memory_dir"] = "data/memories/swing_trading" # or your strategy
|
||||
config["load_historical_memories"] = True
|
||||
""")
|
||||
"""
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
|
|
@ -129,10 +129,12 @@ def main():
|
|||
6. Save updated positions
|
||||
7. Print progress messages
|
||||
"""
|
||||
logger.info("""
|
||||
logger.info(
|
||||
"""
|
||||
╔══════════════════════════════════════════════════════════════╗
|
||||
║ TradingAgents - Position Updater ║
|
||||
╚══════════════════════════════════════════════════════════════╝""".strip())
|
||||
╚══════════════════════════════════════════════════════════════╝""".strip()
|
||||
)
|
||||
|
||||
# Initialize position tracker
|
||||
tracker = PositionTracker(data_dir="data")
|
||||
|
|
|
|||
|
|
@ -1,80 +1,68 @@
|
|||
from tradingagents.agents.utils.agent_utils import create_analyst_node
|
||||
from tradingagents.agents.utils.prompt_templates import get_date_awareness_section
|
||||
from tradingagents.agents.utils.prompt_templates import (
|
||||
get_data_integrity_section,
|
||||
get_date_awareness_section,
|
||||
)
|
||||
|
||||
|
||||
def create_fundamentals_analyst(llm):
|
||||
def _build_prompt(ticker, current_date):
|
||||
return f"""You are a Fundamental Analyst assessing {ticker}'s financial health with SHORT-TERM trading relevance.
|
||||
return f"""You are a Fundamental Analyst assessing {ticker}'s financial health with SHORT-TERM trading relevance (1-2 weeks).
|
||||
|
||||
{get_date_awareness_section(current_date)}
|
||||
{get_data_integrity_section()}
|
||||
|
||||
## YOUR MISSION
|
||||
Identify fundamental strengths/weaknesses and any SHORT-TERM catalysts hidden in the financials.
|
||||
|
||||
## COMPANY STAGE IDENTIFICATION (CRITICAL)
|
||||
First, identify the company stage:
|
||||
## COMPANY STAGE IDENTIFICATION (DO THIS FIRST)
|
||||
Determine the company stage from the data you retrieve:
|
||||
- **Pre-Revenue (Biotech/Early-Stage):** $0 revenue is NORMAL. Focus on cash runway, pipeline, and catalysts.
|
||||
- **Growth Stage:** High revenue growth, often unprofitable. Focus on revenue trajectory and path to profitability.
|
||||
- **Mature:** Stable revenue, focus on margins, dividends, and valuation.
|
||||
|
||||
Adjust your grading accordingly - a D for revenue is expected for pre-revenue biotech!
|
||||
Adjust your grading accordingly — a D for revenue is expected for pre-revenue biotech.
|
||||
|
||||
## SHORT-TERM FUNDAMENTAL SIGNALS
|
||||
Look for:
|
||||
Look for these in the data you retrieve:
|
||||
- Recent earnings surprises (beat/miss, guidance changes)
|
||||
- Margin trends (expanding = positive, compressing = negative)
|
||||
- Cash flow changes (improving = strength, deteriorating = risk)
|
||||
- Valuation extremes (very cheap or very expensive vs. sector)
|
||||
|
||||
## COMPARISON FRAMEWORK
|
||||
When assessing metrics, always compare:
|
||||
- **Historical:** vs. same company 1 year ago, 2 years ago
|
||||
- **Sector:** vs. sector median/average (use get_fundamentals for sector data)
|
||||
- **Peers:** vs. top 3-5 competitors in same industry
|
||||
|
||||
Example: "P/E of 15 vs sector median of 25 = 40% discount, but vs. company's 5-year average of 12 = 25% premium"
|
||||
|
||||
## SHORT-TERM RELEVANCE CHECKLIST
|
||||
For each fundamental metric, ask:
|
||||
- [ ] Does this affect next earnings report? (revenue trend, margin trend)
|
||||
- [ ] Is there a catalyst in next 2 weeks? (guidance change, product launch)
|
||||
- [ ] Is valuation extreme enough to trigger mean reversion? (very cheap/expensive)
|
||||
- [ ] Does balance sheet support/risk short-term trade? (cash runway, debt maturity)
|
||||
- Valuation relative to the company's own historical range
|
||||
|
||||
## OUTPUT STRUCTURE (MANDATORY)
|
||||
|
||||
### Financial Scorecard
|
||||
| Dimension | Grade | Key Finding | Short-Term Impact |
|
||||
|-----------|-------|-------------|-------------------|
|
||||
| Recent Results | A-F | Revenue +25% YoY | Momentum positive |
|
||||
| Margins | A-F | GM down 200bp | Pressure |
|
||||
| Liquidity | A-F | $2B cash | Strong |
|
||||
| Valuation | A-F | P/E 15 vs sector 25 | Undervalued |
|
||||
| Recent Results | A-F | [specific number] | [implication] |
|
||||
| Margins | A-F | [specific number] | [implication] |
|
||||
| Liquidity | A-F | [specific number] | [implication] |
|
||||
| Valuation | A-F | [specific number] | [implication] |
|
||||
|
||||
### Recent Performance
|
||||
**Latest Quarter:**
|
||||
- Revenue: $[X]B ([Y]% YoY)
|
||||
- EPS: $[A] (beat/miss by $[B])
|
||||
- Margins: [C]% (trend: up/down)
|
||||
- Guidance: [Raised/Lowered/Same]
|
||||
- Revenue: $[X] ([Y]% YoY) — or N/A if not available
|
||||
- EPS: $[A] (beat/miss by $[B]) — or N/A
|
||||
- Margins: [C]% (trend: up/down) — or N/A
|
||||
- Guidance: [Raised/Lowered/Maintained/N/A]
|
||||
|
||||
### Balance Sheet Health
|
||||
- Cash: $[X]B | Debt: $[Y]B
|
||||
- Free Cash Flow: $[Z]B
|
||||
- Cash: $[X] | Debt: $[Y]
|
||||
- Free Cash Flow: $[Z]
|
||||
- **Assessment:** [Strong/Adequate/Weak]
|
||||
|
||||
### Valuation
|
||||
- P/E: [X] (Sector: [Y])
|
||||
- **Value:** [Cheap/Fair/Expensive]
|
||||
- P/E: [X] (vs company's own 5-year avg if available)
|
||||
- **Value:** [Cheap/Fair/Expensive relative to own history]
|
||||
|
||||
### Short-Term Takeaway
|
||||
[1-2 sentences: Do fundamentals support short-term trade or create risk?]
|
||||
[1-2 sentences: Do fundamentals support or oppose a short-term trade? Is there a near-term catalyst?]
|
||||
|
||||
## QUALITY RULES
|
||||
- ✅ Use specific numbers (not "strong")
|
||||
- ✅ Compare to sector/history
|
||||
- ✅ Note short-term relevance
|
||||
- ❌ Avoid vague generalities
|
||||
## RULES
|
||||
- Use specific numbers from the tools — never say "strong" without a number
|
||||
- Compare to the company's OWN history (not fabricated sector averages)
|
||||
- If a metric is unavailable from tools, write "N/A" — do not estimate
|
||||
|
||||
Date: {current_date} | Ticker: {ticker}"""
|
||||
|
||||
|
|
|
|||
|
|
@ -1,91 +1,71 @@
|
|||
from tradingagents.agents.utils.agent_utils import create_analyst_node
|
||||
from tradingagents.agents.utils.prompt_templates import get_date_awareness_section
|
||||
from tradingagents.agents.utils.prompt_templates import (
|
||||
get_data_integrity_section,
|
||||
get_date_awareness_section,
|
||||
)
|
||||
|
||||
|
||||
def create_market_analyst(llm):
|
||||
def _build_prompt(ticker, current_date):
|
||||
return f"""You are a Market Technical Analyst specializing in identifying actionable short-term trading signals through technical indicators.
|
||||
|
||||
## YOUR MISSION
|
||||
Analyze {ticker}'s technical setup and identify the 3-5 most relevant trading signals for short-term opportunities (days to weeks, not months).
|
||||
return f"""You are a Market Technical Analyst identifying actionable short-term trading signals for {ticker}.
|
||||
|
||||
{get_date_awareness_section(current_date)}
|
||||
{get_data_integrity_section()}
|
||||
|
||||
## INDICATOR SELECTION FRAMEWORK
|
||||
|
||||
**For Trending Markets (Strong directional movement):**
|
||||
- Trend: close_50_sma, close_10_ema
|
||||
- Momentum: macd, macdh, rsi
|
||||
- Volatility: atr
|
||||
|
||||
**For Range-Bound Markets (Sideways/choppy):**
|
||||
- Oscillators: rsi, boll_ub, boll_lb
|
||||
- Volume: vwma
|
||||
- Support/Resistance: boll (middle band)
|
||||
|
||||
**For Breakout Setups:**
|
||||
- Volatility squeeze: boll_ub, boll_lb, atr
|
||||
- Volume confirmation: vwma
|
||||
- Trend confirmation: macd, close_10_ema
|
||||
## YOUR MISSION
|
||||
Analyze {ticker}'s technical setup and identify the 3-5 most relevant signals for short-term trades (days to 2 weeks).
|
||||
|
||||
## ANALYSIS WORKFLOW
|
||||
1. **Call get_stock_data** to get recent price action (last 6 months)
|
||||
2. **Identify market regime** (trending up/down/sideways/breakout)
|
||||
3. **Call get_indicators ONCE** — this returns ALL indicators in a single call (RSI, MACD, Bollinger Bands, ATR, SMAs, etc.)
|
||||
4. **Synthesize** into specific, actionable signals
|
||||
|
||||
1. **Call get_stock_data first** to understand recent price action (request only last 6 months)
|
||||
2. **Identify current market regime** (trending up/down/sideways/breakout setup)
|
||||
3. **Select 4-6 complementary indicators** based on regime
|
||||
4. **Call get_indicators ONCE** to get a comprehensive technical report (includes RSI, MACD, Moving Averages, Bollinger Bands, ATR, etc.)
|
||||
5. **Synthesize findings** into specific trading signals
|
||||
## TOOL USAGE (CRITICAL)
|
||||
- Call `get_indicators(symbol="{ticker}", curr_date="{current_date}")` ONCE — it returns everything
|
||||
- Do NOT pass an `indicator` parameter — the tool doesn't support it
|
||||
- Do NOT call get_indicators multiple times
|
||||
|
||||
## INDICATOR FRAMEWORK BY REGIME
|
||||
|
||||
**Trending markets:** Trend (SMA 50/200, EMA 10), Momentum (MACD, RSI), Volatility (ATR)
|
||||
**Range-bound markets:** Oscillators (RSI, Bollinger Bands), Volume (VWMA)
|
||||
**Breakout setups:** Volatility squeeze (Bollinger width, ATR), Volume confirmation, MACD
|
||||
|
||||
## OUTPUT STRUCTURE (MANDATORY)
|
||||
|
||||
### Market Regime
|
||||
- **Current Trend:** [Uptrend/Downtrend/Sideways/Transition]
|
||||
- **Volatility:** [Low/Normal/High/Expanding]
|
||||
- **Recent Price Action:** [Specific % move over last 5 days]
|
||||
- **Volume Trend:** [Increasing/Decreasing/Stable]
|
||||
- **Trend:** [Uptrend / Downtrend / Sideways / Transition]
|
||||
- **Volatility:** [Low / Normal / High / Expanding]
|
||||
- **Recent Move:** [X% over last 5 days — from data]
|
||||
- **Volume:** [Above / Below / At average]
|
||||
|
||||
### Key Technical Signals (3-5 signals)
|
||||
For each signal:
|
||||
- **Signal:** [Bullish/Bearish/Neutral]
|
||||
- **Strength:** [Strong/Moderate/Weak]
|
||||
- **Indicators Supporting:** [Which specific indicators confirm]
|
||||
- **Specific Evidence:** [Exact values: "RSI at 72.5, above 70 threshold"]
|
||||
- **Timeframe:** [How long signal typically lasts]
|
||||
### Key Technical Signals (3-5)
|
||||
For each:
|
||||
- **Signal:** [Bullish / Bearish / Neutral]
|
||||
- **Strength:** [Strong / Moderate / Weak]
|
||||
- **Evidence:** [Exact values from get_indicators, e.g., "RSI at 72.5, above 70 threshold"]
|
||||
- **Timeframe:** [How long this signal typically persists]
|
||||
|
||||
### Trading Implications
|
||||
- **Primary Setup:** [What short-term traders should watch for]
|
||||
- **Entry Zone:** [Specific price range for entry]
|
||||
- **Support Levels:** [Key price levels below current price]
|
||||
- **Resistance Levels:** [Key price levels above current price]
|
||||
- **Stop Loss Suggestion:** [Price level that invalidates setup]
|
||||
- **Time Horizon:** [Expected duration: 1-3 days, 1-2 weeks, etc.]
|
||||
### Trading Levels
|
||||
- **Entry Zone:** [Price range]
|
||||
- **Support Levels:** [Key levels below current price]
|
||||
- **Resistance Levels:** [Key levels above current price]
|
||||
- **Stop Loss:** [Price that invalidates the setup]
|
||||
|
||||
### Summary Table
|
||||
| Indicator | Current Value | Signal | Interpretation | Timeframe |
|
||||
|-----------|---------------|--------|----------------|-----------|
|
||||
| RSI | 72.5 | Overbought | Potential pullback | 2-5 days |
|
||||
| MACD | +2.1 | Bullish | Momentum strong | 1-2 weeks |
|
||||
| 50 SMA | $145 | Support | Trend intact if held | Ongoing |
|
||||
| Indicator | Value | Signal | Interpretation | Timeframe |
|
||||
|-----------|-------|--------|----------------|-----------|
|
||||
| RSI | [X] | [Bull/Bear] | [meaning] | [duration] |
|
||||
| MACD | [X] | [Bull/Bear] | [meaning] | [duration] |
|
||||
|
||||
## CRITICAL: TOOL USAGE
|
||||
- ✅ DO call `get_indicators(symbol=ticker, curr_date=current_date)` ONCE
|
||||
→ This returns ALL indicators (RSI, MACD, Bollinger Bands, ATR, etc.) in one call
|
||||
- ❌ DO NOT try to pass `indicator="rsi"` parameter - the tool doesn't support that
|
||||
- ❌ DO NOT call get_indicators multiple times - one call gives you everything
|
||||
## RULES
|
||||
- Every signal must cite a specific indicator value from the tools
|
||||
- Do NOT say "mixed signals" without explaining which signals conflict and which are stronger
|
||||
- Focus on actionable setups with specific price levels
|
||||
- Short-term focus: days to 2 weeks max
|
||||
|
||||
## CRITICAL RULES
|
||||
- ❌ DO NOT say "trends are mixed" without specific examples
|
||||
- ✅ DO provide concrete signals with specific price levels and timeframes
|
||||
- ❌ DO NOT select redundant indicators (e.g., both close_50_sma and close_200_sma)
|
||||
- ✅ DO focus on short-term actionable setups (days to 2 weeks max)
|
||||
- ✅ DO include specific entry/exit guidance for traders
|
||||
|
||||
Available Indicators:
|
||||
**Moving Averages:** close_50_sma, close_200_sma, close_10_ema
|
||||
**MACD:** macd, macds, macdh
|
||||
**Momentum:** rsi
|
||||
**Volatility:** boll, boll_ub, boll_lb, atr
|
||||
**Volume:** vwma
|
||||
Available Indicators: close_50_sma, close_200_sma, close_10_ema, macd, macds, macdh, rsi, boll, boll_ub, boll_lb, atr, vwma
|
||||
|
||||
Current date: {current_date} | Ticker: {ticker}"""
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
from tradingagents.agents.utils.agent_utils import create_analyst_node
|
||||
from tradingagents.agents.utils.prompt_templates import get_date_awareness_section
|
||||
from tradingagents.agents.utils.prompt_templates import (
|
||||
get_data_integrity_section,
|
||||
get_date_awareness_section,
|
||||
)
|
||||
|
||||
|
||||
def create_news_analyst(llm):
|
||||
|
|
@ -7,61 +10,54 @@ def create_news_analyst(llm):
|
|||
return f"""You are a News Intelligence Analyst finding SHORT-TERM catalysts for {ticker}.
|
||||
|
||||
{get_date_awareness_section(current_date)}
|
||||
{get_data_integrity_section()}
|
||||
|
||||
## YOUR MISSION
|
||||
Identify material catalysts and risks that could impact {ticker} over the NEXT 1-2 WEEKS.
|
||||
Identify material catalysts and risks from NEWS that could impact {ticker} over the NEXT 1-2 WEEKS.
|
||||
|
||||
## SEARCH STRATEGY
|
||||
|
||||
**Company News (use get_news):**
|
||||
Focus on: Earnings, product launches, management changes, partnerships, regulatory actions, legal issues
|
||||
|
||||
**Macro/Sector News (use get_global_news):**
|
||||
Focus on: Fed policy, sector rotation, geopolitical events, competitor news
|
||||
Focus on: Fed policy, sector rotation, geopolitical events, competitor news — but ONLY if directly relevant to {ticker}
|
||||
|
||||
## OUTPUT STRUCTURE (MANDATORY)
|
||||
|
||||
### Executive Summary
|
||||
[1-2 sentences: Most critical catalyst + biggest risk for next 2 weeks]
|
||||
|
||||
### Material Catalysts (Bullish - max 4)
|
||||
### Material Catalysts (Bullish — max 4)
|
||||
For each:
|
||||
- **Event:** [What happened]
|
||||
- **Date:** [When]
|
||||
- **Impact:** [Stock reaction so far]
|
||||
- **Event:** [What happened — factual description]
|
||||
- **Date:** [When — specific date from news data]
|
||||
- **Source:** [Where you found this — get_news or get_global_news]
|
||||
- **Stock Reaction:** [How the stock moved on/after the event, if visible in data. If unknown, say "N/A"]
|
||||
- **Forward Look:** [Why this matters for next 1-2 weeks]
|
||||
- **Priced-In Assessment:**
|
||||
- **Event Date:** [When it happened]
|
||||
- **Price Reaction:** [Stock moved X% on event day]
|
||||
- **Current Price vs Event Price:** [Is it still elevated or back to pre-event?]
|
||||
- **Conclusion:** [Fully Priced In / Partially Priced In / Not Yet Priced In]
|
||||
- **Confidence:** [High/Med/Low]
|
||||
- **Confidence:** [High/Med/Low — High only if from a primary source with specific details]
|
||||
|
||||
### Key Risks (Bearish - max 4)
|
||||
### Key Risks (Bearish — max 4)
|
||||
For each:
|
||||
- **Risk:** [Description]
|
||||
- **Risk:** [Factual description of the risk]
|
||||
- **Probability:** [High/Med/Low in next 2 weeks]
|
||||
- **Impact:** [Magnitude if realized]
|
||||
- **Timeline:** [When could it hit]
|
||||
- **Timeline:** [When could it hit — be specific]
|
||||
|
||||
### Macro Context (Connect to {ticker})
|
||||
- **Market Sentiment:** [Risk-on/off] → How does this affect {ticker} specifically?
|
||||
- **Sector Trends:** [Capital flows] → Is {ticker}'s sector receiving or losing capital?
|
||||
- **Upcoming Events:** [Next 2 weeks] → Which events could move {ticker}?
|
||||
### Macro Context (ONLY if directly relevant to {ticker})
|
||||
- **Sector Trend:** [Is capital flowing into or out of {ticker}'s sector?]
|
||||
- **Upcoming Events:** [Specific dated events in the next 2 weeks that could move {ticker}]
|
||||
|
||||
### News Timeline Table
|
||||
| Date | Event | Source | Impact | Status | Implication |
|
||||
|------|-------|--------|--------|--------|-------------|
|
||||
| Dec 3 | Earnings | Co | +5% | Done | May extend |
|
||||
| Dec 10 | Launch | Co | TBD | Pending | Watch |
|
||||
### News Timeline
|
||||
| Date | Event | Source | Sentiment | Forward Relevance |
|
||||
|------|-------|--------|-----------|-------------------|
|
||||
| [date] | [event] | [source] | [+/-/=] | [still relevant?] |
|
||||
|
||||
## QUALITY RULES
|
||||
- ✅ Focus on events with SPECIFIC DATES
|
||||
- ✅ Assess if news is priced in or fresh
|
||||
- ✅ Include short-term timeline (next 2 weeks)
|
||||
- ✅ Distinguish facts from speculation
|
||||
- ❌ Avoid vague "positive sentiment"
|
||||
- ❌ No stale news (>1 week old unless ongoing)
|
||||
## RULES
|
||||
- Report FACTS from the news data, not speculation
|
||||
- Every event must have a specific date — if no date is available, note it
|
||||
- Distinguish confirmed facts from rumors/speculation
|
||||
- Do NOT assess whether news is "priced in" — that requires market data you don't have
|
||||
- Focus on the NEXT 2 weeks, not historical analysis
|
||||
|
||||
Date: {current_date} | Ticker: {ticker}"""
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
from tradingagents.agents.utils.agent_utils import create_analyst_node
|
||||
from tradingagents.agents.utils.prompt_templates import get_date_awareness_section
|
||||
from tradingagents.agents.utils.prompt_templates import (
|
||||
get_data_integrity_section,
|
||||
get_date_awareness_section,
|
||||
)
|
||||
|
||||
|
||||
def create_social_media_analyst(llm):
|
||||
|
|
@ -7,59 +10,45 @@ def create_social_media_analyst(llm):
|
|||
return f"""You are a Social Sentiment Analyst tracking {ticker}'s retail momentum for SHORT-TERM signals.
|
||||
|
||||
{get_date_awareness_section(current_date)}
|
||||
{get_data_integrity_section()}
|
||||
|
||||
## YOUR MISSION
|
||||
QUANTIFY social sentiment and identify sentiment SHIFTS that could drive short-term price action.
|
||||
Report observable social sentiment signals that could indicate short-term retail buying/selling pressure.
|
||||
|
||||
## SENTIMENT TRACKING
|
||||
**Measure:**
|
||||
- Volume: Mention count (trend: up/down?)
|
||||
- Sentiment: Bullish/Neutral/Bearish %
|
||||
- Change: Improving or deteriorating?
|
||||
- Quality: Data-backed or speculation?
|
||||
|
||||
## SOURCE CREDIBILITY WEIGHTING
|
||||
When aggregating sentiment, weight sources by credibility:
|
||||
- **High Weight (0.8-1.0):** Verified DD posts with data, institutional tweets with track record
|
||||
- **Medium Weight (0.5-0.7):** General Reddit discussions, stock-specific forums
|
||||
- **Low Weight (0.2-0.4):** Meme posts, unverified rumors, low-engagement posts
|
||||
|
||||
**Example Calculation:**
|
||||
- 10 high-weight bullish posts (0.9) = 9 bullish points
|
||||
- 20 medium-weight neutral posts (0.6) = 12 neutral points
|
||||
- 5 low-weight bearish posts (0.3) = 1.5 bearish points
|
||||
- **Net Sentiment:** (9 - 1.5) / (9 + 12 + 1.5) = 33% bullish
|
||||
## WHAT TO LOOK FOR
|
||||
- **Volume shifts:** Is mention frequency increasing or decreasing?
|
||||
- **Sentiment direction:** Are posts predominantly bullish, bearish, or mixed?
|
||||
- **Narrative themes:** What are people talking about? (earnings, squeeze, catalysts)
|
||||
- **Quality signals:** Are posts data-backed DD or pure speculation/memes?
|
||||
|
||||
## OUTPUT STRUCTURE (MANDATORY)
|
||||
|
||||
### Sentiment Summary
|
||||
- **Current:** [Strongly Bullish/Bullish/Neutral/Bearish/Strongly Bearish]
|
||||
- **Trend:** [Improving/Stable/Deteriorating]
|
||||
- **Volume:** [Surging/Stable/Declining]
|
||||
- **Quality:** [High/Med/Low] (data vs hype)
|
||||
|
||||
### Sentiment Timeline
|
||||
| Date | Sentiment | Volume | Driver | Change |
|
||||
|------|-----------|--------|--------|--------|
|
||||
| Dec 3 | Bullish 70% | 1.2K posts | Earnings | +20% |
|
||||
| Dec 4 | Mixed 50% | 800 posts | Selloff | -20% |
|
||||
- **Overall Sentiment:** [Strongly Bullish / Bullish / Neutral / Bearish / Strongly Bearish]
|
||||
- **Trend:** [Improving / Stable / Deteriorating] (vs. prior period)
|
||||
- **Mention Volume:** [Surging / Elevated / Normal / Low]
|
||||
- **Content Quality:** [Data-backed DD / Mixed / Mostly speculation]
|
||||
|
||||
### Key Themes (Top 3-4)
|
||||
- **Theme:** [E.g., "Earnings beat"]
|
||||
- **Prevalence:** [40% of mentions]
|
||||
- **Quality:** [Data-backed/Speculation]
|
||||
- **Impact:** [Short-term implication]
|
||||
For each:
|
||||
- **Theme:** [e.g., "Short squeeze thesis", "Earnings beat reaction"]
|
||||
- **Prevalence:** [Dominant / Common / Emerging]
|
||||
- **Backed by data?** [Yes — cite what data / No — pure speculation]
|
||||
- **Potential Impact:** [Could drive buying/selling if it gains traction]
|
||||
|
||||
### Notable Posts or Trends
|
||||
[Summarize 2-3 specific notable discussions, DD posts, or sentiment shifts you found in the data. Include approximate engagement levels if available.]
|
||||
|
||||
### Trading Implications
|
||||
- **Retail Flow:** [Buying/Selling/Mixed]
|
||||
- **Momentum:** [Building/Fading]
|
||||
- **Contrarian Signal:** [Extreme = reversal?]
|
||||
- **Retail Flow Direction:** [Net buying / Net selling / Mixed signals]
|
||||
- **Momentum:** [Building / Peaking / Fading]
|
||||
- **Contrarian Signal?** [Is sentiment extreme enough to suggest a reversal?]
|
||||
|
||||
## QUANTIFICATION RULES
|
||||
- ✅ Use %: "70% bullish, 20% neutral"
|
||||
- ✅ Show changes: "Improved from 45% to 70%"
|
||||
- ✅ Count volume: "Mentions up 300%"
|
||||
- ❌ Don't use vague "positive sentiment"
|
||||
## RULES
|
||||
- Report what the data shows — do not invent engagement metrics or post counts
|
||||
- If social data is sparse or unavailable for {ticker}, say so clearly
|
||||
- Distinguish between data-backed analysis posts and pure hype/memes
|
||||
- Note if sentiment contradicts the technical or fundamental picture
|
||||
|
||||
Date: {current_date} | Ticker: {ticker}"""
|
||||
|
||||
|
|
|
|||
|
|
@ -15,48 +15,45 @@ def create_research_manager(llm, memory):
|
|||
past_memory_str = format_memory_context(memory, state)
|
||||
|
||||
prompt = (
|
||||
f"""You are the Trade Judge for {state["company_of_interest"]}. Decide if there is a SHORT-TERM edge to trade this stock (1-2 weeks).
|
||||
f"""You are the Debate Judge for {state["company_of_interest"]}. Your job is to evaluate the Bull vs Bear debate and produce a clear summary that a Trader can act on.
|
||||
|
||||
## CORE RULES (CRITICAL)
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing, no portfolio impact, no correlation talk).
|
||||
- Base claims on the provided reports and debate arguments (avoid inventing external macro narratives).
|
||||
- Output must be either BUY (go long) or SELL (go short/avoid). If the edge is unclear, pick the less-bad side and set conviction to Low.
|
||||
|
||||
## DECISION FRAMEWORK (Simple)
|
||||
Score each direction 0-10 based on evidence quality and tradeability in the next 5-14 days:
|
||||
- Long Edge Score (0-10)
|
||||
- Short Edge Score (0-10)
|
||||
|
||||
Choose the direction with the higher score. If tied, choose BUY.
|
||||
## CORE RULES
|
||||
- Do NOT make your own BUY/SELL decision — the Trader will do that.
|
||||
- Your job is to objectively assess which side made the stronger evidence-based case.
|
||||
- Evaluate the QUALITY of arguments, not just the count.
|
||||
|
||||
## OUTPUT STRUCTURE (MANDATORY)
|
||||
|
||||
### Decision
|
||||
**DECISION: BUY** or **SELL** (choose exactly one)
|
||||
**Conviction: High / Medium / Low**
|
||||
**Time Horizon: [X] days**
|
||||
### Debate Assessment
|
||||
- **Stronger Case:** [Bull / Bear / Evenly Matched]
|
||||
- **Evidence Quality:** Bull [Strong/Moderate/Weak] vs Bear [Strong/Moderate/Weak]
|
||||
- **Key Disagreement:** [The central point of contention, in one sentence]
|
||||
|
||||
### Trade Setup (Specific)
|
||||
- Entry: [price/condition]
|
||||
- Stop: [price] ([%] risk)
|
||||
- Target: [price] ([%] reward)
|
||||
- Risk/Reward: [ratio]
|
||||
- Invalidation: [what would prove you wrong]
|
||||
- Catalyst / Timing: [next 1-2 weeks drivers]
|
||||
### Bull's Strongest Arguments (ranked by strength)
|
||||
1. [Strongest bull point — with specific evidence cited]
|
||||
2. [Second strongest]
|
||||
3. [Third if applicable]
|
||||
|
||||
### Why This Should Work
|
||||
- [3 bullets max: data-backed reasons]
|
||||
### Bear's Strongest Arguments (ranked by strength)
|
||||
1. [Strongest bear point — with specific evidence cited]
|
||||
2. [Second strongest]
|
||||
3. [Third if applicable]
|
||||
|
||||
### What Could Break It
|
||||
- [2 bullets max: key risks]
|
||||
### Unresolved Questions
|
||||
- [1-2 points where neither side had convincing evidence]
|
||||
|
||||
### Data Summary for Trader
|
||||
- **Technicals:** [1-sentence summary of key technical setup]
|
||||
- **Fundamentals:** [1-sentence summary of fundamental picture]
|
||||
- **Catalysts:** [Specific dated events in next 1-2 weeks]
|
||||
- **Risks:** [Top 1-2 risks with timeline]
|
||||
"""
|
||||
+ (
|
||||
f"""
|
||||
## PAST LESSONS
|
||||
Here are reflections on past mistakes - apply these lessons:
|
||||
{past_memory_str}
|
||||
|
||||
**Learning Check:** How are you adjusting based on these past situations?
|
||||
How do past outcomes for similar setups affect the weight of Bull vs Bear arguments?
|
||||
"""
|
||||
if past_memory_str
|
||||
else ""
|
||||
|
|
|
|||
|
|
@ -18,47 +18,62 @@ def create_risk_manager(llm, memory):
|
|||
past_memory_str = format_memory_context(memory, state)
|
||||
|
||||
prompt = (
|
||||
f"""You are the Final Trade Decider for {company_name}. Make the final SHORT-TERM call (5-14 days) based on the risk debate and the provided data.
|
||||
f"""You are the Final Trade Decider for {company_name}. Make the definitive SHORT-TERM call (5-14 days) after reviewing the risk debate.
|
||||
|
||||
## CORE RULES (CRITICAL)
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing, no portfolio impact, no correlation analysis).
|
||||
- Base your decision on the provided reports and debate arguments only.
|
||||
- Output a clean, actionable trade setup: entry, stop, target, and invalidation.
|
||||
## CORE RULES
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing or correlation analysis).
|
||||
- Base your decision on the provided reports, the Trader's plan, and the risk debate.
|
||||
- Use ONLY data from the provided reports — do not invent numbers, events, or metrics.
|
||||
- If data is unavailable for a field, write "N/A".
|
||||
|
||||
## DECISION FRAMEWORK (Simple)
|
||||
Pick one:
|
||||
- **BUY** if the upside path is clearer than the downside and the trade has a definable stop/target with reasonable risk/reward.
|
||||
- **SELL** if downside path is clearer than the upside and the trade has a definable stop/target.
|
||||
If evidence is contradictory, still choose BUY or SELL and set conviction to Low.
|
||||
## CONVICTION SCORING
|
||||
Assess alignment across the debate participants:
|
||||
- **Unanimous agreement** (all 3 reviewers + Trader agree on direction) → High conviction
|
||||
- **Majority agreement** (3 of 4 agree) → Medium conviction
|
||||
- **Split decision** (2 vs 2, or significant disagreement on setup) → Low conviction
|
||||
|
||||
Then adjust conviction based on data quality:
|
||||
- Strong, specific evidence cited → conviction stays or increases
|
||||
- Vague or contradictory evidence → conviction decreases one level
|
||||
|
||||
## OUTPUT STRUCTURE (MANDATORY)
|
||||
|
||||
### Final Decision
|
||||
**DECISION: BUY** or **SELL** (choose exactly one)
|
||||
**DECISION: BUY** or **DECISION: SELL** (choose exactly one)
|
||||
**Conviction: High / Medium / Low**
|
||||
**Time Horizon: [X] days**
|
||||
|
||||
### Debate Alignment
|
||||
- Trader: [BUY/SELL]
|
||||
- Aggressive Reviewer: [BUY/SELL]
|
||||
- Conservative Reviewer: [BUY/SELL]
|
||||
- Neutral Reviewer: [BUY/SELL]
|
||||
- **Alignment:** [Unanimous / Majority / Split]
|
||||
|
||||
### Execution
|
||||
- Entry: [price/condition]
|
||||
- Stop: [price] ([%] risk)
|
||||
- Target: [price] ([%] reward)
|
||||
- Entry: [price or condition — adopt the best entry from the debate]
|
||||
- Stop: [price] ([%] risk from entry)
|
||||
- Target: [price] ([%] reward from entry)
|
||||
- Risk/Reward: [ratio]
|
||||
- Invalidation: [what would prove you wrong]
|
||||
- Catalyst / Timing: [what should move it in next 1-2 weeks]
|
||||
- Invalidation: [specific price or event that kills the thesis]
|
||||
- Catalyst / Timing: [what should move it in next 1-2 weeks — cite specific dated events]
|
||||
|
||||
### Rationale
|
||||
- [3 bullets max: strongest data-backed reasons]
|
||||
### Rationale (3 bullets max)
|
||||
- [Strongest data-backed reason — cite specific numbers from reports]
|
||||
- [Second reason]
|
||||
- [Third reason]
|
||||
|
||||
### Key Risks
|
||||
- [2 bullets max: main ways it fails]
|
||||
### Key Risks (2 bullets max)
|
||||
- [Main way this fails — cite the Conservative Reviewer's best point]
|
||||
- [Secondary risk]
|
||||
"""
|
||||
+ (
|
||||
f"""
|
||||
## PAST LESSONS - CRITICAL
|
||||
## PAST LESSONS — CRITICAL
|
||||
Review past mistakes to avoid repeating trade-setup errors:
|
||||
{past_memory_str}
|
||||
|
||||
**Self-Check:** Have similar setups failed before? What was the key mistake (timing, catalyst read, or stop placement)?
|
||||
**Self-check:** Have similar setups failed before? What was the key mistake (timing, catalyst read, or stop placement)?
|
||||
"""
|
||||
if past_memory_str
|
||||
else ""
|
||||
|
|
@ -66,7 +81,10 @@ Review past mistakes to avoid repeating trade-setup errors:
|
|||
+ f"""
|
||||
---
|
||||
|
||||
**RISK DEBATE TO JUDGE:**
|
||||
**TRADER'S PLAN:**
|
||||
{trader_plan}
|
||||
|
||||
**RISK DEBATE:**
|
||||
{history}
|
||||
|
||||
**MARKET DATA:**
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ def create_bear_researcher(llm, memory):
|
|||
prompt = f"""You are the Bear Analyst making the case for SHORT-TERM SELL/AVOID (1-2 weeks).
|
||||
|
||||
## YOUR OBJECTIVE
|
||||
Build evidence-based bear case emphasizing SHORT-TERM risks and refute Bull claims.
|
||||
Build an evidence-based bear case using ONLY data from the provided reports. Refute Bull claims with data.
|
||||
|
||||
## STRUCTURE
|
||||
|
||||
|
|
@ -29,35 +29,26 @@ Why this is SELL/AVOID for short-term traders NOW.
|
|||
### Key Bearish Points (3-4 max)
|
||||
For each:
|
||||
- **Risk:** [Bearish argument]
|
||||
- **Evidence:** [Specific data - numbers, dates]
|
||||
- **Evidence:** [Specific data from reports — cite numbers, dates, indicator values]
|
||||
- **Short-Term Impact:** [Impact in next 1-2 weeks]
|
||||
- **Probability:** [High/Med/Low]
|
||||
- **Strength Score:** [1-10] (10 = very strong, 5 = moderate, 1 = weak)
|
||||
- **Confidence:** [High/Med/Low] based on data quality
|
||||
- **Strength:** [Strong/Moderate/Weak] based on evidence quality
|
||||
|
||||
### Bull Rebuttals
|
||||
For EACH Bull claim:
|
||||
- **Bull Says:** "[Quote]"
|
||||
- **Counter:** [Why they're wrong]
|
||||
- **Flaw:** [Weakness in their logic]
|
||||
- **Rebuttal Strength:** [Strong/Moderate/Weak] - does your counter fully address their claim?
|
||||
- **Bull Says:** "[Quote their specific claim]"
|
||||
- **Counter:** [Data-driven refutation — cite report data]
|
||||
- **Rebuttal Strength:** [Strong/Moderate/Weak]
|
||||
|
||||
### Strengths I Acknowledge
|
||||
- [1-2 legitimate Bull points]
|
||||
- [1-2 legitimate Bull points from the data]
|
||||
- [Why risks still dominate]
|
||||
|
||||
## EVIDENCE PRIORITY
|
||||
1. Disappointing results, guidance cuts
|
||||
2. Technical breakdown, fading momentum
|
||||
3. Near-term risk (next 1-2 weeks)
|
||||
4. Insider selling, downgrades
|
||||
|
||||
## RULES
|
||||
- ✅ Specific numbers and dates
|
||||
- ✅ Engage with Bull points
|
||||
- ✅ Short-term focus (1-2 weeks)
|
||||
- ❌ Don't exaggerate
|
||||
- ❌ Don't ignore Bull strengths
|
||||
- Every claim must cite specific data from the reports (numbers, dates, indicator values)
|
||||
- If data is unavailable to support a point, do not make that point
|
||||
- Do not exaggerate risks — be precise about probability and magnitude
|
||||
- Engage directly with Bull's arguments — don't ignore strong ones
|
||||
- Short-term focus: 1-2 weeks only
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ def create_bull_researcher(llm, memory):
|
|||
prompt = f"""You are the Bull Analyst making the case for a SHORT-TERM BUY (1-2 weeks).
|
||||
|
||||
## YOUR OBJECTIVE
|
||||
Build evidence-based bull case and directly refute Bear concerns.
|
||||
Build an evidence-based bull case using ONLY data from the provided reports. Directly refute Bear concerns.
|
||||
|
||||
## STRUCTURE
|
||||
|
||||
|
|
@ -29,34 +29,25 @@ Why this is a BUY for short-term traders RIGHT NOW.
|
|||
### Key Bullish Points (3-4 max)
|
||||
For each:
|
||||
- **Point:** [Bullish argument]
|
||||
- **Evidence:** [Specific data - numbers, dates]
|
||||
- **Evidence:** [Specific data from reports — cite numbers, dates, indicator values]
|
||||
- **Short-Term Relevance:** [Impact in next 1-2 weeks]
|
||||
- **Strength Score:** [1-10] (10 = very strong, 5 = moderate, 1 = weak)
|
||||
- **Confidence:** [High/Med/Low] based on data quality
|
||||
- **Strength:** [Strong/Moderate/Weak] based on evidence quality
|
||||
|
||||
### Bear Rebuttals
|
||||
For EACH Bear concern:
|
||||
- **Bear Says:** "[Quote]"
|
||||
- **Counter:** [Data-driven refutation]
|
||||
- **Why Wrong:** [Flaw in their logic]
|
||||
- **Rebuttal Strength:** [Strong/Moderate/Weak] - does your counter fully address their concern?
|
||||
- **Bear Says:** "[Quote their specific claim]"
|
||||
- **Counter:** [Data-driven refutation — cite report data]
|
||||
- **Rebuttal Strength:** [Strong/Moderate/Weak]
|
||||
|
||||
### Risks I Acknowledge
|
||||
- [1-2 legitimate risks]
|
||||
- [1-2 legitimate risks from the data]
|
||||
- [Why opportunity outweighs them]
|
||||
|
||||
## EVIDENCE PRIORITY
|
||||
1. Recent earnings/revenue data
|
||||
2. Technical setup (breakout, volume)
|
||||
3. Near-term catalyst (next 1-2 weeks)
|
||||
4. Insider buying, upgrades
|
||||
|
||||
## RULES
|
||||
- ✅ Use specific numbers and dates
|
||||
- ✅ Engage directly with Bear points
|
||||
- ✅ Short-term focus (1-2 weeks)
|
||||
- ❌ No unsupported claims
|
||||
- ❌ Don't ignore Bear's strong points
|
||||
- Every claim must cite specific data from the reports (numbers, dates, indicator values)
|
||||
- If data is unavailable to support a point, do not make that point
|
||||
- Engage directly with Bear's arguments — don't ignore strong ones
|
||||
- Short-term focus: 1-2 weeks only
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -17,37 +17,40 @@ def create_risky_debator(llm):
|
|||
|
||||
trader_decision = state["trader_investment_plan"]
|
||||
|
||||
prompt = f"""You are the Aggressive Trade Reviewer. Your job is to push for taking the trade if there is a short-term edge (5-14 days).
|
||||
prompt = f"""You are the Aggressive Trade Reviewer. Your job is to argue FOR taking the trade if there is a short-term edge (5-14 days).
|
||||
|
||||
## CORE RULES (CRITICAL)
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing, no portfolio impact).
|
||||
- Use ONLY the provided reports and the trader plan as evidence.
|
||||
## CORE RULES
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing or correlation analysis).
|
||||
- Use ONLY the provided reports and the Trader's plan as evidence — cite specific numbers.
|
||||
- Focus on the upside path: what must happen for this to work, and how to structure the trade to capture it.
|
||||
|
||||
## OUTPUT STRUCTURE (MANDATORY)
|
||||
|
||||
### Stance
|
||||
State whether you agree with the Trader's direction (BUY/SELL) or flip it (no HOLD).
|
||||
State whether you agree with the Trader's direction (BUY/SELL). No HOLD.
|
||||
|
||||
### Best-Case Setup
|
||||
- Entry: [price/condition]
|
||||
- Entry: [use the Trader's entry or suggest a better one — with rationale]
|
||||
- Stop: [price] ([%] risk)
|
||||
- Target: [price] ([%] reward)
|
||||
- Risk/Reward: [ratio]
|
||||
|
||||
### Why This Can Work Soon
|
||||
- [3 bullets max: catalyst + technical + sentiment/news/fundamentals, all from provided data]
|
||||
### Why This Can Work Soon (3 bullets max)
|
||||
Each bullet must cite a specific data point from the reports:
|
||||
- [Catalyst — from News report]
|
||||
- [Technical confirmation — from Market report, cite indicator values]
|
||||
- [Supporting signal — from Sentiment or Fundamentals report]
|
||||
|
||||
### Counters (Brief)
|
||||
- Respond to the Safe and Neutral critiques with 1-2 data-backed points each.
|
||||
### Counters to Conservative/Neutral Critiques
|
||||
For each critique raised by the other reviewers:
|
||||
- **They say:** [quote their concern]
|
||||
- **Counter:** [1-2 sentences with data backing]
|
||||
|
||||
---
|
||||
|
||||
**TRADER'S PLAN:**
|
||||
{trader_decision}
|
||||
|
||||
**YOUR TASK:** Argue why this plan should be executed with conviction and clear triggers.
|
||||
|
||||
**MARKET DATA:**
|
||||
- Technical: {market_research_report}
|
||||
- Sentiment: {sentiment_report}
|
||||
|
|
@ -63,7 +66,7 @@ State whether you agree with the Trader's direction (BUY/SELL) or flip it (no HO
|
|||
**NEUTRAL ARGUMENT:**
|
||||
{current_neutral_response}
|
||||
|
||||
**If no other arguments yet:** Present your strongest case for why this trade can work soon, using only the provided data."""
|
||||
**If no other arguments yet:** Present your strongest case for why this trade can work soon, citing specific data points from the reports."""
|
||||
|
||||
response = llm.invoke(prompt)
|
||||
response_text = parse_llm_response(response.content)
|
||||
|
|
|
|||
|
|
@ -19,36 +19,35 @@ def create_safe_debator(llm):
|
|||
|
||||
prompt = f"""You are the Risk Audit Reviewer. Your job is to find the fastest ways this trade fails (5-14 days) and tighten the setup if possible.
|
||||
|
||||
## CORE RULES (CRITICAL)
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing, no portfolio impact).
|
||||
- Use ONLY the provided reports and trader plan as evidence.
|
||||
- You are not required to be conservative; you are required to be precise about invalidation and risk.
|
||||
## CORE RULES
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing or correlation analysis).
|
||||
- Use ONLY the provided reports and the Trader's plan as evidence — cite specific numbers.
|
||||
- You are not required to be conservative; you are required to be PRECISE about invalidation and risk.
|
||||
|
||||
## OUTPUT STRUCTURE (MANDATORY)
|
||||
|
||||
### Stance
|
||||
Choose BUY or SELL (no HOLD). If the setup looks poor, still pick the less-bad side and be specific about invalidation and the fastest failure modes.
|
||||
Choose BUY or SELL (no HOLD). If the setup looks poor, still pick the less-bad side and explain why the setup needs tightening.
|
||||
|
||||
### Failure Modes (Top 3)
|
||||
- [1] [Risk] → [what would we see in price/news/data?]
|
||||
- [2] ...
|
||||
- [3] ...
|
||||
For each, cite specific evidence:
|
||||
1. [Risk] — Evidence: [specific data point from reports] — What we'd see: [observable signal]
|
||||
2. [Risk] — Evidence: [specific data point] — What we'd see: [signal]
|
||||
3. [Risk] — Evidence: [specific data point] — What we'd see: [signal]
|
||||
|
||||
### Invalidation & Risk Controls
|
||||
- Invalidation trigger: [specific]
|
||||
- Stop improvement (if needed): [price/logic]
|
||||
- Timing risk: [what catalyst could flip this]
|
||||
- **Invalidation trigger:** [specific price level or event that kills the thesis]
|
||||
- **Stop improvement:** [if Trader's stop is too loose/tight, suggest better level with rationale]
|
||||
- **Timing risk:** [what catalyst or event could flip this within the holding period]
|
||||
|
||||
### Response to Aggressive/Neutral (Brief)
|
||||
- [1-2 bullets total]
|
||||
### Response to Aggressive/Neutral (1-2 bullets)
|
||||
- [Brief counter to their strongest point, with data]
|
||||
|
||||
---
|
||||
|
||||
**TRADER'S PLAN:**
|
||||
{trader_decision}
|
||||
|
||||
**YOUR TASK:** Identify the risks others are missing and tighten the trade with clear invalidation.
|
||||
|
||||
**MARKET DATA:**
|
||||
- Technical: {market_research_report}
|
||||
- Sentiment: {sentiment_report}
|
||||
|
|
@ -64,7 +63,7 @@ Choose BUY or SELL (no HOLD). If the setup looks poor, still pick the less-bad s
|
|||
**NEUTRAL ARGUMENT:**
|
||||
{current_neutral_response}
|
||||
|
||||
**If no other arguments yet:** Identify trade invalidation and the key risks using only the provided data."""
|
||||
**If no other arguments yet:** Identify the top failure modes and invalidation points using only the provided data."""
|
||||
|
||||
response = llm.invoke(prompt)
|
||||
response_text = parse_llm_response(response.content)
|
||||
|
|
|
|||
|
|
@ -17,30 +17,36 @@ def create_neutral_debator(llm):
|
|||
|
||||
trader_decision = state["trader_investment_plan"]
|
||||
|
||||
prompt = f"""You are the Neutral Trade Reviewer. Your job is to sanity-check the trade with a realistic base case (5-14 days).
|
||||
prompt = f"""You are the Neutral Trade Reviewer. Your job is to provide a realistic base-case assessment (5-14 days).
|
||||
|
||||
## CORE RULES (CRITICAL)
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing, no portfolio impact).
|
||||
- Use ONLY the provided reports and the trader plan as evidence.
|
||||
- Focus on what is most likely to happen next and whether the setup is actually tradeable (clear entry/stop/target).
|
||||
## CORE RULES
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing or correlation analysis).
|
||||
- Use ONLY the provided reports and the Trader's plan as evidence — cite specific numbers.
|
||||
- Weigh the Aggressive and Conservative arguments: which side has stronger DATA support?
|
||||
|
||||
## OUTPUT STRUCTURE (MANDATORY)
|
||||
|
||||
### Stance
|
||||
Choose BUY or SELL (no HOLD). If the edge is unclear, pick the less-bad side and keep the reasoning explicit.
|
||||
Choose BUY or SELL (no HOLD). If the edge is unclear, pick the less-bad side and keep conviction Low.
|
||||
|
||||
### Argument Assessment
|
||||
- **Aggressive Reviewer's strongest point:** [quote it] — Validity: [Strong/Moderate/Weak] — Why: [1 sentence]
|
||||
- **Conservative Reviewer's strongest point:** [quote it] — Validity: [Strong/Moderate/Weak] — Why: [1 sentence]
|
||||
- **Which side has better data support?** [Aggressive / Conservative / Neither clearly]
|
||||
|
||||
### Base-Case Setup
|
||||
- Entry: [price/condition]
|
||||
- Entry: [price/condition — use or adjust Trader's entry]
|
||||
- Stop: [price] ([%] risk)
|
||||
- Target: [price] ([%] reward)
|
||||
- Risk/Reward: [ratio]
|
||||
|
||||
### Base-Case View
|
||||
- Most likely outcome in 5-14 days: [up / down / range]
|
||||
- Why: [2 bullets max, data-backed]
|
||||
### Most Likely Outcome (5-14 days)
|
||||
- Direction: [Up / Down / Range-bound]
|
||||
- Magnitude: [approximate % move]
|
||||
- Why: [2 bullets max, each citing specific data from reports]
|
||||
|
||||
### Adjustments
|
||||
- [1-2 concrete improvements to entry/stop/target or timing]
|
||||
- [1-2 concrete improvements to the Trader's entry, stop, target, or timing]
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -59,10 +65,10 @@ Choose BUY or SELL (no HOLD). If the edge is unclear, pick the less-bad side and
|
|||
**AGGRESSIVE ARGUMENT:**
|
||||
{current_risky_response}
|
||||
|
||||
**SAFE ARGUMENT:**
|
||||
**CONSERVATIVE ARGUMENT:**
|
||||
{current_safe_response}
|
||||
|
||||
**If no other arguments yet:** Provide a simple base-case view using only the provided data."""
|
||||
**If no other arguments yet:** Provide a base-case view using only the provided data and the Trader's plan."""
|
||||
|
||||
response = llm.invoke(prompt)
|
||||
response_text = parse_llm_response(response.content)
|
||||
|
|
|
|||
|
|
@ -18,46 +18,64 @@ def create_trader(llm, memory):
|
|||
context = {
|
||||
"role": "user",
|
||||
"content": (
|
||||
f"Use the analysts' reports and the judged plan below to craft a SIMPLE short-term trade setup "
|
||||
f"for {company_name}. Focus on whether a single trade can make money in the next 5-14 days.\n\n"
|
||||
f"Judged Plan:\n{investment_plan}"
|
||||
f"Use the analyst reports and debate summary below to craft a short-term trade setup "
|
||||
f"for {company_name}. The Debate Judge has summarized the bull/bear arguments — "
|
||||
f"now YOU make the final call.\n\n"
|
||||
f"Debate Summary:\n{investment_plan}"
|
||||
),
|
||||
}
|
||||
|
||||
memory_section = ""
|
||||
if past_memory_str:
|
||||
memory_section = f"""
|
||||
## PAST LESSONS
|
||||
{past_memory_str}
|
||||
|
||||
**Self-check:** Have similar setups succeeded or failed before? Adjust entry/stop/conviction accordingly.
|
||||
"""
|
||||
|
||||
messages = [
|
||||
{
|
||||
"role": "system",
|
||||
"content": f"""You are the Lead Trader making a SIMPLE short-term trade call on {company_name} (5-14 days).
|
||||
"content": f"""You are the Lead Trader making the definitive short-term trade call on {company_name} (5-14 days).
|
||||
|
||||
## CORE RULES (CRITICAL)
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing, no portfolio impact).
|
||||
- Use ONLY the provided reports/plan for evidence (do not invent outside data).
|
||||
- Your output should help a trader answer: "Can this trade make money soon, and where do I enter/exit?"
|
||||
- You must output BUY or SELL (no HOLD). If unsure, pick the better-defined setup and set Conviction to Low.
|
||||
## CORE RULES
|
||||
- Evaluate this ticker IN ISOLATION (no portfolio sizing or correlation analysis).
|
||||
- Use ONLY the provided reports and debate summary for evidence — do not invent outside data.
|
||||
- If data is missing for a field, write "N/A" — do not fabricate.
|
||||
- You must output **DECISION: BUY** or **DECISION: SELL** (no HOLD). If unsure, pick the better-defined setup and set Conviction to Low.
|
||||
|
||||
## DECISION FRAMEWORK
|
||||
Score each direction 0-10 based on evidence from the debate and reports:
|
||||
- **Long Edge:** [0-10] — strength of bull case, technical support, catalyst alignment
|
||||
- **Short Edge:** [0-10] — strength of bear case, technical resistance, risk factors
|
||||
|
||||
Choose the direction with the higher score. If tied, choose BUY with Low conviction.
|
||||
|
||||
## OUTPUT STRUCTURE (MANDATORY)
|
||||
|
||||
### Decision
|
||||
**DECISION: BUY** or **SELL** (choose exactly one)
|
||||
**DECISION: BUY** or **DECISION: SELL** (choose exactly one)
|
||||
**Conviction: High / Medium / Low**
|
||||
**Time Horizon: [X] days**
|
||||
|
||||
### Trade Setup
|
||||
- Entry: [price/condition]
|
||||
- Stop: [price] ([%] risk)
|
||||
- Target: [price] ([%] reward)
|
||||
- Risk/Reward: [ratio]
|
||||
- Invalidation: [what would prove the thesis wrong]
|
||||
- Catalyst / Timing: [what should move the stock in the next 1-2 weeks]
|
||||
- Entry: [price or condition — from technical data]
|
||||
- Stop: [price] ([%] risk from entry)
|
||||
- Target: [price] ([%] reward from entry)
|
||||
- Risk/Reward: [ratio, e.g., 1:2.5]
|
||||
- Invalidation: [what specific event or price level would prove the thesis wrong]
|
||||
- Catalyst / Timing: [what should move the stock in next 1-2 weeks — cite specific dated events]
|
||||
|
||||
### Why
|
||||
- [3 bullets max, data-backed]
|
||||
|
||||
### Risks
|
||||
- [2 bullets max, data-backed]
|
||||
|
||||
{past_memory_str}
|
||||
### Why (3 bullets max)
|
||||
- [Data-backed reason 1 — cite specific numbers]
|
||||
- [Data-backed reason 2]
|
||||
- [Data-backed reason 3]
|
||||
|
||||
### Risks (2 bullets max)
|
||||
- [Key risk 1 — with probability and impact]
|
||||
- [Key risk 2]
|
||||
{memory_section}
|
||||
---
|
||||
|
||||
**FINAL TRANSACTION PROPOSAL: BUY/SELL**""",
|
||||
|
|
|
|||
|
|
@ -11,22 +11,25 @@ BASE_COLLABORATIVE_BOILERPLATE = (
|
|||
"Use the provided tools to progress towards answering the question. "
|
||||
"If you are unable to fully answer, that's OK; another assistant with different tools "
|
||||
"will help where you left off. Execute what you can to make progress. "
|
||||
"If you or any other assistant has the FINAL TRANSACTION PROPOSAL: **BUY/HOLD/SELL** or deliverable, "
|
||||
"prefix your response with FINAL TRANSACTION PROPOSAL: **BUY/HOLD/SELL** so the team knows to stop."
|
||||
"If you or any other assistant has the FINAL TRANSACTION PROPOSAL: **BUY** or **SELL** or deliverable, "
|
||||
"prefix your response with FINAL TRANSACTION PROPOSAL so the team knows to stop."
|
||||
)
|
||||
|
||||
# Standard date awareness instructions
|
||||
STANDARD_DATE_AWARENESS_TEMPLATE = """
|
||||
## CRITICAL: DATE AWARENESS
|
||||
**Current Analysis Date:** {current_date}
|
||||
**Instructions:**
|
||||
- Treat {current_date} as "TODAY" for all calculations and references
|
||||
- "Last 6 months" means 6 months ending on {current_date}
|
||||
- "Last week" means the 7 days ending on {current_date}
|
||||
- "Next week" means the 7 days starting from {current_date}
|
||||
- Do NOT use 2024 or 2025 unless {current_date} is actually in that year
|
||||
- Treat {current_date} as "TODAY" for all calculations
|
||||
- All time references ("last week", "recent", "next 2 weeks") are relative to {current_date}
|
||||
- When calling tools, ensure date parameters are relative to {current_date}
|
||||
- All "recent" references should be relative to {current_date}
|
||||
"""
|
||||
|
||||
# Data integrity guardrail used across all agent prompts
|
||||
DATA_INTEGRITY_RULES = """
|
||||
## DATA INTEGRITY
|
||||
- Use ONLY data from the provided reports and tools. Do NOT invent numbers, dates, or events.
|
||||
- If a metric or data point is unavailable, state "N/A" — do not estimate or fabricate.
|
||||
- When citing data, reference the source report (e.g., "per Technical report: RSI at 72.5").
|
||||
"""
|
||||
|
||||
|
||||
|
|
@ -35,6 +38,11 @@ def get_date_awareness_section(current_date: str) -> str:
|
|||
return STANDARD_DATE_AWARENESS_TEMPLATE.format(current_date=current_date)
|
||||
|
||||
|
||||
def get_data_integrity_section() -> str:
|
||||
"""Return the standard data integrity guardrail section."""
|
||||
return DATA_INTEGRITY_RULES
|
||||
|
||||
|
||||
def validate_analyst_output(report: str, required_sections: list) -> dict:
|
||||
"""
|
||||
Validate that report contains all required sections.
|
||||
|
|
|
|||
|
|
@ -206,15 +206,23 @@ class DiscoveryAnalytics:
|
|||
# Collapse multiple underscores
|
||||
normalized = re.sub(r"_+", "_", normalized).strip("_")
|
||||
|
||||
# Map known aliases to canonical names
|
||||
# Map known aliases to canonical names (scanner strategy values)
|
||||
aliases = {
|
||||
# Scanner name → strategy
|
||||
"insider_play": "insider_buying",
|
||||
"earnings_play": "earnings_calendar",
|
||||
"contrarian_value": "contrarian_value",
|
||||
"news_catalyst": "news_catalyst",
|
||||
"volume_accumulation": "volume_accumulation",
|
||||
"earnings_calendar": "earnings_play",
|
||||
"volume_accumulation": "early_accumulation",
|
||||
# LLM-guessed variants → canonical
|
||||
"momentum_hype": "momentum",
|
||||
"momentum_hype_short_squeeze": "short_squeeze",
|
||||
"earnings_momentum": "earnings_play",
|
||||
"earnings_growth": "earnings_play",
|
||||
"earnings_reversal": "earnings_play",
|
||||
"momentum_options": "options_flow",
|
||||
"oversold_reversal": "contrarian_value",
|
||||
"reddit_dd": "social_dd",
|
||||
"reddit_trending": "social_hype",
|
||||
"undiscovered_dd": "social_dd",
|
||||
}
|
||||
return aliases.get(normalized, normalized)
|
||||
|
||||
|
|
@ -404,9 +412,13 @@ class DiscoveryAnalytics:
|
|||
{
|
||||
"ticker": ticker,
|
||||
"rank": rank.get("rank"),
|
||||
"company_name": rank.get("company_name", ticker),
|
||||
"description": rank.get("description", ""),
|
||||
"strategy_match": rank.get("strategy_match"),
|
||||
"pipeline": rank.get("strategy_match", rank.get("strategy", "unknown")),
|
||||
"final_score": rank.get("final_score"),
|
||||
"confidence": rank.get("confidence"),
|
||||
"risk_level": rank.get("risk_level", "moderate"),
|
||||
"reason": rank.get("reason"),
|
||||
"entry_price": entry_price,
|
||||
"discovery_date": trade_date,
|
||||
|
|
@ -520,6 +532,7 @@ class DiscoveryAnalytics:
|
|||
strategy = rank.get("strategy_match", "N/A")
|
||||
final_score = rank.get("final_score", 0)
|
||||
confidence = rank.get("confidence", 0)
|
||||
risk_level = rank.get("risk_level", "")
|
||||
reason = rank.get("reason", "")
|
||||
rank_num = rank.get("rank", "?")
|
||||
|
||||
|
|
@ -531,7 +544,8 @@ class DiscoveryAnalytics:
|
|||
f.write(f"**Company:** {company_name}\n\n")
|
||||
f.write(f"**Current Price:** {price_str}\n\n")
|
||||
f.write(f"**Strategy:** {strategy}\n\n")
|
||||
f.write(f"**Score:** {final_score} | **Confidence:** {confidence}/10\n\n")
|
||||
risk_str = f" | **Risk:** {risk_level.title()}" if risk_level else ""
|
||||
f.write(f"**Score:** {final_score} | **Confidence:** {confidence}/10{risk_str}\n\n")
|
||||
|
||||
if description:
|
||||
f.write("**Description:**\n\n")
|
||||
|
|
|
|||
|
|
@ -45,6 +45,9 @@ class RankerConfig:
|
|||
max_candidates_to_analyze: int = 200
|
||||
analyze_all_candidates: bool = False
|
||||
final_recommendations: int = 15
|
||||
min_score_threshold: int = 55
|
||||
return_target_pct: float = 5.0
|
||||
holding_period_days: str = "1-7"
|
||||
truncate_ranking_context: bool = False
|
||||
max_news_chars: int = 500
|
||||
max_insider_chars: int = 300
|
||||
|
|
@ -160,6 +163,9 @@ class DiscoveryConfig:
|
|||
),
|
||||
analyze_all_candidates=disc.get("analyze_all_candidates", _rd.analyze_all_candidates),
|
||||
final_recommendations=disc.get("final_recommendations", _rd.final_recommendations),
|
||||
min_score_threshold=disc.get("min_score_threshold", _rd.min_score_threshold),
|
||||
return_target_pct=disc.get("return_target_pct", _rd.return_target_pct),
|
||||
holding_period_days=disc.get("holding_period_days", _rd.holding_period_days),
|
||||
truncate_ranking_context=disc.get(
|
||||
"truncate_ranking_context", _rd.truncate_ranking_context
|
||||
),
|
||||
|
|
|
|||
|
|
@ -880,31 +880,12 @@ class CandidateFilter:
|
|||
return default
|
||||
|
||||
def _assign_strategy(self, cand: Dict[str, Any]):
|
||||
"""Assign strategy based on source."""
|
||||
"""Assign strategy by looking up the scanner's declared strategy from the registry."""
|
||||
from tradingagents.dataflows.discovery.scanner_registry import SCANNER_REGISTRY
|
||||
|
||||
source = cand.get("source", "")
|
||||
strategy = Strategy.MOMENTUM.value
|
||||
if source == "reddit_dd_undiscovered":
|
||||
strategy = Strategy.UNDISCOVERED_DD.value # LEADING - quality research before hype
|
||||
elif source == "earnings_accumulation":
|
||||
strategy = Strategy.PRE_EARNINGS_ACCUMULATION.value # LEADING - highest priority
|
||||
elif source == "unusual_volume":
|
||||
strategy = Strategy.EARLY_ACCUMULATION.value # LEADING
|
||||
elif source == "analyst_upgrade":
|
||||
strategy = Strategy.ANALYST_UPGRADE.value # LEADING - institutional signal
|
||||
elif source == "short_squeeze":
|
||||
strategy = Strategy.SHORT_SQUEEZE.value # Event-driven - high volatility
|
||||
elif source == "semantic_news_match":
|
||||
strategy = Strategy.NEWS_CATALYST.value # LEADING - news-driven
|
||||
elif source == "earnings_catalyst":
|
||||
strategy = Strategy.EARNINGS_PLAY.value # Event-driven
|
||||
elif source == "ipo_listing":
|
||||
strategy = Strategy.IPO_OPPORTUNITY.value # Event-driven
|
||||
elif source == "loser":
|
||||
strategy = Strategy.CONTRARIAN_VALUE.value
|
||||
elif source == "gainer":
|
||||
strategy = Strategy.MOMENTUM_CHASE.value
|
||||
elif source == "social_trending" or source == "twitter_sentiment":
|
||||
strategy = Strategy.SOCIAL_HYPE.value # LAGGING
|
||||
elif source == "market_mover":
|
||||
strategy = Strategy.MOMENTUM_CHASE.value # LAGGING - lowest priority
|
||||
cand["strategy"] = strategy
|
||||
scanner_class = SCANNER_REGISTRY.scanners.get(source)
|
||||
if scanner_class and getattr(scanner_class, "strategy", None):
|
||||
cand["strategy"] = scanner_class.strategy
|
||||
else:
|
||||
cand["strategy"] = Strategy.MOMENTUM.value
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ class StockRanking(BaseModel):
|
|||
strategy_match: str = Field(description="Strategy that matched")
|
||||
final_score: int = Field(description="Score 0-100")
|
||||
confidence: int = Field(description="Confidence 1-10")
|
||||
risk_level: str = Field(description="Risk level: low, moderate, high, or speculative")
|
||||
reason: str = Field(
|
||||
description="Detailed investment thesis (4-6 sentences) defending the trade with specific catalysts, risk/reward, and timing"
|
||||
)
|
||||
|
|
@ -77,6 +78,9 @@ class CandidateRanker:
|
|||
dc = DiscoveryConfig.from_config(config)
|
||||
self.max_candidates_to_analyze = dc.ranker.max_candidates_to_analyze
|
||||
self.final_recommendations = dc.ranker.final_recommendations
|
||||
self.min_score_threshold = dc.ranker.min_score_threshold
|
||||
self.return_target_pct = dc.ranker.return_target_pct
|
||||
self.holding_period_days = dc.ranker.holding_period_days
|
||||
|
||||
# Truncation settings
|
||||
self.truncate_context = dc.ranker.truncate_ranking_context
|
||||
|
|
@ -279,12 +283,29 @@ class CandidateRanker:
|
|||
combined_candidates_text = "\n".join(candidate_summaries)
|
||||
|
||||
# Build Prompt
|
||||
prompt = f"""You are an analyst tasked with selecting the absolute best {self.final_recommendations} stock opportunities from a pre-filtered list.
|
||||
prompt = f"""You are a professional stock analyst selecting the best short-term trading opportunities from a pre-filtered candidate list.
|
||||
|
||||
CURRENT DATE: {trade_date}
|
||||
|
||||
GOAL: Select the top {self.final_recommendations} stocks with the highest probability of generating >5% returns in the next 1-7 days.
|
||||
Focus on asymmetric risk/reward: massive upside potential with managed risk.
|
||||
GOAL: Select UP TO {self.final_recommendations} stocks with the highest probability of generating >{self.return_target_pct}% returns within {self.holding_period_days} days. If fewer than {self.final_recommendations} candidates meet the quality bar, return only the ones that do. Quality over quantity — never pad the list with weak picks.
|
||||
|
||||
MINIMUM QUALITY BAR:
|
||||
- Only include candidates where you have genuine conviction (final_score >= {self.min_score_threshold}).
|
||||
- If a candidate lacks a clear catalyst or has contradictory signals, SKIP it.
|
||||
- It is better to return 5 excellent picks than 15 mediocre ones.
|
||||
|
||||
STRATEGY-SPECIFIC EVALUATION CRITERIA:
|
||||
Each candidate was discovered by a specific scanner. Evaluate them using the criteria most relevant to their strategy:
|
||||
- **insider_buying**: Focus on insider transaction SIZE relative to market cap, insider ROLE (CEO/CFO > Director), number of distinct insiders buying, and whether the stock is near support. Large cluster buys are strongest.
|
||||
- **options_flow**: Focus on put/call ratio, absolute call VOLUME vs open interest, premium size, and whether flow aligns with the technical trend. Unusually low P/C ratios (<0.1) with high volume are strongest.
|
||||
- **momentum / technical_breakout**: Focus on volume confirmation (>2x average), trend alignment (above key SMAs), and whether momentum is accelerating or fading. Avoid chasing extended moves (RSI >80).
|
||||
- **earnings_play**: Focus on short interest (squeeze potential), pre-earnings accumulation signals, analyst estimate trends, and historical earnings surprise rate. Binary risk must be acknowledged.
|
||||
- **social_dd / social_hype**: Treat as SPECULATIVE. Require corroborating technical or fundamental evidence. Pure social sentiment without data backing should score low.
|
||||
- **short_squeeze**: Focus on short interest %, days to cover, cost to borrow, and whether a catalyst exists to trigger covering. High SI alone is not enough.
|
||||
- **contrarian_value**: Focus on oversold technicals (RSI <30), fundamental support (earnings stability), and a clear reason why the selloff is overdone.
|
||||
- **news_catalyst**: Focus on the materiality of the news, whether it's already priced in (check intraday move), and the timeline of impact.
|
||||
- **sector_rotation**: Focus on relative strength vs sector ETF, whether the stock is a laggard in an accelerating sector.
|
||||
- **ml_signal**: Use the ML Win Probability as a strong quantitative signal. Scores above 65% deserve significant weight.
|
||||
|
||||
HISTORICAL INSIGHTS:
|
||||
{json.dumps(historical_stats.get('summary', 'N/A'), indent=2)}
|
||||
|
|
@ -292,30 +313,31 @@ HISTORICAL INSIGHTS:
|
|||
CANDIDATES FOR REVIEW:
|
||||
{combined_candidates_text}
|
||||
|
||||
INSTRUCTIONS:
|
||||
1. Analyze each candidate's "Discovery Context" (why it was found) and "Strategy Match".
|
||||
2. Cross-reference with Technicals (RSI, etc.) and Fundamentals.
|
||||
3. Use the Quantitative Pre-Score as an objective baseline. Scores above 50 indicate strong multi-factor alignment.
|
||||
4. The ML Win Probability is a trained model's estimate that this stock hits +5% within 7 days. Treat scores above 60% as strong ML confirmation.
|
||||
5. Prioritize "LEADING" indicators (Undiscovered DD, Earnings Accumulation, Insider Buying) over lagging ones.
|
||||
6. Select exactly {self.final_recommendations} winners.
|
||||
7. Use ONLY the information provided in the candidates section; do NOT invent catalysts, prices, or metrics.
|
||||
8. If a required field is missing, set it to null (do not guess).
|
||||
9. Rank only tickers from the candidates list.
|
||||
10. Reasons must reference at least two concrete facts from the candidate context.
|
||||
RANKING INSTRUCTIONS:
|
||||
1. Evaluate each candidate through the lens of its specific strategy (see criteria above).
|
||||
2. Cross-reference the strategy signal with Technicals, Fundamentals, and Options data for confirmation.
|
||||
3. Use the Quantitative Pre-Score as an objective baseline — scores above 50 indicate strong multi-factor alignment.
|
||||
4. The ML Win Probability is a trained model's estimate of hitting +{self.return_target_pct}% within 7 days. Treat >60% as strong confirmation, >70% as very strong.
|
||||
5. Prioritize LEADING indicators (Insider Buying, Pre-Earnings Accumulation, Options Flow) over lagging ones (momentum chasing, social hype).
|
||||
6. Penalize contradictory signals: e.g., bullish options but heavy insider SELLING, or strong momentum but overbought RSI with declining volume.
|
||||
7. Use ONLY the information provided in the candidates section. Do NOT invent catalysts, prices, or metrics that are not explicitly stated.
|
||||
8. If a data field is missing, note it as N/A — do not fabricate values.
|
||||
9. Only rank tickers from the candidates list.
|
||||
10. Each reason MUST cite at least two specific data points from the candidate context (e.g., "P/C ratio of 0.02", "Director purchased $5.2M").
|
||||
|
||||
Output a JSON object with a 'rankings' list. Each item should have:
|
||||
- rank: 1 to {self.final_recommendations}
|
||||
- ticker: stock symbol
|
||||
- company_name: name
|
||||
- current_price: price
|
||||
- strategy_match: main strategy
|
||||
- final_score: 0-100 score
|
||||
- confidence: 1-10 confidence level
|
||||
- reason: Detailed investment thesis (4-6 sentences). Defend the trade: (1) what is the catalyst/edge, (2) why NOW and not later, (3) what does the risk/reward look like, (4) what could go wrong. Reference specific data points from the candidate context.
|
||||
- description: Brief company description.
|
||||
OUTPUT FORMAT — JSON object with a 'rankings' list. Each item:
|
||||
- rank: sequential from 1
|
||||
- ticker: stock symbol (must be from candidate list)
|
||||
- company_name: company name
|
||||
- current_price: numeric price from candidate data
|
||||
- strategy_match: the candidate's strategy (use the value from the candidate, do not change it)
|
||||
- final_score: 0-100 (your holistic assessment: {self.min_score_threshold}+ = included, 80+ = high conviction, 90+ = exceptional)
|
||||
- confidence: 1-10 (how confident are you in THIS specific trade)
|
||||
- risk_level: one of "low", "moderate", "high", "speculative"
|
||||
- reason: Investment thesis in 4-6 sentences. Structure: (1) What is the edge/catalyst, (2) Why NOW — what makes the timing urgent, (3) Risk/reward profile, (4) Key risk or what could invalidate the thesis. Cite specific numbers.
|
||||
- description: One-sentence company description
|
||||
|
||||
JSON FORMAT ONLY. No markdown, no extra text. All numeric fields must be numbers (not strings)."""
|
||||
IMPORTANT: Return ONLY valid JSON. No markdown wrapping, no commentary outside the JSON. All numeric fields must be numbers, not strings."""
|
||||
|
||||
# Invoke LLM with structured output
|
||||
logger.info("🧠 Deep Thinking Ranker analyzing opportunities...")
|
||||
|
|
@ -324,8 +346,6 @@ JSON FORMAT ONLY. No markdown, no extra text. All numeric fields must be numbers
|
|||
)
|
||||
if self.log_prompts_console:
|
||||
logger.info(f"Full ranking prompt:\n{prompt}")
|
||||
else:
|
||||
logger.debug(f"Full ranking prompt:\n{prompt}")
|
||||
|
||||
try:
|
||||
# Use structured output with include_raw for debugging
|
||||
|
|
|
|||
|
|
@ -11,12 +11,15 @@ class BaseScanner(ABC):
|
|||
|
||||
name: str = None
|
||||
pipeline: str = None
|
||||
strategy: str = None
|
||||
|
||||
def __init__(self, config: Dict[str, Any]):
|
||||
if self.name is None:
|
||||
raise ValueError(f"{self.__class__.__name__} must define 'name'")
|
||||
if self.pipeline is None:
|
||||
raise ValueError(f"{self.__class__.__name__} must define 'pipeline'")
|
||||
if self.strategy is None:
|
||||
raise ValueError(f"{self.__class__.__name__} must define 'strategy'")
|
||||
|
||||
self.config = config
|
||||
self.scanner_config = config.get("discovery", {}).get("scanners", {}).get(self.name, {})
|
||||
|
|
@ -97,6 +100,8 @@ class ScannerRegistry:
|
|||
raise ValueError(f"{scanner_class.__name__} must define class attribute 'name'")
|
||||
if not hasattr(scanner_class, "pipeline") or scanner_class.pipeline is None:
|
||||
raise ValueError(f"{scanner_class.__name__} must define class attribute 'pipeline'")
|
||||
if not hasattr(scanner_class, "strategy") or scanner_class.strategy is None:
|
||||
raise ValueError(f"{scanner_class.__name__} must define class attribute 'strategy'")
|
||||
|
||||
# Check for duplicate registration
|
||||
if scanner_class.name in self.scanners:
|
||||
|
|
|
|||
|
|
@ -68,9 +68,7 @@ class AnalystUpgradeScanner(BaseScanner):
|
|||
priority = Priority.LOW.value
|
||||
|
||||
context = (
|
||||
f"Analyst {action}: {headline}"
|
||||
if headline
|
||||
else f"Analyst {action} ({source})"
|
||||
f"Analyst {action}: {headline}" if headline else f"Analyst {action} ({source})"
|
||||
)
|
||||
|
||||
candidates.append(
|
||||
|
|
|
|||
|
|
@ -91,7 +91,11 @@ class RedditDDScanner(BaseScanner):
|
|||
{
|
||||
"ticker": ticker,
|
||||
"source": self.name,
|
||||
"context": f"Reddit DD (score: {dd_score}/100): {title}" if title else "Reddit DD post",
|
||||
"context": (
|
||||
f"Reddit DD (score: {dd_score}/100): {title}"
|
||||
if title
|
||||
else "Reddit DD post"
|
||||
),
|
||||
"priority": priority,
|
||||
"strategy": self.strategy,
|
||||
"dd_quality_score": dd_score,
|
||||
|
|
|
|||
|
|
@ -11,16 +11,33 @@ logger = get_logger(__name__)
|
|||
# Catalyst keywords for priority classification
|
||||
CATALYST_KEYWORDS = {
|
||||
Priority.CRITICAL.value: [
|
||||
"fda approval", "acquisition", "merger", "buyout", "takeover",
|
||||
"breakthrough", "approved",
|
||||
"fda approval",
|
||||
"acquisition",
|
||||
"merger",
|
||||
"buyout",
|
||||
"takeover",
|
||||
"breakthrough",
|
||||
"approved",
|
||||
],
|
||||
Priority.HIGH.value: [
|
||||
"upgrade", "initiated", "beat", "surprise", "contract win",
|
||||
"patent", "revenue growth", "guidance raise", "price target",
|
||||
"upgrade",
|
||||
"initiated",
|
||||
"beat",
|
||||
"surprise",
|
||||
"contract win",
|
||||
"patent",
|
||||
"revenue growth",
|
||||
"guidance raise",
|
||||
"price target",
|
||||
],
|
||||
Priority.MEDIUM.value: [
|
||||
"downgrade", "miss", "lawsuit", "investigation", "recall",
|
||||
"warning", "delayed",
|
||||
"downgrade",
|
||||
"miss",
|
||||
"lawsuit",
|
||||
"investigation",
|
||||
"recall",
|
||||
"warning",
|
||||
"delayed",
|
||||
],
|
||||
}
|
||||
|
||||
|
|
@ -64,10 +81,33 @@ class SemanticNewsScanner(BaseScanner):
|
|||
news_lines = [line.strip() for line in result.split("\n") if line.strip()]
|
||||
|
||||
stop_words = {
|
||||
"NYSE", "NASDAQ", "CEO", "CFO", "IPO", "ETF", "USA",
|
||||
"SEC", "NEWS", "STOCK", "MARKET", "GDP", "CPI", "FED",
|
||||
"THE", "FOR", "AND", "ARE", "NOT", "BUT", "HAS", "WAS",
|
||||
"INC", "LTD", "LLC", "EST", "PDT",
|
||||
"NYSE",
|
||||
"NASDAQ",
|
||||
"CEO",
|
||||
"CFO",
|
||||
"IPO",
|
||||
"ETF",
|
||||
"USA",
|
||||
"SEC",
|
||||
"NEWS",
|
||||
"STOCK",
|
||||
"MARKET",
|
||||
"GDP",
|
||||
"CPI",
|
||||
"FED",
|
||||
"THE",
|
||||
"FOR",
|
||||
"AND",
|
||||
"ARE",
|
||||
"NOT",
|
||||
"BUT",
|
||||
"HAS",
|
||||
"WAS",
|
||||
"INC",
|
||||
"LTD",
|
||||
"LLC",
|
||||
"EST",
|
||||
"PDT",
|
||||
}
|
||||
|
||||
# Extract tickers from each line along with the headline context
|
||||
|
|
@ -90,7 +130,9 @@ class SemanticNewsScanner(BaseScanner):
|
|||
for ticker, headline in list(ticker_headlines.items())[: self.limit]:
|
||||
priority = self._classify_catalyst(headline)
|
||||
|
||||
context = f"News catalyst: {headline}" if headline else "Mentioned in recent market news"
|
||||
context = (
|
||||
f"News catalyst: {headline}" if headline else "Mentioned in recent market news"
|
||||
)
|
||||
|
||||
candidates.append(
|
||||
{
|
||||
|
|
|
|||
|
|
@ -127,9 +127,7 @@ class TechnicalBreakoutScanner(BaseScanner):
|
|||
# Breakout conditions:
|
||||
# 1. Price closed above the lookback-period high
|
||||
# 2. Volume is at least min_volume_multiple times average
|
||||
is_breakout = (
|
||||
latest_close > lookback_high and vol_multiple >= self.min_volume_multiple
|
||||
)
|
||||
is_breakout = latest_close > lookback_high and vol_multiple >= self.min_volume_multiple
|
||||
|
||||
if not is_breakout:
|
||||
return None
|
||||
|
|
|
|||
|
|
@ -125,8 +125,10 @@ class VolumeAccumulationScanner(BaseScanner):
|
|||
|
||||
# Multi-day volume pattern: count days with >1.5x avg volume in last 5 days
|
||||
if len(hist) >= 6:
|
||||
avg_vol = float(hist["Volume"].iloc[:-5].mean()) if len(hist) > 5 else float(
|
||||
hist["Volume"].mean()
|
||||
avg_vol = (
|
||||
float(hist["Volume"].iloc[:-5].mean())
|
||||
if len(hist) > 5
|
||||
else float(hist["Volume"].mean())
|
||||
)
|
||||
if avg_vol > 0:
|
||||
recent_high_vol_days = sum(
|
||||
|
|
@ -134,9 +136,9 @@ class VolumeAccumulationScanner(BaseScanner):
|
|||
)
|
||||
cand["high_vol_days_5d"] = recent_high_vol_days
|
||||
if recent_high_vol_days >= 3:
|
||||
cand["context"] += (
|
||||
f" | Sustained: {recent_high_vol_days}/5 days above 1.5x avg"
|
||||
)
|
||||
cand[
|
||||
"context"
|
||||
] += f" | Sustained: {recent_high_vol_days}/5 days above 1.5x avg"
|
||||
|
||||
# Classify signal
|
||||
if abs(day_change_pct) < 3:
|
||||
|
|
@ -145,9 +147,9 @@ class VolumeAccumulationScanner(BaseScanner):
|
|||
elif day_change_pct < -5:
|
||||
cand["volume_signal"] = "distribution"
|
||||
cand["priority"] = Priority.LOW.value
|
||||
cand["context"] += (
|
||||
f" | Price dropped {day_change_pct:+.1f}% — possible distribution"
|
||||
)
|
||||
cand[
|
||||
"context"
|
||||
] += f" | Price dropped {day_change_pct:+.1f}% — possible distribution"
|
||||
else:
|
||||
cand["volume_signal"] = "momentum"
|
||||
|
||||
|
|
|
|||
|
|
@ -392,9 +392,7 @@ def get_insider_buying_screener(
|
|||
|
||||
# Return all transactions without deduplication if requested
|
||||
if return_structured and not deduplicate:
|
||||
logger.info(
|
||||
f"Returning all {len(transactions)} {filter_desc} transactions (no dedup)"
|
||||
)
|
||||
logger.info(f"Returning all {len(transactions)} {filter_desc} transactions (no dedup)")
|
||||
return transactions
|
||||
|
||||
# Deduplicate by ticker, keeping the largest transaction per ticker
|
||||
|
|
|
|||
|
|
@ -317,6 +317,48 @@ class NewsSemanticScanner:
|
|||
max_time = item_time
|
||||
return min_time, max_time
|
||||
|
||||
def _build_time_constraint(self) -> str:
|
||||
"""Build the shared time constraint block used by all news prompts."""
|
||||
current_datetime = datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
|
||||
cutoff_datetime = self.cutoff_time.strftime("%Y-%m-%dT%H:%M:%S")
|
||||
return (
|
||||
f"CRITICAL TIME CONSTRAINT:\n"
|
||||
f"- Current time: {current_datetime}\n"
|
||||
f"- Only include items published AFTER: {cutoff_datetime}\n"
|
||||
f"- Skip anything older than {self.news_lookback_hours} hours"
|
||||
)
|
||||
|
||||
def _build_extraction_fields(self, detail_level: str = "full") -> str:
|
||||
"""Build the shared extraction fields block.
|
||||
|
||||
Args:
|
||||
detail_level: "full" for primary searches, "brief" for parsing raw feeds.
|
||||
"""
|
||||
current_datetime = datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
|
||||
base = (
|
||||
"For each item, extract:\n"
|
||||
"- title: Headline\n"
|
||||
)
|
||||
if detail_level == "full":
|
||||
base += "- summary: 2-3 sentence summary of key points\n"
|
||||
else:
|
||||
base += "- summary: Brief summary of key points\n"
|
||||
base += (
|
||||
f"- published_at: ISO-8601 timestamp (REQUIRED — convert relative times like '2 hours ago' to full timestamp using current time {current_datetime})\n"
|
||||
"- companies_mentioned: List of stock ticker symbols (prefer tickers over company names, e.g. 'AAPL' not 'Apple Inc.')\n"
|
||||
"- themes: Key themes (e.g., 'earnings beat', 'FDA approval', 'merger', 'insider buying')\n"
|
||||
"- sentiment: one of positive, negative, neutral\n"
|
||||
"- importance: 1-10 score (10 = highly market-moving, company-specific catalysts score higher than broad market news)"
|
||||
)
|
||||
return base
|
||||
|
||||
_COMPANY_SPECIFIC_INSTRUCTION = (
|
||||
"Prefer company-specific or single-catalyst stories that impact one company or a small "
|
||||
"group of companies. Avoid broad market, index, or macroeconomic headlines unless they "
|
||||
"have a clear company-specific catalyst. If a story is sector-wide without a specific "
|
||||
"company catalyst, skip it."
|
||||
)
|
||||
|
||||
def _build_web_search_prompt(self, query: str = "breaking stock market news today") -> str:
|
||||
"""
|
||||
Build unified web search prompt for both OpenAI and Gemini.
|
||||
|
|
@ -329,19 +371,14 @@ class NewsSemanticScanner:
|
|||
"""
|
||||
time_phrase = self._get_time_phrase()
|
||||
time_query = f"{query} {time_phrase}"
|
||||
current_datetime = datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
|
||||
cutoff_datetime = self.cutoff_time.strftime("%Y-%m-%dT%H:%M:%S")
|
||||
|
||||
return f"""Search the web for: {time_query}
|
||||
|
||||
CRITICAL TIME CONSTRAINT:
|
||||
- Current time: {current_datetime}
|
||||
- Only include news published AFTER: {cutoff_datetime}
|
||||
- Skip any articles older than {self.news_lookback_hours} hours
|
||||
{self._build_time_constraint()}
|
||||
|
||||
Find the top {self.max_news_items} most important market-moving news stories from the last {self.news_lookback_hours} hours.
|
||||
|
||||
Prefer company-specific or single-catalyst stories that are likely to impact only one company or a small number of companies. Avoid broad market, index, or macroeconomic headlines unless they have a clear company-specific catalyst.
|
||||
{self._COMPANY_SPECIFIC_INSTRUCTION}
|
||||
|
||||
Focus on:
|
||||
- Earnings reports and guidance
|
||||
|
|
@ -352,14 +389,7 @@ Focus on:
|
|||
- Legal/regulatory actions
|
||||
- Analyst upgrades/downgrades
|
||||
|
||||
For each news item, extract:
|
||||
- title: Headline
|
||||
- summary: 2-3 sentence summary of key points
|
||||
- published_at: ISO-8601 timestamp (REQUIRED - convert relative times like "2 hours ago" to full timestamp using current time {current_datetime})
|
||||
- companies_mentioned: List of ticker symbols or company names mentioned
|
||||
- themes: List of key themes (e.g., "earnings beat", "FDA approval", "merger")
|
||||
- sentiment: one of positive, negative, neutral
|
||||
- importance: 1-10 score (10 = highly market-moving)
|
||||
{self._build_extraction_fields("full")}
|
||||
"""
|
||||
|
||||
def _build_openai_input(self, system_text: str, user_text: str) -> str:
|
||||
|
|
@ -448,27 +478,15 @@ For each news item, extract:
|
|||
)
|
||||
|
||||
# Parse the report using LLM to extract structured data
|
||||
current_datetime = datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
|
||||
cutoff_datetime = self.cutoff_time.strftime("%Y-%m-%dT%H:%M:%S")
|
||||
parse_prompt = f"""Parse this news report and extract individual news items.
|
||||
|
||||
CRITICAL TIME CONSTRAINT:
|
||||
- Current time: {current_datetime}
|
||||
- Only include news published AFTER: {cutoff_datetime}
|
||||
- Skip any articles older than {self.news_lookback_hours} hours
|
||||
{self._build_time_constraint()}
|
||||
|
||||
Prefer company-specific or single-catalyst stories that are likely to impact only one company or a small number of companies. Avoid broad market, index, or macroeconomic headlines unless they have a clear company-specific catalyst. If a story is broad or sector-wide without a specific company catalyst, skip it.
|
||||
{self._COMPANY_SPECIFIC_INSTRUCTION}
|
||||
|
||||
{news_report}
|
||||
|
||||
For each news item, extract:
|
||||
- title: Headline
|
||||
- summary: Brief summary
|
||||
- published_at: ISO-8601 timestamp (REQUIRED - convert relative times like "2 hours ago" to full timestamp using current time {current_datetime})
|
||||
- companies_mentioned: Companies or tickers mentioned
|
||||
- themes: Key themes
|
||||
- sentiment: one of positive, negative, neutral
|
||||
- importance: 1-10 score
|
||||
{self._build_extraction_fields("brief")}
|
||||
|
||||
Return as JSON array with key "news"."""
|
||||
response = self.openai_client.responses.parse(
|
||||
|
|
@ -529,27 +547,15 @@ Return as JSON array with key "news"."""
|
|||
|
||||
# Parse SEC filings using LLM
|
||||
# (SEC returns XML/Atom feed, we'll parse with LLM for simplicity)
|
||||
current_datetime = datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
|
||||
cutoff_datetime = self.cutoff_time.strftime("%Y-%m-%dT%H:%M:%S")
|
||||
filings_prompt = f"""Parse these SEC filings and extract the most important ones.
|
||||
filings_prompt = f"""Parse these SEC 8-K filings and extract the most important material events.
|
||||
|
||||
CRITICAL TIME CONSTRAINT:
|
||||
- Current time: {current_datetime}
|
||||
- Only include filings submitted AFTER: {cutoff_datetime}
|
||||
- Skip any filings older than {self.news_lookback_hours} hours
|
||||
{self._build_time_constraint()}
|
||||
|
||||
Prefer company-specific filings and material events; skip broad market commentary.
|
||||
Prefer company-specific filings and material events; skip broad market commentary or routine filings.
|
||||
|
||||
{response.text} # Limit to avoid token limits
|
||||
{response.text}
|
||||
|
||||
For each important filing, extract:
|
||||
- title: Company name and filing type
|
||||
- summary: What the material event is about
|
||||
- published_at: ISO-8601 timestamp (REQUIRED - extract from filing date/time)
|
||||
- companies_mentioned: [company name and ticker if available]
|
||||
- themes: Type of event (e.g., "acquisition", "earnings guidance", "executive change")
|
||||
- sentiment: one of positive, negative, neutral
|
||||
- importance: 1-10 score
|
||||
{self._build_extraction_fields("brief")}
|
||||
|
||||
Return as JSON array with key "filings"."""
|
||||
llm_response = self.openai_client.responses.parse(
|
||||
|
|
@ -610,27 +616,15 @@ Return as JSON array with key "filings"."""
|
|||
news_report = get_alpha_vantage_news_feed(topics=topics, time_from=time_from, limit=50)
|
||||
|
||||
# Parse with LLM
|
||||
current_datetime = datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
|
||||
cutoff_datetime = self.cutoff_time.strftime("%Y-%m-%dT%H:%M:%S")
|
||||
parse_prompt = f"""Parse this news feed and extract the most important market-moving stories.
|
||||
|
||||
CRITICAL TIME CONSTRAINT:
|
||||
- Current time: {current_datetime}
|
||||
- Only include news published AFTER: {cutoff_datetime}
|
||||
- Skip any articles older than {self.news_lookback_hours} hours
|
||||
{self._build_time_constraint()}
|
||||
|
||||
Prefer company-specific or single-catalyst stories that are likely to impact only one company or a small number of companies. Avoid broad market, index, or macroeconomic headlines unless they have a clear company-specific catalyst. If a story is broad or sector-wide without a specific company catalyst, skip it.
|
||||
{self._COMPANY_SPECIFIC_INSTRUCTION}
|
||||
|
||||
{news_report}
|
||||
|
||||
For each news item, extract:
|
||||
- title: Headline
|
||||
- summary: Key points
|
||||
- published_at: ISO-8601 timestamp (REQUIRED - extract from the data or convert relative times using current time {current_datetime})
|
||||
- companies_mentioned: Tickers/companies mentioned
|
||||
- themes: Key themes
|
||||
- sentiment: one of positive, negative, neutral
|
||||
- importance: 1-10 score (10 = highly market-moving)
|
||||
{self._build_extraction_fields("brief")}
|
||||
|
||||
Return as JSON array with key "news"."""
|
||||
response = self.openai_client.responses.parse(
|
||||
|
|
@ -718,24 +712,11 @@ Return as JSON array with key "news"."""
|
|||
model="gemini-2.5-flash-lite", api_key=google_api_key
|
||||
).with_structured_output(NewsList, method="json_schema")
|
||||
|
||||
current_datetime = datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
|
||||
cutoff_datetime = self.cutoff_time.strftime("%Y-%m-%dT%H:%M:%S")
|
||||
|
||||
structure_prompt = f"""Parse the following web search results into structured news items.
|
||||
|
||||
CRITICAL TIME CONSTRAINT:
|
||||
- Current time: {current_datetime}
|
||||
- Only include news published AFTER: {cutoff_datetime}
|
||||
- Skip any articles older than {self.news_lookback_hours} hours
|
||||
{self._build_time_constraint()}
|
||||
|
||||
For each news item, extract:
|
||||
- title: Headline
|
||||
- summary: 2-3 sentence summary of key points
|
||||
- published_at: ISO-8601 timestamp (REQUIRED - convert "X hours ago" to full timestamp using current time {current_datetime})
|
||||
- companies_mentioned: List of ticker symbols or company names
|
||||
- themes: List of key themes (e.g., "earnings beat", "FDA approval", "merger")
|
||||
- sentiment: one of positive, negative, neutral
|
||||
- importance: 1-10 score (10 = highly market-moving)
|
||||
{self._build_extraction_fields("full")}
|
||||
|
||||
Web search results:
|
||||
{raw_response.content}
|
||||
|
|
|
|||
|
|
@ -353,7 +353,7 @@ def render():
|
|||
with ctrl_cols[0]:
|
||||
pipelines = sorted(
|
||||
set(
|
||||
(r.get("pipeline") or r.get("strategy_match") or "unknown") for r in recommendations
|
||||
(r.get("strategy_match") or r.get("pipeline") or "unknown") for r in recommendations
|
||||
)
|
||||
)
|
||||
pipeline_filter = st.multiselect("Strategy", pipelines, default=pipelines)
|
||||
|
|
@ -368,7 +368,7 @@ def render():
|
|||
filtered = [
|
||||
r
|
||||
for r in recommendations
|
||||
if (r.get("pipeline") or r.get("strategy_match") or "unknown") in pipeline_filter
|
||||
if (r.get("strategy_match") or r.get("pipeline") or "unknown") in pipeline_filter
|
||||
and r.get("confidence", 0) >= min_confidence
|
||||
and r.get("final_score", 0) >= min_score
|
||||
]
|
||||
|
|
@ -404,13 +404,27 @@ def render():
|
|||
rank = rec.get("rank", idx + 1)
|
||||
score = rec.get("final_score", 0)
|
||||
confidence = rec.get("confidence", 0)
|
||||
strategy = (rec.get("pipeline") or rec.get("strategy_match") or "unknown").title()
|
||||
strategy = (rec.get("strategy_match") or rec.get("pipeline") or "unknown").title()
|
||||
entry_price = rec.get("entry_price", 0)
|
||||
reason = rec.get("reason", "No thesis provided.")
|
||||
company_name = rec.get("company_name", "")
|
||||
description = rec.get("description", "")
|
||||
risk_level = rec.get("risk_level", "")
|
||||
|
||||
with col:
|
||||
st.markdown(
|
||||
signal_card(rank, ticker, score, confidence, strategy, entry_price, reason),
|
||||
signal_card(
|
||||
rank,
|
||||
ticker,
|
||||
score,
|
||||
confidence,
|
||||
strategy,
|
||||
entry_price,
|
||||
reason,
|
||||
company_name,
|
||||
description,
|
||||
risk_level,
|
||||
),
|
||||
unsafe_allow_html=True,
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -332,6 +332,46 @@ div[data-testid="stMetric"] div[data-testid="stMetricDelta"] > div {{
|
|||
.strat-volume {{ border-left-color: {COLORS["cyan"]} !important; }}
|
||||
.strat-options {{ border-left-color: {COLORS["purple"]} !important; }}
|
||||
|
||||
/* ---- Company brief panel ---- */
|
||||
.company-brief {{
|
||||
margin: 0.45rem 0 0.7rem;
|
||||
padding: 0.45rem 0.75rem 0.45rem 0.85rem;
|
||||
border-left: 2px solid rgba(100, 116, 139, 0.35);
|
||||
background: rgba(10, 14, 23, 0.45);
|
||||
border-radius: 0 5px 5px 0;
|
||||
position: relative;
|
||||
}}
|
||||
.company-brief-label {{
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-size: 0.57rem;
|
||||
font-weight: 600;
|
||||
color: {COLORS["text_muted"]};
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.12em;
|
||||
margin-bottom: 0.22rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.35rem;
|
||||
}}
|
||||
.company-brief-label::before {{
|
||||
content: '//';
|
||||
color: {COLORS["green"]};
|
||||
font-weight: 700;
|
||||
font-size: 0.6rem;
|
||||
opacity: 0.7;
|
||||
}}
|
||||
.company-brief-text {{
|
||||
font-family: 'DM Sans', sans-serif;
|
||||
font-size: 0.79rem;
|
||||
line-height: 1.52;
|
||||
color: {COLORS["text_secondary"]};
|
||||
font-style: italic;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
}}
|
||||
|
||||
/* ---- Table styling ---- */
|
||||
.stDataFrame {{
|
||||
background: var(--bg-card) !important;
|
||||
|
|
@ -510,6 +550,9 @@ def signal_card(
|
|||
strategy: str,
|
||||
entry_price: float,
|
||||
reason: str,
|
||||
company_name: str = "",
|
||||
description: str = "",
|
||||
risk_level: str = "",
|
||||
) -> str:
|
||||
"""Render a recommendation signal card as HTML."""
|
||||
# Confidence bar color
|
||||
|
|
@ -545,21 +588,51 @@ def signal_card(
|
|||
strat_badge = "badge-blue"
|
||||
strat_css = "strat-volume"
|
||||
|
||||
# Risk level badge
|
||||
risk_badge_html = ""
|
||||
if risk_level:
|
||||
risk_lower = risk_level.lower()
|
||||
if risk_lower == "low":
|
||||
risk_badge_html = f'<span class="badge badge-green">{risk_level.title()}</span>'
|
||||
elif risk_lower == "moderate":
|
||||
risk_badge_html = f'<span class="badge badge-blue">{risk_level.title()}</span>'
|
||||
elif risk_lower == "high":
|
||||
risk_badge_html = f'<span class="badge badge-amber">{risk_level.title()}</span>'
|
||||
elif risk_lower == "speculative":
|
||||
risk_badge_html = f'<span class="badge badge-muted" style="border-color:{COLORS["red"]};">{risk_level.title()}</span>'
|
||||
|
||||
entry_str = f"${entry_price:.2f}" if entry_price else "N/A"
|
||||
conf_pct = confidence * 10
|
||||
|
||||
name_html = (
|
||||
f'<span style="font-size:0.8rem;color:{COLORS["text_muted"]};font-weight:400;">{company_name}</span>'
|
||||
if company_name and company_name != ticker
|
||||
else ""
|
||||
)
|
||||
desc_html = (
|
||||
f'<div class="company-brief">'
|
||||
f'<div class="company-brief-label">Company</div>'
|
||||
f'<div class="company-brief-text">{description}</div>'
|
||||
f'</div>'
|
||||
if description
|
||||
else ""
|
||||
)
|
||||
|
||||
return f"""
|
||||
<div class="signal-card {strat_css}">
|
||||
<div class="signal-header">
|
||||
<div style="display:flex;align-items:center;gap:0.75rem;">
|
||||
<span class="signal-ticker">{ticker}</span>
|
||||
<span class="signal-rank">#{rank}</span>
|
||||
{name_html}
|
||||
</div>
|
||||
</div>
|
||||
{desc_html}
|
||||
<div class="signal-badges">
|
||||
<span class="badge {strat_badge}">{strategy}</span>
|
||||
<span class="badge {score_badge}">Score {score}</span>
|
||||
<span class="badge badge-muted">Conf {confidence}/10</span>
|
||||
{risk_badge_html}
|
||||
</div>
|
||||
<div class="signal-metrics">
|
||||
<div class="signal-metric">
|
||||
|
|
|
|||
Loading…
Reference in New Issue