Confidential · For review by Moe or Ziyaad only
Decisions: 0 / 9
Your estimate 6–8 weeks Base build — pick options to update.
Recommended 8–12 weeks

Trade Bot — Scope recommendation & timing estimate

This page is not a price quote. It’s a way for you to understand the decisions that matter, how long a first working version actually takes, and what you’d get. For each choice, pick the option that fits — or use Apply recommended in the header if you’d rather I take those calls.

This page reflects research done so far — enough to give an honest time estimate, not a final engineering spec. Deeper investigation happens once I start. You’ll also get written clarity at every step: options, reasons, and tradeoffs in plain language — every term explained with examples, no finance background required.

Market: Forex (currencies, e.g. EUR/USD)
Client base: South Africa (FSCA-aware broker choice)
Phase 1 goal: Working demo + dashboard
Week figures assume: Full-time · ~5 days/week
Time to read and answer: ~10–15 minutes

Baseline: every week number on this page assumes full-time work (about 5 working days per week on this project). Part-time or split schedules stretch calendar time roughly in proportion. Add-on weeks don’t all share the same work. Platform choices (execution mode, pairs, funding, dashboard depth, data quality, broker path) build on the same infrastructure — after the first two, later ones count at half. Research choices (strategy design, AI, multi-source data, multi-user safeguards) are separate workstreams — only a small credit (~25%) for shared tooling after the first. The header note confirms when either credit applies.

How this estimate was built

Before any week numbers, here’s the process behind the page — so you can judge the reasoning, not just the total.

Step 1 · Research

Market & platform reality

SA broker access (FSCA / entities), MetaTrader automation, demo-first development, trade-only permission scope, and what “AI” actually means in a rules-based bot.

Step 2 · Decisions

What actually moves the timeline

Nine choices that change build effort: execution mode, market coverage, capital mode, data quality, dashboard depth, broker readiness, strategy ownership, AI timing, and safeguards.

Step 3 · Timeline model

Base build + honest add-ons

All week figures assume full-time work (~5 days/week). Base first working version, then week deltas per choice. Add-ons overlap in real projects; extreme stacks are illustrative, not a quote.

Step 4 · Definition of done

What “phase 1 complete” means

Demo bot under agreed risk limits, evidence report, dashboard metrics, runbook, and a tested kill switch — not guaranteed profit.

Where your money sits

One thing worth clarifying before anything else: this is about your trading capital, not about how you pay a developer. Terms in this section are in the glossary.

1. Your trading money

Stays in your own broker account — the account you open with a company that lets you trade currencies. The bot only gets permission to place trades through that broker. By design and by broker permission scope, the bot is trade-only: it can place and manage trades, not withdraw, transfer, or move funds out of your account.

Example: You open an account with a broker that serves South Africa — e.g. AvaTrade, Exness, HFM, or Pepperstone (always verify the entity and FSP number). Note: IG Markets South Africa has been winding down new SA trading accounts — new applications go to IG International. Pepperstone is typically accessed via international/offshore entities, not a local FSCA FSP. You deposit R/$/€ there yourself. The bot can buy/sell currencies from that balance — by permission scope, it has no withdrawal access.

2. The dashboard / platform

Think of it as a reporting and control room, not a bank. It shows performance, open trades, and risk settings. It does not hold your cash. If the dashboard is offline, your money remains at the broker.

Example: Like a car dashboard — it shows speed and fuel, but the engine and tank are elsewhere. If the screen goes blank, the car still exists at the garage (your broker).

3. What I'd be building for you

A tool that trades under rules you set, on an account you control. You’d still deposit and withdraw at the broker, as normal. Software decisions (strategy, risk limits, automation level) are technical — the page below lets you decide those or hand them to the tech lead.

Example: You keep using the broker app to top up or withdraw. The bot only runs trading rules on the balance already there — like a pilot using an autopilot that has no access to the company bank account.
In plain terms: the software is allowed to trade with money you already have at a broker, under limits you set. It is not a bank, a wallet, or a payment app. You keep full control of deposits and withdrawals at the broker side.

Goal framing — paths that shape version 1

Not a form to fill in — just the goal styles that usually come up. None of these change the time estimate by themselves. I confirm which path fits on a short call once you’re happy with the scope.

Common goal paths

Context only — no timeline impact

In plain terms: what should the bot be optimising for in the first few months?

Protect capital first
Fewer trades, higher quality setups, smaller risk per idea. Best when the priority is not losing money while I learn if the process works.
Steady modest returns
Controlled risk, consistent behaviour — not lottery tickets. The usual first target for a rules-based demo.
Higher risk / higher return
Larger swings and longer losing periods accepted in exchange for faster growth. Still needs hard loss limits.
Beat a simple benchmark
Compare results to a yardstick (e.g. just holding EUR/USD) so “it made money” has context.
Research notes — terms & examples
Pairs you’ll see in examples: EUR/USD = Euro vs US Dollar · GBP/USD = British Pound vs US Dollar · USD/JPY = US Dollar vs Japanese Yen
Terms on this decision
Term

Benchmark

