Files
ibkr-quant/config.toml
Gahow Wang dc94f63839 Daily UpCap+MomGap trading on an IBKR paper account
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>
2026-09-28 21:53:31 +08:00

26 lines
1.1 KiB
TOML

[ib]
host = "127.0.0.1"
port = 4002 # IB Gateway: paper 4002 / live 4001; TWS: paper 7497 / live 7496
client_id = 17
account = "" # empty = the single account managed by this login
market_data_type = 3 # 1 = live (needs subscription), 3 = delayed (free, for testing)
allow_live = false # refuse to connect to non-paper accounts unless true
[data]
universe = "data/universe.csv"
bars = "data/bars/daily.csv"
bars_duration = "2 Y" # the strategy needs > 252 sessions
# UpCap+MomGap (daily), ported from quant-trading fc_up_cap_mom_gap_daily:
# signal on opens through today's open, equal-weight top_n, filled at today's close.
[strategy]
top_n = 10
[execution]
order_type = "MOC" # MOC (submit 09:30-15:45 ET) | LMT
limit_offset_bps = 20 # LMT only: price = snapshot * (1 ± offset)
cash_buffer = 0.02 # fraction of NAV kept in cash
resize_band = 0.10 # leave a held name alone while within 10% of its target value
min_trade_value = 50.0 # skip trades below max(min_trade_value, min_trade_fraction * NAV);
min_trade_fraction = 0.001 # full exits always trade