Forward test · US30 · 3-minute · broker demo

Volta V1.3 Execution Log

Every signal the strategy sent, and exactly what the broker did with it. Currently running US30 on the 3-minute chart, evidenced from the messages themselves.

CLOSED
outside the 07:00-12:00 EDT window, opens in 14h 40m; last signal 2026-09-23 14:46:14
built 23 Sep 2026, 20:19 UTC
Net result
-133.90
USD across 50 closed trades — +343.5 index points
Account
+216.72
against the 50,000 it started with, including 2 setup tests worth -0.88, 1 closed by hand worth +2.30, 1 closed by the operator worth +349.20, excluded from every figure on this page
Open now
flat
no open position
Last session
-69.10
2026-09-23, 2 trades
Profit factor
0.85
+776.73 won / -910.63 lost
Win rate
40%
20 of 50 closed
Money

Where the account has actually gone

Cumulative profit and loss in dollars across every closed trade, oldest on the left. Dashed lines mark where one trading session ended and the next began — a curve that hides those invites reading three days of drawdown as a single move.

-250+0+25009-1709-1809-2109-2209-2309-15-133.9050 closed trades, left to right

Each session on its own

09-15+51.25
09-17+70.25
09-18-222.50
09-21+26.30
09-22+9.90
09-23-69.10

Both are the broker's own closed deals, filtered to the strategy's magic number. Trades closed by hand are excluded and accounted for separately.

Results

Every round trip, newest first

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 MetaTrader's own figure for the trade including commission and swap. Running is the cumulative total up to and including that trade, so with the newest at the top it counts down toward the start of the test.

