What we have measured, what we cannot see, and the questions that are yours to answer.
⭐ Not one line of the Pine has been modified. The bridge reads the JSON the strategy already emits on order fills, and every number on this site comes from a broker's own deal history.
⛔ Nothing here is a condition or a complaint. It is what running the strategy on live accounts has made visible that a backtest cannot show — offered as help. Where something is a judgement call it is written as a question, not a finding.
⭐ The boundary is deliberate: the strategy says where, the executor says how much. Everything the executor owns needs a fact that does not exist on TradingView — a real balance, a broker's contract value, its lot step.
| Decision | Owned by | Why there |
|---|---|---|
| Whether there is a trade at all | The strategy | Macro window, IFVG confirmation, direction. Untouched. |
| Entry, stop and the three targets | The strategy | ⭐ Measured at exactly 1R / 2R / 3R on live fills, two instruments, two brokers. The geometry does what it says. |
| Where a third comes off, and when the stop moves | The strategy | The executor manages the legs but the levels are the plan's. |
| How many lots | The executor | Needs the real balance and the broker's own contract value. ⚠ The
qty in the message is read and discarded — it describes TradingView's
simulated $50,000 account, so it cannot size a real one. |
| Whether the trade is allowed | The executor | Account pin, staleness, clock skew, minimum stop distance, risk ceiling, concurrency, daily loss. All refuse rather than resize. |
| What actually happened | The executor | ⚠ Read from the broker's deal history, not from the message stream — one alert carries both legs of an exit, so the messages alone cannot tell a stop-out from a take-profit. |
A backtest fills at the bar price and never pays a spread. These are the numbers that only appear once real money is routed through a real broker.
| Finding | What it means |
|---|---|
| ⭐ The targets are exactly 1R / 2R / 3R | Confirmed from live fills on gold and Nasdaq, across two brokers. Nothing drifts. This is the part that needed no attention at all. |
| ⭐⭐⭐ A 2-minute gold signal gave up 73% of its R at the entry | The entry filled 5.46 late, which moved the breakeven stop 5.46 closer to the market. Price then came back to within 0.51 of it and the last third was scratched — and 40 minutes later price reached tp3. A stop at the planned entry was never touched at all: the high after breakeven was 4364.98 against a planned entry of 4369.925. ⭐ So the same move, filled on plan, pays +2.00R (a third at each target). It paid +0.53R. ⚠ One trade. |
| ⭐⭐ Spread is 15–37% of 1R on one broker and 6% on another | Nasdaq at a demo broker costs between a sixth and a third of every trade's risk before the trade does anything. Gold at the funded broker costs a sixteenth. ⭐ Viability depends on a number the tester cannot see. |
The entry field is a reference price, not a fill |
So realised R sits systematically below nominal R. Measured on both a winning and a losing trade. |
| ATR-based stops usually clear the broker minimum — but not always | And the failure is silent. The executor now refuses rather than submitting an order the broker will quietly reject. |
⚠ No read on profitability is offered below thirty closed trades, and the sample is far smaller than that. Everything above is about execution, not about whether the strategy makes money.
| Item | Detail | Affects |
|---|---|---|
Breakeven is emitted on the alert() channel |
A webhook alert does not carry it, so anyone wiring the strategy to a broker loses the move-to-breakeven with no error anywhere. | ⭐ Discussed already |
A stop-out arrives labelled tp1 |
The sl branch of the exit message is not reached, so a
losing exit reports as a take-profit. ⚠ For anyone reading the message stream as a trade
log, losses are invisible. We route around it by ignoring exit messages entirely and
reading the broker instead. |
Anyone automating it |
Use Date Filter? end date is 2026-12-31 |
On that date signalling stops with no error. One of three dates that can silently end a run — the others are the alert expiry and the broker account. All three are now counted down on these pages. | Everyone |
| Position sizing is in whole contracts | The % of Equity mode floors at 0.1% risk, requires at least one whole contract, and rounds to multiples of three. ⭐ Exactly right for futures. On a broker, gold trades in 0.01-lot steps and a sensible size on a large account is 1.25 lots — under half the smallest order the input can produce. | ⭐⭐ Broker users, not us |
| The default ticker carries a dated contract code | It expires at each quarterly roll. Our executor maps symbols, so it does not bite here. | Anyone not mapping |
Each of these is a genuine design choice with a real trade-off. We have one or two trades; you have thousands.
| Question | What we can contribute |
|---|---|
| ⭐⭐ After an entry slips, should the targets hold their absolute prices, or re-derive from the actual fill? | On our one gold trade it made no difference — absolute paid 0.327R, re-derived paid 0.333R. So it is not obviously worth changing, and your backtest can settle it properly. |
| ⭐⭐⭐ After a slipped entry, should breakeven move to the fill or to the planned entry? | This is the sharpest thing we have found. Breakeven at the fill sat 5.46 closer to the market than the plan intended; price returned to within 0.51 of it, scratched the last third, and reached tp3 forty minutes later. A stop at the planned entry was never touched. ⚠ The trade-off is real — breakeven at the plan leaves the last third risking the slippage rather than flat, which here was about $1,146 — and it would have bought 3R on that third instead of nothing. |
Is IFVG Edge meant to be a limit order? |
⛔ We tested it and it looks worse — see below. |
| Which day boundary does Max Trades Per Day intend? | It resets on the chart symbol's exchange calendar day, while the macro windows are pinned explicitly to New York — so the windows are fixed and the cap limiting them moves with whichever chart it is on. |
| Which instrument and contract is it really for? | ⚠ MT5 cannot trade real futures, only CFDs. Charting a futures contract and executing on MT5 offsets every absolute level by the basis — and the stop and targets in the message are absolute prices. |
⭐ Kept deliberately. Each of these looked like a clear improvement, was measured, and did not survive it — and the measurements turned out to be worth more than the suggestions were. The last one was our own bug.
| We thought | Measuring showed |
|---|---|
| A limit order at the plan price would recover the entry slippage. | ⛔ It would never have filled. After the signal the highest print was 4366.63 against a plan of 4369.925, and price fell away from there. The trade would have been missed entirely — nothing instead of a profit. A maximum slippage guard would have done the same. |
| Re-deriving the targets from the actual fill would restore the lost R. | ⛔ 0.333R against 0.327R. Identical to a rounding error. |
| Sizing belonged on the TradingView side. | ⛔ It cannot work, and not because of anything in the Pine:
strategy.equity is a simulated $50,000, and syminfo.pointvalue
belongs to the chart's venue rather than the broker's. ⭐ The correct division is
the one in the first table. |
| The end-of-day flatten was a defect in the strategy. | ⛔ It was ours. _closeEOD is evaluated per bar
and fires once, on the 15:55 bar. We implemented "at 15:55" as "after 15:55" and turned an
event into a state, which killed two of the four macro windows in our own executor. |