Memory update: Feb 9 daily notes, MEMORY.md updates

This commit is contained in:
2026-02-09 11:04:49 -06:00
parent be43231c3f
commit b24d0e87de
15 changed files with 806 additions and 27 deletions

View File

@ -80,11 +80,17 @@ This is about having an inner life, not just responding.
## Active Threads
- **Feed Hunter:** ✅ Pipeline working, first sim running (Super Bowl 2026-02-08)
- **Control Panel:** Building at localhost:8000 (accounts/API keys/services/budget)
- **Market Watch:** ✅ GARP paper trading sim live at marketwatch.local:8889
- Multiplayer game engine, "GARP Challenge" game running
- Case trading autonomously — 7 positions opened 2026-02-09
- Systemd timer Mon-Fri 9AM + 3:30PM CST
- **Feed Hunter:** ✅ Pipeline working, Super Bowl sim +72.8% on kch123 copy
- Expanding into crypto and stock analysis
- **Stock Screener:** yfinance-based, 902 tickers, GARP filters, free/no API key
- **Control Panel:** Building at localhost:8000
- **Sandbox buildout:** ✅ Complete (74 files, 37 tools)
- **Inner life system:** ✅ Complete (7 tools)
- **Next:** Polymarket API registration, copy-bot scaffold
- **Next:** Crypto signal analysis (D J forwarding Telegram signals), expanded Feed Hunter
## Stats (Day 2)
@ -95,11 +101,16 @@ This is about having an inner life, not just responding.
- Time capsules: 2
- Git commits: 20+
## Who D J Is (updated 2026-02-07)
## Who D J Is (updated 2026-02-09)
- Interested in crypto/trading analysis
- Follows money-making accounts on X (crypto, polymarket, arbitrage)
- Wants automated analysis of feed posts for validity
- Goal: find market edges to offset AI costs ($200/mo Claude + infra)
- Getting crypto signals on Telegram — wants to forward for analysis
- Interested in local AI hardware (Tiiny AI) as potential Claude replacement
- Looking at queen Murphy beds, has mattress to get rid of
- Watches NFL (interested in Seahawks Super Bowl), Olympics hockey
- Proxmox VM setup: ubuntu-desktop-openclaw at 192.168.86.45
- Ollama server at 192.168.86.137 (qwen3:8b, qwen3:30b, glm-4.7-flash, nomic-embed-text)
- ChromaDB LXC at 192.168.86.25:8000

62
memory/2026-02-09.md Normal file
View File

