SkyAnalyst
SkyAnalyst Docs

Trading Bridge: Setting Up Automated Trading

The SkyAnalyst Trading Bridge connects your AI-generated trade signals to your local trading platform (cTrader and MetaTrader 5). It is a Windows desktop application that acts as a relay: when your monitored trades trigger entry conditions, the bridge forwards the signal to a bot running inside your trading platform, which places the order.

📥 Download Trading Bridge for Windows — Save the .exe and follow the Installation section below.

Important: The Trading Bridge is a BETA feature. Always test with demo accounts before enabling automated execution on live capital. The current minimum supported bridge version is v1.46.


What is the Trading Bridge

A desktop application for Windows that:

  • Runs on your local machine alongside your trading platform
  • Receives trade signals from SkyAnalyst when entry conditions are met
  • Forwards signals to your cTrader or MetaTrader 5 bot
  • Enables fully automated trade execution from AI analysis to platform entry

The bridge itself does not execute trades. It relays signals to a bot that lives inside your trading platform, and the bot handles the actual order placement.


System Requirements

RequirementDetails
Operating SystemWindows 10 or later
Trading PlatformcTrader and/or MetaTrader 5
Bridge Versionv1.46 or later (heartbeat every 20s, see below)
Internet ConnectionRequired, always-on, wired recommended
SkyAnalyst AccountActive subscription with automation access

Installation

Step 1: Download the Desktop App

  1. Open Settings in SkyAnalyst AI (gear icon in the sidebar)
  2. Scroll to the SkyAnalyst Trading Bridge section (marked BETA)
  3. Click "Download for Windows"
  4. Save the installer (SkyAnalyst-Trading-Bridge.exe) to your computer

Step 2: Install on Windows

  1. Run the downloaded SkyAnalyst-Trading-Bridge.exe
  2. The first-run wizard detects that the .exe is in your Downloads folder and offers to install it to %LocalAppData%\SkyAnalystBridge\. Accept the default and check "Create desktop shortcut".
  3. The installer copies the executable, registers the bundled cTrader bot file, creates the shortcut, and relaunches the bridge from its permanent location.
  4. The bridge starts and waits for a pairing code.

Why this matters: running directly from Downloads is fine, but you will lose the .exe the next time you clear the folder. The wizard's one-click install keeps the bridge in a stable location and prevents Windows from quarantining a "downloaded executable" on every launch.


Pairing Your Device

The pairing process creates a secure connection between your SkyAnalyst web account and your desktop Trading Bridge app.

Step 1: Generate a Pairing Code

  1. In the SkyAnalyst web app, go to Settings -> Trading Bridge
  2. Click "Generate Pairing Code"
  3. A code in XXXX-YYYY format appears with a 10-minute countdown timer
  4. Copy the code (click the copy button or select and copy)

Pairing codes use a 32-character alphabet (no ambiguous 0/O or 1/I) and are single-use. There are over a trillion possible codes, but they expire in 10 minutes, so generate fresh ones close to the moment you enter them.

Step 2: Enter the Code in the Bridge App

  1. Open the SkyAnalyst Trading Bridge desktop application
  2. Enter the pairing code displayed in your browser (case-insensitive, dashes optional)
  3. The Bridge app validates the code with the SkyAnalyst relay and establishes the connection

Step 3: Verify Connection

Once paired successfully:

  • The web app shows a "Connected" status with your device name
  • Last seen timestamp updates in real time
  • You can test the connection using the "Test Connection" button, which sends a non-trading connection_test payload through the relay and measures round-trip latency

Pro Tip: Pairing codes expire after 10 minutes and can only be used once. If a code expires, simply generate a new one. You can pair up to 3 devices per account.


Installing Trading Bots

Once your Trading Bridge is connected, you need a bot running inside your trading platform that listens for signals from the bridge. The bridge does not place orders directly; it forwards each signal to a bot, and the bot places the order on your broker account.

cTrader with SkyAnalyst Automated Trader bot running, green status

cTrader workspace with the SkyAnalyst Automated Trader bot in the Active state

cTrader Bot Installation

The cTrader bot is bundled with the desktop bridge and installed in one click.