A simple yardstick I compare against (e.g. “just holding EUR/USD”). Makes “it made money” meaningful — did it do better than the easy alternative?

Example: Bot made +3% while “buy and hold EUR/USD” made +5% → the bot underperformed the simple option.
Term

Drawdown

How far the account value has fallen from a previous high point. Example: if it went from R180,000 to R162,000, that’s an R18,000 (10%) drawdown. Bigger drawdowns are harder to recover from emotionally and financially.

Example: Account peaks at R200,000, later falls to R180,000 → drawdown = R20,000 (10%). Recovering from 10% needs ~11% gain; recovering from 50% needs 100%.

1. How should the bot place trades?

This is one of the biggest levers on safety, complexity, and timeline.

Trading mode

Decision 1 of 9

How much control do you want to keep on every trade?

Research notes — why this choice matters, examples & terms
Where you act: Approve / Decline happens in the dashboard I build — not by clicking around in the broker app. The broker still holds your money; the dashboard is the control panel for trade decisions. If you’re offline: pending ideas can expire after a set time (e.g. 15–30 minutes) so stale trades don’t fire later by accident.
How this choice affects the broker setup (linked to Decision 6): Signals only: the bot only needs market data to generate ideas. You place trades yourself in MetaTrader (or the broker app). No broker execution API required. A normal demo account is enough for development. Hybrid / Fully automated: the bot must place orders itself, so the broker account must allow automated strategies — either a trading API or MetaTrader automation (Expert Advisors / bot permissions). That filter belongs in Decision 6. In short: Decision 1 (who clicks buy/sell) decides whether Decision 6 needs “bot-ready” broker access or only “demo + MetaTrader for you.”
Terms on this decision
Term

Kill switch / emergency stop

One control that stops the bot from placing new trades immediately if something looks wrong. Like a fire alarm for the strategy — not a guarantee nothing bad happened, but it stops the bleeding.

Example: Dashboard button “STOP BOT” — after clicking, no new trades open until you restart intentionally.
Term

Position

An open trade currently in the market. “Position size” = how big that trade is. Smaller sizes = less risk per mistake.

Example: You bought EUR/USD and haven’t closed it → you have one open position. Position size might be “0.1 lots” (small) vs “1 lot” (larger).
Term

Lot

The unit of trade size in forex. Roughly: 1 standard lot ≈ 100,000 units of the base currency · 0.1 (mini) ≈ 10,000 · 0.01 (micro) ≈ 1,000. Smaller lots = less money at risk per pip move.

Example: “Buy 0.1 lot EUR/USD” is a smaller, safer position than “buy 1 lot” — same direction, less exposure.

2. How aggressive should version 1 be?

More pairs and faster trading = more data, more edge cases, more time.

Market coverage & pace

Decision 2 of 9

I'll start narrow either way — this just sets how wide v1 goes.

Research notes — why this choice matters, examples & terms

Clarity: “One bot for all of forex” — both views, in context

In an earlier conversation, a good point came up: does one bot need to specialise, or can it handle the whole forex market? Both sides have a valid piece of the truth. Here is how they fit together — without anyone being “wrong.”

Where the “one bot does everything” view is correct

Software can absolutely watch many currency pairs at once. One program can scan the market, calculate signals, and place trades across EUR/USD, GBP/USD, USD/JPY and more. In that sense — coverage and automation — a single bot can operate across forex, not just one chart.

Where specialisation matters

Different trading styles need different logic. Scalping, day trading, swing trading, and news reactions are not the same job. Markets also change character (trending vs quiet). A rule set that works well in one condition often underperforms in another. One bot can cover many pairs — but usually only one clear strategy style at a time, if results are to be trusted.

So both ideas are partly right: one bot can cover the forex market in breadth, while one strategy does not win in every style and every market condition. That is why this question exists.

For version 1: keep the bot on a narrow, honest scope — 1–2 major pairs and one timeframe style (e.g. swing/daily). Prove it on a practice account. After evidence, I can widen pairs or add a second strategy — not both on day one.
Terms on this decision
Term

Pair

Two currencies quoted against each other, e.g. EUR/USD = how many US dollars buy one euro. You always long one currency and short the other.

Example: EUR/USD at 1.0850 means 1 euro costs 1.0850 US dollars. Buying the pair = betting the euro strengthens vs the dollar.
Term

Timeframe

How long a typical trade might last — minutes (fast/scalping), hours (day), or days/weeks (swing). Faster trading is not “better”; it’s usually harder.

Example: Scalp = minutes · Day trade = hours · Swing = days to weeks.
Term

Majors

The most heavily traded currency pairs (typically EUR/USD, GBP/USD, USD/JPY, etc.). Usually more liquid and a sensible first focus for a bot.

Example majors: EUR/USD · GBP/USD · USD/JPY · USD/CHF · AUD/USD · USD/CAD · NZD/USD

3. Demo account first, or real money?

Highly recommend paper/demo until the process is boring. This option still matters for build work.

Trading capital mode

Decision 3 of 9

Where the bot will run while I build and prove the approach.

Research notes — why this choice matters, examples & terms

Why practice first — validation, not hesitation

