Every signal the strategy sent, and exactly what the broker did with it.
Taken from the broker's own deal history — not from TradingView's messages, which carry one alert for both legs of an exit and so cannot tell a stop-out from a take-profit. Planned is the price your strategy sent; filled is what the broker gave.
| Time | Instrument | Window | Dir | Planned | Filled | Slip | Exit | Risk asked | Risk taken | Held | Why | R | P&L | Running |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 16 Sep 14:02 UTC | NAS100 | 09:20 | long | 29143.34 | 29162.64 | 19.3 | 29162.64 | 51.23 | 70.53 | 14 min | stopped out | +0.00R | +52.64 | -150.21 |
| 16 Sep 03:36 UTC | NAS100 | 22:50 | long | 29071.1 | 29069.14 | -1.96 | 29028.57 | 42.53 | 40.57 | 12 min | stopped out | -0.95R | -202.85 | -202.85 |
2 trades, -150.21 in total. Best +52.64, worst -202.85. Far too few trades to mean anything about the strategy — they are here because execution accuracy is only worth reading next to what it cost.
Candles from your broker's own feed — the same one that filled the order, so a candle and a fill can never disagree. ⭐ Each chart is drawn hours after the trade closed and deliberately runs on past the exit, because the useful question is not where we got in. It is what price did next.
Over the 180 minutes after the exit price reached 29,096.84. ⚠ This trade's targets were not recorded — the executor only began reporting them on 16 September — so nothing here can be said about whether they would have been hit.
What the relay did with each message before the executor ever saw it. Times are the relay's, which is the only clock in this chain that is both trusted and shared. ⚠ A rejected message is a missed trade, and a missed trade looks exactly like a quiet market — so each one is listed rather than counted.
| Time | From | Instance | Message | Outcome | Why |
|---|---|---|---|---|---|
| 16 Sep 13:48:06 UTC | TradingView | nas3m | buy | Accepted | |
| 16 Sep 07:11:02 UTC | manual test | nas3m | flatten | Accepted | |
| 16 Sep 07:10:07 UTC | manual test | nas3m | buy | Accepted | |
| 16 Sep 03:24:01 UTC | TradingView | nas3m | buy | Accepted | |
| 16 Sep 00:39:24 UTC | manual test | nas3m | flatten | Accepted | |
| 16 Sep 00:33:07 UTC | — | nas3m | flatten | Accepted | |
| 16 Sep 00:31:45 UTC | — | nas3m | buy | Accepted | |
| 16 Sep 00:31:26 UTC | — | nas3m | — | Rejected | the message body was not valid JSON bad_json |
| 16 Sep 00:16:13 UTC | — | nas3m | buy | Accepted | |
| 15 Sep 19:46:29 UTC | — | ustec3m | buy | Accepted | |
| 15 Sep 17:36:50 UTC | — | ustec3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 17:36:38 UTC | — | eurusd3m | flatten | Accepted | |
| 15 Sep 17:36:03 UTC | — | ustec3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 13:58:19 UTC | — | eurusd3m | buy | Accepted | |
| 15 Sep 12:57:32 UTC | — | eurusd3m | buy | Accepted | |
| 15 Sep 12:55:33 UTC | — | eurusd3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 12:53:16 UTC | — | eurusd3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 12:53:12 UTC | — | eurusd3m | flatten | Accepted | |
| 15 Sep 12:47:22 UTC | — | eurusd3m | buy | Accepted | |
| 15 Sep 12:33:26 UTC | — | eurusd3m | buy | Accepted | |
| 15 Sep 12:15:41 UTC | — | eurusd3m | buy | Accepted | |
| 15 Sep 12:13:28 UTC | — | eurusd3m | flatten | Accepted | |
| 15 Sep 12:11:30 UTC | — | eurusd3m | buy | Accepted | |
| 15 Sep 12:11:29 UTC | — | eurusd3m | buy | Ignored as a duplicate | |
| 15 Sep 12:11:28 UTC | — | eurusd3m | buy | Ignored as a duplicate | |
| 15 Sep 12:11:28 UTC | — | eurusd3m | buy | Accepted | |
| 15 Sep 12:05:39 UTC | — | eurusd3m | buy | Accepted | |
| 15 Sep 12:01:18 UTC | — | eurusd3m | buy | Accepted | |
| 14 Sep 23:22:10 UTC | — | eurusd3m | buy | Ignored as a duplicate | |
| 14 Sep 23:22:10 UTC | — | eurusd3m | buy | Accepted | |
| 14 Sep 23:22:08 UTC | — | nq3m | — | Rejected | the message arrived with no content empty_body |
| 14 Sep 23:22:08 UTC | — | nq3m | — | Rejected | the shared secret did not match bad_secret |
| 14 Sep 11:39:54 UTC | — | nq3m | buy | Ignored as a duplicate | |
| 14 Sep 11:39:53 UTC | — | nq3m | buy | Accepted | |
| 14 Sep 11:39:52 UTC | — | nq3m | — | Rejected | the message arrived with no content empty_body |
| 14 Sep 11:39:51 UTC | — | nq3m | — | Rejected | the shared secret did not match bad_secret |
⚠⚠ A TradingView alert freezes your inputs, the chart symbol and the timeframe at the moment you create it, and keeps firing that frozen copy until it is deleted and remade. So a trade does not belong to “the settings” — it belongs to whatever was frozen into the alert that produced it. Each block below is one such configuration, with the trades that came from it.
⚠ TradingView offers no way to read an alert's settings back, so these are declared, not read. Where the messages themselves prove something, it is marked evidenced; everything else is our word for it.
First TradingView-originated signal 2026-09-16 03:24 UTC.
2 trades came from this configuration.
| Setting | Your default | Running as | How we know |
|---|---|---|---|
| Chart and instrument | |||
| Chart | — | VANTAGE:NAS100 | declared |
| Timeframe | — | 3m | declared |
| Broker symbol | — | NAS100 | evidenced |
| Account | — | Vantage demo, 1:100, USD 100k | declared |
| Macro windows | |||
| 09:20 NY | off | on | fired |
| 14:50 NY | off | on | no signal yet |
| 18:50 NY | off | on | no signal yet |
| 22:50 NY | off | on | fired |
| Trade geometry, as the messages describe it | |||
| Reward multiples | 1:1 · 2:1 · 3:1 | 1.0:1 · 2.0:1 · 3.0:1 | evidenced (1 signal) |
| Scale Out (Partial TPs)? | true | thirds | evidenced (1) |
| Strategy inputs changed from your defaults | |||
| Max Trades Per Day | 7 | 4 | declared |
| Enable Webhook Alerts? | false | true | declared |
| Ticker Symbol | NQM2026 | NAS100 | declared |
| Execution limits (ours, not yours) | |||
| Risk per trade | — | 0.5 % of balance | declared |
| Position cap | — | 5.0 lots | declared |
| Daily loss limit | — | 3.0 % | declared |
| Concurrent positions | — | 1 | declared |
Retired: that broker refused every index order with retcode 10017. No trade ever executed on this epoch.
0 trades came from this configuration.
| Setting | Your default | Running as | How we know |
|---|---|---|---|
| Chart and instrument | |||
| Chart | — | CAPITALCOM:US100 | declared |
| Timeframe | — | 3m | declared |
| Broker symbol | — | USTEC | declared |
| Account | — | MetaQuotes demo, USD 100k | declared |
| Macro windows | |||
| 09:20 NY | off | on | no signal yet |
| 14:50 NY | off | on | no signal yet |
| 18:50 NY | off | on | no signal yet |
| 22:50 NY | off | on | no signal yet |
| Trade geometry, as the messages describe it | |||
| Reward multiples, scale-out | 1:1 · 2:1 · 3:1, thirds | declared | awaiting a real signal ⚠ hand-fired tests are deliberately not counted — their geometry is ours, not the strategy's |
| Strategy inputs changed from your defaults | |||
| Max Trades Per Day | 7 | 4 | declared |
| Enable Webhook Alerts? | false | true | declared |
| Ticker Symbol | NQM2026 | US100 | declared |
| Execution limits (ours, not yours) | |||
| Risk per trade | — | 0.5 % of balance | declared |
| Position cap | — | 5.0 lots | declared |
| Daily loss limit | — | 3.0 % | declared |
| Concurrent positions | — | 1 | declared |
⭐ Read straight out of your Pine source rather than retyped, so the defaults column cannot drift from the strategy. All 66 of them, with the 14 the pilot changed marked. Not one line of your Pine was modified — the bridge reads the plan your strategy already emits.
| Setting | Your default | Running as |
|---|---|---|
| Strategy Settings | ||
| Position Sizing | Fixed | Fixed |
| Contracts (Fixed) | 3 | 3 |
| Risk % (of Equity) | 1.0 | 1.0 |
| Scale Out (Partial TPs)? | true | true |
| Single TP Target | 2:1 | 2:1 |
| Move SL to Breakeven | After 1:1 | After 1:1 |
| Max Trades Per Day | 7 | 4 changed |
| Max Trades Per Macro Window | 1 | 1 |
| Close at End of Day? | true | true |
| Allow Longs? | true | true |
| Allow Shorts? | true | true |
| Use Date Filter? | true | true |
| Start Date | timestamp("2026-01-01 00:00 +0000") | timestamp("2026-01-01 00:00 +0000") |
| End Date | timestamp("2026-12-31 23:59 +0000") | timestamp("2026-12-31 23:59 +0000") |
| Webhook Alerts | ||
| Enable Webhook Alerts? | false | true changed |
| Ticker Symbol | NQM2026 | NAS100 changed |
| Signal Settings | ||
| Bars After Macro For Signal | 6 | 6 |
| FVG Size Filter (ATR)? | true | true |
| Min Gap (×ATR14) | 0.23 | 0.23 |
| FVG Validity (Bars) | 400 | 400 |
| Mitigation Level | 50% | 50% |
| Displacement Filter | ||
| Enable Displacement Filter? | true | true |
| Min Body % of Range | 0.60 | 0.60 |
| Min Body vs Avg Body (×) | 1.60 | 1.60 |
| Avg Body Lookback | 20 | 20 |
| Signal Cooldown | ||
| Enable Cooldown? | true | true |
| Cooldown (Bars) | 10 | 10 |
| Liquidity Sweep | ||
| Enable Sweep Filter? | true | true |
| Sweep Threshold (×ATR14) | 0.0 | 0.0 |
| Sweep Mode | Aligned | Aligned |
| Require Sweep Rejection? | false | false |
| Asia H/L | true | true |
| London H/L | true | true |
| NY Open | true | true |
| Midnight | true | true |
| CISD Filter | ||
| Enable CISD Filter? | true | true |
| Trade Setup | ||
| Entry Mode | IFVG Edge | IFVG Edge |
| SL Buffer (×ATR14) | 1.95 | 1.95 |
| Performance Tables | ||
| Show Results Table? | true | true |
| Show Per-Macro Breakdown? | true | true |
| Macros | ||
| 00:50-01:10 | false | false |
| 01:50-02:10 | false | false |
| 02:50-03:10 | false | false |
| 03:50-04:10 | true | false changed |
| 04:50-05:10 | false | false |
| 05:50-06:10 | false | false |
| 06:50-07:10 | false | false |
| 07:50-08:10 | true | false changed |
| 08:50-09:10 | false | false |
| 09:20-09:40 | false | true changed |
| 09:50-10:10 | true | false changed |
| 10:50-11:10 | true | false changed |
| 11:50-12:10 | false | false |
| 12:50-13:10 | true | false changed |
| 13:50-14:10 | false | false |
| 14:50-15:10 | false | true changed |
| 15:15-15:45 | false | false |
| 15:50-16:10 | false | false |
| 16:50-17:10 | false | false |
| 17:50-18:10 | false | false |
| 18:50-19:10 | false | true changed |
| 19:50-20:10 | false | false |
| 20:50-21:10 | true | false changed |
| 21:50-22:10 | false | false |
| 22:50-23:10 | false | true changed |
| 23:50-00:10 | true | false changed |
Each finding recomputes from the records on every rebuild, heading included. ⚠ The reasoning behind them does not — it updates its numbers but cannot notice something nobody has looked for.
5 plans executed, 0 plans refused by the executor, 1 rejected at the relay before the executor saw them. ⚠ A refused plan is a missed trade, and a missed trade looks exactly like a quiet market — so each one is listed rather than summarised. Each was a deliberate stop, but a guard that fires often is telling you something about the configuration rather than about the market.
Across 1 trade stopped out with no target filled, the mean realised result is -0.95R where the plan called for exactly -1.00R — 5% less risk than intended. ⭐ The strategy computes its stop from a reference price; the fill lands where the market puts it, so the true distance to the stop — and therefore the money actually at risk — is not the distance it planned. On this sample the two agree, which is the result you want.
Removing the single largest trade changes the result from -150 to +53. Any win rate, profit factor or expectancy computed from 2 trades would be an artefact of which trades happened to occur. Nothing here should be read as evidence the strategy makes or loses money until there are at least 30, across more than one session.
Vantage demo account 2026-10-16 (30d) · TradingView alert 2026-11-14 (59d). ⚠ Each of these stops the pilot with no error, no email and no trace, and a strategy that trades at most four times a day cannot be watched for silence — a lapsed account and a quiet market look identical. ⭐ That is why they are counted down from recorded dates rather than noticed after the fact. The nearest one is the one that matters.
A live run is only meaningful against a prior, and none has been established here: this strategy has not been backtested on our side, so there is no expectation for these figures to confirm or contradict. ⭐ You have the strategy tester and the history we do not - a run on the same instrument, timeframe and four windows would give this page the baseline it is currently missing. Until then, treat every number here as a measurement of execution and none of it as evidence about edge.
Four hops. Your script owns the first and nothing after it.
⭐ The relay is yours to own, not ours to rent you. Everything on this page runs on infrastructure you would control.
The relay is a free Cloudflare account and four commands. Your account, your URL, your secrets. Nothing runs on our side, and nothing breaks if we disappear.
The executor is a single file. It drops into MetaTrader's Experts folder and attaches to a chart. Its risk settings are a text file it re-reads every thirty seconds, so they change without a dialog and without a restart.
The alert message is a wrapper around your own. ⭐ That is why your Pine needs no changes at all — TradingView substitutes your strategy's JSON inside it.