DirectionOpenedClosedHeldEntryExit PointsP&LRunning
sell 1.0 11:51:08
23 Sep
14:45:41
23 Sep
broker stop
2h 54m 51,724.6 51,649.2 +75.4 +75.40 -133.90
buy 1.0 10:33:09
23 Sep
11:51:08
23 Sep
reversal
1h 17m 51,868.6 51,724.1 -144.5 -144.50 -209.30
buy 1.0 08:48:09
22 Sep
10:25:15
22 Sep
broker stop
1h 37m 52,309.4 52,413.4 +104.0 +104.00 -64.80
sell 1.0 08:15:11
22 Sep
08:46:04
22 Sep
reversal
30m 52,222.4 52,316.5 -94.1 -94.10 -168.80
buy 1.0 12:48:07
21 Sep
21:36:34
21 Sep
reversal
8h 48m 52,027.4 52,062.6 +35.2 +26.30 -74.70
buy 1.0 12:00:12
18 Sep
12:02:42
18 Sep
broker stop
2m 51,612.6 51,555.4 -57.2 -57.20 -101.00
sell 1.0 11:43:08
18 Sep
11:52:58
18 Sep
broker stop
9m 51,554.4 51,606.2 -51.8 -51.80 -43.80
buy 1.0 11:12:08
18 Sep
11:43:08
18 Sep
reversal
31m 51,638.2 51,553.6 -84.6 -84.60 +8.00
sell 1.0 10:55:19
18 Sep
11:12:08
18 Sep
reversal
16m 51,599.6 51,638.2 -38.6 -38.60 +92.60
buy 1.0 10:28:07
18 Sep
10:34:22
18 Sep
reversal
6m 51,677.7 51,721.0 +43.3 +43.30 +131.20
sell 1.0 10:15:19
18 Sep
10:27:51
18 Sep
broker stop
12m 51,660.6 51,671.5 -10.9 -10.90 +87.90
buy 1.0 09:35:07
18 Sep
10:15:19
18 Sep
reversal
40m 51,694.4 51,660.7 -33.7 -33.70 +98.80
sell 1.0 08:44:08
18 Sep
09:35:01
18 Sep
broker stop
50m 51,796.0 51,693.0 +103.0 +103.00 +132.50
buy 1.0 08:32:07
18 Sep
08:44:08
18 Sep
reversal
12m 51,824.4 51,795.9 -28.5 -28.50 +29.50
sell 1.0 08:06:10
18 Sep
08:32:07
18 Sep
reversal
25m 51,813.5 51,824.4 -10.9 -10.90 +58.00
buy 1.0 08:05:09
18 Sep
08:05:37
18 Sep
broker stop
0m 51,890.6 51,838.0 -52.6 -52.60 +68.90
sell 1.0 17:17:08
17 Sep
19:00:06
17 Sep
broker stop
1h 42m 51,806.4 51,819.0 -12.6 -10.95 +121.50
buy 1.0 16:54:09
17 Sep
17:16:25
17 Sep
broker stop
22m 51,851.1 51,806.4 -44.7 -44.70 +132.45
sell 1.0 16:17:08
17 Sep
16:54:09
17 Sep
reversal
37m 51,845.0 51,851.0 -6.0 -6.00 +177.15
buy 1.0 16:01:09
17 Sep
16:17:08
17 Sep
reversal
15m 51,868.6 51,845.0 -23.6 -23.60 +183.15
sell 1.0 15:53:07
17 Sep
16:00:54
17 Sep
broker stop
7m 51,825.4 51,867.6 -42.2 -42.20 +206.75
buy 1.0 15:49:06
17 Sep
15:52:47
17 Sep
broker stop
3m 51,861.4 51,830.3 -31.1 -31.10 +248.95
sell 1.0 15:25:08
17 Sep
15:49:06
17 Sep
reversal
23m 51,855.5 51,861.4 -5.9 -5.90 +280.05
buy 1.0 14:42:08
17 Sep
15:25:08
17 Sep
reversal
43m 51,847.6 51,855.7 +8.1 +8.10 +285.95
buy 1.0 12:13:07
17 Sep
13:55:33
17 Sep
broker stop
1h 42m 51,760.3 51,827.5 +67.2 +67.20 +277.85
sell 1.0 11:37:07
17 Sep
12:03:29
17 Sep
broker stop
26m 51,764.6 51,748.6 +16.0 +16.00 +210.65
buy 1.0 11:19:07
17 Sep
11:37:07
17 Sep
reversal
18m 51,779.6 51,763.5 -16.1 -16.10 +194.65
sell 1.0 10:11:07
17 Sep
10:31:09
17 Sep
reversal
20m 52,114.6 51,953.4 +161.2 +161.20 +210.75
sell 1.0 06:47:07
17 Sep
07:07:57
17 Sep
broker stop
20m 51,893.1 51,910.9 -17.8 -17.80 +49.55
buy 1.0 05:30:08
17 Sep
06:47:07
17 Sep
reversal
1h 16m 51,876.0 51,893.1 +17.1 +17.10 +67.35
sell 1.0 04:50:11
17 Sep
05:29:38
17 Sep
broker stop
39m 51,922.4 51,869.6 +52.8 +52.80 +50.25
buy 1.0 04:06:08
17 Sep
04:50:10
17 Sep
reversal
44m 51,923.0 51,922.4 -0.6 -0.60 -2.55
sell 1.0 04:01:10
17 Sep
04:03:51
17 Sep
broker stop
2m 51,882.6 51,913.1 -30.5 -30.50 -1.95
buy 1.0 03:25:10
17 Sep
04:01:09
17 Sep
reversal
35m 51,852.0 51,882.6 +30.6 +30.60 +28.55
sell 1.0 03:16:08
17 Sep
03:24:11
17 Sep
broker stop
8m 51,805.9 51,843.3 -37.4 -37.40 -2.05
buy 1.0 03:01:11
17 Sep
03:15:50
17 Sep
broker stop
14m 51,823.0 51,810.1 -12.9 -12.90 +35.35
sell 1.0 01:55:11
17 Sep
02:39:43
17 Sep
broker stop
44m 51,830.0 51,814.6 +15.4 +15.40 +48.25
buy 1.0 01:39:08
17 Sep
01:54:54
17 Sep
broker stop
15m 51,846.0 51,828.2 -17.8 -17.80 +32.85
sell 1.0 01:06:11
17 Sep
01:39:08
17 Sep
reversal
32m 51,845.4 51,846.0 -0.6 -0.60 +50.65
sell 0.1 20:14:08
15 Sep
20:35:12
15 Sep
reversal
21m 52,186.0 52,187.0 -1.0 -0.10 +51.25
buy 0.1 16:59:08
15 Sep
20:14:08
15 Sep
reversal
3h 15m 52,129.4 52,186.0 +56.6 +4.77 +51.35
sell 0.1 16:43:08
15 Sep
16:47:38
15 Sep
broker stop
4m 52,080.6 52,112.8 -32.2 -3.22 +46.58
buy 0.1 15:53:07
15 Sep
16:43:08
15 Sep
reversal
50m 52,054.6 52,080.6 +26.0 +2.60 +49.80
sell 0.1 15:31:08
15 Sep
15:53:07
15 Sep
reversal
21m 52,042.8 52,054.7 -11.9 -1.19 +47.20
buy 0.1 14:32:06
15 Sep
15:31:08
15 Sep
reversal
59m 52,033.0 52,042.8 +9.8 +0.98 +48.39
sell 0.1 14:06:08
15 Sep
14:32:06
15 Sep
reversal
25m 52,052.4 52,032.4 +20.0 +2.00 +47.41
buy 0.1 13:23:07
15 Sep
14:06:07
15 Sep
reversal
43m 51,988.4 52,052.5 +64.1 +6.41 +45.41
sell 0.1 12:55:10
15 Sep
13:23:06
15 Sep
reversal
27m 51,982.6 51,988.3 -5.7 -0.57 +39.00
buy 0.1 12:21:08
15 Sep
12:55:10
15 Sep
reversal
34m 51,972.6 51,982.3 +9.7 +0.97 +39.57
sell 0.1 10:29:08
15 Sep
12:21:07
15 Sep
reversal
1h 51m 52,357.4 51,971.4 +386.0 +38.60 +38.60

Best +386.0 points, worst -144.5. 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.

Give-back

What the trades offered, and what was kept

For each round trip: the best it was ever worth (MFE), the worst it was ever worth (MAE), and the difference between the best and what was actually banked. P&L says whether a trade worked; these say why. Measured from one-minute bars between entry and exit.

Offered
+3,631
index points of favourable movement across 53 trades
Kept
+684
what the exits actually banked
Given back
+2,947
81.2% of everything available

Winners

  • Kept 41.4% of what they offered, at the median — so more than half of a good trade is handed back
  • Gave back 52.9 points each, median
  • None went further against us than 85.3 points before turning profitable

Losers

  • Went 21.3 points our way before failing, at the median
  • 18 of 32 were up more than ten points at some stage
  • Banking half of that on those alone turns -406 into +307 points