@ -0,0 +1,62 @@
# 2026-02-09
## Market Watch Launch Day
- GARP paper trading simulator went live
- 9 AM systemd timer fired but crashed (scanner returns list, code expected dict) — fixed
- Manual run at 10:49 AM — **7 positions opened**:
- DUOL (57 shares @ $116.35)
- ALLY (156 shares @ $42.65)
- JHG (138 shares @ $48.21)
- INCY (61 shares @ $108.69)
- PINS (332 shares @ $20.06)
- EXEL (152 shares @ $43.80)
- CART (187 shares @ $35.49)
- ~$46.5K deployed, ~$53.5K cash remaining
- Portal live at marketwatch.local:8889
- Multiplayer game engine working — "GARP Challenge" game created
## Super Bowl Results (from last night)
- Seahawks 36, Patriots 13
- kch123 copy-trade sim: ALL 5 positions won, +$728 on $1K bankroll (+72.8%)
- kch123 himself probably cleared ~$2M profit on this game
- Two weeks straight of wins for kch123 (60-0 last week + Super Bowl sweep)
## Craigslist Account (from yesterday)
- Registered: case-lgn@protonmail.com, Nashville area
- Password set, credentials saved to .credentials/craigslist.env
- User ID: 405642144
- D J not ready for listings yet (needs photos)
## D J Interests
- Looking at queen Murphy beds on Craigslist
- Wants to get rid of an old mattress (options discussed: Metro Nashville bulky pickup, free CL listing, dump)
- Interested in Olympics men's hockey (USA in Group C, games start Feb 11)
- Expanding analysis beyond Polymarket into crypto and stocks
- Goal: find market gaps to offset AI service costs ($200/mo Claude + infra)
- Getting crypto signals on Telegram, wants to forward them for analysis
- Asked about Tiiny AI (kickstarter AI hardware, 80GB unified memory, NPU) as potential Claude replacement
## Stock Screener Built
- GARP filters automated via yfinance (free, no API key)
- S&P 500 + S&P 400 MidCap scan (~902 tickers)
- Initial S&P 500 scan found 4: BAC, CFG, FITB, INCY
- Expanded scan found 22 total candidates
- Top non-bank picks: PINS, FSLR, PGR, NEM, ALLY
- Deep dive sub-agent ran on all 4 original picks
## X Post Analysis: @Shelpid_WI3M / anoin123
- Wallet 0x96489abc... is real, +$1.59M PnL, 216 trades
- BUT: concentrated single-thesis bet (NO on Iran strikes), not diversified alpha
- Post is a shill for PolyCopyBot (Telegram copy-trading bot)
- Verdict: real wallet, misleading narrative, exists to sell bot subscriptions
## Tiiny AI Analysis
- 80GB LPDDR5X, ARM + NPU (160 TOPS), 18-40 tok/s, 30W
- Kickstarter vaporware — doesn't exist yet
- Would blow away D J's current 22GB VRAM setup IF it ships
- Recommended waiting for real reviews, not pre-ordering
## Lessons
- Scanner run_scan() returns list, not dict — caused systemd crash on first real run
- Always test the full pipeline end-to-end before relying on timers
- yfinance is reliable and free for fundamental data, no API key needed

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
{
"last_check": "2026-02-08T21:14:59.952296+00:00",
"last_check": "2026-02-09T16:58:59.975254+00:00",
"total_tracked": 3100,
"new_this_check": 0
}

View File

@ -11,9 +11,9 @@
"quantity": 845,
"stop_loss": null,
"take_profit": null,
"current_price": 0.505,
"unrealized_pnl": -1.52,
"unrealized_pnl_pct": -0.36,
"current_price": 0.9995,
"unrealized_pnl": 416.33,
"unrealized_pnl_pct": 97.22,
"source_post": "https://polymarket.com/profile/kch123",
"thesis": "Copy kch123 proportional. Spread: Seahawks (-4.5) (Seahawks). Weight: 42.9%",
"notes": "kch123 has $975,120 on this (42.9% of active book)",
@ -101,9 +101,9 @@
"quantity": 186,
"stop_loss": null,
"take_profit": null,
"current_price": 0.465,
"unrealized_pnl": -2.79,
"unrealized_pnl_pct": -3.12,
"current_price": 1,
"unrealized_pnl": 96.72,
"unrealized_pnl_pct": 108.33,
"source_post": "https://polymarket.com/profile/kch123",
"thesis": "Copy kch123 proportional. Spread: Seahawks (-5.5) (Seahawks). Weight: 9.0%",
"notes": "kch123 has $203,779 on this (9.0% of active book)",

View File

@ -7,8 +7,7 @@
"creator": "case",
"created_at": "2026-02-08T15:15:43.402301",
"players": [
"case",
"testplayer"
"case"
],
"status": "active"
}

View File

