LIVE · LONDON, UK · ALGORITHMIC TRADING SYSTEMS

Piotr Markowski

Algorithmic Trading Bot Developer — Python · ICT/SMC · Crypto, Metals & Equities
+ Native macOS Apps — Swift · SwiftUI · AVFoundation

I design and run autonomous trading systems, and build native macOS software on the side — both with an AI engineer sitting next to me, not instead of me.

pmquant · trading_bot.log · tail -f
02:02:30 UTC 🧲 LIQ ZONE: BTC-USDT SELL @ 64,088 cluster 64,200 · 6,526 BTC · Tweezer Top confirmed SL 64,456.8 · TP 63,424.2 · R:R 1.8
A real signal from PMQuant, the system further down this page — filled a few hours before this page was written.
METHOD

Built with an AI pair-programmer. On purpose — here's exactly how.

I write the specification, make the calls that matter, and verify every result against real data. Claude — an AI coding agent — writes and edits the code, on a live production server, under my direction. That division of labour is the point, not a shortcut.
Shipped same day

LIQ ZONE WATCH went from an idea in conversation to a filled live trade in one session — the log above is its first fill, hours old.

Caught my own model lying

My ML filter started blocking entries with 26% predicted win probability — the real outcome was 97%. I traced it, then permanently redesigned the model's role so it can never happen again.

Rebuilt the measuring stick

My own backtesting logic was quietly optimistic — it never checked whether a stop-loss would've been hit along the way. I rebuilt it path-aware before trusting its numbers again.

The tool changed. The responsibility for being right didn't.

FLAGSHIP PROJECT · 2024 — PRESENT

PMQuant

An autonomous multi-asset trading system — crypto perpetuals, metals, and US equities — live on a VPS, twenty-four hours a day, since May 2026.

65
days live, uninterrupted
494
closed positions logged
46.2%
live win rate
14+10
crypto pairs + commodities/equities tracked
Read honestly: the live account is currently net negative since its last deposit — this page is an engineering portfolio, not a returns pitch. Most of that drawdown traces to two specific, already-fixed bugs (a failed stop-loss placement that went unprotected for hours, and a mispriced take-profit on non-crypto assets). Both are covered in the write-ups below, because finding and fixing them honestly is the more useful signal.
Signal generation
ScenarioEngine
Supply/demand zones, FVG, order blocks, Fibonacci, volume profile — confluence-scored LONG/SHORT scenarios across 14 crypto pairs
CommodityEngine v2
Same methodology adapted for gold, silver and 8 US equities/ETFs, with session-aware hours and symmetric structure hard-blocks
Wyckoff Analyzer
Composite-man phase, spring/upthrust detection, effort-vs-result volume analysis
Regime Detector
Classifies each symbol into 5 volatility/trend regimes and adjusts thresholds accordingly
Market intelligence
Liquidation Data + LIQ ZONE WATCH
OKX liquidation-cluster feed; waits for price to reach a cluster and enters on candle-rejection confirmation
Bounce Detector + Price Patterns
Seven-factor reversal scoring plus 20 classic chart/candle pattern recognisers
AI Filter
GradientBoostingClassifier, observation-only by permanent design — advises, never blocks (see the story above)
Risk, execution & self-validation
RiskManager
Dynamic sizing, leverage tiers, break-even and trailing-stop logic, daily circuit breaker
MissedEntriesTracker
Path-aware counterfactual replay of every blocked signal — used to calibrate thresholds against what actually would have happened
Backtester
Full SL/TP/BE simulation over historical candles — 13.4% WR, 1.63 profit factor, +16.6% over an 8-symbol sample
TelegramCommander
Live position monitoring, manual overrides, and daily P&L reporting from anywhere
ALSO BUILDING · 2026 — PRESENT

MacAmp

A native macOS media player, SwiftUI-first, built in the spirit of the classic Winamp — the same build-with-AI process as PMQuant, tested outside of Python and outside of trading.

Dual playback engine
AVAudioEngine with a real 10-band EQ for standard formats, VLCKit for everything AVFoundation won't touch — MKV, AVI, WMV, RMVB and eleven other formats
Real spectrum analysis
32-bar FFT via Accelerate (vDSP), reading live audio taps — replaced an earlier version that was, honestly, just a randomised animation
True fullscreen & floating video
Custom borderless NSWindow with its own keyboard shortcuts, plus a separate floating video window that auto-positions itself beside the player and reveals controls on hover
Full subtitle pipeline
SRT, WebVTT, MicroDVD and MPL2 parsing, with automatic encoding detection across UTF-8, Windows-1250, ISO-8859-2 and Latin-1
Read honestly: the FFT spectrum view above is built and sitting in the project — it just isn't wired into any screen yet. Same policy as PMQuant: if it's not live, I say so.
STACK

Tools of the trade

Core
Pythonpandasnumpy asyncioaiohttpGit Linux / VPS
ML & data
scikit-learnGradientBoosting BacktestingData Analysis
Trading domain
ICT / SMC AnalysisAlgorithmic Trading Risk ManagementCCXT Crypto Exchange APIsOAuth 1.0a
Integration & delivery
REST API IntegrationTelegram Bot API JSON / CSV pipelinespython-docxreportlab
Native macOS
SwiftSwiftUIAppKit AVFoundationVLCKitAccelerate / DSP
NOW

What I'm looking for

Contract & full-time roles

Quant developer, trading-systems engineer, or fintech backend roles — London or remote. Open to a first conversation even if you're just exploring whether this direction fits.

Freelance builds

Custom trading bots, strategy automation and backtesting, exchange API integration — available on Upwork for project-based work.

Email
add your contact email here
Upwork
add your Upwork profile link here
CV
link to Piotr_Markowski_CV.pdf here