The stop figure is a sample minimum, not a target. “No winner went further than X against us” is the tightest stop that would not have cost a winner on the trades that happened. It moves as trades arrive — on 17 September it went from 24.3 to 56.3 points when a single new winning trade closed. Setting a stop to it would be fitting to the past.

Could a faster ratchet recover any of it?

Give-back being large does not mean it is recoverable. A tighter trailing stop keeps more of the trades that ran and cuts short the trades that would have run further, and which effect wins depends on the route each trade took — something MFE and MAE cannot show, because they are only its endpoints. So the real one-minute path of every trade was replayed against a stop sitting a fixed distance behind the best price seen.

Room a winner needs
68.3
median pullback from a running peak that the trade then exceeded
Worst case
164.9
the most a winner gave up before making a new high
All trades
57.2
same measure across every round trip
Stop behind best priceNet points vs actualExited on trail Winners kept
5 pts -74.0 -757.9 53/53 6/21
8 pts +48.2 -635.7 51/53 8/21
10 pts -6.5 -690.4 51/53 6/21
12 pts -34.0 -717.9 50/53 6/21
15 pts -70.6 -754.5 50/53 7/21
20 pts +99.7 -584.2 49/53 12/21
25 pts -36.2 -720.1 47/53 12/21
30 pts -242.0 -925.9 46/53 12/21
40 pts -204.7 -888.6 41/53 15/21
50 pts -103.3 -787.2 32/53 17/21

Every tightening tested made the result worse. Actual was +683.9 points; the best of ten offsets was 20 points behind the peak and still finished -584.2 points short, with the curve still improving as it widened. The reason is the room figure above: the typical winner pulls back around 68.3 points from a running high and then goes on to make a new one. Any trail tighter than that removes it from the trade before its best price arrives.

So the give-back looks structural rather than like a tuning error — the cost of a system whose winners travel a noisy route. The lever is unlikely to be a faster ratchet. It is more likely a partial exit: bank part of the position early, where give-back becomes zero, and leave the remainder the wide room it demonstrably needs.

Modelled pessimistically — within each bar the adverse move is assumed to come first, so every figure is a floor. A wider stop can never score better than actual here, because the strategy’s own exit still caps each trade, so only the tightening direction is informative. Re-entry is not modelled, and the peak of the curve is fitted to the trades that happened. Read the direction, not the number.

The same figures, for anything that reads rather than looks: metrics.json — published with every rebuild, and carrying its own sample-size and accuracy caveats so they cannot be separated from the numbers.

Market conditions

Which conditions the strategy has traded in

Every session is classified from the 20 daily bars that closed before it opened — never from its own bar. That constraint is what makes the label usable: a condition you can only identify with hindsight is not something a strategy could ever have adapted to. Each round trip is then attributed to the condition that was already knowable when its day began.

Direction
bear
-3.13% net over 20 sessions
Structure
choppy
efficiency 0.284 — trending at 0.3 and above
Volatility
normal
541.0 point average daily range

Efficiency is how much of the market’s movement went somewhere: the net move over 20 sessions divided by the distance actually travelled. Near 1.0 every session pushed the same way; near 0 the market covered a great deal of ground and arrived back where it started.

ConditionTradesPoints Per tradeWin rateReliability
structure
choppy
30 +615.3 +20.5 43.3% mixed lot sizes, so only points compare
trending 23 +68.6 +3.0 34.8% below 30 trades
direction
bear
53 +683.9 +12.9 39.6% every trade landed here — no contrast to measure; mixed lot sizes, so only points compare
volatility
normal
53 +683.9 +12.9 39.6% every trade landed here — no contrast to measure; mixed lot sizes, so only points compare

This is an audit. Nothing adapts to these labels, and nothing should yet. Two of the three axes have every trade in a single group — a few days of history cannot contain a bull market or a quiet one, so “bear, 100%” is the sample speaking, not the market. Only structure has two populated groups, and both sit below the 30-trade bar this project uses everywhere else.

It is also already contradicting the obvious hypothesis. A reversal system ought to do better in trending conditions and bleed in chop; the trades so far show 20.5 points per trade in chop against 3.0 when trending. That may well reverse with the next fortnight of data, which is exactly the point of recording it before acting on it rather than after.

Read points, not dollars. The position size changed from 0.1 to 1.0 lots inside this sample. Summing money across that comparison measures the lot size and labels the result a market condition; points are unaffected by it.

Assessment

What this data does and does not support

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.

✕

The account is up. The strategy is not. The difference is one trade I closed

On 22 September a close sent as a HEALTH CHECK executed against a live short and ended it at <b>+349.20</b> - the largest single result in this record, and about a third of all gross profit the account has ever made. The strategy had not decided to exit. <br><br>âš  <b>MT5 cannot tell you this.</b> The close went through the bridge carrying the strategy's magic number, so the broker stamped it DEAL_REASON 3, "expert" - the same code every genuine strategy exit gets. Until today it was filed as the strategy's best trade. <br><br>It is now excluded from every figure on this page and disclosed in the account tile. <b>With it the record reads +284.40 and a profit factor of 1.37; without it, -133.90 and 1.36.</b> The second pair is the strategy's. One operator error was the difference between this page reporting a profitable system and an unprofitable one.

!

Execution is faithful

