Every signal the strategy sent, and exactly what the broker did with it.
Reconstructed from the fills, not from the broker's statement. The strategy reverses rather than flattening, so one message usually closes a trade and opens the next; points are index points and P&L is what 0.1 lots made on them, before any commission.
| Direction | Opened | Closed | Held | Entry | Exit | Points | P&L | Running |
|---|---|---|---|---|---|---|---|---|
| sell 0.1 | 10:57:48 | 12:49:47 reversal |
1h 51m | 52,357.4 | 51,971.4 | +386.0 | +38.60 | +38.60 |
| buy 0.1 | 12:49:48 | 13:23:50 reversal |
34m | 51,972.6 | 51,982.3 | +9.7 | +0.97 | +39.57 |
| sell 0.1 | 13:23:50 | 13:51:46 reversal |
27m | 51,982.6 | 51,988.3 | -5.7 | -0.57 | +39.00 |
| buy 0.1 | 13:51:47 | 14:34:47 reversal |
43m | 51,988.4 | 52,052.5 | +64.1 | +6.41 | +45.41 |
| sell 0.1 | 14:34:48 | 15:00:46 reversal |
25m | 52,052.4 | 52,032.4 | +20.0 | +2.00 | +47.41 |
| buy 0.1 | 15:00:46 | 15:59:48 reversal |
59m | 52,033.0 | 52,042.8 | +9.8 | +0.98 | +48.39 |
| sell 0.1 | 15:59:48 | 16:21:47 reversal |
21m | 52,042.8 | 52,054.7 | -11.9 | -1.19 | +47.20 |
| buy 0.1 | 16:21:47 | 17:11:48 reversal |
50m | 52,054.6 | 52,080.6 | +26.0 | +2.60 | +49.80 |
| sell 0.1 | 17:11:48 | 17:16:18 broker stop |
4m | 52,080.6 | 52,112.8 | -32.2 | -3.22 | +46.58 |
| buy 0.1 | 17:27:48 | — | open | 52,129.4 | — | — | — | — |
Best +386.0 points, worst -32.2. 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.
Times are the bridge's. “Sent” is what the script put on the wire; “placed” is what reached the broker. A reversal is one message that closes and re-opens, so it shows two fills and two outcomes. Stops are re-anchored to the broker's price at the moment of the order, which is why one lands within about a point of the distance asked for rather than exactly on it. The small grey number under each outcome is MetaTrader's own code, kept so a failure can be looked up.
| Time | Message | Chart price | Broker fill | Feed gap | Stop at broker | Outcome |
|---|---|---|---|---|---|---|
| 10:29:03 | sell 0.1 | 52,357.6 | 52,357.4 | -0.8 | 52,416.7 asked 59.9 away, landed 59.3 |
Executed 10009 |
| 10:32:02 | modify | — | — | — | 52,316.7 asked 52,317.5 |
Executed 10009 |
| 10:35:05 | modify | — | — | — | 52,216.7 asked 52,217.5 |
Executed 10009 |
| 11:10:03 | modify | — | — | — | 52,116.7 asked 52,117.5 |
Executed 10009 |
| 11:23:00 | modify | — | — | — | 52,016.7 asked 52,017.5 |
Executed 10009 |
| 12:21:02 | buy 0.1 | 51,976.0 | closed 51,971.4 opened 51,972.6 |
-4.6 | 51,913.8 asked 57.6 away, landed 58.8 |
Executed ×2 10009 |
| 12:55:04 | sell 0.1 | 51,982.4 | closed 51,982.3 opened 51,982.6 |
-0.1 | 52,043.4 asked 61.1 away, landed 60.8 |
Executed ×2 10009 |
| 13:23:01 | buy 0.1 | 51,988.5 | closed 51,988.3 opened 51,988.4 |
-0.2 | 51,949.8 asked 38.5 away, landed 38.6 |
Executed ×2 10009 |
| 13:55:05 | modify | — | — | — | 52,049.8 asked 52,050.0 |
Executed 10009 |
| 14:06:02 | sell 0.1 | 52,054.1 | closed 52,052.5 opened 52,052.4 |
-1.6 | 52,107.9 asked 55.4 away, landed 55.5 |
Executed ×2 10009 |
| 14:32:01 | buy 0.1 | 52,029.7 | closed 52,032.4 opened 52,033.0 |
+2.7 | 51,984.1 asked 48.3 away, landed 48.9 |
Executed ×2 10009 |
| 15:31:03 | sell 0.1 | 52,042.7 | closed 52,042.8 opened 52,042.8 |
+0.1 | 52,082.5 asked 39.7 away, landed 39.7 |
Executed ×2 10009 |
| 15:53:02 | buy 0.1 | 52,050.6 | closed 52,054.7 opened 52,054.6 |
+4.1 | 51,985.9 asked 68.8 away, landed 68.7 |
Executed ×2 10009 |
| 16:43:03 | sell 0.1 | 52,079.4 | closed 52,080.6 opened 52,080.6 |
+1.2 | 52,112.8 asked 32.2 away, landed 32.2 |
Executed ×2 10009 |
| 16:47:36 | close | — | — | — | — | — |
| 16:59:03 | buy 0.1 | 52,120.6 | 52,129.4 | +6.8 | 52,070.9 asked 56.5 away, landed 58.5 |
Executed 10009 |
TradingView offers no way to read an alert's settings back, so this is the script's own shipped defaults with the changed values marked. What makes it checkable rather than merely claimed: every message carries a fingerprint of the settings that produced it, and the bridge flags any message arriving with a different one. Nothing on this page has been flagged.
Trailing Step is in chart ticks, not points: 1000 ticks on this 0.1-tick feed is 100 index points. The same input on a 0.01-tick feed would be ten points, which is the kind of thing that looks fine and trails ten times too tightly.
Written from the logs by the assistant running the test, and regenerated with them. The distinction it draws is deliberate: execution quality is answerable after a handful of orders, because it asks whether each message survived the trip. Profitability is not, and pretending otherwise would be the most useful-looking and least useful thing this page could do.
16 messages, 23 orders, 1 not executed. Stops land within about a point of the distance asked for, and the chart-to-broker gap averages +0.8 points across 10 entries. This part has enough evidence to stand on: it is a question of fidelity, and every message either arrived intact or did not.
Median result is +9.8 points. Crossing the spread costs about 2.0 points per round trip, so roughly 20% of the typical trade is paid to the broker before anything else happens. That ratio does not improve with more data; it improves with a longer timeframe or a wider stop.
The largest winner is 75% of all gross profit. Trend-following does produce that shape, so it is not by itself a fault - but it means the headline figure describes one trade, not a process.
With 9 closed trades, removing the single best one changes the result from +466 to +80 points. Any win rate, profit factor or expectancy computed here would be an artefact of which trades happened to occur. Nothing on this page should be read as evidence the strategy makes or loses money until there are at least 30, and across more than one session - these all come from a single day.
On the author's own parameters, US30 backtested at -4.40% over 2 April to 9 September 2026 on the 15-minute chart, profit factor 0.925, maximum drawdown -11.83%; the 5-minute run was -9.71%. A profitable first day does not contradict that, and should not be mistaken for doing so. It is the prior these live trades have to overturn.
Five hops. The script owns the first one and nothing else; everything after it is replaceable, which is the whole point of the Middleman setting.
You do not need the bridge. It is a test rig built to prove the script, not a product, and the script was written so it could be swapped out.
Set Middleman to PineConnector, paste your licence ID, point the alert at their URL. Nothing to host and nothing to keep running. They size and route the order.
Built from their docs · never run
Same idea, different message format. One limitation shapes the script: TradersPost cannot move a stop once a trade is open, so the entry stop stays at the broker as a safety net and the strategy sends an exit when its own trail is hit.
Built from their docs · never run
Self-hosted, what produced every number on this page. More work than it looks, and the requirements below are not optional — each one comes from something that went wrong.
Running · all figures here
If you self-host, these are the parts that bite. The MetaTrader5 Python package is Windows only, so it needs a Windows machine that never sleeps — a laptop entering standby lost two hours of signals here, silently. The public endpoint has to be stable: a free tunnel dropping for sixteen seconds already swallowed one exit, and TradingView does not retry a timeout. Only one bridge may run per account, because two place every order twice. And the symbol names, contract sizes, digits and lot step all differ by broker — the same index is US30 at one firm and US30.cash at another, quoted to a different number of decimals, which silently changes what a “point” of slippage tolerance means.
Read the price gap carefully. Charting the same firm the orders execute at was the point, and the gap is small. But a handful of readings is not a measured constant, and sending the stop as a distance is what makes the gap harmless. That should stay as it is until there are enough entries to say what the gap actually does.
This is a demo account, and it is about plumbing. Everything here tests whether execution is faithful to the script. It says nothing about whether the strategy makes money.