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

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...")