195 messages, 172 orders, 49 not executed, every strategy message over the Cloudflare tunnel. Fidelity remains the one part of this page with enough evidence behind it.

!

The reconciliation was blind for three days

On 20 September the bridge log gained a <span class="mono">via &lt;host&gt;</span> field so the tunnel carrying each message could be identified. <span class="mono">reconcile.py</span>'s line pattern expected the old shape and from that moment matched <b>nothing</b> - it kept running, kept reporting, and kept finding only stale issues, against an empty message history. That is why the operator close went unnoticed for 21 hours and was found by a person asking why a signal had not arrived. Fixed 23 September, and it now also refuses to treat a close without a <span class="mono">setup</span> fingerprint as the strategy going flat, which is the specific blindness that hid it.

!

The strategy and the broker still disagree

TradingView believes it holds the short that was closed on 22 September and has been walking its stop down ever since - 52,420 to 52,070 - with every update landing on an empty account. <b>No entry can arrive until it flips</b>, because the strategy is not flat and will reverse rather than open. So the record below stops growing until then, and today's silence is that, not a fault. The chosen resolution is to wait: opening a matching position now would put the strategy's existing trail stop nearly 300 points on the wrong side of a new entry.

!

Four configurations, and the newest has three trades

50 closed trades, strategy-only, split by what produced them: before the run ledger existed: 23 trades, +680.9 pts, +210.75 USD, win 52%; 89632.934 on the 1-minute chart: 11 trades, -90.9 pts, -89.25 USD, win 27%; 47292.644 on the 1-minute chart: 11 trades, -222.5 pts, -222.50 USD, win 18%; 54634.265 on the 3-minute chart: 5 trades, -24.0 pts, -32.90 USD, win 60%. The 3-minute epoch has three of its own once the operator close is removed. Nothing here has reached the 30-trade bar within a single configuration.

·

Costs keep falling with the trade count

50 round trips at about 2.0 points of spread is 100 points against 1302 won. Sessions ran 11 and 23 trades on the 1-minute chart and one to two on the 3-minute. Spread per trade is fixed, so trading less often is the only thing that has ever moved this, and it is moving.

·

Concentration, on the strategy's own trades

With the operator close removed, the best single trade is 30% of gross profit. That is the honest figure; including it the number would be 33% and would describe something the strategy did not do.

✕

No read on profitability, and the direction is still down

50 closed trades, 20 profitable, profit factor 1.36, -133.90 USD. Four configurations, the largest 23 trades. No configuration has demonstrated an edge.

·

The backtests were negative

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%. Live trading has not contradicted that prior.

Configurations

Runs

A run is a period during which the settings and the timeframe did not change. The moment either moves, the run ends and a new one begins — so a 1-minute run and a 4-hour run are never averaged into one figure. P&L is computed from the broker's own deals inside each window, so a run cannot drift from the account.

RunTimeframeStartedEndedTrades PointsP&L
54634.265
active
3 min 12:48:02
21 Sep
5 -24.0 -32.90
47292.644 1 min 08:05:04
18 Sep
12:48:02
21 Sep
11 -222.5 -222.50
89632.934 1 min 11:19:02
17 Sep
08:05:04
18 Sep
11 -90.9 -89.25
This epoch

What is running right now, on the 3-minute chart

A TradingView alert freezes the script, its inputs, the chart symbol and the timeframe at the moment it is created, and keeps firing that frozen copy until it is deleted and remade. So a trade belongs to the settings that were frozen into the alert that produced it — which is what an epoch is. TradingView cannot be read back, so most of this is declared. Each row says which.

FactDeclaredMessages showEvidence
Chart and instrument
ChartPEPPERSTONE:US30declared
Broker symbolUS30evidenced
Timeframe3 min3 minevidenced
AccountPepperstone demo 61595788, USD 50k, 1:20061595788 DEMOevidenced
Demo expires2026-10-1521 days leftdeclared
This alert
Settings fingerprint54634.265evidenced
Opened2026-09-21 12:48:022026-09-21 12:48:02evidenced
Entries so far6evidenced
Execution
Sizingfixed 1.0 lotsfixed 1 lotsevidenced
Stop sent asdistanceevidenced
Stop distance71.9 to 311.1 pts, median 135.1evidenced
Session window07:00-12:00 America/New_Yorkdeclared
Strategy parameters
Basis EMA Length8declared
ATR Length14declared
Base ATR Multiplier2declared
Volatility Lookback20declared
Vol Stretch Sensitivity1.0declared
Trend Memory Length25declared
Trend Impact0.4declared
Min / Max Effective Mult1.0 / 4.0declared
Bars Needed To Flip1declared
Trailing Step (Ticks)
author default 1000
350declared
Use Fixed Take Profitoffdeclared

Every declared fact the messages can check agrees with them. The timeframe is the only one they can — the rest are assertions, marked as such.

Moved from 1-minute on 2026-09-21. Every strategy parameter matches the author's V1.2.2 defaults except Trailing Step, 350 here against his 1000 - 350 is 2.07x the measured 3-minute ATR, the same ratio the 1-minute epoch ran at 182.

The timeframe is evidenced, not asserted. Every V1.3 message carries its own timeframe field and the settings fingerprint includes it, so a chart moved to another timeframe changes the fingerprint and shows up here without anyone having to notice by hand. That is the one fact on this page that cannot quietly drift.

Configuration

The settings behind every number here

