Guillermo M.
Trading Systems Engineer | Trading Bots, Pine, Python & AI Agents
I build and fix trading bots, Pine Script strategies and broker integrations, and I test the parts that usually break: signals that repaint, orders sent twice, and backtests that look better than they are. WHAT I TAKE ON - Pine Script v6 strategies and indicators on TradingView: non-repainting logic, risk rules, alerts and the JSON message your bot or bridge reads. - Trading bots and broker integrations (Tradovate and Interactive Brokers, on demo and paper accounts so far): order paths that do not duplicate on a retry, reconnect handling, and reconciliation against the broker's own record. - MetaTrader 4 indicators in MQL4: reading other indicators, one alert per closed candle, sent as popup, email or push. - Backtest reviews before you put money behind a result: look-ahead, overfitting across parameter variants, costs and realistic fills, with each correction measured. - AI agents: LangGraph multi-agent pipelines with typed handoffs, human approval and checkpointing; Supabase row-level security for multi-tenant apps, Lovable builds included. CLIENT WORK - Futures trading engine for a US client, hourly and ongoing: strategy layer in Pine v6, execution receiver in TypeScript wired to Tradovate, a position ledger reconciled against the broker, duplicate-signal protection tested against a mock broker, orders on a demo account (no real capital yet). - Telegram bot for a forex broker's VIP group: member verification against the broker API, onboarding flow, duplicate-account protection. Delivered, 5.0 stars. PUBLIC PROOFS (open repos you can run yourself; each README states its limits) - ict-sweep-mss-fvg: a Pine v6 ICT strategy with an A/B input that reintroduces the request.security() leak, so you can compare both equity curves in the Strategy Tester instead of trusting "no repaint". - ibkr-reconnect-proof: Interactive Brokers order recovery. A test shows a blind retry leaving two orders; the ledger-first path resends only an order proven absent. - backtest-audit-proof: a naive backtest finds Sharpe 3.86 on a random walk with no edge; the audit removes the artifacts one at a time. - backtest-to-production-proof: one strategy carried from a +1,275 bps claim to -27.5 bps on a sealed holdout, then through an order path with scripted failures. An offline simulation, not a live system. - bidask-execution-proof: a 1-second BTC breakout that shows t = 30 on bars turns negative once fills pay the spread and 250 ms of latency; one assumption switched at a time. - mql4-confluence-alert-proof: an MT4 indicator that alerts once per candle when two other indicators agree; compiled with 0 errors and 0 warnings, 18 unit tests pass. - multi-agent-orchestration-proof: a LangGraph supervisor that validates every worker reply, binds human approval to the exact draft, and sends each task at most once per thread, even after a crash. - supabase-rls-proof: tenant isolation tested with real user tokens; SQL footguns reintroduce common audit findings and CI requires each one to turn the suite red. OUTSIDE TRADING, SAME METHOD - n8n-workflow-rescue-kit: five broken workflows and their fixed twins; the broken one reproduces the documented symptom. - qbo-idempotent-sync-proof and xero-idempotent-sync-proof: "deal paid" to customer, invoice and payment with no step run twice across a real process kill; tested against fakes of each API, not live. HOW WE WORK - Written communication only, here in Upwork chat. No calls or live sessions; I usually reply within the working day. - We agree the scope in writing before I start. A small first milestone is fine. - Demo or paper account first. I do not promise profitable strategies; I make sure the code does what the strategy says. - Every delivery comes with a test or a check you can run. STACK Python (pandas, NumPy, SciPy), Pine Script v6 and TradingView, MQL4, TypeScript and Node.js, broker REST and webhook APIs, LangGraph, Telegram Bot API, Supabase and PostgreSQL, n8n, Cloudflare Workers. Tell me what you are building, which platform it runs on, and what it should do when something fails.
Earnings and projects
Last 6 months ÷ 4.7 months active (since Jun 2026)
Last 6 months: $12k
Billed in all: $12,589$13k
$1.3k in the last 6 months
Across 9 contracts
Earnings, last 30 days
Skill rankings: Top 2% in MetaTrader 4
Ranked by MRR among everyone on Upwork with the skill.
- #6MetaTrader 4283 freelancers · 🇦🇷 #2Top 2%🇦🇷#2 of 4
- #6MQL 4241 freelancers · 🇦🇷 #2Top 2%🇦🇷#2 of 4
- #8Pine Script176 freelancers · 🇦🇷 #2Top 5%🇦🇷#2 of 5
- #10Telegram API322 freelancers · 🇦🇷 #1Top 3%🇦🇷#1 of 3
- #11Technical Analysis496 freelancers · 🇦🇷 #1Top 2%🇦🇷#1 of 9
- #12TradingView294 freelancers · 🇦🇷 #1Top 4%🇦🇷#1 of 5
- #21Trading Strategy409 freelancers · 🇦🇷 #2Top 5%🇦🇷#2 of 5
- #29Bot Development927 freelancers · 🇦🇷 #1Top 3%🇦🇷#1 of 8