/screen-low
Cosa fa. Lista pronta di strumenti difensivi/di qualità a basso rischio. In modalità stock usa la pipeline di ranking di /top con re-scoring AI.
Quando usarlo. Per un profilo prudente.
Argomenti. [stock|etf|crypto] [N 1-40, def 10] — stock only: [balanced|trend|contrarian] [f50-150, def f50] [ai 0.1-1, def 0.35] [sector N, def off]
Esempio. /screen-low 10 stock f100 sector 2
Cosa restituisce. I top N a basso rischio: lo AI re-scorea il pool (floor, default 50) a lotti da 5 e ordina per punteggio finale.
Nota. ### Azioni
I tre profili sono separati dalla volatilità, non dalla dimensione: beta 1,0 è lo spartiacque standard fra “più calmo del mercato” e “più rischioso del mercato”.
| profilo | seleziona | requisiti principali |
|---|---|---|
/screen-low | beta ≤ 1,0 | grande capitalizzazione, Altman in zona sicura, cassa positiva, salute finanziaria alta |
/screen-mid | beta fra 1,0 e 1,8 | qualità con crescita; qui trovi i mega-cap che il prudente esclude |
/screen-high | small/mid cap | ricavi in crescita di almeno il 10%; distress e perdite ammessi |
Prudente e bilanciato non si sovrappongono: un titolo difensivo non ricompare nel bilanciato.
Un titolo che non rientra in nessuna delle tre fasce semplicemente non è un’idea adatta a nessuno
dei tre profili — per cercarlo comunque usa /screen-custom.
Dove una metrica non ha senso per un’azienda (l’Altman Z su una banca, il debito/patrimonio su chi ha patrimonio netto negativo per i buyback) il controllo non viene saltato: viene richiesto un sostituto, ad esempio il ROE per le banche.
Crypto ed ETF: filtri completamente diversi
Sezione intitolata “Crypto ed ETF: filtri completamente diversi”Non sono le stesse soglie applicate ad altri dati: sono tre motori separati. Le modalità
crypto ed etf non passano dalla pipeline di ranking delle azioni, ed è il motivo per cui
ignorano tutti i parametri opzionali elencati sotto.
| profilo | crypto | ETF |
|---|---|---|
low | fra le prime 20 per capitalizzazione, non in calo oltre il 25% sul mese, liquide | obbligazionari e difensivi, patrimonio ≥ 1 mld, spese ≤ 0,20% |
mid | fra le prime 100, senza movimenti violenti nelle 24h | mercato ampio (S&P 500, total market), patrimonio ≥ 5 mld, spese ≤ 0,15% |
high | capitalizzazione ≥ 50 mln, ordinate per rendimento a 7 giorni | tutto tranne obbligazionario e difensivo, patrimonio ≥ 500 mln |
Nei profili crypto prudente e bilanciato le stablecoin sono escluse: un elenco di idee da comprare che propone USDT non serve a niente, perché il suo prezzo non si muove per costruzione.
Sugli ETF non c’è alcun filtro sui rendimenti passati, ed è voluto: pretendere un 5 anni positivo escluderebbe BND, AGG e LQD — cioè proprio i fondi obbligazionari che il profilo prudente deve restituire, negativi su quell’orizzonte dopo il rialzo dei tassi del 2022.
Parametri opzionali (solo azioni)
Sezione intitolata “Parametri opzionali (solo azioni)”Valgono solo in modalità stock; le modalità etf e crypto li ignorano:
- strategia —
balanced(default),trendpremia i titoli in salita,contrarianpremia gli ipervenduti. Agisce sul solo fattore momentum. f<N>— ampiezza del pool di candidati da cui pescare, 50-150 (default 50). Più alto = l’AI valuta più titoli, ma la risposta è più lenta.ai <N>— quanto pesa il giudizio dell’AI rispetto al punteggio quantitativo, 0.1-1 (default 0.35). Il punteggio finale ècomposite + ai × punteggio_AI: alzarlo lascia più libertà al modello, abbassarlo dà più forza ai filtri e ai percentili settoriali.sector <N>— massimo N titoli dello stesso settore nella tabella finale. Se non lo scrivi non c’è alcun limite, quindi la lista può concentrarsi su un solo settore.
Come funziona
Sezione intitolata “Come funziona”Quando lanci /screen-low, Dexter non esegue codice fisso: invia all’AI la prompt qui sotto — il segnaposto {arg} viene sostituito con ciò che scrivi dopo il comando — e l’agente la esegue chiamando da sé gli strumenti necessari. Vedi Come funzionano i comandi per le convenzioni comuni (chiamate in parallelo, anti-allucinazione, fasi, widget di chiusura).
Strumenti che può usare: preset_crypto_screener, preset_etf_screener, ranked_opportunities, get_key_ratios, finalize_ranking.
Prompt completa
Sezione intitolata “Prompt completa”È la prompt esatta inviata all’AI quando usi il comando (sostituendo {arg}).
Check the first word of "{arg}" (case-insensitive).
--- CRYPTO MODE (first word = "crypto") ---Extract the number AFTER "crypto". Default=10, min=1, max=30 (clamp out-of-range; if clamped, say so in one short line).Do NOT echo your parsing or repeat any preamble — go straight to the tool call.Step 1 — YOU MUST call preset_crypto_screener with profile="low" and limit=N as your FIRST action. Crypto prices and 24h/7d/30d% change every minute; you CANNOT know them from memory, and any table written without this tool call will contain invented, stale numbers. Do NOT call any other tool.Step 2 — Present ALL results from the tool in a SINGLE markdown table:Symbol | Name | Rank | Price | MCap | 24h% | 7d% | 30d% | RSIUse ONLY numbers that appear in the tool result; write N/A for any missing field — NEVER invent or guess a price/percent. The 24h/7d/30d values are ALREADY percentages (e.g. 0.49 → "+0.49%"); do NOT multiply by 100. Price and MCap are in USD.Step 3 — Per coin: 1-line stability rationale (liquidity, adoption, supply economics).Disclaimer: quantitative screening, not personalized advice.
--- ETF MODE (first word = "etf") ---Extract the number AFTER "etf" in "{arg}". Default=10, min=1, max=25 (clamp out-of-range; if clamped, say so in one short line).Do NOT echo your parsing or repeat any preamble — go straight to the tool call.Step 1 — YOU MUST call preset_etf_screener with profile="low" and limit=N as your FIRST action. Do NOT write the table from memory — ETF names/AUM/returns must come from the tool. Do NOT call any other tool.Step 2 — Present ALL results from the tool in a SINGLE markdown table. Use ONLY data from the tool result; write N/A for any missing field — NEVER invent values.Step 3 — For each ETF: 1-line assessment (what makes it conservative).Disclaimer: quantitative screening, not personalized advice.
--- STOCK MODE (anything else) ---Parse the STOCK-mode tokens from "{arg}" (space-separated). The optional literal word "stock" may appear and is ignored.- N: a bare integer → how many top stocks to present. Default=10, min=1, max=40. If a value >40 is requested, use 40 and say so.- FLOOR: a token "f" immediately followed by digits (e.g. f100) → the candidate pool size passed to ranked_opportunities. Default=50, min=50, max=150. If a value >150 is requested, use 150 and say so; if <50 is requested, use 50 and say so.- STRATEGY: the literal word "balanced", "trend" or "contrarian" → the momentum tilt passed to the ranking tools. Default="balanced". trend rewards uptrends; contrarian rewards oversold/beaten-down names. Any other word is ignored.- AI_WEIGHT: the word "ai" followed by a number (e.g. "ai 0.5" or "ai0.5") → how much your ai_score may move a candidate. Range 0.1-1.0, default=0.35. Clamp out-of-range values and say so in one short line.- SECTOR_CAP: the word "sector" followed by an integer (e.g. "sector 5" or "sector5") → max rows per sector in the final table. If ABSENT there is NO cap; if present, pass exactly the number the user wrote.Examples: "10" → N=10 FLOOR=50 STRATEGY=balanced AI_WEIGHT=0.35 no sector cap; "contrarian" → STRATEGY=contrarian;"20 trend f150" → N=20 FLOOR=150 STRATEGY=trend; "10 ai 1 sector 3" → N=10 AI_WEIGHT=1.0 SECTOR_CAP=3; "ai 0.05" → AI_WEIGHT=0.1 (clamped).If "{arg}" is blank or literally "{arg}", use N=10 FLOOR=50 STRATEGY=balanced AI_WEIGHT=0.35 and no sector cap. Do NOT echo your parsing or repeat any preamble — go straight to the steps below.
Step 1 — Candidates. Call ranked_opportunities with profile="low", strategy=STRATEGY, and limit=FLOOR (ONE call).It returns candidates PRE-RANKED by a composite score (sector-relative percentiles + 5-factor model), grouped into BATCHES of 5in data.batches (data.batch_count batches, last one may be smaller). Do NOT call preset_screener or get_key_ratios — everything you need is in the tool result.
Step 2 — AI re-score, BATCH BY BATCH. Process the batches IN ORDER. For each batch (up to 5 candidates) assign EACH an ai_score0.00-1.00, judging it as a LOW-RISK BUY:reward dividend yield, low D/E, high Piotroski/Health, low beta, positive FCF yield, strong current ratio, reasonable valuation;penalise high beta, high D/E, negative FCF, speculative growth.After each batch, append its {ticker, ai_score} pairs to a running list you carry forward through EVERY batch. Do NOT skip batches.
Step 3 — Finalize (deterministic). After the LAST batch, make ONE call to finalize_ranking with profile="low", strategy=STRATEGY,top_n=N, ai_weight=AI_WEIGHT, max_per_sector=SECTOR_CAP (OMIT this argument entirely when the user gave no "sector" token)and scores = the FULL list of {ticker, ai_score} you collected. The server computes final = composite_score + ai_weight × ai_score,sorts, applies the sector cap and returns data.ranked (top N). Do the math and the sort with this tool — never rank by hand.If data.sector_skipped is non-empty, add ONE short line naming the tickers dropped by the sector cap.
Step 4 — Present the top N from data.ranked (already in order). ONE markdown table:Ticker | Name | Sector | Price | MCap | Composite | Final | Piotroski | AltmanZ | Health | P/E | Div YieldDiv Yield column: use dividend_yield_pct (it is ALREADY an annual percentage, e.g. 1.5 → "1.5%"; do NOT multiply by 100). Write N/A when it is null (non-payer).Then, for each of the top N, a 2-4 sentence BUY thesis: entry rationale (pullback/valuation), key strengths (with numbers),main risk, and analyst upside. Use ONLY numbers from the tool data; write N/A if a metric is missing — never invent values.Disclaimer: quantitative ranking, not personalized advice.