Live execution pilot · broker demo

T4T Macro IFVG — Execution Log

Every signal the strategy sent, and exactly what the broker did with it.

Awaiting first signal
executor connected, no strategy signal yet
15 September 2026, 22:51 UTC
Signals received
15
12 buy, 3 flatten
Executed
4
4 closed, 6 refused by a guard
Trades closed
0
4 test fixtures excluded
Planned → filled
no strategy fills to measure yet
Executor
1 of 2
owner-ea live, author-ea never seen
Net result
nothing from the strategy yet
Results

Every trade the strategy produced

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.

TimeWindowPlannedFilled SlippageExitRealised
No strategy signals executed yet. The pilot is armed and waiting for its first macro window.

Nothing here yet. 4 hand-fired test trades are excluded on purpose: they proved the machinery, and counting them as your strategy's results would flatter or damage the record without meaning either.

The ledger

Every message, in order

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.

TimeInstanceMessageOutcomeWhy
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
Configuration

The settings behind every number here

⭐ 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.

SettingYour defaultRunning as
Strategy Settings
Position SizingFixedFixed
Contracts (Fixed)33
Risk % (of Equity)1.01.0
Scale Out (Partial TPs)?truetrue
Single TP Target2:12:1
Move SL to BreakevenAfter 1:1After 1:1
Max Trades Per Day74 changed
Max Trades Per Macro Window11
Close at End of Day?truetrue
Allow Longs?truetrue
Allow Shorts?truetrue
Use Date Filter?truetrue
Start Datetimestamp("2026-01-01 00:00 +0000")timestamp("2026-01-01 00:00 +0000")
End Datetimestamp("2026-12-31 23:59 +0000")timestamp("2026-12-31 23:59 +0000")
Webhook Alerts
Enable Webhook Alerts?falsetrue changed
Ticker SymbolNQM2026US100 changed
Signal Settings
Bars After Macro For Signal66
FVG Size Filter (ATR)?truetrue
Min Gap (×ATR14)0.230.23
FVG Validity (Bars)400400
Mitigation Level50%50%
Displacement Filter
Enable Displacement Filter?truetrue
Min Body % of Range0.600.60
Min Body vs Avg Body (×)1.601.60
Avg Body Lookback2020
Signal Cooldown
Enable Cooldown?truetrue
Cooldown (Bars)1010
Liquidity Sweep
Enable Sweep Filter?truetrue
Sweep Threshold (×ATR14)0.00.0
Sweep ModeAlignedAligned
Require Sweep Rejection?falsefalse
Asia H/Ltruetrue
London H/Ltruetrue
NY Opentruetrue
Midnighttruetrue
CISD Filter
Enable CISD Filter?truetrue
Trade Setup
Entry ModeIFVG EdgeIFVG Edge
SL Buffer (×ATR14)1.951.95
Performance Tables
Show Results Table?truetrue
Show Per-Macro Breakdown?truetrue
Macros
00:50-01:10falsefalse
01:50-02:10falsefalse
02:50-03:10falsefalse
03:50-04:10truefalse changed
04:50-05:10falsefalse
05:50-06:10falsefalse
06:50-07:10falsefalse
07:50-08:10truefalse changed
08:50-09:10falsefalse
09:20-09:40falsetrue changed
09:50-10:10truefalse changed
10:50-11:10truefalse changed
11:50-12:10falsefalse
12:50-13:10truefalse changed
13:50-14:10falsefalse
14:50-15:10falsetrue changed
15:15-15:45falsefalse
15:50-16:10falsefalse
16:50-17:10falsefalse
17:50-18:10falsefalse
18:50-19:10falsetrue changed
19:50-20:10falsefalse
20:50-21:10truefalse changed
21:50-22:10falsefalse
22:50-23:10falsetrue changed
23:50-00:10truefalse changed
Assessment

What this data does and does not support

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.

No trade from the strategy itself yet

Every closed trade on record - 4 of them - was hand-fired to prove the plumbing, and all are excluded below. The link from TradingView to this system is the one part that has never been observed carrying a real signal. Until it does, this page reports on machinery, not on a strategy.

Every guard has fired at least once, deliberately

8 fills and closes recorded, 6 plans refused by the executor, 8 rejected at the relay before the executor saw them. ⭐ Each refusal was a designed stop exercised on purpose during testing — a stale plan, a stop the broker's minimum distance would not accept, a budget already spent, a bad secret. The alternative in each case was trading something other than what the strategy chose. That every one of them fired, and refused rather than adjusted, is the evidence this section can offer today.

There is no backtest on this page, and that is a gap

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.

Architecture

How a signal becomes an order

Four hops. Your script owns the first and nothing after it.

1
Your strategy fires
An alert on order fills sends the JSON your Pine already builds — direction, size, stop and all three targets. TradingView posts it from its own servers.
2
A relay catches it
A small program on a free Cloudflare account. It exists because TradingView needs a public address to post to and a home PC does not have one. It stamps the message, refuses duplicates, and holds it.
3
The executor collects it
An expert advisor inside MetaTrader asks the relay for anything new. ⭐ It reaches out, so nothing needs to reach in — no port forwarding, no fixed address, nothing exposed.
4
The broker fills it
The stop goes to the broker with the order, so a dead executor still leaves a protected position. Thirds close at each target and the stop moves to breakeven on its own.

Running it without us

⭐ 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.

Status

What this run has and hasn't shown

Proven, on real orders
  • The whole plan travels in the entry message — every later message is ignored, so none can be lost, duplicated or misread.
  • The stop is attached to the order, and the final target parked at the broker.
  • A position stopped out by the market was reported as a loss — which your strategy's own message stream would have reported as a take-profit.
  • A third closes at each target; breakeven applies locally.
  • A stale plan is refused rather than traded late.
  • The executor was killed mid-trade and recovered its position, cursor and settings.
Not yet observed
  • A signal arriving from TradingView. Every plan so far was hand-fired. This is the one link in the chain that has never carried a real message.
  • Breakeven succeeding on a retry — it needs price to move off the entry.
  • The second target filling.
  • Anything at all about whether the strategy makes money. See the assessment.