If the question is “why only a practice-account bot in this timeframe?” — because phase 1 is built to prove the system, not to promise returns on day one. This is how serious automated systems are developed, not a smaller product or a lack of trust.

1. Isolate the machine from the market

Until the bot places orders correctly, respects loss limits, and the dashboard matches reality, a losing week tells you nothing — it could be a bad strategy or a broken integration. Demo lets me fix the software with clean evidence.

2. Same prices, no financial damage

I iterate on real market prices without risking capital while rules, logging, and safeguards are still being proven. That is how you get trustworthy numbers faster — not how you avoid “real” trading forever.

3. Phase 1 delivers evidence, not profit

The finish line is a working bot + evidence pack. If the demo process is boringly reliable, going live is mostly a connection and config change — not a rebuild.

4. Live adds variables on purpose — later

Real fills, slippage, and your own psychology are phase-2 variables. Banks, prop desks, and anyone serious about automation paper-trade first. It signals process, not amateur hour.

In plain terms: a “practice-account bot” in the estimate is the same trading software — connected to a demo account first so I can validate it. Real money is a switch I flip after the process looks sane, not a different bot you wait longer for.
Terms on this decision
Term

Demo / paper trading

A practice account with fake money and real market prices. Best way to prove a bot before risking capital. Also called “paper trading.”

Example: Free MT5 demo with virtual money — often ~$10,000 / ≈ R180,000, adjustable — from an SA-accessible broker. Real prices, no real loss.
Term

Live trading

Real money at a broker. Only after demo results and clear risk rules. Not the right place to “see what happens.”

Example: Same bot rules, but connected to your real broker account (FSCA-verified entity if in SA) with actual funds.
Term

Fill

When the broker actually executes your order at a price. You might ask for one price and get a slightly different one — that difference can be slippage.

Example: You click Buy EUR/USD at 1.0850; broker confirms “filled at 1.0851.”

4. Where does market data come from?

Poor quality price history → misleading test results. This affects how much I trust the numbers later.

Data quality

Decision 4 of 9

How thorough should I be when testing the strategy on history?

Research notes — why this choice matters, examples & terms
A poor-quality historical dataset can look great in tests until real trading — quality of history matters.
Terms on this decision
Term

Backtest

Replaying a strategy on past market data to see how it might have behaved. Useful, but imperfect — real trading adds costs and surprises history doesn’t fully capture.

Example: “Run these buy/sell rules on EUR/USD daily prices from 2022–2025 and show the balance chart.”
Term

Spread

The small gap between the buy price and sell price your broker quotes. It’s a built-in cost on every trade — the bot needs enough edge to overcome it.

Example: EUR/USD shows Buy 1.0850 / Sell 1.0852 → spread = 2 points. Instant “cost” the moment you trade.
Term

Slippage

When an order fills at a slightly different price than expected — usually a small extra cost. Fast markets and large orders make it worse. Honest tests should include it.

Example: Target 1.0850; fill arrives at 1.0853 — you paid 3 points more than planned.
Term

Pip

The smallest usual quoted price move in forex. For most pairs it is the 4th decimal; for JPY pairs the 2nd decimal. Spreads and many examples on this page are counted in pips (or “points”).

Example: EUR/USD moves 1.0850 → 1.0851 = 1 pip. A 2-pip spread is the gap between buy and sell prices.

5. How much visibility do you need?

You'll want to understand what the bot is doing — not just “is it up or down.”

Dashboard depth

Decision 5 of 9

What should you be able to see and review?

Research notes — why this choice matters, examples & terms
Dashboard access & privacy: the dashboard is private — password protected, not a public site. It runs with the bot on the controlled VPS setup. You’ll log in via the browser with credentials that are yours. I’ll agree the exact access details when build starts; credentials are not shared casually or left open on the internet.
Terms on this decision
Term

Equity / equity curve

Account value over time = cash + results of open trades. The “equity curve” is the chart of that value. Steady up is nice; wild zigzags mean stress.

Example: R162,000 cash + R3,600 floating profit on an open EUR/USD trade → equity = R165,600.
Term

Drawdown

How far the account value has fallen from a previous high point. Example: if it went from R180,000 to R162,000, that’s an R18,000 (10%) drawdown. Bigger drawdowns are harder to recover from emotionally and financially.

Example: Account peaks at R200,000, later falls to R180,000 → drawdown = R20,000 (10%). Recovering from 10% needs ~11% gain; recovering from 50% needs 100%.
Term

Win rate

The percentage of trades that ended profitable. High win rate ≠ always good — a few big losses can wipe out many small wins. Always read it next to drawdown and profit factor.

Example: 100 trades, 58 winners → 58% win rate. But if the 42 losers were huge, the account can still be down.
Term

Profit factor

Total profits divided by total losses over a period. Above 1.0 means net positive historically. Below 1.0 means the strategy lost money overall on that data.

Example: Gross profits R54,000, gross losses R27,000 → profit factor = 2.0 (healthy on that sample).
Term

Trade log

The full list of what was traded, when, at what price, and (ideally) why. Essential for reviewing mistakes and improving the system.