Taken from the script's source with changed values marked, because no entry has yet reported its settings. This can drift out of date; a reported set cannot.

Signal

Basis EMA Length
8
ATR Length
14
Base ATR Multiplier
2

Volatility and trend

Volatility Lookback
20
Vol Stretch Sensitivity
1.0
Trend Memory Length
25
Trend Impact (0..1)
0.4

Flip logic

Min Effective Mult
1.0
Max Effective Mult
4.0
Bars Needed To Flip
1

Risk and exits

Use % Risk
off set
Fixed Lots
0.1 set
Units Per 1.0 Lot (0 = auto)
1 set
Lot Step
0.1 set
Min Lots
0.1 set
Max Lots (safety cap)
1.0 set
Use Trailing Stop
on
Trailing Step (Ticks)
1000 set
Use Fixed Take Profit
off
Take Profit (Ticks)
5000

Execution

Middleman
Volta JSON set
Risk % Sized By
Middleman set
Stop Sent As
Distance set
Session Filter
off set

Broker and instrument

Chart
PEPPERSTONE:US30
Account
demo, $50k, 1:200
Margin mode
hedging
Chart tick
0.1
Symbol digits
1
Contract size
1.0
Volume min / step
0.1 / 0.1
Slippage allowed
3.0 pts

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.

The ledger

Every message, newest first

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.

