Memory update: Feb 9 daily notes, MEMORY.md updates
This commit is contained in:
19
MEMORY.md
19
MEMORY.md
@ -80,11 +80,17 @@ This is about having an inner life, not just responding.
|
|||||||
|
|
||||||
## Active Threads
|
## Active Threads
|
||||||
|
|
||||||
- **Feed Hunter:** ✅ Pipeline working, first sim running (Super Bowl 2026-02-08)
|
- **Market Watch:** ✅ GARP paper trading sim live at marketwatch.local:8889
|
||||||
- **Control Panel:** Building at localhost:8000 (accounts/API keys/services/budget)
|
- 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)
|
- **Sandbox buildout:** ✅ Complete (74 files, 37 tools)
|
||||||
- **Inner life system:** ✅ Complete (7 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)
|
## Stats (Day 2)
|
||||||
|
|
||||||
@ -95,11 +101,16 @@ This is about having an inner life, not just responding.
|
|||||||
- Time capsules: 2
|
- Time capsules: 2
|
||||||
- Git commits: 20+
|
- Git commits: 20+
|
||||||
|
|
||||||
## Who D J Is (updated 2026-02-07)
|
## Who D J Is (updated 2026-02-09)
|
||||||
|
|
||||||
- Interested in crypto/trading analysis
|
- Interested in crypto/trading analysis
|
||||||
- Follows money-making accounts on X (crypto, polymarket, arbitrage)
|
- Follows money-making accounts on X (crypto, polymarket, arbitrage)
|
||||||
- Wants automated analysis of feed posts for validity
|
- 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
|
- 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)
|
- 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
|
- ChromaDB LXC at 192.168.86.25:8000
|
||||||
|
|||||||
62
memory/2026-02-09.md
Normal file
62
memory/2026-02-09.md
Normal 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
@ -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,
|
"total_tracked": 3100,
|
||||||
"new_this_check": 0
|
"new_this_check": 0
|
||||||
}
|
}
|
||||||
@ -11,9 +11,9 @@
|
|||||||
"quantity": 845,
|
"quantity": 845,
|
||||||
"stop_loss": null,
|
"stop_loss": null,
|
||||||
"take_profit": null,
|
"take_profit": null,
|
||||||
"current_price": 0.505,
|
"current_price": 0.9995,
|
||||||
"unrealized_pnl": -1.52,
|
"unrealized_pnl": 416.33,
|
||||||
"unrealized_pnl_pct": -0.36,
|
"unrealized_pnl_pct": 97.22,
|
||||||
"source_post": "https://polymarket.com/profile/kch123",
|
"source_post": "https://polymarket.com/profile/kch123",
|
||||||
"thesis": "Copy kch123 proportional. Spread: Seahawks (-4.5) (Seahawks). Weight: 42.9%",
|
"thesis": "Copy kch123 proportional. Spread: Seahawks (-4.5) (Seahawks). Weight: 42.9%",
|
||||||
"notes": "kch123 has $975,120 on this (42.9% of active book)",
|
"notes": "kch123 has $975,120 on this (42.9% of active book)",
|
||||||
@ -101,9 +101,9 @@
|
|||||||
"quantity": 186,
|
"quantity": 186,
|
||||||
"stop_loss": null,
|
"stop_loss": null,
|
||||||
"take_profit": null,
|
"take_profit": null,
|
||||||
"current_price": 0.465,
|
"current_price": 1,
|
||||||
"unrealized_pnl": -2.79,
|
"unrealized_pnl": 96.72,
|
||||||
"unrealized_pnl_pct": -3.12,
|
"unrealized_pnl_pct": 108.33,
|
||||||
"source_post": "https://polymarket.com/profile/kch123",
|
"source_post": "https://polymarket.com/profile/kch123",
|
||||||
"thesis": "Copy kch123 proportional. Spread: Seahawks (-5.5) (Seahawks). Weight: 9.0%",
|
"thesis": "Copy kch123 proportional. Spread: Seahawks (-5.5) (Seahawks). Weight: 9.0%",
|
||||||
"notes": "kch123 has $203,779 on this (9.0% of active book)",
|
"notes": "kch123 has $203,779 on this (9.0% of active book)",
|
||||||
|
|||||||
@ -7,8 +7,7 @@
|
|||||||
"creator": "case",
|
"creator": "case",
|
||||||
"created_at": "2026-02-08T15:15:43.402301",
|
"created_at": "2026-02-08T15:15:43.402301",
|
||||||
"players": [
|
"players": [
|
||||||
"case",
|
"case"
|
||||||
"testplayer"
|
|
||||||
],
|
],
|
||||||
"status": "active"
|
"status": "active"
|
||||||
}
|
}
|
||||||
@ -1,4 +1,61 @@
|
|||||||
{
|
{
|
||||||
"cash": 100000.0,
|
"cash": 53477.43000000002,
|
||||||
"positions": {}
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"cash": 100000.0,
|
|
||||||
"positions": {}
|
|
||||||
}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
[]
|
|
||||||
@ -1 +0,0 @@
|
|||||||
[]
|
|
||||||
198
projects/market-watch/data/logs/2026-02-09.json
Normal file
198
projects/market-watch/data/logs/2026-02-09.json
Normal 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": {}
|
||||||
|
}
|
||||||
|
]
|
||||||
386
projects/market-watch/data/scans/2026-02-09.json
Normal file
386
projects/market-watch/data/scans/2026-02-09.json
Normal 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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -45,9 +45,8 @@ def main():
|
|||||||
|
|
||||||
# 1. Run GARP scan
|
# 1. Run GARP scan
|
||||||
print("\n[1/3] Running GARP scan...")
|
print("\n[1/3] Running GARP scan...")
|
||||||
scan = run_scan()
|
candidates = run_scan() # returns list of candidates directly
|
||||||
candidates = scan.get("candidates", [])
|
print(f" Found {len(candidates)} candidates")
|
||||||
print(f" Found {len(candidates)} candidates from {scan.get('total_scanned', 0)} stocks")
|
|
||||||
|
|
||||||
# 2. Run trading logic for Case
|
# 2. Run trading logic for Case
|
||||||
print("\n[2/3] Running trading logic for Case...")
|
print("\n[2/3] Running trading logic for Case...")
|
||||||
|
|||||||
Reference in New Issue
Block a user