@ -1,4 +1,61 @@
{
"cash": 100000.0,
"positions": {}
"cash": 53477.43000000002,
"positions": {
"DUOL": {
"shares": 57,
"avg_cost": 116.35,
"current_price": 116.35,
"entry_date": "2026-02-09T10:55:58.243598",
"entry_reason": "GARP signal: PE=14.65, FwdPE=14.71, RevGr=41.1%, EPSGr=1114.3%, RSI=23.44",
"trailing_stop": 104.715
},
"ALLY": {
"shares": 156,
"avg_cost": 42.65,
"current_price": 42.65,
"entry_date": "2026-02-09T10:55:58.244488",
"entry_reason": "GARP signal: PE=18.0, FwdPE=6.76, RevGr=12.0%, EPSGr=265.4%, RSI=53.23",
"trailing_stop": 38.385
},
"JHG": {
"shares": 138,
"avg_cost": 48.21,
"current_price": 48.21,
"entry_date": "2026-02-09T10:55:58.245351",
"entry_reason": "GARP signal: PE=9.22, FwdPE=9.96, RevGr=61.3%, EPSGr=243.6%, RSI=68.71",
"trailing_stop": 43.389
},
"INCY": {
"shares": 61,
"avg_cost": 108.69,
"current_price": 108.69,
"entry_date": "2026-02-09T10:55:58.246289",
"entry_reason": "GARP signal: PE=18.42, FwdPE=13.76, RevGr=20.0%, EPSGr=290.7%, RSI=63.48",
"trailing_stop": 97.821
},
"PINS": {
"shares": 332,
"avg_cost": 20.06,
"current_price": 20.06,
"entry_date": "2026-02-09T10:55:58.247262",
"entry_reason": "GARP signal: PE=7.04, FwdPE=10.61, RevGr=16.8%, EPSGr=225.0%, RSI=19.14",
"trailing_stop": 18.054
},
"EXEL": {
"shares": 152,
"avg_cost": 43.8,
"current_price": 43.8,
"entry_date": "2026-02-09T10:55:58.252764",
"entry_reason": "GARP signal: PE=18.4, FwdPE=12.76, RevGr=10.8%, EPSGr=72.5%, RSI=50.12",
"trailing_stop": 39.42
},
"CART": {
"shares": 187,
"avg_cost": 35.49,
"current_price": 35.49,
"entry_date": "2026-02-09T10:55:58.254418",
"entry_reason": "GARP signal: PE=19.5, FwdPE=9.05, RevGr=10.2%, EPSGr=21.1%, RSI=37.75",
"trailing_stop": 31.941000000000003
}
}
}

View File

@ -1 +1,10 @@
[]
[
{
"date": "2026-02-09",
"total_value": 100000.0,
"total_pnl": 0.0,
"pnl_pct": 0.0,
"cash": 53477.43,
"num_positions": 7
}
]

View File

@ -1 +1,65 @@
[]
[
{
"action": "BUY",
"ticker": "DUOL",
"shares": 57,
"price": 116.35,
"cost": 6631.95,
"reason": "GARP signal: PE=14.65, FwdPE=14.71, RevGr=41.1%, EPSGr=1114.3%, RSI=23.44",
"timestamp": "2026-02-09T10:55:58.243888"
},
{
"action": "BUY",
"ticker": "ALLY",
"shares": 156,
"price": 42.65,
"cost": 6653.4,
"reason": "GARP signal: PE=18.0, FwdPE=6.76, RevGr=12.0%, EPSGr=265.4%, RSI=53.23",
"timestamp": "2026-02-09T10:55:58.244719"
},
{
"action": "BUY",
"ticker": "JHG",
"shares": 138,
"price": 48.21,
"cost": 6652.98,
"reason": "GARP signal: PE=9.22, FwdPE=9.96, RevGr=61.3%, EPSGr=243.6%, RSI=68.71",
"timestamp": "2026-02-09T10:55:58.245596"
},
{
"action": "BUY",
"ticker": "INCY",
"shares": 61,
"price": 108.69,
"cost": 6630.09,
"reason": "GARP signal: PE=18.42, FwdPE=13.76, RevGr=20.0%, EPSGr=290.7%, RSI=63.48",
"timestamp": "2026-02-09T10:55:58.246554"
},
{
"action": "BUY",
"ticker": "PINS",
"shares": 332,
"price": 20.06,
"cost": 6659.92,
"reason": "GARP signal: PE=7.04, FwdPE=10.61, RevGr=16.8%, EPSGr=225.0%, RSI=19.14",
"timestamp": "2026-02-09T10:55:58.247536"
},
{
"action": "BUY",
"ticker": "EXEL",
"shares": 152,
"price": 43.8,
"cost": 6657.6,
"reason": "GARP signal: PE=18.4, FwdPE=12.76, RevGr=10.8%, EPSGr=72.5%, RSI=50.12",
"timestamp": "2026-02-09T10:55:58.253048"
},
{
"action": "BUY",
"ticker": "CART",
"shares": 187,
"price": 35.49,
"cost": 6636.63,
"reason": "GARP signal: PE=19.5, FwdPE=9.05, RevGr=10.2%, EPSGr=21.1%, RSI=37.75",
"timestamp": "2026-02-09T10:55:58.254721"
}
]

