Forward test · broker demo

Volta V1.3 Execution Log

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

RUNNING
last signal 4 min ago
built 17 Sep 2026, 19:21 UTC
Signals sent
89
44 modify, 17 sell, 16 buy, 12 close
Executed
77
95 orders, 12 refused or lost
Trades closed
31
15 of 31 profitable
Chart → broker
+0.9
index points — mean of 33 entries, ranging +0.0 to +6.8
Open now
sell 1.0 US30
stop 51,880.6
Net result
+183.15
USD on 31 closed trades, +653.3 index points. Account is +184.57 including 2 setup tests worth -0.88, 1 closed by hand worth +2.30.
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
89632.934
active
1 min 11:19:02
17 Sep
8 -27.6 -27.60
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 16:17:05
17 Sep
open 51,845.0
buy 1.0 16:01:06
17 Sep
16:17:05
17 Sep
reversal
15m 51,868.6 51,845.0 -23.6 -23.60 +183.15
sell 1.0 15:53:04
17 Sep
16:00:51
17 Sep
broker stop
7m 51,825.4 51,867.6 -42.2 -42.20 +206.75
buy 1.0 15:49:03
17 Sep
15:52:44
17 Sep
broker stop
3m 51,861.4 51,830.3 -31.1 -31.10 +248.95
sell 1.0 15:25:05
17 Sep
15:49:03
17 Sep
reversal
23m 51,855.5 51,861.4 -5.9 -5.90 +280.05
buy 1.0 14:42:05
17 Sep
15:25:05
17 Sep
reversal
43m 51,847.6 51,855.7 +8.1 +8.10 +285.95
buy 1.0 12:13:04
17 Sep
13:55:30
17 Sep
broker stop
1h 42m 51,760.3 51,827.5 +67.2 +67.20 +277.85
sell 1.0 11:37:04
17 Sep
12:03:26
17 Sep
broker stop
26m 51,764.6 51,748.6 +16.0 +16.00 +210.65
buy 1.0 11:19:04
17 Sep
11:37:04
17 Sep
reversal
18m 51,779.6 51,763.5 -16.1 -16.10 +194.65
sell 1.0 10:11:04
17 Sep
10:31:06
17 Sep
reversal
20m 52,114.6 51,953.4 +161.2 +161.20 +210.75
sell 1.0 06:47:04
17 Sep
07:07:54
17 Sep
broker stop
20m 51,893.1 51,910.9 -17.8 -17.80 +49.55
buy 1.0 05:30:05
17 Sep
06:47:04
17 Sep
reversal
1h 16m 51,876.0 51,893.1 +17.1 +17.10 +67.35
sell 1.0 04:50:08
17 Sep
05:29:35
17 Sep
broker stop
39m 51,922.4 51,869.6 +52.8 +52.80 +50.25
buy 1.0 04:06:05
17 Sep
04:50:07
17 Sep
reversal
44m 51,923.0 51,922.4 -0.6 -0.60 -2.55
sell 1.0 04:01:07
17 Sep
04:03:48
17 Sep
broker stop
2m 51,882.6 51,913.1 -30.5 -30.50 -1.95
buy 1.0 03:25:07
17 Sep
04:01:06
17 Sep
reversal
35m 51,852.0 51,882.6 +30.6 +30.60 +28.55
sell 1.0 03:16:05
17 Sep
03:24:08
17 Sep
broker stop
8m 51,805.9 51,843.3 -37.4 -37.40 -2.05
buy 1.0 03:01:08
17 Sep
03:15:47
17 Sep
broker stop
14m 51,823.0 51,810.1 -12.9 -12.90 +35.35
sell 1.0 01:55:08
17 Sep
02:39:40
17 Sep
broker stop
44m 51,830.0 51,814.6 +15.4 +15.40 +48.25
buy 1.0 01:39:05
17 Sep
01:54:51
17 Sep
broker stop
15m 51,846.0 51,828.2 -17.8 -17.80 +32.85
sell 1.0 01:06:08
17 Sep
01:39:05
17 Sep
reversal
32m 51,845.4 51,846.0 -0.6 -0.60 +50.65
sell 0.1 20:14:05
15 Sep
20:35:09
15 Sep
reversal
21m 52,186.0 52,187.0 -1.0 -0.10 +51.25
buy 0.1 16:59:05
15 Sep
20:14:05
15 Sep
reversal
3h 15m 52,129.4 52,186.0 +56.6 +4.77 +51.35
sell 0.1 16:43:05
15 Sep
16:47:35
15 Sep
broker stop
4m 52,080.6 52,112.8 -32.2 -3.22 +46.58
buy 0.1 15:53:04
15 Sep
16:43:05
15 Sep
reversal
50m 52,054.6 52,080.6 +26.0 +2.60 +49.80
sell 0.1 15:31:05
15 Sep
15:53:04
15 Sep
reversal
21m 52,042.8 52,054.7 -11.9 -1.19 +47.20
buy 0.1 14:32:03
15 Sep
15:31:05
15 Sep
reversal
59m 52,033.0 52,042.8 +9.8 +0.98 +48.39
sell 0.1 14:06:05
15 Sep
14:32:03
15 Sep
reversal
25m 52,052.4 52,032.4 +20.0 +2.00 +47.41
buy 0.1 13:23:04
15 Sep
14:06:04
15 Sep
reversal
43m 51,988.4 52,052.5 +64.1 +6.41 +45.41
sell 0.1 12:55:07
15 Sep
13:23:03
15 Sep
reversal
27m 51,982.6 51,988.3 -5.7 -0.57 +39.00
buy 0.1 12:21:05
15 Sep
12:55:07
15 Sep
reversal
34m 51,972.6 51,982.3 +9.7 +0.97 +39.57
sell 0.1 10:29:05
15 Sep
12:21:04
15 Sep
reversal
1h 51m 52,357.4 51,971.4 +386.0 +38.60 +38.60

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

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

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
+2,087
index points of favourable movement across 33 trades
Kept
+644
what the exits actually banked
Given back
+1,442
69.1% 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 49.1 points each, median
  • None went further against us than 56.3 points before turning profitable

