Every position is the strategy's: names it does not select, including ones
outside the index such as AAOI, are sold at the next rebalance, and sizing
uses the full NAV less the cash buffer. A position that is not a USD stock
cannot be traded as a SMART/USD order, so rebalance refuses to run while
one exists.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rebalance treated only today's S&P 500 members as the strategy's, so a held
name that left the index (or was renamed on Wikipedia) was never sold and
its value shrank the investable amount, unlike quant-trading's engine, which
sells non-members at the next rebalance. Now every USD stock/ETF position
is managed except execution.unmanaged (AAOI); a holding without bars is
priced from the account for its exit. On the paper account the managed set
is unchanged (the 10 current members).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Connects to IB Gateway through ib_async and trades the S&P 500 with the
UpCap+MomGap factor combo ported from quant-trading's
fc_up_cap_mom_gap_daily: signal on opens through today's open, equal
weight top 10, MOC orders filled at today's close, 10% resize band.
- make universe/bars/check/plan/submit/fills for the daily loop; refuses
non-paper accounts unless allow_live, open orders, stale bars, and
orders outside 09:31-15:45 ET
- make backtest replays the live loop day by day with plan_orders and
IBKR Fixed commissions; selection uses each day's index members
- make bars fails fast when the Gateway's historical farm is down
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>