Prerequisites

  • cTrader Desktop installed and signed in to your broker account.
  • A broker that supports cTrader Algo (cBot) automated trading. Pepperstone is the reference broker used in the bundled defaults; IC Markets, FP Markets, and other cTrader brokers also work. Check that your broker allows API/cBot trading on the account type you are using.
  • An account with sufficient balance and the right leverage for the lot sizes you plan to trade. The bot computes lot size from the AI's recommended risk percentage, not from a fixed lot.
  • "Allow automated trading" enabled in cTrader (one-time toggle in the platform's preferences).

Step 1: Locate the bot file

When you installed the bridge, the bundled bot file was copied alongside the executable:

%LocalAppData%\SkyAnalystBridge\SkyAnalyst Automated Trader.algo

You can also re-install it from the bridge dashboard at any time via the Install Automated Trader -> Install in cTrader button. That button extracts the .algo file from the bridge installation and opens it with cTrader.

Step 2: Import the bot into cTrader

  1. Double-click SkyAnalyst Automated Trader.algo, OR click Install in cTrader in the bridge dashboard.
  2. cTrader opens an import dialog: confirm the import.
  3. The bot appears in the cTrader Algo tab under cBots -> SkyAnalyst Automated Trader.

If Windows shows "How would you like to open this file?", cTrader is not yet installed or not associated with .algo files. Open cTrader first, then re-run the install.

Step 3: Attach the bot to a chart per instrument

Each running bot instance listens on its own local port and handles one instrument. The bridge ships with bundled default ports, one per instrument:

PortInstrument (cTrader)Routing Key
8050US30 (Pepperstone)US30-Pepperstone
8051NAS100 (Pepperstone)NAS100-Pepperstone
8052US500 (Pepperstone)US500-Pepperstone
8053XAUUSD (Pepperstone)XAUUSD-Pepperstone
8054EURUSD (Pepperstone)EURUSD-Pepperstone
8055USDJPY (Pepperstone)USDJPY-Pepperstone
8056BTCUSD (Pepperstone)BTCUSD-Pepperstone
8057AUDUSD (Pepperstone)AUDUSD-Pepperstone
8058USDCAD (Pepperstone)USDCAD-Pepperstone
8059GBPUSD (Pepperstone)GBPUSD-Pepperstone
8060US30_CASH_FTMOUS30_CASH_FTMO
8061US500_CASH_FTMOUS500_CASH_FTMO
8062US100_CASH_FTMOUS100_CASH_FTMO

For each instrument you want to automate:

  1. Open the cTrader chart for that exact symbol (e.g., US30 on your Pepperstone account).
  2. Drag SkyAnalyst Automated Trader from the cBots panel onto the chart.
  3. In the bot's parameters, configure the key inputs (see Bot Inputs below). At minimum, pick your Symbol from the dropdown — the Listening Port auto-configures from the table above (e.g. 8050 for US30).
  4. Click Start. The bot status flips to Running (green).

You can run multiple instances of the bot in parallel, each on its own chart and its own port.

Bot Inputs (cTrader v2.61)

The cTrader bot's parameters mirror the MT5 EA's inputs. The most important ones:

  • Symbol (required) — pick from the dropdown. Auto-configures the Listening Port.
  • Risk Source (default Bot)Bot uses your Fixed Risk; App uses the AI's position_size_pct from the webhook.
  • TP Source (default Bot) — same idea for take-profit % allocation.
  • Fixed Risk Unit (default Percent) — choose between percent-of-balance or dollar amount.
  • Fixed Risk (%) (default 1.0) — risk per trade when Risk Source = Bot. Must be > 0 and ≤ Max Risk Cap.
  • Max Risk Cap (default Cap_5pct, choices: 5/10/15/20/25/30%)the hard ceiling that caps BOTH your bot's Fixed Risk AND any position_size_pct arriving from SkyAnalyst. App over cap → trade is rejected; Bot over cap → trade is clamped at the cap. If you raise this above 5%, the bot's status card shows a red ⚠ HIGH RISK — cap N% badge as a deliberate reminder.
  • Max Drawdown (%) (default 15.0) / Max Daily Loss (%) (default 5.0) — drawdown halts until you restart the bot; daily loss halts until the next trading day (Ecuador timezone). Daily Loss must be strictly less than Max Drawdown.
  • TP1/TP2/TP3 R-multiples (default 1 / 2 / 3) and TP1/TP2/TP3 percentages (default 100 / 0 / 0, must sum to 100) — used when TP Source = Bot.
  • Max Positive Trades/Day (default 2), Max Negative Trades/Day (default 1), Max Active Trades (default 1) — daily/concurrent caps.
  • Bot Log Folder — change the default path to one that exists on your machine (the shipping default is a developer path).

Max Risk Cap — read this: raise the cap deliberately if you want the AI's higher position_size_pct recommendations through; otherwise leave at 5%. App risk over the cap is rejected at trade time (the trade simply doesn't open and the rejection is logged) — not silently clamped. The Cap also blocks bot startup if your Fixed Risk input is configured above the Cap.