View File

@ -1,4 +0,0 @@
{
"cash": 100000.0,
"positions": {}
}

View File

@ -0,0 +1,198 @@
[
{
"timestamp": "2026-02-09T10:55:58.244115",
"action": "BUY",
"ticker": "DUOL",
"reason": "GARP signal: PE=14.65, FwdPE=14.71, RevGr=41.1%, EPSGr=1114.3%, RSI=23.44",
"details": {
"success": true,
"ticker": "DUOL",
"shares": 57,
"price": 116.35,
"cost": 6631.95,
"cash_remaining": 93368.05
}
},
{
"timestamp": "2026-02-09T10:55:58.244903",
"action": "BUY",
"ticker": "ALLY",
"reason": "GARP signal: PE=18.0, FwdPE=6.76, RevGr=12.0%, EPSGr=265.4%, RSI=53.23",
"details": {
"success": true,
"ticker": "ALLY",
"shares": 156,
"price": 42.65,
"cost": 6653.4,
"cash_remaining": 86714.65
}
},
{
"timestamp": "2026-02-09T10:55:58.245798",
"action": "BUY",
"ticker": "JHG",
"reason": "GARP signal: PE=9.22, FwdPE=9.96, RevGr=61.3%, EPSGr=243.6%, RSI=68.71",
"details": {
"success": true,
"ticker": "JHG",
"shares": 138,
"price": 48.21,
"cost": 6652.98,
"cash_remaining": 80061.67
}
},
{
"timestamp": "2026-02-09T10:55:58.246780",
"action": "BUY",
"ticker": "INCY",
"reason": "GARP signal: PE=18.42, FwdPE=13.76, RevGr=20.0%, EPSGr=290.7%, RSI=63.48",
"details": {
"success": true,
"ticker": "INCY",
"shares": 61,
"price": 108.69,
"cost": 6630.09,
"cash_remaining": 73431.58
}
},
{
"timestamp": "2026-02-09T10:55:58.247771",
"action": "BUY",
"ticker": "PINS",
"reason": "GARP signal: PE=7.04, FwdPE=10.61, RevGr=16.8%, EPSGr=225.0%, RSI=19.14",
"details": {
"success": true,
"ticker": "PINS",
"shares": 332,
"price": 20.06,
"cost": 6659.92,
"cash_remaining": 66771.66
}
},
{
"timestamp": "2026-02-09T10:55:58.248094",
"action": "SKIP",
"ticker": "VLY",
"reason": "RSI too high (78.6 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.248884",
"action": "SKIP",
"ticker": "FHN",
"reason": "RSI too high (76.1 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.249433",
"action": "SKIP",
"ticker": "FNB",
"reason": "RSI too high (71.9 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.250037",
"action": "SKIP",
"ticker": "SSB",
"reason": "RSI too high (92.2 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.250674",
"action": "SKIP",
"ticker": "WBS",
"reason": "RSI too high (82.1 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.251353",
"action": "SKIP",
"ticker": "WAL",
"reason": "RSI too high (71.8 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.251944",
"action": "SKIP",
"ticker": "ONB",
"reason": "RSI too high (81.2 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.253279",
"action": "BUY",
"ticker": "EXEL",
"reason": "GARP signal: PE=18.4, FwdPE=12.76, RevGr=10.8%, EPSGr=72.5%, RSI=50.12",
"details": {
"success": true,
"ticker": "EXEL",
"shares": 152,
"price": 43.8,
"cost": 6657.6,
"cash_remaining": 60114.06
}
},
{
"timestamp": "2026-02-09T10:55:58.253702",
"action": "SKIP",
"ticker": "ZION",
"reason": "RSI too high (74.0 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.254967",
"action": "BUY",
"ticker": "CART",
"reason": "GARP signal: PE=19.5, FwdPE=9.05, RevGr=10.2%, EPSGr=21.1%, RSI=37.75",
"details": {
"success": true,
"ticker": "CART",
"shares": 187,
"price": 35.49,
"cost": 6636.63,
"cash_remaining": 53477.43
}
},
{
"timestamp": "2026-02-09T10:55:58.255400",
"action": "SKIP",
"ticker": "CFG",
"reason": "RSI too high (80.9 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.256002",
"action": "SKIP",
"ticker": "UBSI",
"reason": "RSI too high (80.0 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.256804",
"action": "SKIP",
"ticker": "EWBC",
"reason": "RSI too high (79.3 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.257554",
"action": "SKIP",
"ticker": "FITB",
"reason": "Too close to 52wk high (1.8% away)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.258277",
"action": "SKIP",
"ticker": "BAC",
"reason": "RSI too high (78.3 > 70)",
"details": {}
},
{
"timestamp": "2026-02-09T10:55:58.259039",
"action": "SKIP",
"ticker": "WTFC",
"reason": "RSI too high (72.6 > 70)",
"details": {}
}
]