Example: “2026-03-12 14:05 · Bought 0.1 lot EUR/USD @ 1.0850 · Reason: trend filter · Closed @ 1.0872 · +R400.”

6. Broker account — do you have one that can run a bot?

For South Africa, regulation and “can this account run automation?” matter more than the app itself. You pick or verify the broker; the tech lead handles how the bot connects to it.

Broker readiness

Decision 6 of 9

This is about finding a bot-friendly account — not about choosing software internals. The tech lead decides how the bot talks to the broker once that account exists.

Research notes — why this choice matters, examples & terms
What you decide vs what the tech lead decides: You decide: which broker account you’ll actually fund and use (or ask me to shortlist one). Tech lead decides: how the bot connects to that account. Default is a MetaTrader 5 Expert Advisor (EA) — it runs inside MetaTrader, supports auto-trading, and works on almost every SA-accessible broker demo. If your broker has a good SA-served API and that route is cleaner, I switch to Python API integration instead (+0–1 week). You don’t need to choose this now — the broker choice mostly decides it. Linked to Decision 1: if you only want signals + manual trading, the bot doesn’t need execution access at all — a demo account is enough to develop against. Hybrid or fully automated trading requires the broker to allow bots (EA or API).

South Africa — broker checklist before you fund anything

The client is in South Africa, so “which broker?” is not only a technical question. These checks protect the project (and the money) before any integration work starts.

1. Regulation you can verify

Look up the broker’s South African entity on the FSCA register and note the FSP number. Some brokers are FSCA-licensed locally; others serve SA through offshore entities. Both can be workable — but you should know which entity you’re actually signing with.

2. Will they allow a bot?

Confirm the account type allows automated strategies (Expert Advisors / API trading). Many SA clients assume their bank’s FX app can run a bot — often it can’t. Bank platforms are usually for manual retail FX, not third-party automation.

3. ZAR account & local deposits

Worth confirming early: can the account be denominated in ZAR (or at least funded easily from SA)? Local EFT / card options reduce friction vs international-only funding.

4. Free demo for development

I build and prove the bot on a demo account first. If the broker makes demos hard to get, that’s a yellow flag for phase 1.

Practical default for v1: a broker that (a) accepts SA clients, (b) has a clear regulatory entity you can verify, (c) allows automated strategies, and (d) has a free demo. I build on MetaTrader 5 with an Expert Advisor unless the chosen broker makes an API route clearly better.
Terms on this decision
Term

Broker

The company that holds your trading account and executes orders with the market. Your cash and positions live here — not in my dashboard.

South Africa: many SA traders use brokers with local or offshore entities — e.g. AvaTrade, Exness, HFM (availability and entity change over time). Note: IG Markets South Africa has been winding down new SA trading accounts; new applications go to IG International. Pepperstone is typically accessed via international/offshore entities, not a local FSCA FSP. Always check which legal entity you’re opening with and whether they allow automated strategies. Verify FSCA status via the FSP number on the FSCA register.
Term

API

A structured way for software to talk to another system. Here: my bot tells the broker “open/close this trade” and reads balances — without you clicking in an app.

Example: Like ordering food through a website API instead of phoning the restaurant — same kitchen, different channel.
Term

MT4 / MT5

MetaTrader 4 and MetaTrader 5 — common desktop/mobile apps many forex brokers support. Popular for retail automation and demo testing. Automated strategies on MetaTrader are often called Expert Advisors (EAs).

Example: You download MetaTrader 5 from a broker’s SA offering, log in with a demo account, and see live charts. Confirm the broker allows EAs/bots on that account type before I build.
Term

FSCA / FSP

FSCA = Financial Sector Conduct Authority — South Africa’s market conduct regulator (formerly the FSB). FSP = Financial Services Provider number — the licence number you can look up on their register.

Example: Before funding a broker account, search the broker’s SA entity on fsca.co.za and confirm the FSP number matches the company name on the website. If you can’t find it, ask support which entity they trade under.

7. Who drives the strategy design?

Important to be clear about roles — this changes research time, not just “who types the code.”

Strategy ownership

Decision 7 of 9

Do you already have a trading approach in mind, or do I research and propose one?

Research notes — why this choice matters, examples & terms

Clarity: rules vs “AI” — where the line is

It’s easy to assume the bot “uses AI” to make trading decisions. In practice, rules and AI are different layers. Version 1 can work with rules alone. A model is optional and only helps if it earns its place with evidence.

Rules (the actual decisions)

Written conditions you can read: when to buy, when to sell, how much to risk, when to stop. These decide the trade. Risk limits (max loss, position size, emergency stop) are also rules — and they override everything else.

AI / model (optional input)

If used, a model usually scores a setup — e.g. “this pattern looked promising 62% of the time historically.” It recommends. It does not ignore your loss limits, invent new money, or trade without the rules saying yes.

High-level example (EUR/USD, one week):
1. Rules: “If daily close is above the 200-day average → potential buy; risk 1%; stop at 2%. Don’t trade if today already lost 3%.”
2. Optional AI inputs (only if I add them):
  • Pattern score: model says this setup looked promising ~62% of the time historically → 64/100.
  • News / sentiment (optional extra): headlines this morning sound “risk-off” (fearful) → mood score 35/100 (weak for buying risk assets).