Losers

  • Went 21.3 points our way before failing, at the median
  • 10 of 18 were up more than ten points at some stage
  • Banking half of that on those alone turns -97 into +178 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
57.9
median pullback from a running peak that the trade then exceeded
Worst case
96.9
the most a winner gave up before making a new high
All trades
48.2
same measure across every round trip
Stop behind best priceNet points vs actualExited on trail Winners kept
5 pts +15.8 -628.7 33/33 5/15
8 pts +96.2 -548.3 31/33 6/15
10 pts +75.4 -569.1 31/33 4/15
12 pts +67.7 -576.8 30/33 4/15
15 pts +70.5 -574.0 30/33 6/15
20 pts +229.0 -415.5 29/33 10/15
25 pts +179.7 -464.8 27/33 10/15
30 pts +73.1 -571.4 26/33 10/15
40 pts +201.0 -443.5 23/33 13/15
50 pts +329.5 -315.0 15/33 13/15

Every tightening tested made the result worse. Actual was +644.5 points; the best of ten offsets was 50 points behind the peak and still finished -315.0 points short, with the curve still improving as it widened. The reason is the room figure above: the typical winner pulls back around 57.9 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.73% net over 20 sessions
Structure
trending
efficiency 0.307 — trending at 0.3 and above
Volatility
normal
530.6 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
13 +512.6 +39.4 53.8% below 30 trades
trending 20 +131.9 +6.6 40.0% below 30 trades
direction
bear
33 +644.5 +19.5 45.5% every trade landed here — no contrast to measure; mixed lot sizes, so only points compare
volatility
normal
33 +644.5 +19.5 45.5% 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 39.4 points per trade in chop against 6.6 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.

!

These findings are overdue a human read

The sample has reached 31 closed trades, past the 30 this page withholds a verdict below. The wording here was written when there were five, and it updates its numbers but not its reasoning - it cannot notice a pattern nobody has looked for. Treat the profitability section as provisional until someone has actually read the logs again.

!

Execution is faithful

89 messages, 95 orders, 12 not executed. Stops land within about a point of the distance asked for, and the chart-to-broker gap averages +0.9 points across 33 entries. This part has enough evidence to stand on: it is a question of fidelity, and every message either arrived intact or did not.

!

The median trade barely clears its costs

Median result is -0.6 points. Crossing the spread costs about 2.0 points per round trip, so roughly 99% 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.

·

One trade is carrying the result

The largest winner is 41% 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.

·

Profitability, for what it is worth

31 trades, 15 profitable, profit factor 3.27

·

The backtests were negative

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.

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.