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 09:02 Cayman | NAS100 | 09:20 | long | 29143.34 | 29162.64 | 19.3 | 29162.64 | 51.23 | 70.53 | 14 min | scratched at breakeven | +0.00R | +52.64 | -150.21 |
| 15 Sep 22:36 Cayman | NAS100 | 22:50 | long | 29071.1 | 29069.14 | -1.96 | 29028.57 | 42.53 | 40.57 | 12 min | stop hit | -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.
⭐ The table above is the outcome; this is the working. For a strategy that scales out in thirds, the outcome alone hides most of what happened — when a third came off, when the stop moved and to where, what the remainder closed at. Straight from the executor's own records; nothing here is derived.
| Time | Leg | Lots | Price | Detail |
|---|---|---|---|---|
| 08:48:43 | opened long | 5 | 29162.64 | planned 29143.34, filled 29162.64 (+19.30 points) · stop 29092.10837958 |
| 08:50:28 | target tp1 filled | 1.6 | 29195.29 | a third closed, the rest runs on |
| 09:02:58 | scratched at breakeven | 29162.64 | P&L +52.64 · +0.00R |
| Time | Leg | Lots | Price | Detail |
|---|---|---|---|---|
| 22:24:27 | opened long | 5 | 29069.14 | planned 29071.1, filled 29069.14 (-1.96 points) · stop 29028.57306067 |
| 22:36:38 | stop hit | 29028.57 | P&L -202.85 · -0.95R |
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.
⚠ Scratched at breakeven after taking 1 target, and price then reached tp2 within 138 minutes without us. One trade proves nothing either way — but this is the shape to watch for across a sample, because it would be the stop, not the signal, costing the edge.
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 08:48:06 Cayman | TradingView | nas3m | buy | Accepted | |
| 16 Sep 02:11:02 Cayman | manual test | nas3m | flatten | Accepted | |
| 16 Sep 02:10:07 Cayman | manual test | nas3m | buy | Accepted | |
| 15 Sep 22:24:01 Cayman | TradingView | nas3m | buy | Accepted | |
| 15 Sep 19:39:24 Cayman | manual test | nas3m | flatten | Accepted | |
| 15 Sep 19:33:07 Cayman | — | nas3m | flatten | Accepted | |
| 15 Sep 19:31:45 Cayman | — | nas3m | buy | Accepted | |
| 15 Sep 19:31:26 Cayman | — | nas3m | — | Rejected | the message body was not valid JSON bad_json |
| 15 Sep 19:16:13 Cayman | — | nas3m | buy | Accepted | |
| 15 Sep 14:46:29 Cayman | — | ustec3m | buy | Accepted | |
| 15 Sep 12:36:50 Cayman | — | ustec3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 12:36:38 Cayman | — | eurusd3m | flatten | Accepted | |
| 15 Sep 12:36:03 Cayman | — | ustec3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 08:58:19 Cayman | — | eurusd3m | buy | Accepted | |
| 15 Sep 07:57:32 Cayman | — | eurusd3m | buy | Accepted | |
| 15 Sep 07:55:33 Cayman | — | eurusd3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 07:53:16 Cayman | — | eurusd3m | — | Rejected | the day's trade budget was already spent daily_ceiling |
| 15 Sep 07:53:12 Cayman | — | eurusd3m | flatten | Accepted | |
| 15 Sep 07:47:22 Cayman | — | eurusd3m | buy | Accepted | |
| 15 Sep 07:33:26 Cayman | — | eurusd3m | buy | Accepted | |
| 15 Sep 07:15:41 Cayman | — | eurusd3m | buy | Accepted | |
| 15 Sep 07:13:28 Cayman | — | eurusd3m | flatten | Accepted | |
| 15 Sep 07:11:30 Cayman | — | eurusd3m | buy | Accepted | |
| 15 Sep 07:11:29 Cayman | — | eurusd3m | buy | Ignored as a duplicate | |
| 15 Sep 07:11:28 Cayman | — | eurusd3m | buy | Ignored as a duplicate | |
| 15 Sep 07:11:28 Cayman | — | eurusd3m | buy | Accepted | |
| 15 Sep 07:05:39 Cayman | — | eurusd3m | buy | Accepted | |
| 15 Sep 07:01:18 Cayman | — | eurusd3m | buy | Accepted | |
| 14 Sep 18:22:10 Cayman | — | eurusd3m | buy | Ignored as a duplicate | |
| 14 Sep 18:22:10 Cayman | — | eurusd3m | buy | Accepted | |
| 14 Sep 18:22:08 Cayman | — | nq3m | — | Rejected | the message arrived with no content empty_body |
| 14 Sep 18:22:08 Cayman | — | nq3m | — | Rejected | the shared secret did not match bad_secret |
| 14 Sep 06:39:54 Cayman | — | nq3m | buy | Ignored as a duplicate | |
| 14 Sep 06:39:53 Cayman | — | nq3m | buy | Accepted | |
| 14 Sep 06:39:52 Cayman | — | nq3m | — | Rejected | the message arrived with no content empty_body |
| 14 Sep 06:39:51 Cayman | — | nq3m | — | Rejected | the shared secret did not match bad_secret |
Times on this page are Cayman time. ⚠ New York is 1 hour ahead of Cayman at the moment, because New York observes daylight saving and Cayman does not. So a window labelled 09:20 NY is 08:20 your time today — and the same clock in January, when the two align.
⚠⚠ 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, 23:24 Cayman the previous evening. ⚠ Breakeven set to After 2:1 on 2026-09-16 on the author's instruction, confirmed by call - his Pine default is After 1:1, and the bridge had it hardcoded to after the first target.
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) |
| What your own messages prove about the rest | |||
| Stop distance in effect | — | 51.23 points | evidenced your SL Buffer × ATR14, as it came out on the last signal |
| Lots we sent the broker | — | 5 | evidenced our sizing from your risk, capped by our lot ceiling |
| tp1 distance | — | 1.00R | evidenced 1:1 — from the prices your strategy sent |
| tp2 distance | — | 2.00R | evidenced 2:1 — from the prices your strategy sent |
| tp3 distance | — | 3.00R | evidenced 3:1 — from the prices your strategy sent |
| Strategy inputs changed from your defaults | |||
| Max Trades Per Day | 7 | 4 | declared |
| Enable Webhook Alerts? | false | true | declared |
| Ticker Symbol | NQM2026 | NAS100 | declared |
| Move SL to Breakeven | After 1:1 | After 2:1 | 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 15 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 2:1 changed |
| 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.