Step 4: Confirm the bridge route is configured

Open the bridge dashboard, go to the Routes view, and confirm that the destination for the port you just attached is Enabled and has the correct Routing Key. The bundled defaults are already wired up, but verifying matters because a missing or wrong routing key silently drops the signal.

MetaTrader 5 EA Installation

The MT5 Expert Advisor is bundled with the desktop bridge and installs in one click. The EA is two files that work together:

  • SkyAnalystAutomatedTraderLite.ex5 — the brain. Polls the listener once per second, validates the JSON payload, runs every safety check (instrument match, duplicate trade ID, risk cap, SL/TP sanity), sizes the position from your risk settings, and places the order through your broker.
  • MT5SkyBridgeConnector.dll — the ears. Listens on the local port (e.g. 127.0.0.1:8000) and hands incoming webhooks to the EA. It doesn't think, doesn't trade.

Together they form a one-way pipe: SkyAnalyst's cloud sends a signal -> the DLL receives it locally -> the EA validates and executes it in MT5.

Prerequisites

  • MetaTrader 5 installed and signed in to your broker account. Pepperstone is the reference broker used in the bundled defaults; IC Markets, FP Markets, OANDA, and FTMO MT5 also work.
  • An account with sufficient balance and the right leverage for the lot sizes you plan to trade. The EA computes lot size from your risk settings (Fixed Risk or the webhook's position_size_pct), not from a fixed lot.

One-time MT5 platform setup

Do this once per MT5 install — every future EA attachment inherits these settings.

  1. In MT5, open Tools -> Options -> Expert Advisors.
  2. Check both Allow algorithmic trading AND Allow DLL imports.
  3. Click OK.
  4. Make sure the Algo Trading button in the top toolbar is green (click it if it is red).

Step 1: Install the EA files

You can install in two ways. The one-click install from the bridge dashboard does both file copies for you and is the recommended path.

Option A — One click from the bridge dashboard (recommended):

  1. In the bridge dashboard, click Install in MT5.
  2. The bridge scans for installed MT5 terminals and lists each one with its short data-folder ID (e.g. Pepperstone MetaTrader 5 — 73B7A242). If your terminal isn't auto-detected, click Browse... and select the MT5 data folder manually.
  3. Pick the terminal you want and click Install.
Trading Bridge Install SkyAnalyst MT5 Bot dialog showing detected MT5 terminals and a Browse for manual folder selection

Install dialog: pick the MT5 terminal you want — each row is a separate MT5 install detected on your machine

Option B — Manual install:

  1. In MT5, click File -> Open Data Folder.
  2. Drop SkyAnalystAutomatedTraderLite.ex5 into MQL5\Experts\SkyAnalyst\ (create the SkyAnalyst subfolder if needed).
  3. Drop MT5SkyBridgeConnector.dll into MQL5\Libraries\.
  4. Back in MT5, click on the Navigator panel and press F5 to refresh.

Either way, you should now see SkyAnalystAutomatedTraderLite under Navigator -> Expert Advisors -> SkyAnalyst, ready to drag onto any chart.

Step 2: Attach the EA to a chart per instrument

Each running EA instance listens on its own local port and handles one instrument. The bridge ships with bundled default ports for MT5 (8000-block):

PortInstrument (MT5)Routing Key
8000US30 (Pepperstone)US30-Pepperstone
8001NAS100 (Pepperstone)NAS100-Pepperstone
8002US500 (Pepperstone)US500-Pepperstone
8003XAUUSD (Pepperstone)XAUUSD-Pepperstone
8004EURUSD (Pepperstone)EURUSD-Pepperstone
8005USDJPY (Pepperstone)USDJPY-Pepperstone
8006BTCUSD (Pepperstone)BTCUSD-Pepperstone
8007AUDUSD (Pepperstone)AUDUSD-Pepperstone
8008USDCAD (Pepperstone)USDCAD-Pepperstone
8009GBPUSD (Pepperstone)GBPUSD-Pepperstone
8010US30_CASH_FTMOUS30_CASH_FTMO
8011US500_CASH_FTMOUS500_CASH_FTMO
8012US100_CASH_FTMOUS100_CASH_FTMO

MT5 vs cTrader ports: MT5 uses 8000-8012, cTrader uses 8050-8062. If you run both side-by-side on the same machine, the ports never collide — but the bridge routes by Routing Key, not by port, so each destination still needs its key configured correctly.

For each instrument you want to automate:

  1. Open the MT5 chart for that exact broker symbol (e.g. US30.cash for the Pepperstone Dow Jones, EURUSD for the euro).
  2. From the Navigator panel, expand Expert Advisors -> SkyAnalyst and drag SkyAnalystAutomatedTraderLite onto the chart.
  3. In the attach dialog that opens, on the Common tab, check Allow Algo Trading.
EA attach dialog Common tab with Allow Algo Trading checked

Common tab: tick Allow Algo Trading for this EA instance

  1. Switch to the Dependencies tab and confirm Allow DLL imports is checked. You will see MT5SkyBridgeConnector.dll and a handful of Windows runtime DLLs listed — that is expected.
EA attach dialog Dependencies tab with Allow DLL imports checked and MT5SkyBridgeConnector.dll listed

Dependencies tab: tick Allow DLL imports and confirm MT5SkyBridgeConnector.dll is listed

  1. Switch to the Inputs tab and configure the key parameters (see Step 3 below).
  2. Click OK.

The EA's status panel appears in the top-left of the chart and should show Port Status: OK in lime within a second or two. That confirms the DLL is listening.

MT5 chart with SkyAnalystAutomatedTraderLite attached, status panel showing Account, Instrument, Risk, Listen Port, Port Status OK, Bot Mode Auto, Active, Day Trades, Day P&L

EA running on a GBPUSD chart: Port Status: OK = the DLL is listening on the assigned port

Repeat for each instrument you want to automate. You can run as many EA instances in parallel as you have charts open.

Step 3: EA Inputs — what each setting does

The EA's Inputs tab is grouped into sections that mirror the on-chart panel. Defaults are conservative; the only field you must change is the instrument selector.

=== ONE-TIME SETUP — do once, then forget === (read-only reminders for the platform settings above — Allow DLL imports, Allow Algo Trading, toolbar Algo Trading button green)

=== SkyAnalyst Automated Trader Lite ===

  • BotMode (default Auto)Auto listens for webhooks. Manual_Only disables the listener entirely (useful for paper-testing the panel without accepting signals).
  • AccountName (default Demo Account) — used in log filenames and the duplicate-trade-ID cache key. Pick a label that distinguishes your accounts (e.g. Pepperstone Live).

=== Trading Bridge Settings ===

  • SymbolFilter (required — defaults to Choose_Your_Instrument which keeps the EA disabled) — pick the instrument this EA instance handles. This auto-configures the listening port from the table above.
  • SLTPOffsetPips (default 0.0, range +/-50) — uniform shift applied to the AI's SL and every TP. Leave at 0 unless you have a specific reason to widen.
  • RiskSource (default RiskTP_Bot)RiskTP_Bot uses your Fixed Risk below. RiskTP_App uses the AI's recommended position_size_pct from the webhook.
  • TpSource (default RiskTP_Bot) — same idea for how take-profit percentages get allocated.

=== Fixed Risk Settings ===

  • FixedRiskUnit (default Percent) — choose between percent-of-balance or dollar amount.
  • FixedRiskPercent (default 1.0) — risk per trade when Risk Source = Bot. Must be > 0 and ≤ Max Risk Cap.
  • FixedRiskDollar (default 100.0) — risk per trade in dollars when Risk Unit = Dollar.
  • MaxRiskCap (default Cap_5pct, choices: 5/10/15/20/25/30%)the hard ceiling that caps BOTH your bot's Fixed Risk AND any position_size_pct arriving from SkyAnalyst's cloud. See the dedicated section below.

=== Risk Limits ===

  • MaxDrawdown (default 15.0 %, range 0-50) — equity drawdown that halts the bot until you restart MT5. The restart is intentional: it forces you to look at your account before trading resumes.
  • MaxDailyLoss (default 5.0 %, range 0-30) — daily-loss limit that halts trades for the rest of the trading day (Ecuador timezone). Resumes automatically the next day. Must be strictly less than MaxDrawdown.

=== Trade Parameters ===

  • TP1Percent / TP2Percent / TP3Percent (default 100 / 0 / 0) — partial-close allocation. Must sum to 100. TP1 must be > 0.
  • TP1R / TP2R / TP3R (default 1.0 / 2.0 / 3.0) — R-multiples used when TP Source = Bot.

=== Daily Limits ===

  • MaxPositiveTradesDay (default 2) — once you've hit N winners, no more trades today.
  • MaxNegativeTradesDay (default 1) — same idea on the loss side.
  • MaxActiveTrades (default 1) — how many trades can be open simultaneously on this symbol.

=== Logging ===

  • LogFolder (default SkyAnalyst Logs) — subfolder under MQL5\Files\. Absolute Windows paths are silently re-mapped to the safe default.

=== Custom Port Overrides (0 = use default) ===

  • One integer input per instrument, all defaulting to 0 (= use the default port from the table above). Only set one of these if the default port is already in use on your machine.

Max Risk Cap — the hard ceiling that catches both sides

This is the most important parameter to understand. MaxRiskCap caps BOTH bot-source risk AND webhook-source risk. The behavior depends on which side hit the cap:

  • Webhook (App-sourced) risk over cap -> REJECT. If the AI sends a position_size_pct of 8% but your cap is 5%, the EA refuses the trade and logs [WEBHOOK] REJECT - webhook risk $X exceeds Max Risk Cap $Y. Lower the AI's risk in SkyAnalyst, or raise the dropdown.
  • Bot (Fixed) risk over cap -> CLAMP. Only happens if your account balance shrinks mid-session enough that your Fixed Dollar value now exceeds 5% of balance. The trade still opens, just at the capped amount. Logged as [RISK-CAP] Bot risk $X clamped to $Y.

Default is 5%. If you raise the cap, the EA's status panel shows a red banner: >> HIGH RISK MODE - N% cap selected <<. That banner is a deliberate reminder that you are above the conservative default.

Practical guidance: leave Max Risk Cap at 5% unless you have a specific reason to accept higher risk on a specific instrument. Raising it does not make the AI more aggressive — it only widens the ceiling at which the bot will accept the AI's risk recommendations. If you want the AI's full risk through, set Risk Source = RiskTP_App AND raise the cap to match the highest position_size_pct you are willing to accept.

Step 4: Confirm the status panel is healthy

A correctly-running EA shows this panel in the top-left of the chart:

FieldHealthy value
AccountYour AccountName input
InstrumentThe selected symbol (e.g. GBPUSD)
RiskE.g. Bot 1.00% Fixed or App / Cap 5%
Listen PortThe auto-assigned port (e.g. 8009 for GBPUSD)
Port StatusOK in lime — the DLL is listening
Bot ModeAuto
Active0 / 1 (open trades / MaxActiveTrades)
Day TradesW:0 / L:0 (max 2/1)
Day P&L+$0.00 or -$X.XX (lime / tomato)

If you see Port Status: ERROR (retrying) (orange) or FAILED - restart EA (red), another process is using that port. Either close the conflicting process, or set a Custom Port Override in the EA inputs and update the matching destination in the bridge Routes view.

If you see BOT DISABLED with a Fix: <reason> line, the EA failed pre-flight validation. The most common reason is No instrument selected — open the EA inputs and pick a SymbolFilter.

Step 5: Confirm the bridge route is configured

Open the bridge dashboard -> Routes view -> confirm the MT5 destination for this instrument is Enabled and its Routing Key matches the column in the table above. Bundled defaults come pre-wired but verifying matters: a missing or wrong routing key silently drops the signal.


Routing: How Signals Find the Right Bot

The bridge supports running many bots on one machine, one per instrument. Routing makes sure each signal reaches exactly one bot.

Routing Key Format

Every destination in the bridge has a Routing Key in the form:

<SYMBOL>-<BROKER>

Examples: US30-Pepperstone, NAS100-Pepperstone, XAUUSD-Pepperstone. The _CASH_FTMO instruments are an exception — the broker hint is already inside the symbol, so the routing key stays as US30_CASH_FTMO.

Why the broker suffix matters

The same symbol can mean different contracts at different brokers. US30 on Pepperstone is a CFD on the Dow Jones; US30 on a different broker may price differently, have a different tick size, or behave differently on news. By appending the broker name, the bridge can have multiple US30 destinations on the same machine — one per broker — without ambiguity.

Fail-closed behavior

The bridge will refuse to forward a signal if:

  • The destination has no Routing Key, OR
  • The Routing Key is empty or set to a wildcard, OR
  • The signal's instrument does not exactly match any enabled destination's Routing Key (case-insensitive)

This is deliberate. A wildcard or missing key would mean "send this signal everywhere," and that is exactly how an automated US30 trade ends up entering on a XAUUSD chart. No routing key, no execution. You will see the dropped signal logged in the bridge dashboard so you can fix the configuration and re-trigger.

Worked example: US30 alert -> cTrader fill

  1. SkyAnalyst Analysis Agent posts a US30 setup with grade 8.4 (Grade-A Fast Track-eligible).
  2. Price enters the entry zone. The Entry Evaluator validates and flips the trade to triggered.
  3. Alert-dispatcher sends a webhook to your relay device URL with Data.instrument = "US30-Pepperstone" and the full trade details.
  4. Your bridge receives the webhook over SignalR, extracts the instrument, and finds the destination with Routing Key US30-Pepperstone (port 8050).
  5. The bridge POSTs the payload to http://localhost:8050, where the cTrader bot is listening.
  6. The cTrader bot reads position_size_pct, computes the lot size from your account balance, places a market or pending order with the bot's stop-loss and take-profit configuration, and reports success.

The whole loop typically completes in well under a second.


Bot Behavior: Lot Sizing, SL/TP, Order Placement

The bot inside cTrader (or MT5, when shipped) reads each incoming payload and decides exactly how to place the order. The bridge does not interpret the payload — it just hands it over.

How the bot computes lot size

The payload includes position_size_pct, the AI's recommended risk percentage (e.g., 0.5 means risk 0.5% of equity on this trade). The bot:

  1. Reads your current account balance from cTrader.
  2. Multiplies by position_size_pct to get the dollar risk for this trade.
  3. Measures the distance from entry to the chosen stop-loss in pips/points.
  4. Computes the lot size that makes (risk per pip) × (distance) equal the dollar risk.
  5. Rounds to the broker's minimum lot increment, applies your configured per-trade lot cap, and submits the order.

If position_size_pct is missing or the bot has been configured with a fixed override lot, the bot falls back to that fixed lot.

Stop loss and take-profit placement

The payload contains:

  • entry_min / entry_max: the entry zone boundaries
  • sl_tight / sl_wide: two stop-loss options the AI considered acceptable
  • tp1 / tp2 / tp3: take-profit ladder

The bot uses the SL/TP variant you configured in its inputs (default: sl_wide for safety, tp1 as the primary target, with the broker's partial-close feature handling tp2 and tp3). All distances are converted to broker pips/points by the bot using the instrument's contract spec.

Testing the loop end-to-end

Before going live:

  1. In SkyAnalyst, enable Demo Trading on your account (or use a separate demo subscription).
  2. Pair the bridge with the demo profile and attach the cTrader bot to a demo account chart in cTrader.
  3. Manually trigger a low-grade signal from the AI (or wait for one) and watch:
    • The signal arrives in the bridge's webhook log.
    • The bridge forwards to http://localhost:<port>.
    • The bot logs Order placed and you see a position open in cTrader.
  4. Let the trade run to either TP1 or SL and confirm the bot closes/manages it as you expect.
  5. Only then switch the bridge profile to your live account and live cTrader bot.

Trading Bridge signal flow: AI Entry Evaluator → alert-dispatcher → SignalR Relay → Bridge → cTrader/MT5 bot → broker. One-way with no fill confirmation back.

Enabling Automated Trading

Per-Trade Automation

Once your Trading Bridge is connected and a bot is running:

  1. Navigate to your Monitored Trades in the AI Trading Agents hub
  2. Find the trade you want to automate
  3. Click the "Automate" button on the trade card
  4. In the connection modal, click "ENABLE AUTOMATED TRADING"
  5. The button changes color to indicate automation is active (orange = active, purple = inactive)

When enabled, the following happens automatically:

  • The AI monitors the trade as usual (entry zone alerts, condition evaluation)
  • When entry conditions are met, instead of only alerting you, the signal is also sent to your Trading Bridge
  • The bridge forwards the complete trade details to the bot matching the trade's instrument
  • The bot places the order in your trading platform
Trading Bridge connection modal showing Connected with auto-trade active (orange button)

The connection modal with auto-trade active — the orange button confirms signals will be forwarded

Wizard-level Automation (AutomatedTradingCard)

Inside the Generate Trade Ideas wizard (Step 6) you can flip auto-execute on for every trade an agent produces, without having to enable per-trade. This lives in the AutomatedTradingCard in the AI Trading Agents wizard.

  • The card is disabled until you have paired a bridge device.
  • Once paired, the toggle becomes available. An AutomatedTradingConfirmDialog asks you to confirm the risk before enabling.
  • The toggle's state is per-agent: a Smart Scan US30 agent with auto-execute on will forward every triggered setup; a different agent on the same account can remain manual.

For the full wizard walkthrough, see the AI Trading Agents chapter of this guide -> The Wizards -> Step 6: Automated Trading.

Grade-A Fast Track

The GradeAFastTrackCard (same wizard step) opts your agent into a faster execution path for Grade-A setups (confidence ≥ 8 (eight or above)):

  • Step-1 conditions (the bullet list of evidence the AI required) are skipped.
  • The zone gate still applies: price must enter the AI's entry zone before the signal fires.
  • The AI Entry Evaluator still runs as a safety veto — it can reject a Grade-A setup if the live read disagrees, and the four hard gates (open-position guard, news-blocking window, recent-loss gate, same-direction loss gate) can still block the alert.

Use Grade-A Fast Track when you want speed on the AI's highest-confidence ideas; leave it off when you want the full conditions check on every trade. See the AI Trading Agents chapter for the full rationale and risk discussion.

What the Signal Contains

Each automated signal includes:

  • Instrument: the routing key (e.g., US30-Pepperstone)
  • Direction: LONG or SHORT
  • Entry zone: minimum, maximum, aggressive, and conservative levels
  • Stop loss: tight and wide options
  • Take profit levels: TP1, TP2, TP3 with ranges
  • AI confidence score and grade
  • position_size_pct: the AI's recommended risk percentage
  • AI decision notes (machine-readable rationale)

The bot uses this information to place orders according to its configuration.

Fill confirmation gap (important): SkyAnalyst marks a trade as "entered" based on its own price feed crossing the entry zone, not on a confirmation from your broker. The bot's actual fill may differ slightly (or fail entirely if the broker rejects the order). Always cross-check the position in cTrader, especially during news or thin liquidity, and treat the SkyAnalyst "entered" badge as a signal-side state, not a broker-side state.


Monitoring & Troubleshooting

Connection Status

The bridge sends an application-level heartbeat every 20 seconds (v1.46+; earlier versions used 30 s). The web app interprets this as follows:

  • Green WiFi icon: bridge is connected and the last heartbeat arrived inside the expected window
  • Amber WifiOff icon: the bridge was recently connected but has missed one or more heartbeats — typically this means SignalR is reconnecting after an idle disconnect, or the bridge process is paused (laptop sleep, app minimized to tray, network hiccup). The web app still shows your device as "Last seen X ago." If you see amber for more than ~30 s, check that the bridge tray icon shows "Connected."
  • Disconnected: bridge app is not running or has lost connectivity for longer than the timeout.

The 20-second cadence (down from 30 s) is tighter than every documented edge-proxy idle timeout, so transient amber states on a stable wired connection are usually a sign of a real network blip, not a heartbeat-tuning issue.

Three connection status indicators side by side: green Connected, amber WifiOff, gray Disconnected

The three bridge connection states — green, amber, and disconnected — as they appear in Settings

Latency Interpretation

When you click Test Connection, the relay returns a round-trip latency in milliseconds.

ReadingColorMeaning
< 200 msGreenHealthy. Order-routing latency is well below human reaction time.
200-500 msAmberTolerable, but investigate. Check that the bridge is on wired ethernet and that no VPN is in the path.
> 500 msRedInvestigate immediately. Auto-trading at this latency can mean a meaningful slippage gap between AI signal and broker fill.

Device Management

  • View all paired devices in Settings -> Trading Bridge
  • See the last seen timestamp and latency for each device
  • Disconnect a device if you no longer need it
  • Maximum 3 active devices per account

Common Issues

IssueLikely causeSolution
Pairing code expiredCode older than 10 minGenerate a new code
"Maximum devices reached"Already paired with 3 devicesDisconnect an unused device in Settings first
Bridge shows connected but no signalsAuto-trade off on the specific trade or agentEnable auto-trade on the trade card or in the wizard's AutomatedTradingCard
Signals sent but no orders placedBot not attached to chart, bot not Running, wrong portVerify the bot is Running on the matching chart and the listening port matches the bridge's Routing Key port
Signals dropped with "no matching destination"Routing key mismatch (case is fine; the symbol or broker suffix differs)Confirm Routing Key is <SYMBOL>-<BROKER> exactly matching what the relay sends
"Connected" but amber WifiOffOne or more heartbeats missedWait 30 s; check tray icon; if persistent, check Wi-Fi / Ethernet stability
High latency warningsWi-Fi, VPN, or saturated linkMove to wired ethernet, disable VPN, close large uploads
Bot logs "Order rejected"Broker rules (margin, leverage, news block, market closed)Check cTrader's / MT5's journal for the broker error message and adjust risk or timing
MT5 panel shows Port Status: ERROR or FAILED - restart EAAnother app on your machine is using the listening portClose the conflicting app, OR set a Custom Port Override in EA Inputs and update the matching destination in the bridge Routes view
MT5 panel shows BOT DISABLED - Fix: No instrument selectedYou haven't picked a SymbolFilter in EA InputsRight-click the chart -> Expert Advisors -> Properties -> Inputs tab -> pick your instrument from the dropdown
MT5 panel shows HIGH RISK MODE banner in redMax Risk Cap is set above 5%Deliberate reminder. Lower the Max Risk Cap dropdown back to 5% if this wasn't intentional
MT5 webhook log shows [WEBHOOK] REJECT - webhook risk exceeds Max Risk CapThe AI sent a position_size_pct higher than your CapEither lower the AI's risk in SkyAnalyst, or raise the EA's Max Risk Cap dropdown

Webhook Security

When you (or an agent) configure webhook delivery from SkyAnalyst — either to your bridge device URL or to an external endpoint — there are a few canonical safeguards to know:

  1. Per-device webhook URLs: every paired bridge has a unique URL of the form https://skyanalyst-relay-production.up.railway.app/<deviceId>/webhook. The device ID is a UUID — treat it as a secret. Anyone with the URL can push payloads at your bridge.
  2. Relay-side validation: the relay only forwards if the payload has the required envelope fields (EventId, Timestamp, Type, UserId, AccountId, Data). Connection tests use a separate type: "connection_test" payload that is forwarded without ACK tracking.
  3. Bridge-side fail-closed routing: as covered above, no routing key means no forward.
  4. Custom security headers: for external webhooks (alerting your own backend, Telegram bots, custom dashboards), you can configure custom security headers in Settings -> Webhook Security. The SkyAnalyst dispatcher will add those headers to every outbound webhook so your endpoint can verify the request is genuinely from SkyAnalyst.

For the per-alert webhook security note that appears inline in the wizards (Monitoring Alerts, Trade Setup Alerts, Analysis Notifications), the canonical link is the same: Settings -> Webhook Security.

Operational rule: rotate the device pairing (disconnect + re-pair) if you ever leak the device URL. Codes are cheap; a compromised bridge URL means a third party could send arbitrary payloads to your bot.


Safety & Limits

Safety FeatureDetails
Pairing code expiryCodes valid for 10 minutes only
One-time use codesEach code can only be used once
Rate limitingMaximum 5 pairing codes per hour
Device limitMaximum 3 active devices per account
Per-trade toggleAutomation must be enabled per trade or per agent (wizard)
AuthenticationRelay secret required for bridge-to-server pairing validation
Fail-closed routingMissing or wildcard Routing Key drops the signal rather than broadcasting it
Heartbeat 20 sTighter than any documented edge-proxy idle timeout

Critical Safety Rule: Always test automated execution on a demo account first. Start with the smallest possible position size. Monitor the first several automated trades closely before trusting the system to operate unattended. You remain responsible for all trades executed through the Trading Bridge.

Want to see this in action?

Ready to start

Your AI trading desk, in your pocket

Start your trial — the AI Trading Agents, the AI Chat Assistant, and the Trading Bridge are ready.