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 | Window | Planned | Filled | Slippage | Exit | Realised |
|---|---|---|---|---|---|---|
| 16 Sep 03:36UTC | 22:50 | 29071.1 | 29069.14 | -1.96 | stop | -0.95R |
Best -203, worst -203. 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.
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 | Instance | Message | Outcome | Why |
|---|---|---|---|---|
| 16 Sep 03:24:01UTC | nas3m | buy | Accepted | |
| 16 Sep 00:39:24UTC | nas3m | flatten | Accepted | |
| 16 Sep 00:33:07UTC | nas3m | flatten | Accepted | |
| 16 Sep 00:31:45UTC | nas3m | buy | Accepted | |
| 16 Sep 00:31:26UTC | nas3m | — | Rejected | bad_json bad_json |
| 16 Sep 00:16:13UTC | nas3m | buy | Accepted | |
| 15 Sep 19:46:29UTC | ustec3m | buy | Accepted | |
| 15 Sep 17:36:50UTC | ustec3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 17:36:38UTC | eurusd3m | flatten | Accepted | |
| 15 Sep 17:36:03UTC | ustec3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 13:58:19UTC | eurusd3m | buy | Accepted | |
| 15 Sep 12:57:32UTC | eurusd3m | buy | Accepted | |
| 15 Sep 12:55:33UTC | eurusd3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 12:53:16UTC | eurusd3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 12:53:12UTC | eurusd3m | flatten | Accepted | |
| 15 Sep 12:47:22UTC | eurusd3m | buy | Accepted | |
| 15 Sep 12:33:26UTC | eurusd3m | buy | Accepted | |
| 15 Sep 12:15:41UTC | eurusd3m | buy | Accepted | |
| 15 Sep 12:13:28UTC | eurusd3m | flatten | Accepted | |
| 15 Sep 12:11:30UTC | eurusd3m | buy | Accepted | |
| 15 Sep 12:11:29UTC | eurusd3m | buy | Ignored as a duplicate | |
| 15 Sep 12:11:28UTC | eurusd3m | buy | Ignored as a duplicate | |
| 15 Sep 12:11:28UTC | eurusd3m | buy | Accepted | |
| 15 Sep 12:05:39UTC | eurusd3m | buy | Accepted | |
| 15 Sep 12:01:18UTC | eurusd3m | buy | Accepted | |
| 14 Sep 23:22:10UTC | eurusd3m | buy | Ignored as a duplicate | |
| 14 Sep 23:22:10UTC | eurusd3m | buy | Accepted | |
| 14 Sep 23:22:08UTC | nq3m | — | Rejected | the message arrived with no content empty_body |
| 14 Sep 23:22:08UTC | nq3m | — | Rejected | the shared secret did not match bad_secret |
| 14 Sep 11:39:54UTC | nq3m | buy | Ignored as a duplicate | |
| 14 Sep 11:39:53UTC | nq3m | buy | Accepted | |
| 14 Sep 11:39:52UTC | nq3m | — | Rejected | the message arrived with no content empty_body |
| 14 Sep 11:39:51UTC | nq3m | — | Rejected | the shared secret did not match bad_secret |
⭐ Read straight out of your Pine source, not retyped — so the defaults column cannot drift from the strategy. TradingView offers no way to read an alert's settings back, so the 14 marked rows are the only hand-entered part of this table and the part worth checking. 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 | US100 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.
14 fills and closes recorded, 6 plans refused by the executor, 9 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 closed at the stop, 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.
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.