Python/IBKR Engineer to Operate Tested Trading Bot — Retainer + Weekly Reports (Paper Only)
Бюджет: $5000.0
FIXED /
⭐ 4.80 (23)
United States
robotic-process-automation, python, bot-development, linux-system-administration, sqlite, git
** Python/IBKR DevOps Engineer to Operate an Existing, Tested Earnings Trading Bot on a VPS (Fixed Milestones + Monthly Retainer, Weekly Reporting)
## Summary
I have a **working, twice-reviewed, tested** earnings-reaction trading
system built in Python (asyncio) with ib_insync for Interactive Brokers.
I am NOT hiring you to design or build a bot. I'm hiring you to **deploy
it, operate it on paper, keep it healthy, and send me one report every
Friday.** All strategy rules are frozen in a specification document —
your job is operations, not trading decisions.
## What the system is
- Single documented Python file (~2,200 lines, v6.3 release candidate,
four review passes by two independent AI code reviews with the full
trail in the handover doc) + launchers for Windows and Linux, a
handover README, and an entry/exit specification
- Runs as a 24/7 daemon: parses earnings headlines from the IBKR API
news feed (EPS vs consensus, revenue vs consensus, guidance
direction), scores each signal 0–100, enters price- and
volume-confirmed trades pre-market and after-hours, manages its own
stops/targets/time exits
- Hardened: expected-account verification (fatal exit on mismatch),
broker-state reconciliation on every connect with confirmed-terminal
order handling, durable partial-fill accounting, oversell guard,
symbol-exclusivity for shared accounts, DURABLE degraded mode with an
operator clear command, single-instance lock, atomic state writes with
backup recovery, SQLite trade + incident database with schema
auto-migration, durable order journal, Pushover alerting plus a local
alerts file, daily heartbeat
- Ships with an offline self-test suite (20 tests: parsers, scoring,
dedup, state atomicity, lock) and was verified against a stubbed
broker (reconciliation, partial fills, shared-account safety)
- One command produces the weekly report (txt + html): P&L, win rate,
profit factor, confidence calibration, top winners/losers, MFE/MAE
per trade, open positions, incident counts — and a computed GO-LIVE
ACCEPTANCE STATUS section with a pass/fail verdict against written
criteria
## Scope of work
**Milestone 1 — Deploy & verify the flagship bot (fixed price)**
1. Provision the bot on a Linux VPS that I own and pay for (or advise
me on specs and I'll provision it)
2. Install IB Gateway or TWS connected to my IBKR **paper** account
(credentials provided; see Access below), stable auto-restart config
3. Run the provided self-tests and system check; deploy with the
provided supervised launcher (systemd preferred — propose your setup)
4. Execute the paper acceptance checklist in the handover doc
(account-mismatch fatal exit, duplicate-instance rejection, restart
with open position, partial fills, TWS restart mid-position,
blocked-SELL handling, corrupted-state recovery) and attach
logs/screenshots for each item
5. Add: automated Friday report email to me, log rotation, nightly
database backup
**Milestone 1.5 — Nonblocking order engine (fixed price; required
before any live use)**
1. The bot currently uses blocking order waits (documented limitation:
an in-flight exit can delay evaluation of other positions by up to
~135s per cycle). Replace enter/exit waits with a nonblocking
order-state machine evaluated each main-loop pass.
2. Deliver with tests: multiple simultaneous positions, one illiquid
symbol, forced-exit timing under load — verified on the paper
account and submitted as a PR with logs.
**Milestone 2 — Fleet takeover (fixed price; unlocked after 2–3 clean
weeks on Milestone 1)**
1. Migrate my 3–4 other Python/ib_insync strategy bots (same stack,
simpler) onto the same VPS, all against the paper account
2. Extend the report generator into ONE consolidated weekly fleet
report (per-bot and combined)
3. Note: the flagship bot is already fleet-safe (it ignores other
strategies' positions in the shared account and only ever touches
its own share count) — keep it that way in anything you add
**Phase 3 — Operations (monthly retainer, ongoing)**
1. Keep all daemons healthy: TWS/Gateway restarts, feed issues, OS
patches, disk/memory hygiene
2. Respond to Pushover/watchdog alerts within agreed hours (propose
your SLA — I expect same-business-day for non-critical, faster for
stuck-exit alerts during US market hours)
3. Every Friday after the after-hours session: run the report, add a
short commentary paragraph (incidents this week, changes made,
anything needing my decision), email it to me. A missed report
pauses the retainer.
4. Propose improvements as GitHub pull requests. Nothing merges
without my approval. Strategy parameters (entry/exit thresholds)
are frozen by spec and are not yours or mine to tune casually —
changes go through a documented approval.
## Access you'll receive — and won't
You WILL receive:
- IBKR **paper trading** credentials (separate login from the live
account; I can reset it at any time), API enabled on the paper port
- My GitHub repository (code lives in my org from day one)
- The VPS (my account, my billing, my root access retained)
- Pushover keys for alerting
You will NEVER receive:
- My live brokerage username, password, or two-factor device
- Live API access or any ability to move real money
- Payment credentials of any kind
I alone switch individual bots to live, on my own machine, only after
the paper results meet the written acceptance criteria (minimum 8
weeks / 25 closed trades, profit factor, calibration, incident and
drawdown thresholds — the spec is in the repo). Do not ask for live
access; it is not part of this engagement at any milestone.
## Required skills
- Python 3.11+ and asyncio in production (not just scripts)
- ib_insync / IBKR TWS API — you have personally run it against
TWS or IB Gateway and dealt with its quirks
- Linux server administration: systemd, cron, log rotation, backups
- SQLite, Git/GitHub PR workflow
- Clear written English — the Friday report is a deliverable, not an
afterthought
Nice to have: IB Gateway headless setup (IBC/ib-gateway-docker),
market-data entitlement debugging, Pushover/alerting pipelines,
experience operating other people's trading systems.
## How to apply (read carefully — generic applications are ignored)
Answer these three, briefly:
1. Describe one IBKR API gotcha you personally hit (disconnects,
pacing violations, precautionary settings, contract qualification,
market-data farms — anything real) and how you solved it.
2. How would you run IB Gateway unattended on a Linux VPS through
IBKR's forced daily restart? 3–5 sentences.
3. Your proposed monthly retainer for ~2–5 hrs/week of operations plus
incident response, and your alert-response SLA.
## Budget
- Milestone 1: $500–1,500 fixed, based on experience
- Milestone 2: $1,000–2,500 fixed
- Phase 3: your proposed monthly retainer
- Separately, a second freelancer will audit significant code changes;
if you'd rather be that auditor, say so.
## Working style
Async-first (I run a business during the day, US Pacific time).
Everything in writing: GitHub issues/PRs and the Friday email. I value
operators who surface problems early over ones who go quiet. The
handover documentation is thorough — I expect you to read it before
asking questions it already answers.
Отвори в Upwork