3. Decision: combined signal only counts if rules are happy and risk is within limits.
  Example: pattern looks fine, but news is very negative → bot skips or waits instead of buying on autopilot.
4. Action: Signals mode → idea (or “no trade”) appears in dashboard for your Approve/Decline.
Auto mode → bot places a small trade only if all checks pass; emergency stop still applies.
If there is no AI, steps 2a/2b are skipped — the same rules still work. News reading is an add-on, not the brain of the system.
For this question: you’re choosing who designs the decision logic for version 1 — not “does the bot have AI?” Decision 8 (AI now vs later) is where that choice shows up on the timeline.
Terms on this decision
Term

Strategy

The written rules for when to buy, when to sell, and how much to risk. If you can’t explain it simply, it’s not ready for real money.

Example: “Buy EUR/USD when price closes above the 200-day average. Risk 1% per trade. Exit if down 2% or after 5 days.”

8. AI now, later, or not at all?

This is the only place “AI” changes the build timeline. Rules decide trades either way — AI is an optional input, not the brain.

AI in version 1

Decision 8 of 9

How much AI (if any) should be built into the first version — knowing it can be added later only if evidence justifies it?

Research notes — why this choice matters, examples & terms

What “AI” means in the tech stack (developer recommendation)

You don’t need to pick libraries. These are defaults if AI is chosen later — and they explain why “rules only” is cheap and “AI as core” is expensive.

v1 with rules only (recommended)

No ML infrastructure. Pure Python rules engine + risk checks. Same stack works whether or not AI is added later — nothing gets thrown away.

If AI scoring is chosen (+2–3 wks)

Simple supervised models (scikit-learn / gradient boosting) on historical features. Still no LLM required — the model scores setups from numbers, not chat.

If AI as core signal (+4–8 wks)

Longer research loop: feature engineering, walk-forward validation, bias checks. Still CPU-scale for 1–2 pairs — the cost is research time, not compute. This is also not an LLM job by default.

What I will not do in v1

Black-box “AI trading” with no rule layer, no risk caps, or no explainable trade log. If a model can’t be explained next to the equity curve, it doesn’t ship.

LLM APIs (e.g. DeepSeek, ChatGPT): not required for v1 — not for rules-only, and not for the optional AI scoring path above. Choosing “AI” in this question still doesn’t force an LLM. Classic ML models can score setups without them.
News / “reading the news”: optional later input, not the strategy brain. I'd start with an economic-calendar filter or simple keyword scoring (no LLM, no API bill). An LLM is only worth considering later if those prove too crude and demo evidence shows news mood would have changed outcomes — with real cost, rate-limit, and reliability tradeoffs. Even then it scores setups; rules and risk limits still decide.
Recommendation: start rules only. Add optional scoring later only if the demo or backtest shows simple rules struggling in a way a model could fix. AI-as-core is a research project, not a build checkbox — and none of it requires an LLM to begin with.
Terms on this decision
Term

AI / model

A statistical system that can score whether a setup looks promising based on past data — and, if I add it, a separate piece can read news “mood” (sentiment). Both are inputs to the strategy, not replacements for rules or risk limits. Version 1 can work with no AI at all.

Example: Rules say “this is a trend setup.” Pattern model: ~62% historically. News feed: headlines feel “risk-off” today → weaker case for buying. Trade only if rules + risk allow it — and only if optional scores don’t veto. No model? Same rules still work.
Term

Classic ML vs LLM

Classic ML = older, simpler statistical models trained on numbers (price history, indicators). They output a score or probability. No chat, no writing. Cheap, explainable — enough for optional setup scoring. LLM = chat-style AI (ChatGPT, DeepSeek). Reads text and news. More expensive and harder to control. Not required for v1 — and not what “AI scoring” means on this page.

Example: Model says “this setup looked good ~62% historically” → that’s classic ML. “Write me a trading plan in English” → that’s an LLM. I only need the first if anything — and only if evidence justifies it.
Term

Sentiment signal

A measure of market “mood” from news or social data, used as one input among many. Interesting later; not a substitute for tested risk management.

Example: Headlines sound “risk-off” (fearful) → some strategies reduce EUR/USD longs that day.

9. Personal use, or something more formal?

This is about safeguards and documentation — not legal advice. If you're building for others, say so early.

Use case & safeguards

Decision 9 of 9

Who is this for, and how careful do I need to be about controls and records?

Research notes — why this choice matters, examples & terms
I'm not giving legal advice. If this might be used by other people or advertised as a service, get local regulatory guidance before launch.
Terms on this decision
Term

Regulation / compliance

Country rules about who can offer trading tools or services. Personal use of your own broker account is usually simpler. Building for other people can require extra legal checks — I’ll flag, not advise.

South Africa: forex/CFD brokers are overseen by the FSCA. A bot for your own SA account is different from selling “my bot” to many other traders — that can raise extra regulatory questions.
Term

Risk limit / stop loss

Rules that cap how much can be lost — per trade, per day, or in total. The bot should refuse to keep trading past agreed limits. This is more important than any prediction model.