TimeMessageChart priceBroker fillFeed gapStop at brokerOutcome
14:46:14
23 Sep
close
14:06:03
23 Sep
modify 51,649.2
asked 51,653.5
Executed
10009
13:06:01
23 Sep
modify 51,684.2
asked 51,688.5
Executed
10009
12:51:04
23 Sep
modify 51,719.2
asked 51,723.5
Executed
10009
12:33:01
23 Sep
modify 51,754.2
asked 51,758.5
Executed
10009
12:30:14
23 Sep
modify 51,789.2
asked 51,793.5
Executed
10009
12:27:03
23 Sep
modify 51,824.2
asked 51,828.5
Executed
10009
11:51:02
23 Sep
sell 1 51,728.4 closed 51,724.1
opened 51,724.6
-4.3 51,859.2
asked 135.1 away, landed 134.6
Executed ×2
10009
10:33:04
23 Sep
buy 1 51,875.9 51,868.6 -8.7 51,658.0
asked 209.2 away, landed 210.6
Executed
10009
10:30:38
23 Sep
modify
08:45:08
23 Sep
modify
22:17:49
22 Sep
healthprobe
22:10:29
22 Sep
healthprobe
22:09:06
22 Sep
healthprobe
12:36:03
22 Sep
modify
11:48:31
22 Sep
healthprobe
11:47:37
22 Sep
healthprobe
11:45:51
22 Sep
healthprobe
11:44:38
22 Sep
healthprobe
11:44:37
22 Sep
healthprobe
11:42:55
22 Sep
close 51,878.4 Executed
10009
11:36:03
22 Sep
modify 52,153.7
asked 52,140.6
Executed
10009
11:30:10
22 Sep
modify 52,188.7
asked 52,175.6
Code 10031 10031
11:24:02
22 Sep
modify 52,223.7
asked 52,210.6
Executed
10009
11:18:03
22 Sep
modify 52,258.7
asked 52,245.6
Executed
10009
11:15:16
22 Sep
modify 52,293.7
asked 52,280.6
Executed
10009
11:12:04
22 Sep
modify 52,328.7
asked 52,315.6
Executed
10009
10:54:03
22 Sep
modify 52,363.7
asked 52,350.6
Executed
10009
10:51:04
22 Sep
modify 52,398.7
asked 52,385.6
Executed
10009
10:48:03
22 Sep
modify 52,433.7
asked 52,420.6
Executed
10009
10:42:02
22 Sep
modify 52,468.7
asked 52,455.6
Executed
10009
10:39:01
22 Sep
modify 52,503.7
asked 52,490.6
Executed
10009
10:33:04
22 Sep
sell 1 52,214.5 52,227.6 +13.1 52,538.7
asked 311.1 away, landed 311.1
Executed
10009
10:25:14
22 Sep
close
10:18:01
22 Sep
modify 52,413.4
asked 52,412.5
Executed
10009
10:06:03
22 Sep
modify 52,378.4
asked 52,377.5
Executed
10009
10:03:01
22 Sep
modify 52,343.4
asked 52,342.5
Executed
10009
09:33:02
22 Sep
modify 52,308.4
asked 52,307.5
Executed
10009
09:12:02
22 Sep
modify 52,273.4
asked 52,272.5
Executed
10009
08:48:04
22 Sep
buy 1 52,309.4 52,309.4 +0.9 52,238.4
asked 71.9 away, landed 71.0
Executed
10009
08:45:59
22 Sep
close 52,316.5 Executed
10009
08:15:06
22 Sep
sell 1 52,216.0 52,222.4 +6.4 52,330.4
asked 108.0 away, landed 108.0
Executed
10009
21:36:29
21 Sep
close 52,062.6 Executed
10009
15:48:03
21 Sep
modify 52,058.8
asked 52,061.6
Executed
10009
15:30:10
21 Sep
modify 52,023.8
asked 52,026.6
Executed
10009
14:15:09
21 Sep
modify 51,988.8
asked 51,991.6
Executed
10009
13:36:02
21 Sep
modify 51,953.8
asked 51,956.6
Executed
10009
12:48:02
21 Sep
buy 1 52,030.2 52,027.4 -2.8 51,918.8
asked 108.6 away, landed 108.6
Executed
10009
12:21:55
21 Sep
close
12:02:49
21 Sep
close
11:00:39
21 Sep
modify
10:45:23
21 Sep
sell 1 51,844.1
05:20:30
21 Sep
close
09:21:15
20 Sep
close
09:21:15
20 Sep
close
09:19:31
20 Sep
close
09:19:31
20 Sep
close
09:06:34
20 Sep
close
09:06:33
20 Sep
close
09:04:24
20 Sep
close
09:03:55
20 Sep
close
13:30:15
18 Sep
modify
12:00:07
18 Sep
buy 1 51,611.0 51,612.6 +0.4 51,555.4
asked 56.0 away, landed 57.2
Executed
10009
11:59:45
18 Sep
close
11:44:03
18 Sep
modify 51,606.2
asked 51,613.0
Executed
10009
11:43:03
18 Sep
sell 1 51,560.4 closed 51,553.6
opened 51,554.4
-6.8 51,624.4
asked 70.8 away, landed 70.0
Executed ×2
10009
11:12:03
18 Sep
buy 1 51,634.5 closed 51,638.2
opened 51,638.2
+3.7 51,540.5
asked 97.7 away, landed 97.7
Executed ×2
10009
11:07:02
18 Sep
modify 51,651.5
asked 51,652.5
Executed
10009
11:03:03
18 Sep
modify 51,669.7
asked 51,670.7
Executed
10009
10:58:04
18 Sep
modify 51,687.9
asked 51,688.9
Executed
10009
10:55:14
18 Sep
sell 1 51,600.6 51,599.6 -1.0 51,706.1
asked 106.5 away, landed 106.5
Executed
10009
10:34:17
18 Sep
close 51,721.0 Executed
10009
10:33:02
18 Sep
modify 51,705.7
asked 51,721.4
Executed
10009
10:31:03
18 Sep
modify 51,669.3
asked 51,685.0
Executed
10009
10:30:32
18 Sep
modify 51,651.1
asked 51,666.8
Executed
10009
10:29:05
18 Sep
modify 51,614.7
asked 51,630.4
Executed
10009
10:28:02
18 Sep
buy 1 51,693.4 51,677.7 -15.7 51,596.5
asked 81.2 away, landed 81.2
Executed
10009
10:27:47
18 Sep
close
10:26:02
18 Sep
modify 51,671.5
asked 51,673.8
Executed
10009
10:15:13
18 Sep
sell 1 51,663.0 closed 51,660.7
opened 51,660.6
-2.3 51,707.9
asked 47.2 away, landed 47.3
Executed ×2
10009
10:07:02
18 Sep
modify 51,648.3
asked 51,644.9
Executed
10009
09:35:02
18 Sep
buy 1 51,691.0 51,694.4 +3.4 51,630.1
asked 64.3 away, landed 64.3
Executed
10009
09:35:00
18 Sep
close
09:24:03
18 Sep
modify 51,693.0
asked 51,691.7
Executed
10009
09:21:02
18 Sep
modify 51,711.2
asked 51,709.9
Executed
10009
09:19:03
18 Sep
modify 51,729.4
asked 51,728.1
Executed
10009
09:11:01
18 Sep
modify 51,747.6
asked 51,746.3
Executed
10009
09:10:04
18 Sep
modify 51,765.8
asked 51,764.5
Executed
10009
09:07:02
18 Sep
modify 51,784.0
asked 51,782.7
Executed
10009
09:01:04
18 Sep
modify 51,802.2
asked 51,800.9
Executed
10009
08:57:03
18 Sep
modify 51,820.4
asked 51,819.1
Executed
10009
08:44:03
18 Sep
sell 1 51,794.6 closed 51,795.9
opened 51,796.0
+1.3 51,838.6
asked 42.7 away, landed 42.6
Executed ×2
10009
08:32:02
18 Sep
buy 1 51,824.4 closed 51,824.4
opened 51,824.4
+0.0 51,780.3
asked 44.1 away, landed 44.1
Executed ×2
10009
08:18:01
18 Sep
modify 51,904.6
asked 51,899.9
Executed
10009
08:06:05
18 Sep
sell 1 51,809.6 51,813.5 +4.7 51,922.8
asked 108.5 away, landed 109.3
Executed
10009
08:05:32
18 Sep
close
08:05:04
18 Sep
buy 1 51,891.5 51,890.6 -1.9 51,838.0
asked 51.6 away, landed 52.6
Executed
10009
21:28:43
17 Sep
close
20:56:11
17 Sep
close
20:51:01
17 Sep
health-probe
19:00:34
17 Sep
close
17:51:06
17 Sep
modify 51,819.0
asked 51,818.0
Executed
10009
17:17:03
17 Sep
sell 1 51,804.4 51,806.4 +1.0 51,837.2
asked 31.8 away, landed 30.8
Executed
10009
17:16:24
17 Sep
close
16:54:04
17 Sep
buy 1 51,849.2 closed 51,851.0
opened 51,851.1
+1.8 51,806.4
asked 44.6 away, landed 44.7
Executed ×2
10009
16:30:09
17 Sep
modify 51,862.4
asked 51,863.9
Executed
10009
16:17:03
17 Sep
sell 1 51,846.5 closed 51,845.0
opened 51,845.0
-1.5 51,880.6
asked 35.6 away, landed 35.6
Executed ×2
10009
16:05:03
17 Sep
modify 51,840.2
asked 51,839.0
Executed
10009
16:01:04
17 Sep
buy 1 51,867.4 51,868.6 +1.2 51,822.0
asked 46.6 away, landed 46.6
Executed
10009
16:00:53
17 Sep
close
15:53:02
17 Sep
sell 1 51,825.6 51,825.4 +0.2 51,867.6
asked 41.8 away, landed 42.2
Executed
10009
15:52:45
17 Sep
close
15:49:01
17 Sep
buy 1 51,860.4 closed 51,861.4
opened 51,861.4
+1.0 51,830.3
asked 31.1 away, landed 31.1
Executed ×2
10009
15:37:01
17 Sep
modify 51,876.9
asked 51,877.0
Executed
10009
15:25:03
17 Sep
sell 1 51,855.8 closed 51,855.7
opened 51,855.5
-0.1 51,895.1
asked 39.4 away, landed 39.6
Executed ×2
10009
15:15:05
17 Sep
modify 51,849.3
asked 51,850.2
Executed
10009
14:58:02
17 Sep
modify 51,831.1
asked 51,832.0
Executed
10009
14:42:03
17 Sep
buy 1 51,848.9 51,847.6 -0.9 51,812.9
asked 35.1 away, landed 34.7
Executed
10009
13:55:30
17 Sep
close
13:04:02
17 Sep
modify 51,827.5
asked 51,823.6
Executed
10009
13:01:06
17 Sep
modify 51,809.3
asked 51,805.4
Executed
10009
12:43:03
17 Sep
modify 51,791.1
asked 51,787.2
Executed
10009
12:38:02
17 Sep
modify 51,772.9
asked 51,769.0
Executed
10009
12:36:05
17 Sep
modify 51,754.7
asked 51,750.8
Executed
10009
12:18:02
17 Sep
modify 51,736.5
asked 51,732.6
Executed
10009
12:13:02
17 Sep
buy 1 51,756.5 51,760.3 +3.9 51,700.1
asked 60.3 away, landed 60.2
Executed
10009
12:03:26
17 Sep
close
11:57:03
17 Sep
modify 51,748.6
asked 51,746.7
Executed
10009
11:55:05
17 Sep
modify 51,766.8
asked 51,764.9
Executed
10009
11:54:02
17 Sep
modify 51,785.0
asked 51,783.1
Executed
10009
11:53:02
17 Sep
modify 51,803.2
asked 51,801.3
Executed
10009
11:52:02
17 Sep
modify 51,821.4
asked 51,819.5
Executed
10009
11:37:02
17 Sep
sell 1 51,761.6 closed 51,763.5
opened 51,764.6
+1.9 51,839.6
asked 76.1 away, landed 75.0
Executed ×2
10009
11:23:03
17 Sep
modify 51,754.4
asked 51,748.3
Executed
10009
11:22:03
17 Sep
modify 51,736.2
asked 51,730.1
Executed
10009
11:21:03
17 Sep
modify 51,718.0
asked 51,711.9
Executed
10009
11:20:05
17 Sep
modify 51,699.8
asked 51,693.7
Executed
10009
11:19:02
17 Sep
buy 1 51,774.3 51,779.6 +6.1 51,681.6
asked 98.8 away, landed 98.0
Executed
10009
10:31:06
17 Sep
modify
10:31:04
17 Sep
close 51,953.4 Executed
10009
10:30:30
17 Sep
modify 52,108.4
asked 52,109.4
Executed
10009
10:26:03
17 Sep
modify 52,144.8
asked 52,145.8
Executed
10009
10:11:02
17 Sep
sell 1 52,114.6 52,114.6 -1.0 52,163.0
asked 49.4 away, landed 48.4
Executed
10009
07:26:52
17 Sep
close
06:50:05
17 Sep
modify 51,910.9
asked 51,910.8
Executed
10009
06:47:02
17 Sep
sell 1 51,893.0 closed 51,893.1
opened 51,893.1
+0.1 51,929.1
asked 36.0 away, landed 36.0
Executed ×2
10009
06:11:04
17 Sep
modify 51,868.3
asked 51,866.2
Executed
10009
05:35:03
17 Sep
modify 51,850.1
asked 51,848.0
Executed
10009
05:30:02
17 Sep
buy 1 51,873.0 51,876.0 +2.1 51,831.9
asked 43.2 away, landed 44.1
Executed
10009
05:29:47
17 Sep
close
05:19:01
17 Sep
modify 51,869.6
asked 51,868.8
Executed
10009
05:13:02
17 Sep
modify 51,887.8
asked 51,887.0
Executed
10009
05:04:00
17 Sep
modify 51,906.0
asked 51,905.2
Executed
10009
05:03:02
17 Sep
modify 51,924.2
asked 51,923.4
Executed
10009
04:56:03
17 Sep
modify 51,942.4
asked 51,941.6
Executed
10009
04:50:05
17 Sep
sell 1 51,921.6 closed 51,922.4
opened 51,922.4
+0.8 51,960.6
asked 38.2 away, landed 38.2
Executed ×2
10009
04:31:05
17 Sep
modify 51,918.2
asked 51,913.2
Executed
10009
04:09:04
17 Sep
modify 51,900.0
asked 51,895.0
Executed
10009
04:06:03
17 Sep
buy 1 51,919.0 51,923.0 +5.0 51,881.8
asked 42.2 away, landed 41.2
Executed
10009
04:03:48
17 Sep
close
04:01:04
17 Sep
sell 1 51,881.2 closed 51,882.6
opened 51,882.6
+1.4 51,913.1
asked 30.5 away, landed 30.5
Executed ×2
10009
03:38:02
17 Sep
modify 51,866.7
asked 51,865.7
Executed
10009
03:30:06
17 Sep
modify 51,848.5
asked 51,847.5
Executed
10009
03:27:03
17 Sep
modify 51,830.3
asked 51,829.3
Executed
10009
03:25:05
17 Sep
buy 1 51,851.0 51,852.0 +1.0 51,812.1
asked 39.9 away, landed 39.9
Executed
10009
03:24:21
17 Sep
close
03:16:03
17 Sep
sell 1 51,806.7 51,805.9 -2.1 51,843.3
asked 38.7 away, landed 37.4
Executed
10009
03:15:47
17 Sep
close
03:04:02
17 Sep
modify 51,810.1
asked 51,810.0
Executed
10009
03:01:06
17 Sep
buy 1 51,822.9 51,823.0 +0.1 51,791.9
asked 31.1 away, landed 31.1
Executed
10009
02:39:43
17 Sep
close
02:32:03
17 Sep
modify 51,814.6
asked 51,814.2
Executed
10009
02:21:05
17 Sep
modify 51,832.8
asked 51,832.4
Executed
10009
01:55:06
17 Sep
sell 1 51,829.6 51,830.0 +0.4 51,851.0
asked 21.0 away, landed 21.0
Executed
10009
01:39:03
17 Sep
buy 1 51,844.0 closed 51,846.0
opened 51,846.0
+2.0 51,828.2
asked 17.8 away, landed 17.8
Executed ×2
10009
01:24:07
17 Sep
modify 51,851.1
asked 51,851.1
Executed
10009
01:06:05
17 Sep
sell 1 51,845.4 51,845.4 +0.0 51,869.3
asked 23.9 away, landed 23.9
Executed
10009
20:35:07
15 Sep
buy 0.1 52,186.0 closed 52,187.0
opened 52,187.0
+1.0 52,177.9
asked 9.1 away, landed 9.1
Executed ×2
10009
20:14:02
15 Sep
sell 0.1 52,184.9 closed 52,186.0
opened 52,186.0
+1.1 52,194.7
asked 8.7 away, landed 8.7
Executed ×2
10009
16:59:03
15 Sep
buy 0.1 52,120.6 52,129.4 +6.8 52,070.9
asked 56.5 away, landed 58.5
Executed
10009
16:47:36
15 Sep
close
16:43:03
15 Sep
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
15:53:02
15 Sep
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
15:31:03
15 Sep
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
14:32:01
15 Sep
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
14:06:02
15 Sep
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
13:55:05
15 Sep
modify 52,049.8
asked 52,050.0
Executed
10009
13:23:01
15 Sep
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
12:55:04
15 Sep
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
12:21:02
15 Sep
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
11:23:00
15 Sep
modify 52,016.7
asked 52,017.5
Executed
10009
11:10:03
15 Sep
modify 52,116.7
asked 52,117.5
Executed
10009
10:35:05
15 Sep
modify 52,216.7
asked 52,217.5
Executed
10009
10:32:02
15 Sep
modify 52,316.7
asked 52,317.5
Executed
10009
10:29:03
15 Sep
sell 0.1 52,357.6 52,357.4 -0.8 52,416.7
asked 59.9 away, landed 59.3
Executed
10009
Architecture