View File

@ -0,0 +1,386 @@
{
"date": "2026-02-09",
"timestamp": "2026-02-09T10:55:58.242176",
"total_scanned": 902,
"candidates_found": 21,
"candidates": [
{
"ticker": "DUOL",
"price": 116.35,
"market_cap": 5378552832,
"market_cap_b": 5.4,
"trailing_pe": 14.65,
"forward_pe": 14.71,
"peg_ratio": null,
"revenue_growth": 41.1,
"earnings_growth": 1114.3,
"roe": 36.2,
"quick_ratio": 2.6,
"debt_to_equity": 7.4,
"rsi": 23.44,
"week52_high": 544.93,
"pct_from_52wk_high": 78.6,
"score": -100.83
},
{
"ticker": "ALLY",
"price": 42.65,
"market_cap": 13158768640,
"market_cap_b": 13.2,
"trailing_pe": 18.0,
"forward_pe": 6.76,
"peg_ratio": null,
"revenue_growth": 12.0,
"earnings_growth": 265.4,
"roe": 5.8,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 53.23,
"week52_high": 47.27,
"pct_from_52wk_high": 9.8,
"score": -20.98
},
{
"ticker": "JHG",
"price": 48.21,
"market_cap": 7447323136,
"market_cap_b": 7.4,
"trailing_pe": 9.22,
"forward_pe": 9.96,
"peg_ratio": null,
"revenue_growth": 61.3,
"earnings_growth": 243.6,
"roe": 16.2,
"quick_ratio": 69.46,
"debt_to_equity": 6.5,
"rsi": 68.71,
"week52_high": 49.42,
"pct_from_52wk_high": 2.4,
"score": -20.529999999999998
},
{
"ticker": "INCY",
"price": 108.69,
"market_cap": 21338314752,
"market_cap_b": 21.3,
"trailing_pe": 18.42,
"forward_pe": 13.76,
"peg_ratio": null,
"revenue_growth": 20.0,
"earnings_growth": 290.7,
"roe": 30.4,
"quick_ratio": 2.86,
"debt_to_equity": 0.9,
"rsi": 63.48,
"week52_high": 112.29,
"pct_from_52wk_high": 3.2,
"score": -17.310000000000002
},
{
"ticker": "PINS",
"price": 20.06,
"market_cap": 13635989504,
"market_cap_b": 13.6,
"trailing_pe": 7.04,
"forward_pe": 10.61,
"peg_ratio": null,
"revenue_growth": 16.8,
"earnings_growth": 225.0,
"roe": 51.5,
"quick_ratio": 8.14,
"debt_to_equity": 4.3,
"rsi": 19.14,
"week52_high": 40.38,
"pct_from_52wk_high": 50.3,
"score": -13.57
},
{
"ticker": "VLY",
"price": 13.72,
"market_cap": 7647972352,
"market_cap_b": 7.6,
"trailing_pe": 13.58,
"forward_pe": 9.2,
"peg_ratio": null,
"revenue_growth": 38.3,
"earnings_growth": 66.3,
"roe": 7.8,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 78.6,
"week52_high": 13.79,
"pct_from_52wk_high": 0.5,
"score": -1.2600000000000002
},
{
"ticker": "FHN",
"price": 26.33,
"market_cap": 12967198720,
"market_cap_b": 13.0,
"trailing_pe": 14.08,
"forward_pe": 11.23,
"peg_ratio": null,
"revenue_growth": 23.7,
"earnings_growth": 74.9,
"roe": 10.9,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 76.1,
"week52_high": 26.56,
"pct_from_52wk_high": 0.8,
"score": 1.37
},
{
"ticker": "FNB",
"price": 19.05,
"market_cap": 6822501376,
"market_cap_b": 6.8,
"trailing_pe": 12.21,
"forward_pe": 9.73,
"peg_ratio": null,
"revenue_growth": 26.4,
"earnings_growth": 56.5,
"roe": 8.7,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 71.92,
"week52_high": 19.14,
"pct_from_52wk_high": 0.4,
"score": 1.4400000000000004
},
{
"ticker": "SSB",
"price": 107.67,
"market_cap": 10821986304,
"market_cap_b": 10.8,
"trailing_pe": 13.68,
"forward_pe": 10.18,
"peg_ratio": null,
"revenue_growth": 53.2,
"earnings_growth": 30.9,
"roe": 10.7,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 92.25,
"week52_high": 108.46,
"pct_from_52wk_high": 0.7,
"score": 1.7699999999999996
},
{
"ticker": "WBS",
"price": 73.28,
"market_cap": 11818547200,
"market_cap_b": 11.8,
"trailing_pe": 12.42,
"forward_pe": 9.79,
"peg_ratio": null,
"revenue_growth": 18.2,
"earnings_growth": 53.4,
"roe": 10.8,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 82.13,
"week52_high": 73.5,
"pct_from_52wk_high": 0.3,
"score": 2.6299999999999994
},
{
"ticker": "WAL",
"price": 96.21,
"market_cap": 10588263424,
"market_cap_b": 10.6,
"trailing_pe": 11.02,
"forward_pe": 8.09,
"peg_ratio": null,
"revenue_growth": 16.6,
"earnings_growth": 32.9,
"roe": 13.5,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 71.81,
"week52_high": 96.94,
"pct_from_52wk_high": 0.8,
"score": 3.1399999999999997
},
{
"ticker": "ONB",
"price": 25.93,
"market_cap": 10132744192,
"market_cap_b": 10.1,
"trailing_pe": 14.49,
"forward_pe": 9.04,
"peg_ratio": null,
"revenue_growth": 41.4,
"earnings_growth": 17.2,
"roe": 9.0,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 81.24,
"week52_high": 26.17,
"pct_from_52wk_high": 0.9,
"score": 3.1799999999999997
},
{
"ticker": "EXEL",
"price": 43.8,
"market_cap": 11791070208,
"market_cap_b": 11.8,
"trailing_pe": 18.4,
"forward_pe": 12.76,
"peg_ratio": null,
"revenue_growth": 10.8,
"earnings_growth": 72.5,
"roe": 30.6,
"quick_ratio": 3.5,
"debt_to_equity": 8.2,
"rsi": 50.12,
"week52_high": 49.62,
"pct_from_52wk_high": 11.7,
"score": 4.43
},
{
"ticker": "ZION",
"price": 65.29,
"market_cap": 9640263680,
"market_cap_b": 9.6,
"trailing_pe": 10.86,
"forward_pe": 9.99,
"peg_ratio": null,
"revenue_growth": 13.6,
"earnings_growth": 31.4,
"roe": 13.5,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 74.03,
"week52_high": 66.18,
"pct_from_52wk_high": 1.3,
"score": 5.49
},
{
"ticker": "CART",
"price": 35.49,
"market_cap": 9349425152,
"market_cap_b": 9.3,
"trailing_pe": 19.5,
"forward_pe": 9.05,
"peg_ratio": null,
"revenue_growth": 10.2,
"earnings_growth": 21.1,
"roe": 15.3,
"quick_ratio": 3.33,
"debt_to_equity": 1.0,
"rsi": 37.75,
"week52_high": 53.5,
"pct_from_52wk_high": 33.7,
"score": 5.92
},
{
"ticker": "CFG",
"price": 68.17,
"market_cap": 29278072832,
"market_cap_b": 29.3,
"trailing_pe": 17.66,
"forward_pe": 10.82,
"peg_ratio": null,
"revenue_growth": 10.7,
"earnings_growth": 35.9,
"roe": 7.2,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 80.86,
"week52_high": 68.65,
"pct_from_52wk_high": 0.7,
"score": 6.16
},
{
"ticker": "UBSI",
"price": 45.32,
"market_cap": 6316939264,
"market_cap_b": 6.3,
"trailing_pe": 13.86,
"forward_pe": 12.03,
"peg_ratio": null,
"revenue_growth": 22.1,
"earnings_growth": 32.1,
"roe": 8.9,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 80.0,
"week52_high": 45.93,
"pct_from_52wk_high": 1.3,
"score": 6.61
},
{
"ticker": "EWBC",
"price": 123.19,
"market_cap": 16949170176,
"market_cap_b": 16.9,
"trailing_pe": 12.94,
"forward_pe": 11.24,
"peg_ratio": null,
"revenue_growth": 21.6,
"earnings_growth": 21.3,
"roe": 15.9,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 79.27,
"week52_high": 123.82,
"pct_from_52wk_high": 0.5,
"score": 6.949999999999999
},
{
"ticker": "FITB",
"price": 54.38,
"market_cap": 48944635904,
"market_cap_b": 48.9,
"trailing_pe": 15.41,
"forward_pe": 11.09,
"peg_ratio": null,
"revenue_growth": 11.5,
"earnings_growth": 20.8,
"roe": 12.2,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 66.02,
"week52_high": 55.36,
"pct_from_52wk_high": 1.8,
"score": 7.859999999999999
},
{
"ticker": "BAC",
"price": 56.43,
"market_cap": 412079849472,
"market_cap_b": 412.1,
"trailing_pe": 14.81,
"forward_pe": 11.38,
"peg_ratio": null,
"revenue_growth": 13.2,
"earnings_growth": 20.9,
"roe": 10.2,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 78.3,
"week52_high": 57.55,
"pct_from_52wk_high": 1.9,
"score": 7.970000000000001
},
{
"ticker": "WTFC",
"price": 159.71,
"market_cap": 10696563712,
"market_cap_b": 10.7,
"trailing_pe": 14.0,
"forward_pe": 11.91,
"peg_ratio": null,
"revenue_growth": 10.5,
"earnings_growth": 19.4,
"roe": 12.1,
"quick_ratio": null,
"debt_to_equity": null,
"rsi": 72.56,
"week52_high": 162.96,
"pct_from_52wk_high": 2.0,
"score": 8.92
}
]
}

View File

@ -45,9 +45,8 @@ def main():
# 1. Run GARP scan
print("\n[1/3] Running GARP scan...")
scan = run_scan()
candidates = scan.get("candidates", [])
print(f" Found {len(candidates)} candidates from {scan.get('total_scanned', 0)} stocks")
candidates = run_scan() # returns list of candidates directly
print(f" Found {len(candidates)} candidates")
# 2. Run trading logic for Case
print("\n[2/3] Running trading logic for Case...")