Example: “Never risk more than 1% on one trade; stop the bot if the day loses more than 3%.”

What you’d get if phase 1 goes ahead

This is the concrete package — useful when deciding whether the time investment makes sense.

Practice-account bot

Runs on a broker demo account with your chosen pairs and loss limits. No real money until you choose to switch.

Evidence report

Results from past market data and/or demo trading — so “does this idea work?” has numbers, not vibes.

Dashboard

Account value over time, worst losing stretch, win rate, and a trade history you can review in plain language.

Runbook

Simple doc: how to start it, how to stop it, what the metrics mean, where your money sits.

Phase 1 done means

Clear finish line so “done” is not vague. This is a validation milestone — the same trading software, proven on demo before any live talk.

What ships

Demo bot on your chosen pairs under agreed risk limits · evidence report (backtest and/or demo) · dashboard with equity curve, drawdown, win rate, and full trade log · runbook · kill switch tested.

What “good” looks like

Rules fire when they should · risk caps actually stop trading · logs match what the broker shows · ~2–4 weeks of demo observation before any live conversation.

Not part of phase 1: guaranteed profit, live capital at launch, or a promise that the strategy will win. Phase 1 proves the process. Live trading is a later decision with its own safeguards — see Decision 3.
One honest note: every week figure assumes full-time work (~5 days/week) on this project — part-time schedules stretch calendar time roughly in proportion. Making the bot more profitable over time is ongoing research, not a one-time build with a guaranteed number. If you hire someone for phase 1, improving results later is usually a separate follow-on effort. Add-on weeks don’t all share the same work. Platform add-ons reuse infrastructure — after the first two, later ones count at ~50%. Research add-ons are separate workstreams — only a ~25% shared-tooling credit after the first. Stacked choices are illustrative, not a quote. Trading involves risk of loss — time estimates describe build effort, not expected returns. What does accuracy even mean?
Concrete example of phase 1 (South Africa): You open a free demo at an SA-accessible broker (entity + FSP verified; bot/EAs allowed) → bot watches EUR/USD (and maybe GBP/USD) on daily charts → suggests or places trades under your risk limits → dashboard shows equity curve, worst dip, win rate, and every trade → you can stop the bot anytime. Real money only after that process looks sane.

Technical approach — tech-lead defaults

These are tech-lead defaults — not client decisions. You don’t need to pick languages or libraries. Reasons are included so the choices are explainable, not arbitrary.

Frontend — SvelteKit

Dashboard for equity, trades, and risk controls. The bot’s profit does not depend on which frontend framework I use.

Why: arbitrary pick — React would work equally well. SvelteKit is a preference, not a risk.

Backend — Python

Strategy logic, backtesting, data work, and broker control.

Why: ecosystem, not speed — pandas, backtesting libraries, MetaTrader’s Python bridge, notebooks for research. At this trade volume, language performance is irrelevant.

Database — PostgreSQL

Trade logs, equity history, bot state. Self-hosted on the same VPS as the bot.

Why: one box, one thing to manage. Supabase is fine later if I want managed auth; not needed for a private single-user tool.

Execution — MetaTrader 5 EA

Expert Advisor places trades inside MetaTrader unless the broker choice makes a Python API route clearly better.

Why: SA retail reality — works on almost every bot-friendly broker demo; order handling is solved. Not arbitrary — it’s the lowest-friction path for this market.

AI in v1 — rules only, no LLM

No ML infrastructure on day one. Even if AI scoring is chosen later, classic ML models are enough — not DeepSeek/ChatGPT APIs.

Why: rules prove or disprove the idea fastest. Optional scoring (+2–3 wks) or AI-as-core (+4–8 wks) only if evidence justifies it — see Decision 8. LLMs are a separate later option for news, not the default AI path.

Hosting — VPS for the bot

Commodity purchase so the bot can run 24/7. Not a scoping decision.

Why: no timeline impact at v1. Tech lead picks the box. MT5 path → Windows VPS (the MetaTrader terminal / Python bridge expects it). Linux only if I drop MetaTrader for a REST API broker.

Not considered for phase 1 — can be discussed once we engage

Left out of the time estimate on purpose — not banned forever. Nothing here is locked out: anything on this list can be discussed, scoped, and added once engagement begins.

  • Guaranteed accuracy or returns No one can honestly promise that. Better odds come from correct planning and engineering — not magic.
  • Mobile app A browser dashboard covers version 1 — a native app can be scoped later if needed.
  • Multi-broker / multi-account support One broker, one account, proven first — more accounts are a later conversation.
  • Full auto-trading on day one Possible as an option — not the default safe path.
  • AI news trading as the core strategy beyond Decision 8 Optional scoring or core AI are selectable there with extra timeline — not a silent add-on.
  • 24/7 human monitoring team Alerts yes; on-call desk no (unless separately scoped).
  • Payments / wallet features inside the platform Trading money stays at the broker.
After phase 1 (if you continue): 1. Widen pairs or add a second strategy — only after demo evidence, not both on day one. 2. Live trading transition — smaller real capital, same risk rules, tighter monitoring. 3. Optional AI scoring or news filters — only if the evidence shows simple rules need help. Each of those is scoped separately when the time comes — nothing here is locked out by this estimate.