How a signal becomes an order

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.

1
The strategy
Builds the whole message itself, on bar close. TradingView does not substitute placeholders inside alert(), so the script assembles the JSON.
2
The alert
A frozen copy of the script, its inputs and its Properties. Change any setting and it keeps trading the old ones until it is deleted and recreated.
3
The webhook
One HTTPS POST per event. Retried up to three times on a 5xx, never on a timeout or a 404, with a three-second deadline.
4
The middleman
Turns the message into a broker order. Here that is the Volta bridge; it could be PineConnector or TradersPost instead.
5
MetaTrader
A terminal logged into the account, with algorithmic trading enabled. The order goes out from there.

Three ways to run it yourself

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.

PineConnector

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

TradersPost

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

The Volta bridge

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

What the bridge does that a hosted service does not

Sizes from the broker
real contract specs
Re-anchors the stop
to the actual fill
Ignores duplicate retries
20 second window
Refuses live accounts
demo-only by default
Maps ticker to symbol
US30 → broker name
Rounds lots
to the broker's step
Truncates the comment
MT5 rejects long ones
Flags stale alerts
settings fingerprint

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.

Status

What this run has and hasn't shown

Proven live

  • Entry with the stop sent as a distance, re-anchored to the real fill
  • Trailing stop updates reaching the broker, each one exact
  • A reversal: close and re-open from a single message
  • Lot size, symbol name and stop distance all survive the trip intact

Still unseen

  • An order rejected by the broker, and how it recovers
  • An overnight run, with the session filter off through the thin hours
  • Anything at all about profitability — this is far too few trades

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.