65 lines
1.7 KiB
Markdown
65 lines
1.7 KiB
Markdown
# Manual Test Instructions
|
|
|
|
## IBKR Daily Fetcher Skeleton
|
|
|
|
This test checks the first hard-coded IBKR data fetcher without writing any data files.
|
|
|
|
The fetcher currently requests:
|
|
|
|
- gateway: `127.0.0.1:4002`;
|
|
- client id: `101`;
|
|
- ticker: `SPY`;
|
|
- date range: `2026-06-01` to `2026-06-05`;
|
|
- bar size: `1 day`;
|
|
- data type: `TRADES`;
|
|
- regular trading hours only;
|
|
- output: printed CSV-like rows.
|
|
|
|
## Prerequisites
|
|
|
|
1. Start IBKR Gateway.
|
|
2. Log in to the paper trading account.
|
|
3. Confirm API access is enabled in IBKR Gateway.
|
|
4. Confirm the API socket port is `4002`.
|
|
5. Confirm no other API client is already using client id `101`.
|
|
6. Sync Python dependencies:
|
|
|
|
```sh
|
|
mise exec -- uv sync
|
|
```
|
|
|
|
## Run The Test
|
|
|
|
From the repository root, run:
|
|
|
|
```sh
|
|
mise exec -- uv run python src/trading_bot/data/fetch_ibkr_daily.py
|
|
```
|
|
|
|
## Expected Output
|
|
|
|
The tool should first print the hard-coded request range and connection target:
|
|
|
|
```text
|
|
Fetching SPY daily candles from 2026-06-01 to 2026-06-05
|
|
Connecting to IBKR Gateway at 127.0.0.1:4002 with client id 101
|
|
```
|
|
|
|
If the request succeeds, it should then print a header and one row per returned trading day:
|
|
|
|
```text
|
|
date,ticker,open,high,low,close,volume
|
|
2026-06-01,SPY,...
|
|
```
|
|
|
|
Exact prices and volume depend on what IBKR returns.
|
|
|
|
## Common Issues
|
|
|
|
- Connection refused: IBKR Gateway is not running, the port is not `4002`, or API access is disabled.
|
|
- Client id already in use: change `IBKR_CLIENT_ID` in the fetcher or disconnect the other client.
|
|
- No historical bars: confirm the account has market data permissions and that IBKR accepts the requested historical data range.
|
|
- Pacing or permission errors: note the IBKR error message before changing the request.
|
|
|
|
This skeleton does not write Parquet files yet.
|