Glossary — plain English, with examples

Full term list lives here. Decision cards also carry the terms they use inside Research notes. Open this panel to browse or search everything.

Glossary — all terms Open to browse or search

Accuracy / performance outcome

Not “the bot guessed the price right.” In trading it usually means: did it make money after costs, with acceptable risk? I look at several numbers together — never one magic percentage.

Example: Saying “80% accurate” is meaningless without context — a strategy can win 80% of small trades and still lose money overall.

API technical

A structured way for software to talk to another system. Here: my bot tells the broker “open/close this trade” and reads balances — without you clicking in an app.

Example: Like ordering food through a website API instead of phoning the restaurant — same kitchen, different channel.

Backtest testing

Replaying a strategy on past market data to see how it might have behaved. Useful, but imperfect — real trading adds costs and surprises history doesn’t fully capture.

Example: “Run these buy/sell rules on EUR/USD daily prices from 2022–2025 and show the balance chart.”

Benchmark goal

A simple yardstick I compare against (e.g. “just holding EUR/USD”). Makes “it made money” meaningful — did it do better than the easy alternative?

Example: Bot made +3% while “buy and hold EUR/USD” made +5% → the bot underperformed the simple option.

Broker money

The company that holds your trading account and executes orders with the market. Your cash and positions live here — not in my dashboard.

South Africa: many SA traders use brokers with local or offshore entities — e.g. AvaTrade, Exness, HFM (availability and entity change over time). Note: IG Markets South Africa has been winding down new SA trading accounts; new applications go to IG International. Pepperstone is typically accessed via international/offshore entities, not a local FSCA FSP. Always check which legal entity you’re opening with and whether they allow automated strategies. Verify FSCA status via the FSP number on the FSCA register.

FSCA / FSP SA legal

FSCA = Financial Sector Conduct Authority — South Africa’s market conduct regulator (formerly the FSB). FSP = Financial Services Provider number — the licence number you can look up on their register.

Example: Before funding a broker account, search the broker’s SA entity on fsca.co.za and confirm the FSP number matches the company name on the website. If you can’t find it, ask support which entity they trade under.

Demo / paper trading money

A practice account with fake money and real market prices. Best way to prove a bot before risking capital. Also called “paper trading.”

Example: Free MT5 demo with virtual money — often ~$10,000 / ≈ R180,000, adjustable — from an SA-accessible broker. Real prices, no real loss.

Drawdown risk

How far the account value has fallen from a previous high point. Example: if it went from R180,000 to R162,000, that’s an R18,000 (10%) drawdown. Bigger drawdowns are harder to recover from emotionally and financially.

Example: Account peaks at R200,000, later falls to R180,000 → drawdown = R20,000 (10%). Recovering from 10% needs ~11% gain; recovering from 50% needs 100%.

Equity / equity curve dashboard

Account value over time = cash + results of open trades. The “equity curve” is the chart of that value. Steady up is nice; wild zigzags mean stress.

Example: R162,000 cash + R3,600 floating profit on an open EUR/USD trade → equity = R165,600.

Fill trading

When the broker actually executes your order at a price. You might ask for one price and get a slightly different one — that difference can be slippage.

Example: You click Buy EUR/USD at 1.0850; broker confirms “filled at 1.0851.”

Forex (FX) market

The foreign exchange market — trading one currency against another (e.g. buying euros with US dollars). Open nearly 24 hours on weekdays.

Example: Exchanging R for $ before a holiday is a spot FX trade — same market the bot uses, just automated.

Kill switch / emergency stop safety

One control that stops the bot from placing new trades immediately if something looks wrong. Like a fire alarm for the strategy — not a guarantee nothing bad happened, but it stops the bleeding.

Example: Dashboard button “STOP BOT” — after clicking, no new trades open until you restart intentionally.

Live trading money

Real money at a broker. Only after demo results and clear risk rules. Not the right place to “see what happens.”

Example: Same bot rules, but connected to your real broker account (FSCA-verified entity if in SA) with actual funds.

Majors market

The most heavily traded currency pairs (typically EUR/USD, GBP/USD, USD/JPY, etc.). Usually more liquid and a sensible first focus for a bot.

Example majors: EUR/USD · GBP/USD · USD/JPY · USD/CHF · AUD/USD · USD/CAD · NZD/USD

MT4 / MT5 platform

MetaTrader 4 and MetaTrader 5 — common desktop/mobile apps many forex brokers support. Popular for retail automation and demo testing. Automated strategies on MetaTrader are often called Expert Advisors (EAs).

Example: You download MetaTrader 5 from a broker’s SA offering, log in with a demo account, and see live charts. Confirm the broker allows EAs/bots on that account type before I build.

Pair market

Two currencies quoted against each other, e.g. EUR/USD = how many US dollars buy one euro. You always long one currency and short the other.

Example: EUR/USD at 1.0850 means 1 euro costs 1.0850 US dollars. Buying the pair = betting the euro strengthens vs the dollar.

Pip trading

The smallest usual quoted price move in forex. For most pairs it is the 4th decimal; for JPY pairs the 2nd decimal. Spreads and many examples on this page are counted in pips (or “points”).

Example: EUR/USD moves 1.0850 → 1.0851 = 1 pip. A 2-pip spread is the gap between buy and sell prices.

Lot trading

The unit of trade size in forex. Roughly: 1 standard lot ≈ 100,000 units of the base currency · 0.1 (mini) ≈ 10,000 · 0.01 (micro) ≈ 1,000. Smaller lots = less money at risk per pip move.

Example: “Buy 0.1 lot EUR/USD” is a smaller, safer position than “buy 1 lot” — same direction, less exposure.

Position trading

An open trade currently in the market. “Position size” = how big that trade is. Smaller sizes = less risk per mistake.

Example: You bought EUR/USD and haven’t closed it → you have one open position. Position size might be “0.1 lots” (small) vs “1 lot” (larger).

Profit factor dashboard

Total profits divided by total losses over a period. Above 1.0 means net positive historically. Below 1.0 means the strategy lost money overall on that data.

Example: Gross profits R54,000, gross losses R27,000 → profit factor = 2.0 (healthy on that sample).

Regulation / compliance legal

Country rules about who can offer trading tools or services. Personal use of your own broker account is usually simpler. Building for other people can require extra legal checks — I’ll flag, not advise.

South Africa: forex/CFD brokers are overseen by the FSCA. A bot for your own SA account is different from selling “my bot” to many other traders — that can raise extra regulatory questions.

Retainer / follow-on work engagement

Ongoing work after the first build — research, tuning, new features. Separate from the one-off phase-1 time estimate. Only relevant if you choose to continue after seeing early results.

Example: Phase 1 delivers the bot + dashboard in 8–12 weeks. If results are promising, phase 2 might be monthly research to improve rules.

Sentiment signal research

A measure of market “mood” from news or social data, used as one input among many. Interesting later; not a substitute for tested risk management.

Example: Headlines sound “risk-off” (fearful) → some strategies reduce EUR/USD longs that day.

Slippage costs

When an order fills at a slightly different price than expected — usually a small extra cost. Fast markets and large orders make it worse. Honest tests should include it.

Example: Target 1.0850; fill arrives at 1.0853 — you paid 3 points more than planned.

Spread costs

The small gap between the buy price and sell price your broker quotes. It’s a built-in cost on every trade — the bot needs enough edge to overcome it.

Example: EUR/USD shows Buy 1.0850 / Sell 1.0852 → spread = 2 points. Instant “cost” the moment you trade.

Strategy design

The written rules for when to buy, when to sell, and how much to risk. If you can’t explain it simply, it’s not ready for real money.

Example: “Buy EUR/USD when price closes above the 200-day average. Risk 1% per trade. Exit if down 2% or after 5 days.”

AI / model optional

A statistical system that can score whether a setup looks promising based on past data — and, if I add it, a separate piece can read news “mood” (sentiment). Both are inputs to the strategy, not replacements for rules or risk limits. Version 1 can work with no AI at all.

Example: Rules say “this is a trend setup.” Pattern model: ~62% historically. News feed: headlines feel “risk-off” today → weaker case for buying. Trade only if rules + risk allow it — and only if optional scores don’t veto. No model? Same rules still work.

Classic ML vs LLM technical

Classic ML = older, simpler statistical models trained on numbers (price history, indicators). They output a score or probability. No chat, no writing. Cheap, explainable — enough for optional setup scoring. LLM = chat-style AI (ChatGPT, DeepSeek). Reads text and news. More expensive and harder to control. Not required for v1 — and not what “AI scoring” means on this page.

Example: Model says “this setup looked good ~62% historically” → that’s classic ML. “Write me a trading plan in English” → that’s an LLM. I only need the first if anything — and only if evidence justifies it.

Timeframe trading

How long a typical trade might last — minutes (fast/scalping), hours (day), or days/weeks (swing). Faster trading is not “better”; it’s usually harder.

Example: Scalp = minutes · Day trade = hours · Swing = days to weeks.

Trade log dashboard

The full list of what was traded, when, at what price, and (ideally) why. Essential for reviewing mistakes and improving the system.

Example: “2026-03-12 14:05 · Bought 0.1 lot EUR/USD @ 1.0850 · Reason: trend filter · Closed @ 1.0872 · +R400.”

Win rate dashboard

The percentage of trades that ended profitable. High win rate ≠ always good — a few big losses can wipe out many small wins. Always read it next to drawdown and profit factor.

Example: 100 trades, 58 winners → 58% win rate. But if the 42 losers were huge, the account can still be down.

Risk limit / stop loss safety

Rules that cap how much can be lost — per trade, per day, or in total. The bot should refuse to keep trading past agreed limits. This is more important than any prediction model.

Example: “Never risk more than 1% on one trade; stop the bot if the day loses more than 3%.”

Email your results (optional)

One step: open your email app with your decisions and time estimate pre-filled, addressed to azgartar@gmail.com. Nothing is sent until you press send in your mail client.