# Needs IB Gateway or TWS running and logged in, with
# "Enable ActiveX and Socket Clients" on and the port matching config.toml.
# Daily flow, 09:31-15:45 ET on a trading day: `make bars` (picks up today's
# open), `make plan` to review, `make submit` to send MOC orders filled at the close.
# With delayed data (market_data_type = 3) today's bar appears ~15 min after the
# open, so start after 09:47 ET.
RUN = uv run ibkr-quant

.PHONY: test universe check bars plan submit fills backtest

test:
	uv run pytest -q

universe:
	$(RUN) universe

check:
	$(RUN) check

bars:
	$(RUN) bars

plan:
	$(RUN) rebalance

submit:
	$(RUN) rebalance --submit

fills:
	$(RUN) fills

# e.g. make backtest ARGS="--top-n 5 10 20 --every 1 5 --capital 10000"
backtest:
	$(RUN) backtest $(ARGS)
