Most trading agents read the chart. This one reads the story. AI LOGIC. Nine macro sectors map onto liquid ETFs: Energy to XLE, Bonds to TLT, Financials to XLF. Each cycle pulls Alpaca's news wire, buckets them by Alpaca's ticker tags plus keywords, and asks the model one question per sector: where does this trade over the next two to six weeks, and how sure are you? It returns direction, conviction, and the likeliest way it is wrong. Bullish becomes a put credit spread below the market; neutral trades nothing. Conviction is the throttle. Sectors under four articles get no model call. Every close is replayed into that sector's next prompt, including how often it was wrong. RISK GATES. The model proposes, deterministic code disposes. Limits live in risk_rules.json, outside the model's reach. Loss caps measure against starting capital, not live equity, so the budget does not shrink when the account is losing. Two percent per trade, ten percent portfolio, 25 percent cash buffer, one position per underlying. Three stop-outs in a day or an eight percent drawdown halts entries, never exits. The paper feed returns no greeks, so the agent solves its own Black-Scholes implied volatility and delta, then scales each stop to that position's vol. Profit tiers at 35, 55, 75 percent of credit. Going live is a human edit, not a flag. ALPACA. Every write goes through the Alpaca CLI as a subprocess returning JSON: account, clock, positions, order reconciliation, and multi-leg orders via --order-class mleg. Its --dry-run validates an order before anything is sent. Reads the CLI lacks use the SDK. Every decision, refusals included, lands in a JSONL audit log with its reason. MEASUREMENT. Tested, not assumed. Against an always-long baseline the raw signal underperformed by 11 points. Bearish theses hit 31 percent and were disabled on that evidence. Outcome memory closed the gap to 2 points and turned mean return positive, but did not close it. That is the honest result.
Category tags: