TradeWarden v1.20 — test report
Built by Alireza.
Generated 2026-10-07 18:29 (VPS time). Every row in the tester tables is parsed from a real Strategy Tester run of the final build; nothing is estimated. The live section lists what was measured on MetaQuotes demo accounts with real order execution.
Tested build: TradeWarden.ex5 1.20, SHA-256 57ac74f0ffd739746ca5c08b86eb92ba7dc7d7e44d130a3efabe513f96108497. The file in the package has the same hash.
Summary
| Test set | Runs | Passed | Checks | Problems |
|---|---|---|---|---|
| Hedging · 1-minute OHLC · 2026-09-14 → 09-19 | 80 | 80 | 1,034,074 | none |
| Netting · 1-minute OHLC · 2026-09-14 → 09-19 | 76 | 76 | 645,578 | none |
| Hedging · real ticks · 2026-09-15 → 09-17 | 48 | 48 | 16,454,349 | none |
| Netting · real ticks · 2026-09-15 → 09-17 | 34 | 34 | 3,540,434 | none |
| Hedging · 1-minute OHLC · 2026-08-10 → 08-15 | 80 | 79 | 1,048,976 | S57 EURUSD FAIL |
| Netting · 1-minute OHLC · 2026-08-10 → 08-15 | 76 | 75 | 657,253 | S57 EURUSD FAIL |
| Hedging · 1-minute OHLC · 2026-07-06 → 07-11 | 80 | 79 | 926,998 | S23 EURUSD NO-CHECKS |
| Other guard settings · hedging + netting · 1-minute OHLC · 2026-09-14 → 09-19 | 19 | 19 | 77 | none |
| More symbols and an EUR account · hedging · 1-minute OHLC · 2026-09-14 → 09-19 | 15 | 14 | 872 | S1 XPTUSD NO-CHECKS |
| Total | 508 | 504 | 24,308,611 |
Account: $10,000 and USD unless the row says otherwise, leverage 1:100, MetaQuotes-Demo history. A check is one assertion evaluated by the self-test (for the management scenarios it runs on every tick). An event is a real action of the EA that the test saw (a stop moved, a partial closed, a lock fired, a strike counted).
Runs that did not pass: 4. 2 failed:
- Hedging · 1-minute OHLC · 2026-08-10 → 08-15, S57 EURUSD (FAIL): The 1-minute OHLC model jumped over the keep line in one step. A 0.5-lot buy opened at 1.15428 on 2026.08.11 00:00; the M1 bar of 00:01 has a 7.4-pip range (high 1.15490, low 1.15416, from the server's history), and the model goes from the bar's high to its low with no tick between: the day's best was +31.00 at the high and the next tick was -6.00 at the low. The guard locked on that first tick below the keep line (15.50), as it should; the test allows 15.00 below the line and the step was 21.50. S57 passed in the September week (hedging and netting) and with real ticks. This is the limit 'Protect today's profit acts on ticks'.
- Netting · 1-minute OHLC · 2026-08-10 → 08-15, S57 EURUSD (FAIL): Same as the hedging run of this week: the same 0.5-lot buy at 1.15428 on 2026.08.11 00:00, and the 1-minute OHLC model went from the M1 bar 00:01's high (1.15490, the day at +31.00) to its low (1.15416, -6.00) in one step. The guard locked on that first tick below the keep line (15.50), as it should; the test allows 15.00 below the line. S57 passed in the September week on both accounts and with real ticks.
- Hedging · 1-minute OHLC · 2026-07-06 → 07-11, S23 EURUSD (NO-CHECKS): The test's own trades (58 reversing 2-lot trades) lost 2,285.40 in that week (balance 10,000.00 -> 7,714.60, the lowest 7,060.60), so equity never reached the 0.3 % target (10,030.00): the target lock had nothing to do and no check ran. In the September and August weeks, on both accounts, S23 locked exactly at the target (equity 10,030.00). Same as in 1.10.
- More symbols and an EUR account · hedging · 1-minute OHLC · 2026-09-14 → 09-19, S1 XPTUSD (NO-CHECKS): S1 waits for a spread of at most half its smallest stop (5 pips: 2.5 pips) before its first trade. On MetaQuotes-Demo platinum's smallest spread in that week was 617 points = 61.7 pips (median 2,857 points), read from the same 6,598 M1 bars the tester generated, so S1 never traded and no check ran. Same as in 1.10.
Mutation tests: does each test catch its bug?
Each row switches one fix or rule off in the source, builds, and runs the scenario that guards it. The scenario must FAIL; then the source is restored (byte for byte) and rebuilt. A test that still passed with its rule switched off would prove nothing.
| Mutation | Switched off | Scenario run | Result |
|---|---|---|---|
| M1 | netting reversals not handled (trade event and scan) | S18 add + reversal (EURUSD) | caught: FAIL, 2 of 8 checks failed |
| M2 | the managing chart ignores the guard's re-base flag | S18 add + reversal (EURUSD) | caught: FAIL, 1 of 8 checks failed |
| M3 | the risk budget counts trades opened after the one being judged | S21 risk budget (EURUSD) | caught: FAIL, 2 of 8 checks failed |
| M4 | the max-trades lock closes the trade that reached the limit | S7 max trades per day (EURUSD) | caught: FAIL, 1 of 7 checks failed |
| M5 | the same for a netting add | S7 max trades per day (EURUSD) | caught: FAIL, 1 of 7 checks failed |
| M6 | max open positions judged by the count when the event arrives | S22 max open positions (EURUSD) | caught: FAIL, 2 of 10 checks failed |
| M7 | stealth off: hidden levels neither enforced nor put back | S39 hidden stops: stealth off (EURUSD) | caught: FAIL, 3 of 6 checks failed |
| M8 | positions a close-all could not close are never tried again | S41 close-all retry (EURUSD) | caught: FAIL, 1 of 4 checks failed |
| M9 | OCO pairs found only by their comment | S40 OCO pair without the comment (EURUSD) | caught: FAIL, 3 of 9 checks failed |
| M10 | the cap on the total open risk is ignored | S42 max total open risk (EURUSD) | caught: FAIL, 4 of 7 checks failed |
| M11 | the scan does not catch a reversal before its trade event | S18 add + reversal (EURUSD) | caught: FAIL, 1 of 3 checks failed |
| M12 | Live Guard: the pause after a loss finds no loss | S47 Live Guard: pause after a loss (EURUSD) | caught: FAIL, 4 of 7 checks failed |
| M13 | Live Guard: a bigger trade after a loss is not cut | S48 Live Guard: no bigger trade after a loss (EURUSD) | caught: FAIL, 3 of 5 checks failed |
| M14 | Live Guard: adding to a losing trade is not seen | S49 Live Guard: no adding to a loser (EURUSD) | caught: FAIL, 3 of 5 checks failed |
| M15 | Live Guard: strike 2 does not pause | S50 Live Guard: strikes, pause, day lock (EURUSD) | caught: FAIL, 2 of 14 checks failed |
| M16 | a looser setting applies at once (not at the next reset) | S51 looser settings start tomorrow (EURUSD) | caught: FAIL, 4 of 8 checks failed |
| M17 | the opening stop of a closed trade read after the loop (the 1.20 fix undone) | S48 Live Guard: no bigger trade after a loss (EURUSD) | caught: FAIL, 4 of 5 checks failed |
| M18 | the weekly loss lock never fires | S43 weekly loss lock (EURUSD) | caught: FAIL, 1 of 1 checks failed |
| M19 | the half-limit warning is not once a day | S45 50/80% warnings + day summary (EURUSD) | caught: FAIL, 3 of 4 checks failed |
| M20 | Live Guard: a stop moved away or removed is not a strike | S55 Live Guard: stop moves, burst, other EAs, flips (EURUSD) | caught: FAIL, 4 of 15 checks failed |
| M21 | Live Guard: the busy-hour rule never counts | S55 Live Guard: stop moves, burst, other EAs, flips (EURUSD) | caught: FAIL, 6 of 15 checks failed |
| M22 | Live Guard: a losing netting position flipped at once is not seen | S55 Live Guard: stop moves, burst, other EAs, flips (EURUSD) | caught: FAIL, 2 of 3 checks failed |
| M23 | Live Guard: other EAs' trades judged too | S55 Live Guard: stop moves, burst, other EAs, flips (EURUSD) | caught: FAIL, 4 of 15 checks failed |
| M24 | the monthly loss lock never fires | S44 monthly loss lock (EURUSD) | caught: FAIL, 1 of 1 checks failed |
| M25 | a break the trader chose is not a lock | S56 take a break (EURUSD) | caught: FAIL, 66 of 78 checks failed |
| M26 | protect today's profit never fires | S57 protect today's profit (EURUSD) | caught: FAIL, 1 of 6 checks failed |
| M27 | trades on symbols off the list are not closed | S58 trade only these symbols (EURUSD) | caught: FAIL, 3 of 11 checks failed |
| M28 | FundedNext funded: no 3 % open-risk cap | S59 FundedNext funded: 3% open risk (EURUSD) | caught: FAIL, 6 of 10 checks failed |
| M29 | a shorter break replaces a running one | S56 take a break (EURUSD) | caught: FAIL, 21 of 78 checks failed |
| M30 | the profit lock is not released at the daily reset | S57 protect today's profit (EURUSD) | caught: FAIL, 2 of 10 checks failed |
| M31 | one symbol's open loss is never checked | S60 open loss per symbol (EURUSD) | caught: FAIL, 1 of 2 checks failed |
| M32 | trading hours are not enforced | S61 trading hours, days, direction (EURUSD) | caught: FAIL, 3 of 8 checks failed |
| M33 | trading days are not enforced | S61 trading hours, days, direction (EURUSD) | caught: FAIL, 2 of 8 checks failed |
| M34 | one direction only is not enforced | S61 trading hours, days, direction (EURUSD) | caught: FAIL, 1 of 8 checks failed |
| M35 | the max lot per trade is not applied | S62 max lot, spacing, trades per hour (EURUSD) | caught: FAIL, 1 of 7 checks failed |
| M36 | the minutes between trades are not enforced | S62 max lot, spacing, trades per hour (EURUSD) | caught: FAIL, 2 of 7 checks failed |
| M37 | trades per hour are not counted | S62 max lot, spacing, trades per hour (EURUSD) | caught: FAIL, 2 of 7 checks failed |
| M38 | fixed lots are read as a risk setting | S63 fixed lots, ATR stop, pending expiry (EURUSD) | caught: FAIL, 2 of 7 checks failed |
| M39 | the ATR stop is ignored | S63 fixed lots, ATR stop, pending expiry (EURUSD) | caught: FAIL, 1 of 7 checks failed |
| M40 | pending orders never expire | S63 fixed lots, ATR stop, pending expiry (EURUSD) | caught: FAIL, 2 of 7 checks failed |
| M41 | the time stop never closes | S64 time stop (EURUSD) | caught: FAIL, 1 of 2 checks failed |
| M42 | the journal line is never written | S65 journal + weekly report (EURUSD) | caught: FAIL, 2 of 10 checks failed |
| M43 | the journal reads a netting reversal as one trade | S65 journal + weekly report (EURUSD) | caught: FAIL, 7 of 27 checks failed |
| M44 | no weekly report | S65 journal + weekly report (EURUSD) | caught: FAIL, 2 of 23 checks failed |
| M45 | the checklist does not stop a trade | S66 pre-trade checklist (EURUSD) | caught: FAIL, 3 of 6 checks failed |
| M46 | monitor-only mode acts anyway | S67 monitor only (EURUSD) | caught: FAIL, 3 of 3 checks failed |
| M47 | the lock signal for other EAs is never written | S56 take a break (EURUSD) | caught: FAIL, 1 of 78 checks failed |
| M48 | the symbol-loss close takes every symbol | S60 open loss per symbol (EURUSD) | caught: FAIL, 1 of 5 checks failed |
| M49 | a part closed counts as a whole trade | S65 journal + weekly report (EURUSD) | caught: FAIL, 2 of 23 checks failed |
| M50 | the discipline score counts nothing | S68 discipline score (EURUSD) | caught: FAIL, 5 of 10 checks failed |
| M51 | a trade is counted once for every rule it broke | S68 discipline score (EURUSD) | caught: FAIL, 4 of 10 checks failed |
| M52 | a stop order from the lines stays a plain stop | S69 stop-limit orders (EURUSD) | caught: FAIL, 9 of 15 checks failed |
| M53 | a hidden pending order goes to the broker | S70 hidden pending orders (EURUSD) | caught: FAIL, 7 of 12 checks failed |
| M54 | a lock leaves the hidden orders | S70 hidden pending orders (EURUSD) | caught: FAIL, 1 of 12 checks failed |
| M55 | a limit order is not split into a grid | S71 grid orders (EURUSD) | caught: FAIL, 4 of 9 checks failed |
| M56 | a grid's rest stays when its first trade closes | S71 grid orders (EURUSD) | caught: FAIL, 2 of 13 checks failed |
| M57 | the lock password is ignored | S72 lock password (EURUSD) | caught: FAIL, 4 of 9 checks failed |
57 of 57 mutations caught, source restored after each.
What each scenario proves
| # | Scenario | Passes only if |
|---|---|---|
| S1 | risk sizing | 16 trades (stops of 5/20/50/150 pips × % and money risk × buy/sell) risk at most the target and less than one volume step under it, stop and 2R target placed exactly; on EURUSD, USDJPY, XAUUSD and GBPJPY. When free margin cannot carry the lot it is capped and says so. |
| S2 | break-even | every position that reached 1R has its stop at entry + 1 pip, and no position below 1R had its stop moved. |
| S3 | partial close | every position that reached 1R holds exactly 50 % of its volume, and none closed early. |
| S4 | trailing fixed | the stop never loosens, never moves before 1R, and never lags the best price by more than 10 pips + step. |
| S5 | daily loss lock | the lock fires on the first tick under the trigger (the tick before was above it), every position is closed, every trade tried while locked is closed, and the lock is gone after the daily reset. |
| S6 | cooldown after losses | 2 losses in a row start a 30-minute pause, trades during it are closed, trading works again after it. |
| S7 | max trades per day | 3 trades are allowed and all 3 stay open, although the guard's periodic check runs before their trade events arrive (as it can live) and sets the limit lock on the 3rd; the 4th from the panel is refused, one from outside is closed (on netting: the added volume is removed), and trading works again the next day. |
| S8 | stop widen/remove lock | a widened stop and a removed stop are restored, a tightened stop is kept, a second widening is restored. |
| S9 | over-risk: reduce | a 2-lot trade with a 20-pip stop ($400, four times the $100 limit) is cut so that the rest's loss at the stop plus what the cut itself realised stays within the limit. |
| S10 | over-risk: tighten | the same trade keeps its volume and gets a stop at the limit (or is reduced when the stop cannot be tightened). |
| S11 | auto SL/TP | a trade opened without stops gets a 20-pip stop and a 2R target. |
| S12 | no stop + max risk | a trade with no stop gets one at exactly the max-risk distance. |
| S13 | max drawdown lock | the lock fires on the first tick under the trigger, closes everything, and stays on after the daily reset. |
| S14 | daily profit lock | trading locks when the day's profit reaches the target, and a new trade is closed. |
| S15 | pending via lines | all four pending types are chosen correctly from the lines and each risks the target. |
| S16 | trailing ATR | same rules as S4 for an ATR-based stop. |
| S17 | trailing swing | same rules as S4 for a swing-low/high stop. |
| S18 | add + reversal | netting: an add that makes the position risk more than the limit is reduced to the limit; a reversal keeps the reversing order's stop, the manager measures R from it, and widening it is reverted, even when the guard's periodic check runs before the reversal's trade event (as it did live). Hedging: separate positions are judged one by one. |
| S19 | weekend close | a trade open before Friday 20:00 is left alone until then, is closed at 20:00, the weekend lock is set, and a trade opened afterwards is closed. |
| S20 | end-of-day close | a trade open before 16:00 is closed at 16:00, a trade opened afterwards is closed, and the next morning trading works again. |
| S21 | risk budget | with a 1.1 % daily limit (budget $99): the panel caps the first 1 % trade to 0.49 lot, refuses a second one, an outside 0.50-lot trade is closed (netting: the added volume is cut back) while the earlier trade stays untouched, and the worst case stays above the trigger (on hedging, less what closing the outside trade cost, which no guard can avoid once that trade exists; on netting the cut's own cost is counted in, so there the check is strict). |
| S22 | max open positions | with a limit of 2 (EURUSD + GBPUSD open), the panel refuses a third and an outside USDJPY trade is closed; then, with one slot free, two outside trades opened in the same moment: the earlier keeps the slot and the later is closed. |
| S23 | challenge target | trading locks and everything closes when equity reaches the initial balance + 0.3 %, and the lock survives the daily reset. |
| S24 | spread filter | with a 0.1-pip maximum, an order at a wider spread is refused with the spread named; with 50 pips it goes through. |
| S25 | hidden stops | every trade is hidden on the next tick (broker sees only the emergency stop 10 pips beyond, no target), the hidden levels equal the order's, the trade closes on the first tick that crosses a hidden level, and never between the levels. |
| S26 | hidden stops + trailing | the trailing rules of S4 hold on the hidden stop, and the server's emergency stop always sits 10 pips beyond it. |
| S27 | OCO straddle | the straddle places a buy stop and a sell stop at the lines; when one fills the other is deleted and the filled one is stopped at the other line; if both fill (one quote), the later fill is closed and the first kept. |
| S28 | common break-even | hedging: once price is 10 pips beyond the average entry of 3 buys, every stop sits at the average + 1 pip; before that, no stop moves. |
| S29 | trailing MA | same rules as S4 for a moving-average stop. |
| S30 | trailing Parabolic SAR | same rules as S4 for a Parabolic SAR stop. |
| S31 | split into 3 targets | hedging: one 1 % trade opens as 3 positions (50/30/20 %) with one stop, targets at 2R/3R/4R, adding up to no more than the planned lot and risk. |
| S32 | hotkeys | B without Shift does nothing, Shift+B buys, Shift+C closes all, an unknown key is ignored, and nothing trades with hotkeys off. |
| S33 | news filter (live) | inside a high-impact window for the symbol's currency, the panel refuses with the event named and an outside trade is closed (live terminal only). |
| S34 | pending order trailing | a buy stop and a sell limit 15 pips away keep the distance they had when TradeWarden first saw them as the price moves away, never move towards the price, keep their stop offset, and still fill. |
| S35 | hidden stops: hand edits | the visible stop dragged 5 pips tighter becomes the hidden stop and the visible one returns to the emergency level; dragged 15 pips looser (past the emergency stop) it is refused (widen lock) and the visible stop is put back; a target typed by hand becomes the hidden target and leaves the server. |
| S36 | prop-firm preset | for each of the 7 presets, the guard's daily limit, daily floor and max-loss floor equal the firm's published formula on day 1 and again on a day that starts from another balance (FTMO 1-Step: the floor is 10 % below the highest balance at a daily reset, so it rises after a winning day). |
| S37 | trailing fractal | same rules as S4 for a stop below the last lower fractal (above the last upper one for a sell). |
| S38 | async close-all | the guard's close-all closes 5 open positions in one pass with every request sent at once. |
| S39 | hidden stops: stealth off | a hidden trade (broker sees only the emergency stop, no target) gets its real stop and target back on the server when stealth is turned off, and is no longer hidden (mutation M7 makes it fail). |
| S40 | OCO pair without the comment | two stop orders with an ordinary comment (as a broker that rewrites comments leaves them), registered as a pair the way the Straddle button does it: when one fills the other is cancelled; when one is cancelled by hand the other stays; and (hedging) when both fill on one move, the later fill is closed (mutation M9 makes it fail). |
| S41 | close-all retry | at the 16:00 end-of-day close every close request is refused for 30 s (a closed market, simulated): both positions stay open while it lasts, and the guard closes them once the market takes orders again (mutation M8 makes it fail). |
| S42 | max total open risk | with a cap of 1.5 % ($150) and no loss rule: the first 1 % trade opens at 0.50 lot, the second is fitted into the $50 left (0.25 lot), a third is refused, and an outside trade over the cap is closed (netting: cut back) (mutation M10 makes it fail). |
| S43 | weekly loss lock | with a 1 % weekly limit: the lock fires once the week's trades have lost 1 % of the week-start balance (deposits do not count), closes everything, holds through the daily resets, is queued for Telegram and for the partner, and is gone when the new week starts (mutation M18 makes it fail). |
| S44 | monthly loss lock | with a 1 % monthly limit over the end of a month: the lock fires at the loss, holds through the daily resets, and ends with the month. |
| S45 | warnings + day summary | the warnings at half and at 80 % of the daily limit come once a day each and again the next day, and the day's summary is written at the reset (mutation M19 makes it fail). |
| S46 | challenge statistics | trading days, the best day, the profitable days' sum and the total equal the history counted independently, and the best-day share and today's room follow the formula (50 % rule), over four days including a profitable one. |
| S47 | Live Guard: pause after a loss | a trade opened within the pause after a losing trade is closed and counts a strike; a trade after the pause is allowed (5 minutes here; 10 minutes in the other-settings set) (mutation M12 makes it fail). |
| S48 | Live Guard: no bigger trade after a loss | after a loss, a trade that risks more than the losing trade did is cut back to that risk and counts a strike; once the window has passed it is not (60 and 30 minutes) (mutations M13 and M17 make it fail). |
| S49 | Live Guard: no adding to a loser | a buy next to a losing buy is closed (netting: the added volume is removed) and counts a strike; a sell next to it is not an add (hedging) (mutation M14 makes it fail). |
| S50 | Live Guard: strikes | strike 1 warns, strike 2 pauses trading for 15 minutes, a trade during the pause is strike 3 and stops trading until the next daily reset, and the next day starts clean (mutation M15 makes it fail). |
| S51 | looser settings start tomorrow | a looser daily limit set during the day keeps today's stricter value until the reset; a stricter one applies at once (mutation M16 makes it fail). |
| S52 | FTMO 1-Step preset | daily loss 3 % of the initial balance from the day-start balance; the max-loss floor is 10 % below the highest day-start balance and rises after a winning day; best-day rule 50 %. |
| S53 | reset hour, week/month start, money text | the automatic reset hour (server midnight, Prague with EU summer time, fixed UTC+3), week and month starts, the money and clock text and the best-day formula equal hand-worked values. |
| S54 | panel + Live Guard | after a loss the panel refuses a trade until the pause is over (counting the same milliseconds as the guard); a bigger risk is capped to the losing trade's with no strike; a buy next to a losing buy is refused and a sell is not (hedging). |
| S55 | Live Guard: stop moves, burst, other EAs, flips | hedging: the 3rd trade within an hour is a strike; another EA's (magic 777) stop moved away is put back with no strike; a stop moved away is strike 2 and pauses; a stop removed is strike 3 and ends the day. Netting: a losing buy flipped by a bigger sell is closed and counts a strike (mutations M20-M23 make it fail). |
| S56 | take a break | a 15-minute break deletes the pending orders, the panel refuses with the break named, an outside trade is closed and counts a strike, a shorter break cannot replace it, it ends on time and trading works again; a break for the rest of the day still holds an hour later and is gone after the daily reset; the global variable TW_LOCKED_ |
| S57 | protect today's profit | with start 0.2 % ($20) and give-back 50 %: the guard arms once the day is up $20, locks and closes everything on the first check below half of the day's best, closes a trade opened during the lock, and starts the next day clean with the day's best reset (mutations M26 and M30 make it fail). |
| S58 | trade only these symbols | with the list EURUSD,XAUUSD: a GBPUSD trade is closed at once with an alert; EURUSD and XAUUSD trades stay; any case and suffix match (eurusd, EURUSD.r, XAUUSDm); another EA's USDJPY trade is not judged; a longer list waits for the reset while a shorter one applies at once (mutation M27 makes it fail). |
| S59 | FundedNext funded: 3% open risk | FundedNext Stellar 2-Step: phase 1 has no open-risk cap; funded has 3 % of the initial balance ($300); the set-up screen shows the rule and its source; a 2 % trade opens, a second is fitted into the last 1 %, a third is refused, and an outside trade over the cap is closed (netting: cut back) (mutation M28 makes it fail). |
| S60 | open loss of one symbol | with a cap of 0.5 % ($50) less the 10 % buffer ($45): a 1-lot EURUSD trade with no stop is closed on the first check at or past -$45 (the check before was above it; the close's own result is read from the deal history) with an alert, and a GBPUSD trade with a small loss stays open (mutations M31 and M48 make it fail). |
| S61 | trading hours, days, direction | with Tuesday to Friday, 10:00-12:00, buys only: a Monday trade is closed and the panel refuses with the days named; Tuesday 09:30 is closed with the hours named; at 10:30 a sell is closed and a buy stays (hedging), and the panel refuses a sell; 12:30 is closed (mutations M32, M33 and M34 make it fail). |
| S62 | max lot, spacing, trades per hour | hedging, with max 0.30 lot, 5 minutes between trades and 3 an hour: a 0.50 trade is cut to 0.30; a trade 3 s later is closed and the panel says when the next one is allowed; trades 6 minutes apart stay, and the 4th within the hour is closed with the limit named (mutations M35, M36 and M37 make it fail). |
| S63 | fixed lots, ATR stop, pending expiry | a fixed 0.37 lot plans and opens exactly 0.37; the ATR stop equals ATR(14, M15) x 1.5 of the last closed bar read independently, and the plan's stop sits at that distance; a pending order from the lines carries a 30-minute expiry (to the second) and is gone 31 minutes later (mutations M38, M39 and M40 make it fail). |
| S64 | time stop | with a 30-minute time stop, a trade with no stop or target is closed 30 minutes after it opened, not earlier (mutation M41 makes it fail). |
| S65 | journal + weekly report | 3 closed trades give 3 CSV lines of 18 columns, with net = profit + swap + commission and R = net / the money at the opening stop; a 0.20 trade closed in two halves is one line with both halves' money (no line for the first half); netting: a 0.20 sell against the rest of a buy is two trades, the buy and a 0.10 sell from the reversal's price, time and stop; the week's report on Monday counts the same trades as the journal (4 hedging, 5 netting) with wins, losses, net, best and worst day (mutations M42, M43, M44 and M49 make it fail). |
| S66 | pre-trade checklist | with 3 items: the panel refuses with 3 and then with 1 item left and says so, sends the trade once all are ticked, and unticks them all after it (mutation M45 makes it fail). |
| S67 | monitor only | with monitor only, the symbol list EURUSD and a 0.5 % daily loss: a GBPUSD trade off the list stays open; equity below the trigger brings no lock and closes nothing, the lock signal for other EAs stays 0, the panel still trades, and each alert says what TradeWarden would have done (mutation M46 makes it fail). |
| S68 | discipline score | with buys only and the Live Guard on: the day starts at 100; a sell closed by the direction rule makes it 90; a re-entry a minute after a losing trade is closed and is a strike, and that trade costs 20, not 30 (70, 2 trades); the panel's line says today 70; the day's summary says Discipline 70/100 (2 trades against your rules); the next day starts at 100; Monday's report grades the week C (70) over its 1 trading day (mutations M50 and M51 make it fail). |
| S69 | stop-limit orders | a buy stop-limit above the price and a sell stop-limit below it, from the lines: each is a stop-limit with the trigger at the entry line, the limit 3 pips better and the stop at the stop line, and its lot loses at most the 0.5 % risk at the stop from the limit; when the price reaches a trigger, a limit order waits at its limit price (or fills) (mutation M52 makes it fail). |
| S70 | hidden pending orders | a hidden buy stop above and a hidden sell stop below the price: no order at the broker; the one the price reaches first is a market trade with its planned stop and target, Delete pending deletes the other, a hidden order with a 30-minute expiry is gone 31 minutes later, and a break deletes a hidden order (mutations M53 and M54 make it fail). |
| S71 | grid orders | a buy limit from the lines as a grid of 3, 3 pips apart: three buy limits on their steps with one stop and one target, a third of the risk each and at most the whole risk together; when the first filled trade is closed, the other orders are deleted (mutations M55 and M56 make it fail). |
| S72 | lock password | the password is kept only as a 64-character SHA-256 fingerprint; with a break running, a wrong password resets nothing and is reported; the right one ends the break and is cleared; with no password, a reset needs none (mutation M57 makes it fail). |
Every run
Hedging · 1-minute OHLC · 2026-09-14 → 09-19
| # | Scenario | Symbol | Result | Checks | Events | Notes |
|---|---|---|---|---|---|---|
| S1 | risk sizing | EURUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.50 risk=100.00/100.10 / B SL50 vol=0.20 risk=100.00/100.11 / B SL150 vol=0.06 risk=90.00/100.10 / B SL5 vol=5.00 risk=250.00/250.00 / B SL20 vol=1.25 risk=250.00/250.00 / B SL50 vol… |
| S1 | risk sizing | USDJPY | PASS | 80 | 16 | B SL5 vol=3.06 risk=99.73/100.00 / B SL20 vol=0.76 risk=99.15/99.78 / B SL50 vol=0.30 risk=98.05/99.65 / B SL150 vol=0.10 risk=98.68/99.62 / capped by margin / B SL5 vol=4.83 risk=157.39/250.00 / B SL20 vol=1.91 risk=249.22/250.00… |
| S1 | risk sizing | XAUUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.50 risk=100.00/100.74 / B SL50 vol=0.20 risk=100.00/101.19 / B SL150 vol=0.06 risk=90.00/100.96 / capped by margin / B SL5 vol=2.20 risk=110.00/250.00 / B SL20 vol=1.25 risk=250.00/… |
| S1 | risk sizing | GBPJPY | PASS | 80 | 16 | B SL5 vol=3.06 risk=99.70/100.00 / B SL20 vol=0.75 risk=97.75/99.00 / B SL50 vol=0.30 risk=97.73/99.43 / B SL150 vol=0.10 risk=97.74/99.40 / capped by margin / B SL5 vol=3.13 risk=101.96/250.00 / B SL20 vol=1.91 risk=248.89/250.00… |
| S2 | break-even | EURUSD | PASS | 45,654 | 13 | positions 26, reached 1.0R 13 |
| S3 | partial close | EURUSD | PASS | 33,410 | 7 | positions 14, reached 1.0R 7 |
| S4 | trailing fixed | EURUSD | PASS | 98,466 | 105 | positions 30, reached 1.0R 15 |
| S5 | daily loss lock | EURUSD | PASS | 4 | 7 | locked at equity 9910.00 (previous tick 10045.00, trigger 9910.00, floor 9900.00) |
| S6 | cooldown after losses | EURUSD | PASS | 2 | 5 | cooldown until 2026.09.14 03:32 |
| S7 | max trades per day | EURUSD | PASS | 7 | 1 | 3 of the 3 trades within the limit still open |
| S8 | SL widen/remove lock | EURUSD | PASS | 4 | 4 | |
| S9 | over-risk reduce | EURUSD | PASS | 2 | 1 | vol 2.00 -> 0.48, risk 96.00, limit 100.00 |
| S10 | over-risk tighten SL | EURUSD | PASS | 2 | 1 | vol 2.00 -> 2.00, risk 100.00, limit 100.00 |
| S11 | auto SL/TP | EURUSD | PASS | 2 | 1 | |
| S12 | no-SL max-risk stop | EURUSD | PASS | 2 | 1 | SL 1.15861 risk 100.00 limit 100.00 |
| S13 | max drawdown lock | EURUSD | PASS | 4 | 1 | DD locked at equity 9810.00 (trigger 9820.00 floor 9800.00) |
| S14 | profit lock | EURUSD | PASS | 3 | 1 | profit lock at day P/L 30.00 (target 30.00) |
| S15 | pending via lines | EURUSD | PASS | 12 | 4 | |
| S16 | trailing ATR | EURUSD | PASS | 93,795 | 100 | positions 28, reached 1.0R 14 |
| S17 | trailing swing | EURUSD | PASS | 87,490 | 53 | positions 18, reached 1.0R 8 |
| S18 | add + reversal | EURUSD | PASS | 2 | 2 | |
| S19 | weekend close | EURUSD | PASS | 4 | 2 | weekend close seen at 2026.09.18 20:00 |
| S20 | end-of-day close | EURUSD | PASS | 5 | 2 | |
| S21 | risk budget | EURUSD | PASS | 8 | 2 | budget 99.00 at start, trade 1 0.49 lot, worst case 9902.00 vs trigger 9901.00; trade 2: risk budget left $1.00: not enough for the minimum lot / worst case 9901.00 vs trigger 9901.00, closing cost of the guard's own close -1.00 |
| S22 | max open positions | EURUSD | PASS | 10 | 3 | two trades in one moment for one slot: earlier GBPUSD kept, later USDJPY closed |
| S23 | challenge target | EURUSD | PASS | 4 | 1 | target lock at equity 10030.00 (target 10030.00) |
| S24 | spread filter | EURUSD | PASS | 3 | 1 | refused at 0.2 pips: spread 0.2 pips is above your max 0.1 |
| S25 | hidden stops | EURUSD | PASS | 170,438 | 14 | |
| S26 | hidden stops + trailing | EURUSD | PASS | 147,708 | 108 | positions 30, reached 1.0R 15 |
| S27 | OCO straddle | EURUSD | PASS | 22 | 6 | sell stop filled, the other side deleted / sell stop filled, the other side deleted / sell stop filled, the other side deleted / sell stop filled, the other side deleted / sell stop filled, the other side deleted / double fill: th… |
| S28 | common break-even | EURUSD | PASS | 81,398 | 3 | 3 buys, average 1.15138, stops -> 1.15148 / 3 buys, average 1.14774, stops -> 1.14784 / 3 buys, average 1.14844, stops -> 1.14854 |
| S29 | trailing MA | EURUSD | PASS | 82,840 | 105 | positions 22, reached 1.0R 10 |
| S30 | trailing Parabolic SAR | EURUSD | PASS | 86,868 | 89 | positions 26, reached 1.0R 12 |
| S31 | split into 3 targets | EURUSD | PASS | 8 | 1 | 3 parts, 0.50 of 0.50 lot, risk 100.00 / 100.00: BUY 0.50 lot in 3 parts (0.25@2.0R, 0.15@3.0R, 0.10@4.0R), risk 100.00 USD |
| S32 | hotkeys | EURUSD | PASS | 5 | 2 | |
| S34 | pending order trailing | EURUSD | PASS | 19,484 | 72 | distances kept: buy stop 15.0 pips, sell limit 15.0 pips (placed at 15.0 / 15.0) / both orders filled |
| S35 | hidden stops: hand edits | EURUSD | PASS | 8 | 3 | tighter edit -> hidden stop; looser edit refused; hand target -> hidden target |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9995.30, daily limit 500.00, daily floor 9495.30, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9995.30, daily limit 500.00, daily floor 9495.30, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 300.00, daily floor 9700.00, max-loss floor 9400.00 / day 2: base 9995.30, daily limit 300.00, daily floor 9695.30, max-loss floor 9400.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 400.00, daily floor 9600.00, max-loss floor 9200.00 / day 2: base 9995.30, daily limit 400.00, daily floor 9595.30, max-loss floor 9200.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9995.30, daily limit 499.76, daily floor 9495.53, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9995.30, daily limit 499.76, daily floor 9495.53, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 300.00, daily floor 9700.00, max-loss floor 9000.00 / day 2: base 9995.30, daily limit 300.00, daily floor 9695.30, max-loss floor 9000.00 |
| S37 | trailing fractal | EURUSD | PASS | 85,655 | 17 | positions 18, reached 1.0R 8 |
| S38 | async close-all | EURUSD | PASS | 2 | 1 | closed 5 positions, async on |
| S39 | hidden stops: stealth off | EURUSD | PASS | 6 | 1 | hidden stop 1.15761 / target 1.16361 -> on the server: stop 1.15761 / target 1.16361 |
| S40 | OCO pair without the comment | EURUSD | PASS | 12 | 5 | sell stop filled, the other order cancelled / sell stop filled, the other order cancelled / sell stop filled, the other order cancelled / a pair with one order cancelled by hand: the other stayed / double fill of a pair without th… |
| S41 | close-all retry | EURUSD | PASS | 4 | 1 | close-all refused at 16:00; both closed 19 s after the market took orders again |
| S42 | max total open risk | EURUSD | PASS | 7 | 1 | cap 150.00: trade 1 "BUY 0.50 lot opened, risk 100.00 USD"; trade 2 "BUY 0.25 lot opened, risk 50.00 USD (lot capped by the risk budget)"; left 0.00; trade 3: risk budget used up: if every open stop were hit, the loss limit would … |
| S43 | weekly loss lock | EURUSD | PASS | 8 | 3 | weekly lock at a loss of 115.00 (limit 100.00, week start balance 10000.00) / new week: lock released, week start balance 9883.90 |
| S44 | monthly loss lock | EURUSD | PASS | 6 | 3 | monthly lock on day 28 at a loss of 160.00 (limit 100.00) |
| S45 | 50/80% warnings + day summary | EURUSD | PASS | 4 | 2 | warnings: half 2, 80% 2 over two locked days; summaries 1 |
| S46 | challenge statistics | EURUSD | PASS | 7 | 1 | days 4, best 19.00, profitable sum 51.00, total -12.00, share 37.3%, room today 51.00 |
| S47 | Live Guard: pause after a loss | EURUSD | PASS | 7 | 2 | loss at 01:00:40; the trade 60 s later closed (strike 1); the trade 5 min 30 s later kept |
| S48 | Live Guard: no bigger trade after a loss | EURUSD | PASS | 5 | 2 | losing trade risked 40.00; a 0.60 lot trade was cut to 0.20 lot |
| S49 | Live Guard: no adding to a loser | EURUSD | PASS | 5 | 2 | |
| S50 | Live Guard: strikes, pause, day lock | EURUSD | PASS | 14 | 2 | strike 1 warned, strike 2 paused 15 min, a trade in the pause was strike 3 and locked the day; the next day was clean |
| S51 | looser settings start tomorrow | EURUSD | PASS | 8 | 2 | today: 4% kept at 2%, 1% applied, then 4% and Live Guard off kept at 1% and on; looser: daily loss limit, Live Guard |
| S52 | FTMO 1-Step preset | EURUSD | PASS | 7 | 1 | floor 9000.00 on day 1, 9053.00 on day 2 (day-start balance 10053.00) |
| S53 | reset hour, week/month start, money text | EURUSD | PASS | 23 | 1 | reset hours, EU summer time, week / month starts, money and clock text, best-day formula |
| S54 | panel + Live Guard | EURUSD | PASS | 10 | 1 | pause refused a panel trade; 2% was capped to the 1% loss with no strike; a buy next to a losing buy was refused |
| S55 | Live Guard: stop moves, burst, other EAs, flips | EURUSD | PASS | 15 | 3 | 3rd trade in an hour = strike 1 (kept open); another EA's widened stop restored, no strike; stop moved away = strike 2, 15-min pause; stop removed = strike 3, day locked; open trades kept |
| S56 | take a break | EURUSD | PASS | 78 | 2 | 15 min break: pending deleted, panel refused ("On a break until 01:15: no new trades (you chose it)"), outside trade closed + strike, ended 01:15 |
| S57 | protect today's profit | EURUSD | PASS | 10 | 2 | day best 40.00 (start 20.00), locked at 19.00 (keep line 20.00), everything closed |
| S58 | trade only these symbols | EURUSD | PASS | 11 | 1 | GBPUSD closed, EURUSD and XAUUSD kept, another EA's USDJPY kept; a longer list waited, a shorter one applied: EURUSD |
| S59 | FundedNext funded: 3% open risk | EURUSD | PASS | 10 | 1 | cap 300.00 (3% of 10000.00): "BUY 1.00 lot opened, risk 200.00 USD"; "BUY 0.50 lot opened, risk 100.00 USD (lot capped by the risk budget)"; left 0.00 / after an outside 0.30 lot: 0.00 of the cap left |
| S60 | open loss per symbol | EURUSD | PASS | 5 | 1 | cap 0.5% = $50, trigger -45.00: EURUSD closed at -46.00 on the first check past it (the check before: -37.00); GBPUSD kept |
| S61 | trading hours, days, direction | EURUSD | PASS | 8 | 1 | Monday closed, Tuesday 09:30 closed, 10:30 sell closed / buy kept, panel refused the sell, 12:30 closed |
| S62 | max lot, spacing, trades per hour | EURUSD | PASS | 7 | 1 | 0.50 cut to 0.30; 3 s later closed (5 min apart); 6-min trades 2 and 3 kept, the 4th in the hour closed |
| S63 | fixed lots, ATR stop, pending expiry | EURUSD | PASS | 7 | 1 | fixed 0.37 lot opened 0.37; ATR stop 4.6 pips = ATR x 1.5; pending expiry 30 min |
| S64 | time stop | EURUSD | PASS | 2 | 1 | closed 1800 s after it opened (time stop 30 min) |
| S65 | journal + weekly report | EURUSD | PASS | 23 | 3 | 3 trades closed, 3 journal lines: 2026.09.17 02:00:00,EURUSD,buy,0.10,2026.09.17 01:40:00,1.14683,1.14667,1.14483,-1.60,0.00,0.00,-1.60,20.00,-0.08,20,0,an EA,ext / half closed, then closed: 2026.09.17 02:11:20,EURUSD,buy,0.20,202… |
| S66 | pre-trade checklist | EURUSD | PASS | 6 | 1 | refused with 3 and 1 items open, sent when all were ticked, unticked again after the trade |
| S67 | monitor only | EURUSD | PASS | 7 | 1 | equity 9944.93 under the trigger 9955.00: no lock, 3 positions open, panel traded |
| S68 | discipline score | EURUSD | PASS | 10 | 1 | sell against buys only closed: 90; re-entry after a loss closed + strike: 70 (2 trades); panel: today 70 · week C (70) / 00:00:00 Week 2026.09.14 to 2026.09.20: 3 trades closed, 0 won, 3 lost (0% won), net -2.00 USD; best day 202… |
| S69 | stop-limit orders | EURUSD | PASS | 15 | 1 | buy stop-limit 0.29 lot: trigger 1.15991, limit 1.15961, stop 1.15791, 49.30 at the stop / sell stop-limit 0.29 lot: trigger 1.15929, limit 1.15959, stop 1.16129, 49.30 at the stop / the sell trigger was reached after 1240 s: a li… |
| S70 | hidden pending orders | EURUSD | PASS | 12 | 1 | the hidden sell stop was reached after 1240 s: a market sell with its stop and target / Delete pending deleted the other hidden order; a 30-minute hidden sell limit expired; a break deleted a hidden buy stop |
| S71 | grid orders | EURUSD | PASS | 13 | 1 | 3 buy limits 3 pips apart from 1.15939, one stop and target, 45.60 at the stop in all / its first trade closed: the rest of the grid was deleted |
| S72 | lock password | EURUSD | PASS | 9 | 1 | a 64-character hash kept; a wrong password refused; the right one opened the break once and was cleared |
Netting · 1-minute OHLC · 2026-09-14 → 09-19
| # | Scenario | Symbol | Result | Checks | Events | Notes |
|---|---|---|---|---|---|---|
| S1 | risk sizing | EURUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.50 risk=100.00/100.10 / B SL50 vol=0.20 risk=100.00/100.11 / B SL150 vol=0.06 risk=90.00/100.10 / B SL5 vol=5.00 risk=250.00/250.00 / B SL20 vol=1.25 risk=250.00/250.00 / B SL50 vol… |
| S1 | risk sizing | USDJPY | PASS | 80 | 16 | B SL5 vol=3.06 risk=99.73/100.00 / B SL20 vol=0.76 risk=99.15/99.78 / B SL50 vol=0.30 risk=98.05/99.65 / B SL150 vol=0.10 risk=98.68/99.62 / capped by margin / B SL5 vol=4.83 risk=157.39/250.00 / B SL20 vol=1.91 risk=249.22/250.00… |
| S1 | risk sizing | XAUUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.50 risk=100.00/100.74 / B SL50 vol=0.20 risk=100.00/101.19 / B SL150 vol=0.06 risk=90.00/100.96 / capped by margin / B SL5 vol=2.20 risk=110.00/250.00 / B SL20 vol=1.25 risk=250.00/… |
| S1 | risk sizing | GBPJPY | PASS | 80 | 16 | B SL5 vol=3.06 risk=99.70/100.00 / B SL20 vol=0.75 risk=97.75/99.00 / B SL50 vol=0.30 risk=97.73/99.43 / B SL150 vol=0.10 risk=97.74/99.40 / capped by margin / B SL5 vol=3.13 risk=101.96/250.00 / B SL20 vol=1.91 risk=248.89/250.00… |
| S2 | break-even | EURUSD | PASS | 28,361 | 3 | positions 17, reached 1.0R 3 |
| S3 | partial close | EURUSD | PASS | 28,359 | 4 | positions 16, reached 1.0R 4 |
| S4 | trailing fixed | EURUSD | PASS | 56,842 | 55 | positions 17, reached 1.0R 10 |
| S5 | daily loss lock | EURUSD | PASS | 4 | 7 | locked at equity 9910.00 (previous tick 10045.00, trigger 9910.00, floor 9900.00) |
| S6 | cooldown after losses | EURUSD | PASS | 2 | 5 | cooldown until 2026.09.14 03:32 |
| S7 | max trades per day | EURUSD | PASS | 7 | 1 | the 3 trades within the limit: 1.50 lot opened, 1.50 lot still open |
| S8 | SL widen/remove lock | EURUSD | PASS | 4 | 4 | |
| S9 | over-risk reduce | EURUSD | PASS | 2 | 1 | vol 2.00 -> 0.48, risk 96.00, limit 100.00 |
| S10 | over-risk tighten SL | EURUSD | PASS | 2 | 1 | vol 2.00 -> 2.00, risk 100.00, limit 100.00 |
| S11 | auto SL/TP | EURUSD | PASS | 2 | 1 | |
| S12 | no-SL max-risk stop | EURUSD | PASS | 2 | 1 | SL 1.15861 risk 100.00 limit 100.00 |
| S13 | max drawdown lock | EURUSD | PASS | 4 | 1 | DD locked at equity 9810.00 (trigger 9820.00 floor 9800.00) |
| S14 | profit lock | EURUSD | PASS | 3 | 1 | profit lock at day P/L 30.00 (target 30.00) |
| S15 | pending via lines | EURUSD | PASS | 12 | 4 | |
| S16 | trailing ATR | EURUSD | PASS | 52,939 | 41 | positions 23, reached 1.0R 11 |
| S17 | trailing swing | EURUSD | PASS | 49,779 | 42 | positions 13, reached 1.0R 8 |
| S18 | add + reversal | EURUSD | PASS | 8 | 3 | add: 0.60 lot risking 122.10 -> 0.49 lot risking 99.72 (limit 100.00) / reversal: sell 0.50 lot, SL 1.16154 kept, 1R stop 1.16154, risk 100.00 |
| S19 | weekend close | EURUSD | PASS | 4 | 2 | weekend close seen at 2026.09.18 20:00 |
| S20 | end-of-day close | EURUSD | PASS | 5 | 2 | |
| S21 | risk budget | EURUSD | PASS | 7 | 2 | budget 99.00 at start, trade 1 0.49 lot, worst case 9902.00 vs trigger 9901.00; trade 2: risk budget left $1.00: not enough for the minimum lot / worst case 9901.00 vs trigger 9901.00, closing cost of the guard's own close -1.00 /… |
| S22 | max open positions | EURUSD | PASS | 9 | 3 | two trades in one moment for one slot: earlier GBPUSD kept, later USDJPY closed |
| S23 | challenge target | EURUSD | PASS | 4 | 1 | target lock at equity 10030.00 (target 10030.00) |
| S24 | spread filter | EURUSD | PASS | 3 | 1 | refused at 0.2 pips: spread 0.2 pips is above your max 0.1 |
| S25 | hidden stops | EURUSD | PASS | 170,438 | 14 | |
| S26 | hidden stops + trailing | EURUSD | PASS | 85,263 | 56 | positions 17, reached 1.0R 10 |
| S27 | OCO straddle | EURUSD | PASS | 20 | 5 | sell stop filled, the other side deleted / sell stop filled, the other side deleted / sell stop filled, the other side deleted / sell stop filled, the other side deleted / sell stop filled, the other side deleted |
| S29 | trailing MA | EURUSD | PASS | 52,290 | 56 | positions 15, reached 1.0R 3 |
| S30 | trailing Parabolic SAR | EURUSD | PASS | 52,586 | 45 | positions 16, reached 1.0R 6 |
| S32 | hotkeys | EURUSD | PASS | 5 | 2 | |
| S34 | pending order trailing | EURUSD | PASS | 19,484 | 72 | distances kept: buy stop 15.0 pips, sell limit 15.0 pips (placed at 15.0 / 15.0) / both orders filled |
| S35 | hidden stops: hand edits | EURUSD | PASS | 8 | 3 | tighter edit -> hidden stop; looser edit refused; hand target -> hidden target |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9995.30, daily limit 500.00, daily floor 9495.30, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9995.30, daily limit 500.00, daily floor 9495.30, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 300.00, daily floor 9700.00, max-loss floor 9400.00 / day 2: base 9995.30, daily limit 300.00, daily floor 9695.30, max-loss floor 9400.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 400.00, daily floor 9600.00, max-loss floor 9200.00 / day 2: base 9995.30, daily limit 400.00, daily floor 9595.30, max-loss floor 9200.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9995.30, daily limit 499.76, daily floor 9495.53, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9995.30, daily limit 499.76, daily floor 9495.53, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 300.00, daily floor 9700.00, max-loss floor 9000.00 / day 2: base 9995.30, daily limit 300.00, daily floor 9695.30, max-loss floor 9000.00 |
| S37 | trailing fractal | EURUSD | PASS | 48,409 | 11 | positions 15, reached 1.0R 6 |
| S38 | async close-all | EURUSD | PASS | 2 | 1 | closed 5 positions, async on |
| S39 | hidden stops: stealth off | EURUSD | PASS | 6 | 1 | hidden stop 1.15761 / target 1.16361 -> on the server: stop 1.15761 / target 1.16361 |
| S40 | OCO pair without the comment | EURUSD | PASS | 10 | 4 | sell stop filled, the other order cancelled / sell stop filled, the other order cancelled / sell stop filled, the other order cancelled / a pair with one order cancelled by hand: the other stayed |
| S41 | close-all retry | EURUSD | PASS | 4 | 1 | close-all refused at 16:00; both closed 19 s after the market took orders again |
| S42 | max total open risk | EURUSD | PASS | 6 | 1 | cap 150.00: trade 1 "BUY 0.50 lot opened, risk 100.00 USD"; trade 2 "BUY 0.25 lot opened, risk 50.00 USD (lot capped by the risk budget)"; left 0.00; trade 3: risk budget used up: if every open stop were hit, the loss limit would … |
| S43 | weekly loss lock | EURUSD | PASS | 8 | 3 | weekly lock at a loss of 115.00 (limit 100.00, week start balance 10000.00) / new week: lock released, week start balance 9883.90 |
| S44 | monthly loss lock | EURUSD | PASS | 6 | 3 | monthly lock on day 28 at a loss of 160.00 (limit 100.00) |
| S45 | 50/80% warnings + day summary | EURUSD | PASS | 4 | 2 | warnings: half 2, 80% 2 over two locked days; summaries 1 |
| S46 | challenge statistics | EURUSD | PASS | 7 | 1 | days 4, best 19.00, profitable sum 51.00, total -12.00, share 37.3%, room today 51.00 |
| S47 | Live Guard: pause after a loss | EURUSD | PASS | 7 | 2 | loss at 01:00:40; the trade 60 s later closed (strike 1); the trade 5 min 30 s later kept |
| S48 | Live Guard: no bigger trade after a loss | EURUSD | PASS | 5 | 2 | losing trade risked 40.00; a 0.60 lot trade was cut to 0.20 lot |
| S49 | Live Guard: no adding to a loser | EURUSD | PASS | 2 | 1 | |
| S50 | Live Guard: strikes, pause, day lock | EURUSD | PASS | 14 | 2 | strike 1 warned, strike 2 paused 15 min, a trade in the pause was strike 3 and locked the day; the next day was clean |
| S51 | looser settings start tomorrow | EURUSD | PASS | 8 | 2 | today: 4% kept at 2%, 1% applied, then 4% and Live Guard off kept at 1% and on; looser: daily loss limit, Live Guard |
| S52 | FTMO 1-Step preset | EURUSD | PASS | 7 | 1 | floor 9000.00 on day 1, 9053.00 on day 2 (day-start balance 10053.00) |
| S53 | reset hour, week/month start, money text | EURUSD | PASS | 23 | 1 | reset hours, EU summer time, week / month starts, money and clock text, best-day formula |
| S55 | Live Guard: stop moves, burst, other EAs, flips | EURUSD | PASS | 3 | 1 | a losing buy reversed at once into a sell: the new sell was closed and counted a strike |
| S56 | take a break | EURUSD | PASS | 78 | 2 | 15 min break: pending deleted, panel refused ("On a break until 01:15: no new trades (you chose it)"), outside trade closed + strike, ended 01:15 |
| S57 | protect today's profit | EURUSD | PASS | 10 | 2 | day best 40.00 (start 20.00), locked at 19.00 (keep line 20.00), everything closed |
| S58 | trade only these symbols | EURUSD | PASS | 11 | 1 | GBPUSD closed, EURUSD and XAUUSD kept, another EA's USDJPY kept; a longer list waited, a shorter one applied: EURUSD |
| S59 | FundedNext funded: 3% open risk | EURUSD | PASS | 9 | 1 | cap 300.00 (3% of 10000.00): "BUY 1.00 lot opened, risk 200.00 USD"; "BUY 0.50 lot opened, risk 100.00 USD (lot capped by the risk budget)"; left 0.00 / after an outside 0.30 lot: 60.00 of the cap left |
| S60 | open loss per symbol | EURUSD | PASS | 5 | 1 | cap 0.5% = $50, trigger -45.00: EURUSD closed at -46.00 on the first check past it (the check before: -37.00); GBPUSD kept |
| S61 | trading hours, days, direction | EURUSD | PASS | 6 | 1 | Monday closed, Tuesday 09:30 closed, 10:30 sell closed / buy kept, panel refused the sell, 12:30 closed |
| S63 | fixed lots, ATR stop, pending expiry | EURUSD | PASS | 7 | 1 | fixed 0.37 lot opened 0.37; ATR stop 4.6 pips = ATR x 1.5; pending expiry 30 min |
| S64 | time stop | EURUSD | PASS | 2 | 1 | closed 1800 s after it opened (time stop 30 min) |
| S65 | journal + weekly report | EURUSD | PASS | 27 | 3 | 3 trades closed, 3 journal lines: 2026.09.17 02:00:00,EURUSD,buy,0.10,2026.09.17 01:40:00,1.14683,1.14667,1.14483,-1.60,0.00,0.00,-1.60,20.00,-0.08,20,0,an EA,ext / half closed, then reversed: 2026.09.17 02:11:20,EURUSD,buy,0.20,2… |
| S66 | pre-trade checklist | EURUSD | PASS | 6 | 1 | refused with 3 and 1 items open, sent when all were ticked, unticked again after the trade |
| S67 | monitor only | EURUSD | PASS | 7 | 1 | equity 9944.93 under the trigger 9955.00: no lock, 2 positions open, panel traded |
| S68 | discipline score | EURUSD | PASS | 10 | 1 | sell against buys only closed: 90; re-entry after a loss closed + strike: 70 (2 trades); panel: today 70 · week C (70) / 00:00:00 Week 2026.09.14 to 2026.09.20: 3 trades closed, 0 won, 3 lost (0% won), net -2.00 USD; best day 202… |
| S69 | stop-limit orders | EURUSD | PASS | 15 | 1 | buy stop-limit 0.29 lot: trigger 1.15991, limit 1.15961, stop 1.15791, 49.30 at the stop / sell stop-limit 0.29 lot: trigger 1.15929, limit 1.15959, stop 1.16129, 49.30 at the stop / the sell trigger was reached after 1240 s: a li… |
| S70 | hidden pending orders | EURUSD | PASS | 12 | 1 | the hidden sell stop was reached after 1240 s: a market sell with its stop and target / Delete pending deleted the other hidden order; a 30-minute hidden sell limit expired; a break deleted a hidden buy stop |
| S71 | grid orders | EURUSD | PASS | 13 | 1 | 3 buy limits 3 pips apart from 1.15939, one stop and target, 45.60 at the stop in all / its first trade closed: the rest of the grid was deleted |
| S72 | lock password | EURUSD | PASS | 9 | 1 | a 64-character hash kept; a wrong password refused; the right one opened the break once and was cleared |
Hedging · real ticks · 2026-09-15 → 09-17
| # | Scenario | Symbol | Result | Checks | Events | Notes |
|---|---|---|---|---|---|---|
| S2 | break-even | EURUSD | PASS | 650,995 | 6 | positions 12, reached 1.0R 6 |
| S3 | partial close | EURUSD | PASS | 481,886 | 3 | positions 6, reached 1.0R 3 |
| S4 | trailing fixed | EURUSD | PASS | 1,595,346 | 66 | positions 14, reached 1.0R 6 |
| S5 | daily loss lock | EURUSD | PASS | 4 | 7 | locked at equity 9895.00 (previous tick 9935.00, trigger 9910.00, floor 9900.00) |
| S7 | max trades per day | EURUSD | PASS | 7 | 1 | 3 of the 3 trades within the limit still open |
| S8 | SL widen/remove lock | EURUSD | PASS | 4 | 4 | |
| S13 | max drawdown lock | EURUSD | PASS | 4 | 1 | DD locked at equity 9820.00 (trigger 9820.00 floor 9800.00) |
| S14 | profit lock | EURUSD | PASS | 3 | 1 | profit lock at day P/L 30.00 (target 30.00) |
| S16 | trailing ATR | EURUSD | PASS | 1,485,366 | 58 | positions 10, reached 1.0R 5 |
| S17 | trailing swing | EURUSD | PASS | 1,384,742 | 9 | positions 6, reached 1.0R 3 |
| S18 | add + reversal | EURUSD | PASS | 2 | 2 | |
| S21 | risk budget | EURUSD | PASS | 8 | 2 | budget 99.00 at start, trade 1 0.49 lot, worst case 9902.00 vs trigger 9901.00; trade 2: risk budget left $1.00: not enough for the minimum lot / worst case 9901.00 vs trigger 9901.00, closing cost of the guard's own close -1.00 |
| S22 | max open positions | EURUSD | PASS | 10 | 3 | two trades in one moment for one slot: earlier GBPUSD kept, later USDJPY closed |
| S25 | hidden stops | EURUSD | PASS | 2,654,726 | 8 | |
| S26 | hidden stops + trailing | EURUSD | PASS | 2,393,022 | 70 | positions 14, reached 1.0R 6 |
| S27 | OCO straddle | EURUSD | PASS | 22 | 6 | sell stop filled, the other side deleted / sell stop filled, the other side deleted / buy stop filled, the other side deleted / buy stop filled, the other side deleted / sell stop filled, the other side deleted / double fill: the … |
| S28 | common break-even | EURUSD | PASS | 1,223,515 | 1 | 3 buys, average 1.14639, stops -> 1.14649 |
| S29 | trailing MA | EURUSD | PASS | 1,307,558 | 19 | positions 8, reached 1.0R 4 |
| S30 | trailing Parabolic SAR | EURUSD | PASS | 1,300,137 | 21 | positions 10, reached 1.0R 5 |
| S34 | pending order trailing | EURUSD | PASS | 591,137 | 45 | distances kept: buy stop 15.0 pips, sell limit 15.7 pips (placed at 15.0 / 15.0) / both orders filled |
| S35 | hidden stops: hand edits | EURUSD | PASS | 8 | 3 | tighter edit -> hidden stop; looser edit refused; hand target -> hidden target |
| S37 | trailing fractal | EURUSD | PASS | 1,384,742 | 4 | positions 6, reached 1.0R 3 |
| S38 | async close-all | EURUSD | PASS | 2 | 1 | closed 5 positions, async on |
| S39 | hidden stops: stealth off | EURUSD | PASS | 6 | 1 | hidden stop 1.15308 / target 1.15908 -> on the server: stop 1.15308 / target 1.15908 |
| S40 | OCO pair without the comment | EURUSD | PASS | 12 | 5 | sell stop filled, the other order cancelled / sell stop filled, the other order cancelled / buy stop filled, the other order cancelled / a pair with one order cancelled by hand: the other stayed / double fill of a pair without the… |
| S41 | close-all retry | EURUSD | PASS | 4 | 1 | close-all refused at 16:00; both closed 1 s after the market took orders again |
| S42 | max total open risk | EURUSD | PASS | 7 | 1 | cap 150.00: trade 1 "BUY 0.50 lot opened, risk 100.00 USD"; trade 2 "BUY 0.25 lot opened, risk 50.00 USD (lot capped by the risk budget)"; left 0.00; trade 3: risk budget used up: if every open stop were hit, the loss limit would … |
| S45 | 50/80% warnings + day summary | EURUSD | PASS | 4 | 2 | warnings: half 2, 80% 2 over two locked days; summaries 1 |
| S47 | Live Guard: pause after a loss | EURUSD | PASS | 7 | 2 | loss at 01:00:20; the trade 60 s later closed (strike 1); the trade 5 min 30 s later kept |
| S48 | Live Guard: no bigger trade after a loss | EURUSD | PASS | 5 | 2 | losing trade risked 40.00; a 0.60 lot trade was cut to 0.20 lot |
| S49 | Live Guard: no adding to a loser | EURUSD | PASS | 5 | 2 | |
| S50 | Live Guard: strikes, pause, day lock | EURUSD | PASS | 14 | 2 | strike 1 warned, strike 2 paused 15 min, a trade in the pause was strike 3 and locked the day; the next day was clean |
| S54 | panel + Live Guard | EURUSD | PASS | 10 | 1 | pause refused a panel trade; 2% was capped to the 1% loss with no strike; a buy next to a losing buy was refused |
| S55 | Live Guard: stop moves, burst, other EAs, flips | EURUSD | PASS | 15 | 3 | 3rd trade in an hour = strike 1 (kept open); another EA's widened stop restored, no strike; stop moved away = strike 2, 15-min pause; stop removed = strike 3, day locked; open trades kept |
| S56 | take a break | EURUSD | PASS | 900 | 2 | 15 min break: pending deleted, panel refused ("On a break until 01:15: no new trades (you chose it)"), outside trade closed + strike, ended 01:15 |
| S57 | protect today's profit | EURUSD | PASS | 10 | 2 | day best 28.00 (start 20.00), locked at 14.00 (keep line 14.00), everything closed |
| S58 | trade only these symbols | EURUSD | PASS | 11 | 1 | GBPUSD closed, EURUSD and XAUUSD kept, another EA's USDJPY kept; a longer list waited, a shorter one applied: EURUSD |
| S59 | FundedNext funded: 3% open risk | EURUSD | PASS | 10 | 1 | cap 300.00 (3% of 10000.00): "BUY 1.00 lot opened, risk 200.00 USD"; "BUY 0.50 lot opened, risk 100.00 USD (lot capped by the risk budget)"; left 0.00 / after an outside 0.30 lot: 0.00 of the cap left |
| S60 | open loss per symbol | EURUSD | PASS | 5 | 1 | cap 0.5% = $50, trigger -45.00: EURUSD closed at -45.00 on the first check past it (the check before: -44.00); GBPUSD kept |
| S62 | max lot, spacing, trades per hour | EURUSD | PASS | 7 | 1 | 0.50 cut to 0.30; 3 s later closed (5 min apart); 6-min trades 2 and 3 kept, the 4th in the hour closed |
| S63 | fixed lots, ATR stop, pending expiry | EURUSD | PASS | 7 | 1 | fixed 0.37 lot opened 0.37; ATR stop 4.5 pips = ATR x 1.5; pending expiry 30 min |
| S64 | time stop | EURUSD | PASS | 2 | 1 | closed 1801 s after it opened (time stop 30 min) |
| S66 | pre-trade checklist | EURUSD | PASS | 6 | 1 | refused with 3 and 1 items open, sent when all were ticked, unticked again after the trade |
| S67 | monitor only | EURUSD | PASS | 7 | 1 | equity 9946.94 under the trigger 9955.00: no lock, 3 positions open, panel traded |
| S69 | stop-limit orders | EURUSD | PASS | 15 | 1 | buy stop-limit 0.29 lot: trigger 1.15538, limit 1.15508, stop 1.15338, 49.30 at the stop / sell stop-limit 0.29 lot: trigger 1.15476, limit 1.15506, stop 1.15676, 49.30 at the stop / the sell trigger was reached after 6846 s: a li… |
| S70 | hidden pending orders | EURUSD | PASS | 12 | 1 | the hidden sell stop was reached after 6846 s: a market sell with its stop and target / Delete pending deleted the other hidden order; a 30-minute hidden sell limit expired; a break deleted a hidden buy stop |
| S71 | grid orders | EURUSD | PASS | 13 | 1 | 3 buy limits 3 pips apart from 1.15486, one stop and target, 45.60 at the stop in all / its first trade closed: the rest of the grid was deleted |
| S72 | lock password | EURUSD | PASS | 9 | 1 | a 64-character hash kept; a wrong password refused; the right one opened the break once and was cleared |
Netting · real ticks · 2026-09-15 → 09-17
| # | Scenario | Symbol | Result | Checks | Events | Notes |
|---|---|---|---|---|---|---|
| S2 | break-even | EURUSD | PASS | 442,291 | 2 | positions 10, reached 1.0R 2 |
| S3 | partial close | EURUSD | PASS | 442,292 | 2 | positions 9, reached 1.0R 2 |
| S5 | daily loss lock | EURUSD | PASS | 4 | 7 | locked at equity 9895.00 (previous tick 9935.00, trigger 9910.00, floor 9900.00) |
| S7 | max trades per day | EURUSD | PASS | 7 | 1 | the 3 trades within the limit: 1.50 lot opened, 1.50 lot still open |
| S9 | over-risk reduce | EURUSD | PASS | 2 | 1 | vol 2.00 -> 0.40, risk 80.00, limit 100.00 |
| S18 | add + reversal | EURUSD | PASS | 8 | 3 | add: 0.60 lot risking 118.80 -> 0.50 lot risking 99.00 (limit 100.00) / reversal: sell 0.49 lot, SL 1.15688 kept, 1R stop 1.15688, risk 98.00 |
| S21 | risk budget | EURUSD | PASS | 7 | 2 | budget 99.00 at start, trade 1 0.49 lot, worst case 9902.00 vs trigger 9901.00; trade 2: risk budget left $1.00: not enough for the minimum lot / worst case 9901.32 vs trigger 9901.00, closing cost of the guard's own close -4.68 /… |
| S22 | max open positions | EURUSD | PASS | 9 | 3 | two trades in one moment for one slot: earlier GBPUSD kept, later USDJPY closed |
| S25 | hidden stops | EURUSD | PASS | 2,654,726 | 8 | |
| S27 | OCO straddle | EURUSD | PASS | 20 | 5 | sell stop filled, the other side deleted / sell stop filled, the other side deleted / buy stop filled, the other side deleted / buy stop filled, the other side deleted / sell stop filled, the other side deleted |
| S35 | hidden stops: hand edits | EURUSD | PASS | 8 | 3 | tighter edit -> hidden stop; looser edit refused; hand target -> hidden target |
| S38 | async close-all | EURUSD | PASS | 2 | 1 | closed 5 positions, async on |
| S39 | hidden stops: stealth off | EURUSD | PASS | 6 | 1 | hidden stop 1.15308 / target 1.15908 -> on the server: stop 1.15308 / target 1.15908 |
| S40 | OCO pair without the comment | EURUSD | PASS | 10 | 4 | sell stop filled, the other order cancelled / sell stop filled, the other order cancelled / buy stop filled, the other order cancelled / a pair with one order cancelled by hand: the other stayed |
| S41 | close-all retry | EURUSD | PASS | 4 | 1 | close-all refused at 16:00; both closed 1 s after the market took orders again |
| S42 | max total open risk | EURUSD | PASS | 6 | 1 | cap 150.00: trade 1 "BUY 0.50 lot opened, risk 100.00 USD"; trade 2 "BUY 0.25 lot opened, risk 50.00 USD (lot capped by the risk budget)"; left 0.00; trade 3: risk budget used up: if every open stop were hit, the loss limit would … |
| S45 | 50/80% warnings + day summary | EURUSD | PASS | 4 | 2 | warnings: half 2, 80% 2 over two locked days; summaries 1 |
| S47 | Live Guard: pause after a loss | EURUSD | PASS | 7 | 2 | loss at 01:00:20; the trade 60 s later closed (strike 1); the trade 5 min 30 s later kept |
| S48 | Live Guard: no bigger trade after a loss | EURUSD | PASS | 5 | 2 | losing trade risked 40.00; a 0.60 lot trade was cut to 0.20 lot |
| S49 | Live Guard: no adding to a loser | EURUSD | PASS | 2 | 1 | |
| S50 | Live Guard: strikes, pause, day lock | EURUSD | PASS | 14 | 2 | strike 1 warned, strike 2 paused 15 min, a trade in the pause was strike 3 and locked the day; the next day was clean |
| S55 | Live Guard: stop moves, burst, other EAs, flips | EURUSD | PASS | 3 | 1 | a losing buy reversed at once into a sell: the new sell was closed and counted a strike |
| S56 | take a break | EURUSD | PASS | 900 | 2 | 15 min break: pending deleted, panel refused ("On a break until 01:15: no new trades (you chose it)"), outside trade closed + strike, ended 01:15 |
| S57 | protect today's profit | EURUSD | PASS | 10 | 2 | day best 28.00 (start 20.00), locked at 14.00 (keep line 14.00), everything closed |
| S58 | trade only these symbols | EURUSD | PASS | 11 | 1 | GBPUSD closed, EURUSD and XAUUSD kept, another EA's USDJPY kept; a longer list waited, a shorter one applied: EURUSD |
| S59 | FundedNext funded: 3% open risk | EURUSD | PASS | 9 | 1 | cap 300.00 (3% of 10000.00): "BUY 1.00 lot opened, risk 200.00 USD"; "BUY 0.50 lot opened, risk 100.00 USD (lot capped by the risk budget)"; left 0.00 / after an outside 0.30 lot: 60.00 of the cap left |
| S60 | open loss per symbol | EURUSD | PASS | 5 | 1 | cap 0.5% = $50, trigger -45.00: EURUSD closed at -45.00 on the first check past it (the check before: -44.00); GBPUSD kept |
| S63 | fixed lots, ATR stop, pending expiry | EURUSD | PASS | 7 | 1 | fixed 0.37 lot opened 0.37; ATR stop 4.5 pips = ATR x 1.5; pending expiry 30 min |
| S64 | time stop | EURUSD | PASS | 2 | 1 | closed 1801 s after it opened (time stop 30 min) |
| S66 | pre-trade checklist | EURUSD | PASS | 6 | 1 | refused with 3 and 1 items open, sent when all were ticked, unticked again after the trade |
| S67 | monitor only | EURUSD | PASS | 7 | 1 | equity 9946.94 under the trigger 9955.00: no lock, 2 positions open, panel traded |
| S69 | stop-limit orders | EURUSD | PASS | 15 | 1 | buy stop-limit 0.29 lot: trigger 1.15538, limit 1.15508, stop 1.15338, 49.30 at the stop / sell stop-limit 0.29 lot: trigger 1.15476, limit 1.15506, stop 1.15676, 49.30 at the stop / the sell trigger was reached after 6846 s: a li… |
| S70 | hidden pending orders | EURUSD | PASS | 12 | 1 | the hidden sell stop was reached after 6846 s: a market sell with its stop and target / Delete pending deleted the other hidden order; a 30-minute hidden sell limit expired; a break deleted a hidden buy stop |
| S71 | grid orders | EURUSD | PASS | 13 | 1 | 3 buy limits 3 pips apart from 1.15486, one stop and target, 45.60 at the stop in all / its first trade closed: the rest of the grid was deleted |
Hedging · 1-minute OHLC · 2026-08-10 → 08-15
| # | Scenario | Symbol | Result | Checks | Events | Notes |
|---|---|---|---|---|---|---|
| S1 | risk sizing | EURUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.49 risk=98.00/99.86 / B SL50 vol=0.19 risk=95.00/99.82 / B SL150 vol=0.06 risk=90.00/99.82 / B SL5 vol=5.00 risk=250.00/250.00 / B SL20 vol=1.25 risk=250.00/250.00 / B SL50 vol=0.50… |
| S1 | risk sizing | USDJPY | PASS | 80 | 16 | B SL5 vol=3.15 risk=99.90/100.00 / B SL20 vol=0.78 risk=99.02/99.74 / B SL50 vol=0.31 risk=98.58/99.62 / B SL150 vol=0.10 risk=95.99/99.60 / capped by margin / B SL5 vol=4.76 risk=150.90/250.00 / B SL20 vol=1.97 risk=249.92/250.00… |
| S1 | risk sizing | XAUUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.51 risk=102.00/102.00 / B SL50 vol=0.20 risk=100.00/100.98 / B SL150 vol=0.06 risk=90.00/100.98 / capped by margin / B SL5 vol=2.20 risk=110.00/250.00 / B SL20 vol=1.25 risk=250.00/… |
| S1 | risk sizing | GBPJPY | PASS | 80 | 16 | B SL5 vol=3.15 risk=99.88/100.00 / B SL20 vol=0.78 risk=98.93/99.00 / B SL50 vol=0.31 risk=98.27/99.40 / B SL150 vol=0.10 risk=95.11/99.35 / capped by margin / B SL5 vol=3.11 risk=98.57/250.00 / B SL20 vol=1.97 risk=249.75/250.00 … |
| S2 | break-even | EURUSD | PASS | 37,848 | 7 | positions 16, reached 1.0R 7 |
| S3 | partial close | EURUSD | PASS | 36,245 | 4 | positions 8, reached 1.0R 4 |
| S4 | trailing fixed | EURUSD | PASS | 100,272 | 45 | positions 22, reached 1.0R 10 |
| S5 | daily loss lock | EURUSD | PASS | 4 | 7 | locked at equity 9875.00 (previous tick 9955.00, trigger 9910.00, floor 9900.00) |
| S6 | cooldown after losses | EURUSD | PASS | 2 | 5 | cooldown until 2026.08.10 11:07 |
| S7 | max trades per day | EURUSD | PASS | 7 | 1 | 3 of the 3 trades within the limit still open |
| S8 | SL widen/remove lock | EURUSD | PASS | 4 | 4 | |
| S9 | over-risk reduce | EURUSD | PASS | 2 | 1 | vol 2.00 -> 0.47, risk 94.00, limit 100.00 |
| S10 | over-risk tighten SL | EURUSD | PASS | 2 | 1 | vol 2.00 -> 2.00, risk 100.00, limit 100.00 |
| S11 | auto SL/TP | EURUSD | PASS | 2 | 1 | |
| S12 | no-SL max-risk stop | EURUSD | PASS | 2 | 1 | SL 1.15516 risk 100.00 limit 100.00 |
| S13 | max drawdown lock | EURUSD | PASS | 4 | 1 | DD locked at equity 9765.00 (trigger 9820.00 floor 9800.00) |
| S14 | profit lock | EURUSD | PASS | 3 | 1 | profit lock at day P/L 30.00 (target 30.00) |
| S15 | pending via lines | EURUSD | PASS | 12 | 4 | |
| S16 | trailing ATR | EURUSD | PASS | 94,860 | 38 | positions 24, reached 1.0R 10 |
| S17 | trailing swing | EURUSD | PASS | 93,491 | 27 | positions 16, reached 1.0R 7 |
| S18 | add + reversal | EURUSD | PASS | 2 | 2 | |
| S19 | weekend close | EURUSD | PASS | 4 | 2 | weekend close seen at 2026.08.14 20:00 |
| S20 | end-of-day close | EURUSD | PASS | 5 | 2 | |
| S21 | risk budget | EURUSD | PASS | 8 | 2 | budget 99.00 at start, trade 1 0.49 lot, worst case 9902.00 vs trigger 9901.00; trade 2: risk budget left $1.00: not enough for the minimum lot / worst case 9900.50 vs trigger 9901.00, closing cost of the guard's own close -1.50 |
| S22 | max open positions | EURUSD | PASS | 10 | 3 | two trades in one moment for one slot: earlier GBPUSD kept, later USDJPY closed |
| S23 | challenge target | EURUSD | PASS | 4 | 1 | target lock at equity 10030.00 (target 10030.00) |
| S24 | spread filter | EURUSD | PASS | 3 | 1 | refused at 0.3 pips: spread 0.3 pips is above your max 0.1 |
| S25 | hidden stops | EURUSD | PASS | 170,028 | 6 | |
| S26 | hidden stops + trailing | EURUSD | PASS | 150,420 | 47 | positions 22, reached 1.0R 10 |
| S27 | OCO straddle | EURUSD | PASS | 22 | 6 | sell stop filled, the other side deleted / buy stop filled, the other side deleted / sell stop filled, the other side deleted / sell stop filled, the other side deleted / buy stop filled, the other side deleted / double fill: the … |
| S28 | common break-even | EURUSD | PASS | 67,589 | 5 | 3 buys, average 1.15184, stops -> 1.15194 / 3 buys, average 1.15274, stops -> 1.15284 / 3 buys, average 1.15323, stops -> 1.15333 / 3 buys, average 1.15394, stops -> 1.15404 / 3 buys, average 1.15539, stops -> 1.15549 |
| S29 | trailing MA | EURUSD | PASS | 86,756 | 56 | positions 18, reached 1.0R 8 |
| S30 | trailing Parabolic SAR | EURUSD | PASS | 104,209 | 30 | positions 14, reached 1.0R 6 |
| S31 | split into 3 targets | EURUSD | PASS | 8 | 1 | 3 parts, 0.50 of 0.50 lot, risk 100.00 / 100.00: BUY 0.50 lot in 3 parts (0.25@2.0R, 0.15@3.0R, 0.10@4.0R), risk 100.00 USD |
| S32 | hotkeys | EURUSD | PASS | 5 | 2 | |
| S34 | pending order trailing | EURUSD | PASS | 14,024 | 18 | distances kept: buy stop 15.0 pips, sell limit 15.0 pips (placed at 15.0 / 15.0) / both orders filled |
| S35 | hidden stops: hand edits | EURUSD | PASS | 8 | 3 | tighter edit -> hidden stop; looser edit refused; hand target -> hidden target |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9993.70, daily limit 500.00, daily floor 9493.70, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9993.70, daily limit 500.00, daily floor 9493.70, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 300.00, daily floor 9700.00, max-loss floor 9400.00 / day 2: base 9993.70, daily limit 300.00, daily floor 9693.70, max-loss floor 9400.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 400.00, daily floor 9600.00, max-loss floor 9200.00 / day 2: base 9993.70, daily limit 400.00, daily floor 9593.70, max-loss floor 9200.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9993.70, daily limit 499.69, daily floor 9494.02, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9993.70, daily limit 499.69, daily floor 9494.02, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 300.00, daily floor 9700.00, max-loss floor 9000.00 / day 2: base 9993.70, daily limit 300.00, daily floor 9693.70, max-loss floor 9000.00 |
| S37 | trailing fractal | EURUSD | PASS | 92,365 | 14 | positions 16, reached 1.0R 7 |
| S38 | async close-all | EURUSD | PASS | 2 | 1 | closed 5 positions, async on |
| S39 | hidden stops: stealth off | EURUSD | PASS | 6 | 1 | hidden stop 1.15416 / target 1.16016 -> on the server: stop 1.15416 / target 1.16016 |
| S40 | OCO pair without the comment | EURUSD | PASS | 12 | 5 | sell stop filled, the other order cancelled / buy stop filled, the other order cancelled / sell stop filled, the other order cancelled / a pair with one order cancelled by hand: the other stayed / double fill of a pair without the… |
| S41 | close-all retry | EURUSD | PASS | 4 | 1 | close-all refused at 16:00; both closed 19 s after the market took orders again |
| S42 | max total open risk | EURUSD | PASS | 7 | 1 | cap 150.00: trade 1 "BUY 0.50 lot opened, risk 100.00 USD"; trade 2 "BUY 0.25 lot opened, risk 50.00 USD (lot capped by the risk budget)"; left 0.00; trade 3: risk budget used up: if every open stop were hit, the loss limit would … |
| S43 | weekly loss lock | EURUSD | PASS | 8 | 3 | weekly lock at a loss of 115.00 (limit 100.00, week start balance 10000.00) / new week: lock released, week start balance 9883.90 |
| S44 | monthly loss lock | EURUSD | PASS | 6 | 3 | monthly lock on day 28 at a loss of 160.00 (limit 100.00) |
| S45 | 50/80% warnings + day summary | EURUSD | PASS | 4 | 2 | warnings: half 2, 80% 2 over two locked days; summaries 2 |
| S46 | challenge statistics | EURUSD | PASS | 7 | 1 | days 4, best 17.50, profitable sum 49.50, total -81.00, share 35.4%, room today 49.50 |
| S47 | Live Guard: pause after a loss | EURUSD | PASS | 7 | 2 | loss at 01:00:20; the trade 60 s later closed (strike 1); the trade 5 min 30 s later kept |
| S48 | Live Guard: no bigger trade after a loss | EURUSD | PASS | 5 | 2 | losing trade risked 40.00; a 0.60 lot trade was cut to 0.19 lot |
| S49 | Live Guard: no adding to a loser | EURUSD | PASS | 5 | 2 | |
| S50 | Live Guard: strikes, pause, day lock | EURUSD | PASS | 14 | 2 | strike 1 warned, strike 2 paused 15 min, a trade in the pause was strike 3 and locked the day; the next day was clean |
| S51 | looser settings start tomorrow | EURUSD | PASS | 8 | 2 | today: 4% kept at 2%, 1% applied, then 4% and Live Guard off kept at 1% and on; looser: daily loss limit, Live Guard |
| S52 | FTMO 1-Step preset | EURUSD | PASS | 7 | 1 | floor 9000.00 on day 1, 9052.00 on day 2 (day-start balance 10052.00) |
| S53 | reset hour, week/month start, money text | EURUSD | PASS | 23 | 1 | reset hours, EU summer time, week / month starts, money and clock text, best-day formula |
| S54 | panel + Live Guard | EURUSD | PASS | 10 | 1 | pause refused a panel trade; 2% was capped to the 1% loss with no strike; a buy next to a losing buy was refused |
| S55 | Live Guard: stop moves, burst, other EAs, flips | EURUSD | PASS | 15 | 3 | 3rd trade in an hour = strike 1 (kept open); another EA's widened stop restored, no strike; stop moved away = strike 2, 15-min pause; stop removed = strike 3, day locked; open trades kept |
| S56 | take a break | EURUSD | PASS | 78 | 2 | 15 min break: pending deleted, panel refused ("On a break until 01:15: no new trades (you chose it)"), outside trade closed + strike, ended 01:15 |
| S57 | protect today's profit | EURUSD | FAIL | 11 | 2 | locked at -6.00 with a best of 31.00: expected about half kept / day best 31.00 (start 20.00), locked at -6.00 (keep line 15.50), everything closed |
| S58 | trade only these symbols | EURUSD | PASS | 11 | 1 | GBPUSD closed, EURUSD and XAUUSD kept, another EA's USDJPY kept; a longer list waited, a shorter one applied: EURUSD |
| S59 | FundedNext funded: 3% open risk | EURUSD | PASS | 10 | 1 | cap 300.00 (3% of 10000.00): "BUY 1.00 lot opened, risk 200.00 USD"; "BUY 0.50 lot opened, risk 100.00 USD (lot capped by the risk budget)"; left 0.00 / after an outside 0.30 lot: 0.00 of the cap left |
| S60 | open loss per symbol | EURUSD | PASS | 5 | 1 | cap 0.5% = $50, trigger -45.00: EURUSD closed at -47.00 on the first check past it (the check before: -15.00); GBPUSD kept |
| S61 | trading hours, days, direction | EURUSD | PASS | 8 | 1 | Monday closed, Tuesday 09:30 closed, 10:30 sell closed / buy kept, panel refused the sell, 12:30 closed |
| S62 | max lot, spacing, trades per hour | EURUSD | PASS | 7 | 1 | 0.50 cut to 0.30; 3 s later closed (5 min apart); 6-min trades 2 and 3 kept, the 4th in the hour closed |
| S63 | fixed lots, ATR stop, pending expiry | EURUSD | PASS | 7 | 1 | fixed 0.37 lot opened 0.37; ATR stop 6.3 pips = ATR x 1.5; pending expiry 30 min |
| S64 | time stop | EURUSD | PASS | 2 | 1 | closed 1800 s after it opened (time stop 30 min) |
| S65 | journal + weekly report | EURUSD | PASS | 23 | 3 | 3 trades closed, 3 journal lines: 2026.09.17 02:00:00,EURUSD,buy,0.10,2026.09.17 01:40:00,1.14683,1.14667,1.14483,-1.60,0.00,0.00,-1.60,20.00,-0.08,20,0,an EA,ext / half closed, then closed: 2026.09.17 02:11:20,EURUSD,buy,0.20,202… |
| S66 | pre-trade checklist | EURUSD | PASS | 6 | 1 | refused with 3 and 1 items open, sent when all were ticked, unticked again after the trade |
| S67 | monitor only | EURUSD | PASS | 7 | 1 | equity 9946.79 under the trigger 9955.00: no lock, 3 positions open, panel traded |
| S68 | discipline score | EURUSD | PASS | 10 | 1 | sell against buys only closed: 90; re-entry after a loss closed + strike: 70 (2 trades); panel: today 70 · week C (70) / 00:00:00 Week 2026.09.14 to 2026.09.20: 3 trades closed, 0 won, 3 lost (0% won), net -2.00 USD; best day 202… |
| S69 | stop-limit orders | EURUSD | PASS | 15 | 1 | buy stop-limit 0.29 lot: trigger 1.15646, limit 1.15616, stop 1.15446, 49.30 at the stop / sell stop-limit 0.29 lot: trigger 1.15583, limit 1.15613, stop 1.15783, 49.30 at the stop / the sell trigger was reached after 220 s: a lim… |
| S70 | hidden pending orders | EURUSD | PASS | 12 | 1 | the hidden sell stop was reached after 220 s: a market sell with its stop and target / Delete pending deleted the other hidden order; a 30-minute hidden sell limit expired; a break deleted a hidden buy stop |
| S71 | grid orders | EURUSD | PASS | 13 | 1 | 3 buy limits 3 pips apart from 1.15593, one stop and target, 45.60 at the stop in all / its first trade closed: the rest of the grid was deleted |
| S72 | lock password | EURUSD | PASS | 9 | 1 | a 64-character hash kept; a wrong password refused; the right one opened the break once and was cleared |
Netting · 1-minute OHLC · 2026-08-10 → 08-15
| # | Scenario | Symbol | Result | Checks | Events | Notes |
|---|---|---|---|---|---|---|
| S1 | risk sizing | EURUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.49 risk=98.00/99.86 / B SL50 vol=0.19 risk=95.00/99.82 / B SL150 vol=0.06 risk=90.00/99.82 / B SL5 vol=5.00 risk=250.00/250.00 / B SL20 vol=1.25 risk=250.00/250.00 / B SL50 vol=0.50… |
| S1 | risk sizing | USDJPY | PASS | 80 | 16 | B SL5 vol=3.15 risk=99.90/100.00 / B SL20 vol=0.78 risk=99.02/99.74 / B SL50 vol=0.31 risk=98.58/99.62 / B SL150 vol=0.10 risk=95.99/99.60 / capped by margin / B SL5 vol=4.76 risk=150.90/250.00 / B SL20 vol=1.97 risk=249.92/250.00… |
| S1 | risk sizing | XAUUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.51 risk=102.00/102.00 / B SL50 vol=0.20 risk=100.00/100.98 / B SL150 vol=0.06 risk=90.00/100.98 / capped by margin / B SL5 vol=2.20 risk=110.00/250.00 / B SL20 vol=1.25 risk=250.00/… |
| S1 | risk sizing | GBPJPY | PASS | 80 | 16 | B SL5 vol=3.15 risk=99.88/100.00 / B SL20 vol=0.78 risk=98.93/99.00 / B SL50 vol=0.31 risk=98.27/99.40 / B SL150 vol=0.10 risk=95.11/99.35 / capped by margin / B SL5 vol=3.11 risk=98.57/250.00 / B SL20 vol=1.97 risk=249.75/250.00 … |
| S2 | break-even | EURUSD | PASS | 28,340 | 2 | positions 10, reached 1.0R 2 |
| S3 | partial close | EURUSD | PASS | 28,342 | 3 | positions 8, reached 1.0R 3 |
| S4 | trailing fixed | EURUSD | PASS | 56,672 | 16 | positions 14, reached 1.0R 3 |
| S5 | daily loss lock | EURUSD | PASS | 4 | 7 | locked at equity 9875.00 (previous tick 9955.00, trigger 9910.00, floor 9900.00) |
| S6 | cooldown after losses | EURUSD | PASS | 2 | 5 | cooldown until 2026.08.10 11:07 |
| S7 | max trades per day | EURUSD | PASS | 7 | 1 | the 3 trades within the limit: 1.50 lot opened, 1.50 lot still open |
| S8 | SL widen/remove lock | EURUSD | PASS | 4 | 4 | |
| S9 | over-risk reduce | EURUSD | PASS | 2 | 1 | vol 2.00 -> 0.47, risk 94.00, limit 100.00 |
| S10 | over-risk tighten SL | EURUSD | PASS | 2 | 1 | vol 2.00 -> 2.00, risk 100.00, limit 100.00 |
| S11 | auto SL/TP | EURUSD | PASS | 2 | 1 | |
| S12 | no-SL max-risk stop | EURUSD | PASS | 2 | 1 | SL 1.15516 risk 100.00 limit 100.00 |
| S13 | max drawdown lock | EURUSD | PASS | 4 | 1 | DD locked at equity 9765.00 (trigger 9820.00 floor 9800.00) |
| S14 | profit lock | EURUSD | PASS | 3 | 1 | profit lock at day P/L 30.00 (target 30.00) |
| S15 | pending via lines | EURUSD | PASS | 12 | 4 | |
| S16 | trailing ATR | EURUSD | PASS | 55,700 | 15 | positions 16, reached 1.0R 3 |
| S17 | trailing swing | EURUSD | PASS | 54,273 | 13 | positions 10, reached 1.0R 3 |
| S18 | add + reversal | EURUSD | PASS | 8 | 3 | add: 0.60 lot risking 118.80 -> 0.50 lot risking 99.00 (limit 100.00) / reversal: sell 0.50 lot, SL 1.15823 kept, 1R stop 1.15823, risk 100.00 |
| S19 | weekend close | EURUSD | PASS | 4 | 2 | weekend close seen at 2026.08.14 20:00 |
| S20 | end-of-day close | EURUSD | PASS | 5 | 2 | |
| S21 | risk budget | EURUSD | PASS | 7 | 2 | budget 99.00 at start, trade 1 0.49 lot, worst case 9902.00 vs trigger 9901.00; trade 2: risk budget left $1.00: not enough for the minimum lot / worst case 9902.47 vs trigger 9901.00, closing cost of the guard's own close -1.53 /… |
| S22 | max open positions | EURUSD | PASS | 9 | 3 | two trades in one moment for one slot: earlier GBPUSD kept, later USDJPY closed |
| S23 | challenge target | EURUSD | PASS | 4 | 1 | target lock at equity 10030.00 (target 10030.00) |
| S24 | spread filter | EURUSD | PASS | 3 | 1 | refused at 0.3 pips: spread 0.3 pips is above your max 0.1 |
| S25 | hidden stops | EURUSD | PASS | 170,028 | 6 | |
| S26 | hidden stops + trailing | EURUSD | PASS | 85,008 | 14 | positions 14, reached 1.0R 3 |
| S27 | OCO straddle | EURUSD | PASS | 20 | 5 | sell stop filled, the other side deleted / buy stop filled, the other side deleted / sell stop filled, the other side deleted / sell stop filled, the other side deleted / buy stop filled, the other side deleted |
| S29 | trailing MA | EURUSD | PASS | 54,881 | 21 | positions 12, reached 1.0R 3 |
| S30 | trailing Parabolic SAR | EURUSD | PASS | 55,205 | 18 | positions 10, reached 1.0R 3 |
| S32 | hotkeys | EURUSD | PASS | 5 | 2 | |
| S34 | pending order trailing | EURUSD | PASS | 14,024 | 18 | distances kept: buy stop 15.0 pips, sell limit 15.0 pips (placed at 15.0 / 15.0) / both orders filled |
| S35 | hidden stops: hand edits | EURUSD | PASS | 8 | 3 | tighter edit -> hidden stop; looser edit refused; hand target -> hidden target |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9993.70, daily limit 500.00, daily floor 9493.70, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9993.70, daily limit 500.00, daily floor 9493.70, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 300.00, daily floor 9700.00, max-loss floor 9400.00 / day 2: base 9993.70, daily limit 300.00, daily floor 9693.70, max-loss floor 9400.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 400.00, daily floor 9600.00, max-loss floor 9200.00 / day 2: base 9993.70, daily limit 400.00, daily floor 9593.70, max-loss floor 9200.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9993.70, daily limit 499.69, daily floor 9494.02, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9993.70, daily limit 499.69, daily floor 9494.02, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 300.00, daily floor 9700.00, max-loss floor 9000.00 / day 2: base 9993.70, daily limit 300.00, daily floor 9693.70, max-loss floor 9000.00 |
| S37 | trailing fractal | EURUSD | PASS | 53,951 | 6 | positions 10, reached 1.0R 3 |
| S38 | async close-all | EURUSD | PASS | 2 | 1 | closed 5 positions, async on |
| S39 | hidden stops: stealth off | EURUSD | PASS | 6 | 1 | hidden stop 1.15416 / target 1.16016 -> on the server: stop 1.15416 / target 1.16016 |
| S40 | OCO pair without the comment | EURUSD | PASS | 10 | 4 | sell stop filled, the other order cancelled / buy stop filled, the other order cancelled / sell stop filled, the other order cancelled / a pair with one order cancelled by hand: the other stayed |
| S41 | close-all retry | EURUSD | PASS | 4 | 1 | close-all refused at 16:00; both closed 19 s after the market took orders again |
| S42 | max total open risk | EURUSD | PASS | 6 | 1 | cap 150.00: trade 1 "BUY 0.50 lot opened, risk 100.00 USD"; trade 2 "BUY 0.25 lot opened, risk 50.00 USD (lot capped by the risk budget)"; left 0.00; trade 3: risk budget used up: if every open stop were hit, the loss limit would … |
| S43 | weekly loss lock | EURUSD | PASS | 8 | 3 | weekly lock at a loss of 115.00 (limit 100.00, week start balance 10000.00) / new week: lock released, week start balance 9883.90 |
| S44 | monthly loss lock | EURUSD | PASS | 6 | 3 | monthly lock on day 28 at a loss of 160.00 (limit 100.00) |
| S45 | 50/80% warnings + day summary | EURUSD | PASS | 4 | 2 | warnings: half 2, 80% 2 over two locked days; summaries 2 |
| S46 | challenge statistics | EURUSD | PASS | 7 | 1 | days 4, best 17.50, profitable sum 49.50, total -81.00, share 35.4%, room today 49.50 |
| S47 | Live Guard: pause after a loss | EURUSD | PASS | 7 | 2 | loss at 01:00:20; the trade 60 s later closed (strike 1); the trade 5 min 30 s later kept |
| S48 | Live Guard: no bigger trade after a loss | EURUSD | PASS | 5 | 2 | losing trade risked 40.00; a 0.60 lot trade was cut to 0.19 lot |
| S49 | Live Guard: no adding to a loser | EURUSD | PASS | 2 | 1 | |
| S50 | Live Guard: strikes, pause, day lock | EURUSD | PASS | 14 | 2 | strike 1 warned, strike 2 paused 15 min, a trade in the pause was strike 3 and locked the day; the next day was clean |
| S51 | looser settings start tomorrow | EURUSD | PASS | 8 | 2 | today: 4% kept at 2%, 1% applied, then 4% and Live Guard off kept at 1% and on; looser: daily loss limit, Live Guard |
| S52 | FTMO 1-Step preset | EURUSD | PASS | 7 | 1 | floor 9000.00 on day 1, 9052.00 on day 2 (day-start balance 10052.00) |
| S53 | reset hour, week/month start, money text | EURUSD | PASS | 23 | 1 | reset hours, EU summer time, week / month starts, money and clock text, best-day formula |
| S55 | Live Guard: stop moves, burst, other EAs, flips | EURUSD | PASS | 3 | 1 | a losing buy reversed at once into a sell: the new sell was closed and counted a strike |
| S56 | take a break | EURUSD | PASS | 78 | 2 | 15 min break: pending deleted, panel refused ("On a break until 01:15: no new trades (you chose it)"), outside trade closed + strike, ended 01:15 |
| S57 | protect today's profit | EURUSD | FAIL | 11 | 2 | locked at -6.00 with a best of 31.00: expected about half kept / day best 31.00 (start 20.00), locked at -6.00 (keep line 15.50), everything closed |
| S58 | trade only these symbols | EURUSD | PASS | 11 | 1 | GBPUSD closed, EURUSD and XAUUSD kept, another EA's USDJPY kept; a longer list waited, a shorter one applied: EURUSD |
| S59 | FundedNext funded: 3% open risk | EURUSD | PASS | 9 | 1 | cap 300.00 (3% of 10000.00): "BUY 1.00 lot opened, risk 200.00 USD"; "BUY 0.50 lot opened, risk 100.00 USD (lot capped by the risk budget)"; left 0.00 / after an outside 0.30 lot: 60.00 of the cap left |
| S60 | open loss per symbol | EURUSD | PASS | 5 | 1 | cap 0.5% = $50, trigger -45.00: EURUSD closed at -47.00 on the first check past it (the check before: -15.00); GBPUSD kept |
| S61 | trading hours, days, direction | EURUSD | PASS | 6 | 1 | Monday closed, Tuesday 09:30 closed, 10:30 sell closed / buy kept, panel refused the sell, 12:30 closed |
| S63 | fixed lots, ATR stop, pending expiry | EURUSD | PASS | 7 | 1 | fixed 0.37 lot opened 0.37; ATR stop 6.3 pips = ATR x 1.5; pending expiry 30 min |
| S64 | time stop | EURUSD | PASS | 2 | 1 | closed 1800 s after it opened (time stop 30 min) |
| S65 | journal + weekly report | EURUSD | PASS | 27 | 3 | 3 trades closed, 3 journal lines: 2026.09.17 02:00:00,EURUSD,buy,0.10,2026.09.17 01:40:00,1.14683,1.14667,1.14483,-1.60,0.00,0.00,-1.60,20.00,-0.08,20,0,an EA,ext / half closed, then reversed: 2026.09.17 02:11:20,EURUSD,buy,0.20,2… |
| S66 | pre-trade checklist | EURUSD | PASS | 6 | 1 | refused with 3 and 1 items open, sent when all were ticked, unticked again after the trade |
| S67 | monitor only | EURUSD | PASS | 7 | 1 | equity 9946.79 under the trigger 9955.00: no lock, 2 positions open, panel traded |
| S68 | discipline score | EURUSD | PASS | 10 | 1 | sell against buys only closed: 90; re-entry after a loss closed + strike: 70 (2 trades); panel: today 70 · week C (70) / 00:00:00 Week 2026.09.14 to 2026.09.20: 3 trades closed, 0 won, 3 lost (0% won), net -2.00 USD; best day 202… |
| S69 | stop-limit orders | EURUSD | PASS | 15 | 1 | buy stop-limit 0.29 lot: trigger 1.15646, limit 1.15616, stop 1.15446, 49.30 at the stop / sell stop-limit 0.29 lot: trigger 1.15583, limit 1.15613, stop 1.15783, 49.30 at the stop / the sell trigger was reached after 220 s: a lim… |
| S70 | hidden pending orders | EURUSD | PASS | 12 | 1 | the hidden sell stop was reached after 220 s: a market sell with its stop and target / Delete pending deleted the other hidden order; a 30-minute hidden sell limit expired; a break deleted a hidden buy stop |
| S71 | grid orders | EURUSD | PASS | 13 | 1 | 3 buy limits 3 pips apart from 1.15593, one stop and target, 45.60 at the stop in all / its first trade closed: the rest of the grid was deleted |
| S72 | lock password | EURUSD | PASS | 9 | 1 | a 64-character hash kept; a wrong password refused; the right one opened the break once and was cleared |
Hedging · 1-minute OHLC · 2026-07-06 → 07-11
| # | Scenario | Symbol | Result | Checks | Events | Notes |
|---|---|---|---|---|---|---|
| S1 | risk sizing | EURUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.49 risk=98.00/99.94 / B SL50 vol=0.20 risk=100.00/100.01 / B SL150 vol=0.06 risk=90.00/99.99 / B SL5 vol=5.00 risk=250.00/250.00 / B SL20 vol=1.25 risk=250.00/250.00 / B SL50 vol=0.… |
| S1 | risk sizing | USDJPY | PASS | 80 | 16 | B SL5 vol=3.22 risk=99.82/100.00 / B SL20 vol=0.79 risk=98.04/99.04 / B SL50 vol=0.31 risk=96.36/98.98 / B SL150 vol=0.10 risk=93.85/98.98 / capped by margin / B SL5 vol=4.68 risk=145.07/250.00 / B SL20 vol=2.01 risk=249.41/250.00… |
| S1 | risk sizing | XAUUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.49 risk=98.00/99.00 / B SL50 vol=0.20 risk=100.00/100.81 / B SL150 vol=0.06 risk=90.00/100.78 / capped by margin / B SL5 vol=2.29 risk=114.50/250.00 / B SL20 vol=1.25 risk=250.00/25… |
| S1 | risk sizing | GBPJPY | PASS | 80 | 16 | B SL5 vol=3.22 risk=99.80/100.00 / B SL20 vol=0.79 risk=97.94/99.00 / B SL50 vol=0.32 risk=99.17/99.73 / B SL150 vol=0.10 risk=92.97/99.69 / capped by margin / B SL5 vol=3.14 risk=97.32/250.00 / B SL20 vol=2.01 risk=249.16/250.00 … |
| S2 | break-even | EURUSD | PASS | 44,707 | 12 | positions 28, reached 1.0R 12 |
| S3 | partial close | EURUSD | PASS | 32,805 | 9 | positions 18, reached 1.0R 9 |
| S4 | trailing fixed | EURUSD | PASS | 91,240 | 81 | positions 36, reached 1.0R 16 |
| S5 | daily loss lock | EURUSD | PASS | 4 | 7 | locked at equity 9875.00 (previous tick 9985.00, trigger 9910.00, floor 9900.00) |
| S6 | cooldown after losses | EURUSD | PASS | 2 | 5 | cooldown until 2026.07.06 02:09 |
| S7 | max trades per day | EURUSD | PASS | 7 | 1 | 3 of the 3 trades within the limit still open |
| S8 | SL widen/remove lock | EURUSD | PASS | 4 | 4 | |
| S9 | over-risk reduce | EURUSD | PASS | 2 | 1 | vol 2.00 -> 0.47, risk 94.00, limit 100.00 |
| S10 | over-risk tighten SL | EURUSD | PASS | 2 | 1 | vol 2.00 -> 2.00, risk 100.00, limit 100.00 |
| S11 | auto SL/TP | EURUSD | PASS | 2 | 1 | |
| S12 | no-SL max-risk stop | EURUSD | PASS | 2 | 1 | SL 1.14281 risk 100.00 limit 100.00 |
| S13 | max drawdown lock | EURUSD | PASS | 4 | 1 | DD locked at equity 9810.00 (trigger 9820.00 floor 9800.00) |
| S14 | profit lock | EURUSD | PASS | 3 | 1 | profit lock at day P/L 32.60 (target 30.00) |
| S15 | pending via lines | EURUSD | PASS | 12 | 4 | |
| S16 | trailing ATR | EURUSD | PASS | 81,893 | 73 | positions 38, reached 1.0R 16 |
| S17 | trailing swing | EURUSD | PASS | 70,916 | 53 | positions 32, reached 1.0R 16 |
| S18 | add + reversal | EURUSD | PASS | 2 | 2 | |
| S19 | weekend close | EURUSD | PASS | 4 | 2 | weekend close seen at 2026.07.10 20:00 |
| S20 | end-of-day close | EURUSD | PASS | 5 | 2 | |
| S21 | risk budget | EURUSD | PASS | 8 | 2 | budget 99.00 at start, trade 1 0.49 lot, worst case 9902.00 vs trigger 9901.00; trade 2: risk budget left $1.00: not enough for the minimum lot / worst case 9900.50 vs trigger 9901.00, closing cost of the guard's own close -1.50 |
| S22 | max open positions | EURUSD | PASS | 10 | 3 | two trades in one moment for one slot: earlier GBPUSD kept, later USDJPY closed |
| S23 | challenge target | EURUSD | NO-CHECKS | 0 | 0 | |
| S24 | spread filter | EURUSD | PASS | 3 | 1 | refused at 0.3 pips: spread 0.3 pips is above your max 0.1 |
| S25 | hidden stops | EURUSD | PASS | 171,159 | 15 | |
| S26 | hidden stops + trailing | EURUSD | PASS | 136,860 | 85 | positions 36, reached 1.0R 16 |
| S27 | OCO straddle | EURUSD | PASS | 22 | 6 | sell stop filled, the other side deleted / sell stop filled, the other side deleted / sell stop filled, the other side deleted / buy stop filled, the other side deleted / buy stop filled, the other side deleted / double fill: the … |
| S28 | common break-even | EURUSD | PASS | 44,823 | 5 | 3 buys, average 1.14366, stops -> 1.14376 / 3 buys, average 1.14061, stops -> 1.14071 / 3 buys, average 1.14116, stops -> 1.14126 / 3 buys, average 1.14212, stops -> 1.14222 / 3 buys, average 1.13966, stops -> 1.13976 |
| S29 | trailing MA | EURUSD | PASS | 78,611 | 92 | positions 32, reached 1.0R 16 |
| S30 | trailing Parabolic SAR | EURUSD | PASS | 78,142 | 107 | positions 32, reached 1.0R 16 |
| S31 | split into 3 targets | EURUSD | PASS | 8 | 1 | 3 parts, 0.50 of 0.50 lot, risk 100.00 / 100.00: BUY 0.50 lot in 3 parts (0.25@2.0R, 0.15@3.0R, 0.10@4.0R), risk 100.00 USD |
| S32 | hotkeys | EURUSD | PASS | 5 | 2 | |
| S34 | pending order trailing | EURUSD | PASS | 25,544 | 38 | distances kept: buy stop 15.0 pips, sell limit 15.0 pips (placed at 15.0 / 15.0) / both orders filled |
| S35 | hidden stops: hand edits | EURUSD | PASS | 8 | 3 | tighter edit -> hidden stop; looser edit refused; hand target -> hidden target |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9998.40, daily limit 500.00, daily floor 9498.40, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9998.40, daily limit 500.00, daily floor 9498.40, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 300.00, daily floor 9700.00, max-loss floor 9400.00 / day 2: base 9998.40, daily limit 300.00, daily floor 9698.40, max-loss floor 9400.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 400.00, daily floor 9600.00, max-loss floor 9200.00 / day 2: base 9998.40, daily limit 400.00, daily floor 9598.40, max-loss floor 9200.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9998.40, daily limit 499.92, daily floor 9498.48, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 500.00, daily floor 9500.00, max-loss floor 9000.00 / day 2: base 9998.40, daily limit 499.92, daily floor 9498.48, max-loss floor 9000.00 |
| S36 | prop-firm preset | EURUSD | PASS | 6 | 2 | day 1: base 10000.00, daily limit 300.00, daily floor 9700.00, max-loss floor 9000.00 / day 2: base 9998.40, daily limit 300.00, daily floor 9698.40, max-loss floor 9000.00 |
| S37 | trailing fractal | EURUSD | PASS | 69,438 | 31 | positions 26, reached 1.0R 13 |
| S38 | async close-all | EURUSD | PASS | 2 | 1 | closed 5 positions, async on |
| S39 | hidden stops: stealth off | EURUSD | PASS | 6 | 1 | hidden stop 1.14181 / target 1.14781 -> on the server: stop 1.14181 / target 1.14781 |
| S40 | OCO pair without the comment | EURUSD | PASS | 12 | 5 | sell stop filled, the other order cancelled / sell stop filled, the other order cancelled / sell stop filled, the other order cancelled / a pair with one order cancelled by hand: the other stayed / double fill of a pair without th… |
| S41 | close-all retry | EURUSD | PASS | 4 | 1 | close-all refused at 16:00; both closed 19 s after the market took orders again |
| S42 | max total open risk | EURUSD | PASS | 7 | 1 | cap 150.00: trade 1 "BUY 0.50 lot opened, risk 100.00 USD"; trade 2 "BUY 0.25 lot opened, risk 50.00 USD (lot capped by the risk budget)"; left 0.00; trade 3: risk budget used up: if every open stop were hit, the loss limit would … |
| S43 | weekly loss lock | EURUSD | PASS | 8 | 3 | weekly lock at a loss of 115.00 (limit 100.00, week start balance 10000.00) / new week: lock released, week start balance 9883.90 |
| S44 | monthly loss lock | EURUSD | PASS | 6 | 3 | monthly lock on day 28 at a loss of 160.00 (limit 100.00) |
| S45 | 50/80% warnings + day summary | EURUSD | PASS | 4 | 2 | warnings: half 2, 80% 2 over two locked days; summaries 1 |
| S46 | challenge statistics | EURUSD | PASS | 7 | 1 | days 4, best 18.50, profitable sum 69.50, total 69.50, share 26.6%, room today 69.50 |
| S47 | Live Guard: pause after a loss | EURUSD | PASS | 7 | 2 | loss at 01:00:20; the trade 60 s later closed (strike 1); the trade 5 min 30 s later kept |
| S48 | Live Guard: no bigger trade after a loss | EURUSD | PASS | 5 | 2 | losing trade risked 40.00; a 0.60 lot trade was cut to 0.19 lot |
| S49 | Live Guard: no adding to a loser | EURUSD | PASS | 5 | 2 | |
| S50 | Live Guard: strikes, pause, day lock | EURUSD | PASS | 14 | 2 | strike 1 warned, strike 2 paused 15 min, a trade in the pause was strike 3 and locked the day; the next day was clean |
| S51 | looser settings start tomorrow | EURUSD | PASS | 8 | 2 | today: 4% kept at 2%, 1% applied, then 4% and Live Guard off kept at 1% and on; looser: daily loss limit, Live Guard |
| S52 | FTMO 1-Step preset | EURUSD | PASS | 3 | 0 | |
| S53 | reset hour, week/month start, money text | EURUSD | PASS | 23 | 1 | reset hours, EU summer time, week / month starts, money and clock text, best-day formula |
| S54 | panel + Live Guard | EURUSD | PASS | 10 | 1 | pause refused a panel trade; 2% was capped to the 1% loss with no strike; a buy next to a losing buy was refused |
| S55 | Live Guard: stop moves, burst, other EAs, flips | EURUSD | PASS | 15 | 3 | 3rd trade in an hour = strike 1 (kept open); another EA's widened stop restored, no strike; stop moved away = strike 2, 15-min pause; stop removed = strike 3, day locked; open trades kept |
| S56 | take a break | EURUSD | PASS | 78 | 2 | 15 min break: pending deleted, panel refused ("On a break until 01:15: no new trades (you chose it)"), outside trade closed + strike, ended 01:15 |
| S57 | protect today's profit | EURUSD | PASS | 10 | 2 | day best 40.50 (start 20.00), locked at 19.50 (keep line 20.25), everything closed |
| S58 | trade only these symbols | EURUSD | PASS | 11 | 1 | GBPUSD closed, EURUSD and XAUUSD kept, another EA's USDJPY kept; a longer list waited, a shorter one applied: EURUSD |
| S59 | FundedNext funded: 3% open risk | EURUSD | PASS | 10 | 1 | cap 300.00 (3% of 10000.00): "BUY 1.00 lot opened, risk 200.00 USD"; "BUY 0.50 lot opened, risk 100.00 USD (lot capped by the risk budget)"; left 0.00 / after an outside 0.30 lot: 0.00 of the cap left |
| S60 | open loss per symbol | EURUSD | PASS | 5 | 1 | cap 0.5% = $50, trigger -45.00: EURUSD closed at -46.00 on the first check past it (the check before: -35.00); GBPUSD kept |
| S61 | trading hours, days, direction | EURUSD | PASS | 8 | 1 | Monday closed, Tuesday 09:30 closed, 10:30 sell closed / buy kept, panel refused the sell, 12:30 closed |
| S62 | max lot, spacing, trades per hour | EURUSD | PASS | 7 | 1 | 0.50 cut to 0.30; 3 s later closed (5 min apart); 6-min trades 2 and 3 kept, the 4th in the hour closed |
| S63 | fixed lots, ATR stop, pending expiry | EURUSD | PASS | 7 | 1 | fixed 0.37 lot opened 0.37; ATR stop 6.1 pips = ATR x 1.5; pending expiry 30 min |
| S64 | time stop | EURUSD | PASS | 2 | 1 | closed 1800 s after it opened (time stop 30 min) |
| S65 | journal + weekly report | EURUSD | PASS | 23 | 3 | 3 trades closed, 3 journal lines: 2026.09.17 02:00:00,EURUSD,buy,0.10,2026.09.17 01:40:00,1.14683,1.14667,1.14483,-1.60,0.00,0.00,-1.60,20.00,-0.08,20,0,an EA,ext / half closed, then closed: 2026.09.17 02:11:20,EURUSD,buy,0.20,202… |
| S66 | pre-trade checklist | EURUSD | PASS | 6 | 1 | refused with 3 and 1 items open, sent when all were ticked, unticked again after the trade |
| S67 | monitor only | EURUSD | PASS | 7 | 1 | equity 9958.25 under the trigger 9955.00: no lock, 3 positions open, panel traded |
| S68 | discipline score | EURUSD | PASS | 10 | 1 | sell against buys only closed: 90; re-entry after a loss closed + strike: 70 (2 trades); panel: today 70 · week C (70) / 00:00:00 Week 2026.09.14 to 2026.09.20: 3 trades closed, 0 won, 3 lost (0% won), net -2.00 USD; best day 202… |
| S69 | stop-limit orders | EURUSD | PASS | 15 | 1 | buy stop-limit 0.29 lot: trigger 1.14411, limit 1.14381, stop 1.14211, 49.30 at the stop / sell stop-limit 0.29 lot: trigger 1.14348, limit 1.14378, stop 1.14548, 49.30 at the stop / the sell trigger was reached after 380 s: a lim… |
| S70 | hidden pending orders | EURUSD | PASS | 12 | 1 | the hidden sell stop was reached after 380 s: a market sell with its stop and target / Delete pending deleted the other hidden order; a 30-minute hidden sell limit expired; a break deleted a hidden buy stop |
| S71 | grid orders | EURUSD | PASS | 13 | 1 | 3 buy limits 3 pips apart from 1.14358, one stop and target, 45.60 at the stop in all / its first trade closed: the rest of the grid was deleted |
| S72 | lock password | EURUSD | PASS | 9 | 1 | a 64-character hash kept; a wrong password refused; the right one opened the break once and was cleared |
Other guard settings · hedging + netting · 1-minute OHLC · 2026-09-14 → 09-19
| # | Scenario | Symbol | Result | Checks | Events | Notes |
|---|---|---|---|---|---|---|
| S5 | daily loss lock, InpDailyLossOn=true InpDailyLossPct=1.0 InpDailyFrom=1 | EURUSD | PASS | 4 | 7 | locked at equity 9910.00 (previous tick 10045.00, trigger 9910.00, floor 9900.00) |
| S5 | daily loss lock, InpDailyLossOn=true InpDailyLossPct=1.0 InpDailyFrom=2 | EURUSD | PASS | 4 | 7 | locked at equity 9910.00 (previous tick 10045.00, trigger 9910.00, floor 9900.00) |
| S5 | daily loss lock, InpDailyLossOn=true InpDailyLossPct=1.0 InpDailyPctOf=1 | EURUSD | PASS | 4 | 7 | locked at equity 9910.00 (previous tick 10045.00, trigger 9910.00, floor 9900.00) |
| S5 | daily loss lock, InpDailyLossOn=true InpDailyLossPct=1.0 InpResetHour=8 | EURUSD | PASS | 4 | 7 | locked at equity 9910.00 (previous tick 10045.00, trigger 9910.00, floor 9900.00) |
| S13 | max drawdown lock, InpMaxDDMode=2 InpMaxDDPct=2.0 | EURUSD | PASS | 4 | 1 | DD locked at equity 9890.00 (trigger 9890.00 floor 9870.00) |
| S13 | max drawdown lock, InpMaxDDMode=3 InpMaxDDPct=2.0 | EURUSD | PASS | 4 | 1 | DD locked at equity 9810.00 (trigger 9820.00 floor 9800.00) |
| S9 | over-risk reduce, InpMaxRiskPct=1.0 InpOverRisk=2 | EURUSD | PASS | 1 | 0 | |
| S14 | profit lock, InpProfitLockOn=true InpProfitLockPct=0.3 InpProfitLockClose=false | EURUSD | PASS | 3 | 1 | profit lock at day P/L 30.00 (target 30.00) |
| S47 | Live Guard: pause after a loss, InpLiveGuard=true InpLGCoolMin=10 InpLGSizeMin=0 InpLGNoAdd=false | EURUSD | PASS | 7 | 2 | loss at 01:00:40; the trade 60 s later closed (strike 1); the trade 10 min 30 s later kept |
| S48 | Live Guard: no bigger trade after a loss, InpLiveGuard=true InpLGCoolMin=0 InpLGSizeMin=30 InpLGNoAdd=false | EURUSD | PASS | 5 | 2 | losing trade risked 40.00; a 0.60 lot trade was cut to 0.20 lot |
| S5 | daily loss lock, InpDailyLossOn=true InpDailyLossPct=1.0 InpDailyFrom=1 | EURUSD | PASS | 4 | 7 | locked at equity 9910.00 (previous tick 10045.00, trigger 9910.00, floor 9900.00) |
| S5 | daily loss lock, InpDailyLossOn=true InpDailyLossPct=1.0 InpDailyFrom=2 | EURUSD | PASS | 4 | 7 | locked at equity 9910.00 (previous tick 10045.00, trigger 9910.00, floor 9900.00) |
| S5 | daily loss lock, InpDailyLossOn=true InpDailyLossPct=1.0 InpDailyPctOf=1 | EURUSD | PASS | 4 | 7 | locked at equity 9910.00 (previous tick 10045.00, trigger 9910.00, floor 9900.00) |
| S5 | daily loss lock, InpDailyLossOn=true InpDailyLossPct=1.0 InpResetHour=8 | EURUSD | PASS | 4 | 7 | locked at equity 9910.00 (previous tick 10045.00, trigger 9910.00, floor 9900.00) |
| S13 | max drawdown lock, InpMaxDDMode=2 InpMaxDDPct=2.0 | EURUSD | PASS | 4 | 1 | DD locked at equity 9890.00 (trigger 9890.00 floor 9870.00) |
| S13 | max drawdown lock, InpMaxDDMode=3 InpMaxDDPct=2.0 | EURUSD | PASS | 4 | 1 | DD locked at equity 9810.00 (trigger 9820.00 floor 9800.00) |
| S9 | over-risk reduce, InpMaxRiskPct=1.0 InpOverRisk=2 | EURUSD | PASS | 1 | 0 | |
| S47 | Live Guard: pause after a loss, InpLiveGuard=true InpLGCoolMin=10 InpLGSizeMin=0 InpLGNoAdd=false | EURUSD | PASS | 7 | 2 | loss at 01:00:40; the trade 60 s later closed (strike 1); the trade 10 min 30 s later kept |
| S48 | Live Guard: no bigger trade after a loss, InpLiveGuard=true InpLGCoolMin=0 InpLGSizeMin=30 InpLGNoAdd=false | EURUSD | PASS | 5 | 2 | losing trade risked 40.00; a 0.60 lot trade was cut to 0.20 lot |
More symbols and an EUR account · hedging · 1-minute OHLC · 2026-09-14 → 09-19
| # | Scenario | Symbol | Result | Checks | Events | Notes |
|---|---|---|---|---|---|---|
| S1 | risk sizing | XAGUSD | PASS | 80 | 16 | B SL5 vol=0.40 risk=100.00/100.00 / B SL20 vol=0.09 risk=90.00/99.00 / B SL50 vol=0.04 risk=100.00/100.80 / B SL150 vol=0.01 risk=75.00/100.62 / B SL5 vol=1.00 risk=250.00/250.00 / B SL20 vol=0.25 risk=250.00/250.00 / B SL50 vol=0… |
| S1 | risk sizing | XPTUSD | NO-CHECKS | 0 | 0 | |
| S1 | risk sizing | EURGBP | PASS | 80 | 16 | B SL5 vol=1.47 risk=99.51/100.00 / B SL20 vol=0.37 risk=100.16/100.30 / B SL50 vol=0.14 risk=94.76/100.30 / B SL150 vol=0.04 risk=81.23/100.29 / B SL5 vol=3.69 risk=249.76/250.00 / B SL20 vol=0.92 risk=249.06/250.00 / B SL50 vol=0… |
| S1 | risk sizing | AUDCAD | PASS | 80 | 16 | B SL5 vol=2.77 risk=99.87/100.00 / B SL20 vol=0.69 risk=99.51/99.82 / B SL50 vol=0.27 risk=97.35/99.79 / B SL150 vol=0.09 risk=97.35/99.74 / B SL5 vol=6.93 risk=249.86/250.00 / B SL20 vol=1.73 risk=249.50/250.00 / B SL50 vol=0.69 … |
| S1 | risk sizing | EURJPY | PASS | 80 | 16 | B SL5 vol=3.06 risk=99.70/100.00 / B SL20 vol=0.76 risk=99.05/99.24 / B SL50 vol=0.30 risk=97.74/99.10 / B SL150 vol=0.10 risk=97.74/99.08 / capped by margin / B SL5 vol=3.86 risk=125.75/250.00 / B SL20 vol=1.91 risk=248.88/250.00… |
| S1 | risk sizing | NZDUSD | PASS | 80 | 16 | B SL5 vol=2.00 risk=100.00/100.00 / B SL20 vol=0.49 risk=98.00/99.96 / B SL50 vol=0.19 risk=95.00/99.93 / B SL150 vol=0.06 risk=90.00/99.93 / B SL5 vol=5.00 risk=250.00/250.00 / B SL20 vol=1.25 risk=250.00/250.00 / B SL50 vol=0.50… |
| S1 | risk sizing | USDCAD | PASS | 80 | 16 | B SL5 vol=2.77 risk=99.91/100.00 / B SL20 vol=0.69 risk=99.66/100.06 / B SL50 vol=0.27 risk=97.70/100.05 / B SL150 vol=0.09 risk=98.41/100.05 / capped by margin / B SL5 vol=5.14 risk=185.39/250.00 / B SL20 vol=1.73 risk=249.85/250… |
| S1 | risk sizing | AAPL | PASS | 60 | 12 | B SL5 refused: stop too close: spread 1.0 pips, stops level 5.0 pips / capped by margin / B SL20 vol=28.00 risk=5.60/100.00 / capped by margin / B SL50 vol=28.00 risk=14.00/99.94 / capped by margin / B SL150 vol=28.00 risk=42.00/1… |
| S1 | risk sizing, account in EUR | EURUSD | PASS | 80 | 16 | B SL5 vol=2.31 risk=99.65/100.00 / B SL20 vol=0.57 risk=98.48/100.10 / B SL50 vol=0.23 risk=99.60/100.11 / B SL150 vol=0.07 risk=91.73/100.10 / capped by margin / B SL5 vol=5.25 risk=226.46/250.00 / B SL20 vol=1.44 risk=248.81/250… |
| S1 | risk sizing, account in EUR | XAUUSD | PASS | 80 | 16 | B SL5 vol=2.31 risk=99.61/100.00 / B SL20 vol=0.58 risk=100.04/100.74 / B SL50 vol=0.23 risk=99.17/101.19 / B SL150 vol=0.07 risk=90.54/100.96 / capped by margin / B SL5 vol=2.56 risk=110.37/250.00 / B SL20 vol=1.44 risk=248.34/25… |
| S1 | risk sizing, account in EUR | GBPJPY | PASS | 80 | 16 | B SL5 vol=3.55 risk=99.74/100.00 / B SL20 vol=0.88 risk=98.90/99.00 / B SL50 vol=0.35 risk=98.33/99.43 / B SL150 vol=0.11 risk=92.71/99.41 / capped by margin / B SL5 vol=3.46 risk=97.21/250.00 / B SL20 vol=2.22 risk=249.48/250.00 … |
| S1 | risk sizing, account in EUR | AUDCAD | PASS | 80 | 16 | B SL5 vol=3.21 risk=99.82/100.00 / B SL20 vol=0.80 risk=99.50/99.82 / B SL50 vol=0.32 risk=99.51/99.79 / B SL150 vol=0.10 risk=93.29/99.74 / B SL5 vol=8.04 risk=250.00/250.00 / B SL20 vol=2.00 risk=248.75/250.00 / B SL50 vol=0.80 … |
| S5 | daily loss lock, account in EUR | EURUSD | PASS | 4 | 7 | locked at equity 9905.12 (previous tick 9961.19, trigger 9910.00, floor 9900.00) |
| S13 | max drawdown lock, account in EUR | EURUSD | PASS | 4 | 1 | DD locked at equity 9801.58 (trigger 9820.00 floor 9800.00) |
| S5 | daily loss lock, deposit 100000 (5 lots of silver need 15,796 margin) | XAGUSD | PASS | 4 | 7 | locked at equity 98425.00 (previous tick 100125.00, trigger 99100.00, floor 99000.00) |
Final build (the tested and shipped file), 2026-10-07
Every live test below ran on the final build (57ac74f0…, the same file the Strategy Tester runs above used), on the
same hedging and netting demo accounts, with real orders. Times of fills and closes are the terminal's own trade
journal (Logs\20261007.log), not the EA's.
| Test | What happened (measured) |
|---|---|
| Live Guard, the revenge sequence (hedging) | A loss of $0.10, then re-entries 2 s and 8 s after it: the guard closed both (its close order left 24 ms and 403 ms after each fill; closed 164 ms and 542 ms after the fill): strike 1, then strike 2 and a 15-minute pause, with the chart covered. A trade during the pause was closed (close order 23 ms after the fill, closed 159 ms after it): strike 3, no new trades until the daily reset. The UI test hook was on during this test (it writes the panel's object map for the click driver; in that run a panel pass took 47.82 ms on average, against 0.75 ms without it in the panel-speed test below). |
| The wait after a loss | BUY clicked with 3:37 of the 5-minute wait left: refused on the panel ("Live Guard: wait 3:37 after the loss"); the trade journal shows no order sent. |
| No bigger trade after a loss | A $0.10 loss on a 0.10-lot trade with a 20-pip stop (risk $20). Then 1 % risk was asked: the panel showed "0.17 lot · risk $20.40 · Live Guard cap", and BUY opened 0.17 lot with a 12-pip stop, risk $20.40 ("Live Guard: no bigger than the last loss"), with no strike. |
| Set-up, real clicks | FTMO 2-Step, phase 1 in three clicks; before saving, the panel showed the rules in money: account size $10,000 (the first deposit), daily loss 5 % = $500 from the day-start balance, max loss 10 % static (floor $9,000), the day starting at 01:00 server time (midnight in Prague), target 10 % = $1,000 and at least 4 trading days. |
| Take a break, real clicks (simple view) | 15 minutes chosen: "no new trades until 14:15; open trades keep their stops and are still managed". BUY clicked during the break: refused ("On a break until 14:15: no new trades (you chose it)"); the trade journal shows no order sent. |
| Pre-trade checklist, real clicks | Three items (Setup valid, News checked, Stop placed). BUY clicked with all three open: refused ("tick your checklist first (3 items left)"), no order sent; after the three were ticked the BUY and SELL buttons came back. |
| The other new views (screenshots) | The ATR stop on the TRADE tab; "Your plan", "Pace" and "Size caps" on the GUARD tab; the last 7 days on the CHALLENGE tab; the MONITOR pill in monitor-only mode; the light theme in the simple view and on the three tabs. |
| Panel layout probe (the EA's own object map) | 24 views: the set-up steps, the simple view with and without the lines and minimised, TRADE with and without the lines, More, GUARD, CHALLENGE, the same at the two bigger sizes, back to normal and minimised. In every one, every button and edit box lay inside the panel and no two overlapped. |
| Telegram not allowed in MetaTrader | The log and the panel said: "Telegram is blocked by the terminal: add https://api.telegram.org in Tools > Options > Expert Advisors > Allow WebRequest". |
| Panel buttons, real clicks (3 buys + 2 sells of 0.10 lot) | Close buys closed the 3 buys, Close sells the 2 sells; Close ½ halved all 5. Closing in parallel (the default): Close + found none in profit at that moment, Close – closed the 4 then at a loss in 150 ms, and Close all closed 5 positions in 156 ms. One by one (that option off): Close + closed 3 in 434 ms and Close – the other 2 in 292 ms; Close all took 706 ms for 5. The 0.50 % risk chip sized a buy and a sell at 0.23 lot (risk $46 each). A pending order was placed at the entry line in each run (a buy stop, then a buy limit, 0.47 lot); each filled within 1.3 s, the line being next to the price, so Delete pending had nothing to delete there (next row). |
| Netting account, self-tests | S8, S9, S12 and S18 passed. S9: 2.00 lot cut to 0.48 (risk $96.00, limit $99.27). S12: a stop added at $99.00 risk (limit $99.23). S18: an add of 0.60 lot risking $119.70 cut to 0.49 lot ($97.76, limit $99.16); the reversal (a sell of 0.50 lot) kept its own stop and its 1R (risk $98.50). |
| Three charts on one account | One guard, one manager per symbol. After a losing trade (Pause after N losses in a row set to 1, 60 minutes), the cooldown was written to the shared state; a GBPUSD trade opened during it, on another chart, was closed at once; 140 s later the cooldown was still in the file. |
| Guard failover | The guard's chart was closed; another chart took over in 203 ms, kept the cooldown, and during it deleted a pending order and closed a new trade. |
| Full terminal restart | MetaTrader was closed and started again with the default inputs: the cooldown was still on ("trading was locked: cooldown after losses"), and the defaults, looser than the test's, were held until the next daily reset ("looser settings start at the next daily reset … until then today's stricter values apply"). |
| Algo Trading off | The guard alerted "the guard cannot close or block trades: Algo Trading is off in the terminal"; the panel showed ALGO OFF. |
| A Live Guard pause through a full restart | Two strikes and the 15-minute pause, then MetaTrader closed and started again with the locks kept: the panel opened locked on the pause, with its two strikes. |
| MetaTrader started without a connection (a firewall rule on this terminal alone, removed after the test) | The guard waited ("waiting for the account's data (MetaTrader is still connecting): no rule is checked until it is there"; the panel said OFFLINE); once the block was lifted and the data arrived: "the account's data is there (hedging, balance 9581.61 USD): every rule is checked from now on". No false lock. The build before the fix locked trading twice in the same test, at "equity 0.00" (reports\offline_probe_old.txt). |
| Hotkeys | B opened a 0.47-lot buy (risk $94; the order took 141 ms); C closed it in 138 ms. |
| A planning line dragged with the mouse (real mouse messages) | The ENTRY line went from 1.11855 to 1.11756; its label followed ("ENTRY · BUY LIMIT 2.28 lot @ 1.11756": the stop line stayed, so the stop was shorter and the lot larger for the same $48 risk), and the pending order was placed at 1.11756. |
| Panel speed (the UI test hook set aside, 90 s each) | Simple view: 324 updates, 0.75 ms on average, the slowest 21.7 ms. Advanced view with the planning lines: 192 updates, 3.6 ms on average, the slowest 90 ms. The build before the fix, measured the same way: 171.6 ms on average, the slowest 3,552 ms (reports\panel_speed_before.txt). In the other live tests the hook was on: it also writes the panel's object map for the click driver, which asks the chart about every object, so those runs' "panel speed" lines (2.7–143 ms on average) are not the panel's. |
| Other EAs' charts closed while locked (the chart vault) | A second chart ran another EA (a "Hello" EA that logs when it starts). With trading locked, TradeWarden saved that chart as a template and closed it ("closed 1 chart(s) of other EAs (Hello on EURUSD); they open again when the lock ends"); when the lock ended it opened the chart again from the template, and the Hello EA started again on it (its "hello" line with the account number). |
| Straddle, real click (gold) | A 0.39-lot buy stop at 4122.15 and a 0.39-lot sell stop at 4119.75 in one OCO group. 28 s later the sell stop filled; TradeWarden's cancel of the buy stop left 287 ms after the fill (trade journal) and was done 424 ms after it. |
| Common break-even and Close + (gold, 3 buys + 2 sells of 0.10 lot) | Automatic common break-even: once the price had been 3.70 pips beyond the 2 sells' average entry (4120.230; trigger 3 pips), both sell stops sat at 4120.18 = average − 0.5 pip. Then Close + was clicked: it closed exactly the 2 positions in profit (+$3.60, +$6.60) in 150 ms and kept the 3 at a loss. |
| News window, hedging | 22 events loaded for 48 h. Inside the window of "USD EIA Crude Oil Stocks Change": the pending order was deleted and the position "closed before the news". |
| News window, netting | 0.10 lot added inside the window was removed at once ("added volume 0.10 blocked and closed"); both pending orders were deleted; the position from before the window was kept (closing positions was off in this run). |
Delete pending on a real broker order (tools\live_delete_pending.ps1, run after the suite) |
The ENTRY line dragged 10 pips below the price, then the pending button: a BUY LIMIT of 4.30 lot at 1.11568 (the stop line 1.1 pips under it, so a large lot for the same $48 risk). More → Delete pending: "1 pending order(s) deleted"; the trade journal shows the cancel, done in 149 ms; the order never filled. |
| Hidden stop, real click (stealth on, a 1.5-pip stop and a 1R target) | BUY 4.33 lot (risk $64.95; the lot was capped by the free margin). The broker saw only the emergency stop 10 pips further (1.11562) and no target; the hidden stop 1.11662 and target 1.11692 stayed in TradeWarden. 110 s later the price reached the hidden stop and TradeWarden closed the trade at 1.11662, the hidden level itself (the close order took 151 ms). |
Every MetaTrader shutdown in this run was clean: the Experts log has no "Abnormal termination" from the start of the run to its end (the earlier runs that day had 9, see Limits).
Bugs the tests found in 1.20 (all fixed in this build)
| Found by | Bug | Fix |
|---|---|---|
| S48, the new test (Strategy Tester) | The stop of a closed trade was read from its closing order. TWOpeningSL found the order that opened the trade but read its stop after the loop, which returns the last order the loop selected (the close, stop 0). So a closed losing trade's risk counted as 0, and "after a loss, no bigger trade" did nothing. Present since 1.10, where it never showed: 1.10 only judged open trades, which have one order. |
The stop is read inside the loop, from the opening order itself. S48 passes on hedging and netting (a 0.60-lot trade cut to 0.20); mutation M17 (the old code) makes it fail. |
| First live Live Guard run (demo) | Re-entries were closed for the wrong reason: "no stop loss and the max-risk stop cannot be placed". The new size cap used "no cap" (the largest number) as a limit. | No size check when there is no cap. Live on the final build, re-entries are closed as "opened 2 s after a losing trade". |
| First live Live Guard run (demo) | A loss that had just closed was sometimes not seen yet: the guard looked for the last loss up to the server clock it had, which can lag the deal's own time. | The last loss is looked up to the server time plus 120 s. |
| S54, the new panel test | The panel and the guard disagreed by up to a second at the end of the pause. The panel counted the pause in seconds and the guard in milliseconds; at the boundary the panel sent a trade that the guard then closed, with a strike the trader did not earn. | One clock for both: the pause is counted from the loss's millisecond close time, the panel waits one second more, and the guard's boundary is exclusive. |
| Live demo, panel | "This week +$9,610" on the demo account: the weekly and monthly result counted the account's deposit as profit. | Week and month count the trades' own result (closed plus open), so deposits and withdrawals never move them (S43 and S44 check the lock from the trades). |
| Live demo, set-up | After the set-up, the day rolled over one step late, with the old reset hour, and wrote a stray day summary. | The new reset zone is applied before the day roll. |
| Live demo, panel screenshots | The headline was invisible (its object name clashed with the header's); picking a phase re-picked the firm (one object name was the prefix of another); texts longer than 63 characters were cut by MetaTrader; the full-chart pause screen did not show for a day lock that came with a pause; the locked headline was cut ("Live Guard: done for t…"). | Renamed objects; the more specific name is matched first; every text is split or shortened below 63 characters; the pause screen shows for any Live Guard lock; the locked headline is short ("Locked until 01:00: Live Guard") with the strike and reason on the line below. |
| 1.10 limit "long messages are cut at the panel's edge" | A refusal reason longer than the line above the BUY / SELL buttons was cut, e.g. "Live Guard: no adding to a losing trade (#10842045…". | That line shows the reason's short form ("Live Guard: no adding to a losing trade") so the buttons never move; the full text is its tooltip, and the message under the buttons shows it in full, over two lines, when the button is clicked. |
| Test review | S46 never had a profitable day, and S52 never had a day that ended above the start, so the best-day rule and FTMO 1-Step's rising floor were not really exercised. | S46 now runs four days including a profitable close; S52 ends a day above the start and checks the floor rises. |
| Live test script | The script's "losing trade" closed at $0.00 once (a tick with no spread), so there was no loss for the guard to act on, and the run looked like a failure. The guard was right. | The script waits until its trade really is at a loss before closing it, and says so when a run is void. |
| Live stealth test (second round) | The live stealth test opened no trade in 20 minutes. Its script still clicked the BUY button at the fixed point where 1.10's panel had it; the 1.20 panel has no button there. TradeWarden was not at fault. | The script clicks BUY by its name in the simple view, like every other 1.20 live test. |
| S58, the new test (first run) | The test failed on its own set-up: it traded USDJPY before the Strategy Tester had loaded a price for it, so the order was refused ("sl: -0.300 [Invalid stops]") and the check "another EA's trade is kept" had no trade to look at. TradeWarden was right. | The test waits for a price on every symbol it trades. S58 passes on hedging and netting. |
| S1 on AAPL, previous build | S1 still looked for the refusal's old wording ("stop loss too close"), so a correct refusal on AAPL counted as a failure. | S1 reads the current wording ("stop too close"). |
| Panel text | With Pause after N losses in a row set to 1, the headline read "1 losses in a row". | It reads "after a loss". |
| Live check of the third round (demo) | MetaTrader started without a connection locked trading. At a terminal start the EA runs before the account's data arrives: the equity read 0.00, so the guard set the max-drawdown lock (which stays until it is reset by hand) and the daily-loss lock, and positions loaded afterwards would have been closed under them. The automatic reset hour also came out three hours off (22:00 instead of 01:00), and a clean-up after a minute would have dropped the state of every open position. | The guard checks nothing until the account is there (connected, logged in, a balance, settled for 3 s); only then does it work out the reset hour, the day and week starts and the open positions. The panel says OFFLINE meanwhile; the manager and the clean-up wait too. A test that cannot pass while this is broken: MetaTrader started with its connection blocked for 40 s by a firewall rule on that terminal alone. The build before the fix locked twice at "equity 0.00"; the fixed build waited, then logged "the account's data is there (hedging, balance …)" and locked nothing. |
| Live panel timing (demo) | The panel took 171.6 ms per update on average, and up to 3.6 s (simple view, measured without any test hook): every pass asked the chart whether each object existed (ObjectFind waits until the chart has run every queued command), walked every object on the chart for the hidden-stop lines, and wrote every property again. A panel that freezes MetaTrader is the most common complaint in the bad reviews of other trade panels. | The panel keeps its own list of objects and of what each one shows, writes only what changed and redraws only then; the chart's size and colours and the planning lines' prices are read at most once a second (a dragged line at once). Measured on this build: 0.75 ms on average (slowest 21.7 ms) in the simple view, 3.6 ms with the planning lines (slowest 90 ms). A live test drags the entry line with the mouse: its label and the pending order follow it to the price. |
| S65, the new journal test (netting) | A reversed netting trade was written as one mixed trade. MetaTrader keeps a netting position's identifier through a reversal, so the journal gave the trade after the reversal the old side and entry, and the weekly report counted two trades as one (4 instead of 5). | One definition of a trade for the journal and every statistic: a reversal ends one trade and starts the next with the reversing order's price and stop, and partial exits are parts of the same trade. S65 checks it on netting; mutations M43 and M49 make it fail. |
| Mutation M31 | A test passed without seeing its event. With the per-symbol loss rule switched off, S60 waited for a close that never came and ended as PASS, having checked only its own set-up. | Every scenario from S56 on fails when it does not reach its end. M31 is caught now. |
| S65 on netting, the test's own code | CTrade::PositionClosePartial sends nothing on a netting account (it returned false and left the previous request's result in place), so the test's partial close never happened. TradeWarden was right. |
On netting the test closes a part with an opposite order of that size. |
Limits
- MetaTrader cannot refuse a manual order before it is sent. The panel refuses before sending (no order reaches the server: measured during the wait after a loss). A trade from the MT5 phone app, the web terminal or one-click trading is closed right after it opens, so its spread is lost. This is true of every MT5 guard.
- Removing TradeWarden from the chart, or closing MetaTrader, turns the guard off. The accountability partner (if set) gets a Telegram message when TradeWarden is removed; nothing can stop a trader from doing it.
- Telegram needs one step in MetaTrader: Tools → Options → Expert Advisors → Allow WebRequest for listed URL →
https://api.telegram.org. No program can set it (no setting file or message does it). Until it is set, the panel and the log say exactly that (measured live: "Telegram is blocked by the terminal: add https://api.telegram.org …"). Phone push through the MT5 app needs only the MetaQuotes ID. - The guard acts on ticks. Measured with real ticks (S5): a 5-lot test position on a $10,000 account lost $40 between two ticks. The lock fired on that very tick, but $5 under the floor, because the safety buffer ($10) was smaller than one tick's move. Set the buffer larger than what one tick can move with your largest position.
- Hidden stops fill at the terminal's latency (137 ms here). In a fast move the server's emergency stop can fill first (measured on gold in 1.10: $165 lost instead of $99).
- OCO is client-side. One quote can fill both sides; the later fill is closed at once.
- The news filter works on a live terminal only (the MT5 calendar is not in the Strategy Tester).
- The guard works only while MetaTrader 5 runs with Algo Trading on: a VPS for funded accounts.
- "Reset every lock" is copied into templates: never save a template while it is on.
- Netting, an add at a partial-close level: volume added in the same instant the price crosses a partial-close level can make that one partial close use the old volume. The window is one cycle (under 0.5 s); not reproduced in a test.
- Automated clicks: in the live UI runs, a few posted clicks (about 1 in 40, always seconds after another click that re-drew the panel) never reached TradeWarden (the button showed pressed, nothing else happened); clicking again worked. The same clicks with 3-second gaps all worked (8 of 8 tab changes at 100, 115 and 130 %). It looks like a property of posted window messages, but it was not proven with a physical mouse.
- "Abnormal termination" while MetaTrader closes: in the test runs before the final one, MetaTrader wrote it for TradeWarden 8 times on 2026-10-07 (and once for a test script), always while a test script was closing the terminal: TradeWarden was still busy when MetaTrader stopped it, and its exit lines were missing. In the final live run: none. The cause was not found; a suspect is the UI tests' hook, which asks the chart about every object while the chart is being closed. The state file is written on every change, so locks and strikes are kept (the restart test shows it); only the "MetaTrader was closed" alert to a partner may be lost in that case.
- A break cannot be cancelled from the panel, but it is not a vault. Removing TradeWarden from the chart ends it, and so does the Reset every lock input; both send the accountability partner a message (if one is set).
- Protect today's profit acts on ticks, like every limit: a fast move between two ticks can take the day below its line before the lock fires; with close every trade on, the trades close at market.
- Trade only these symbols matches by prefix, so a symbol's suffix (EURUSD.r) is covered; list full names (EURUSD, not EUR).
- FundedNext's 3 % rule: FundedNext defines the risk as "the maximum potential loss on a trade at a time, based on stop-loss placement, the maximum realized and unrealized (Floating) losses across all trades, calculated against the initial account balance". TradeWarden caps the stop risk of the open trades at 3 % of the initial balance. If FundedNext also counts losses already realized, keep a margin. A trade without a stop has unknown risk, so with this rule the panel refuses new trades until every open trade has a stop.
- The discipline score counts what TradeWarden enforces: a Live Guard strike, or a manual or panel trade your rules closed or cut. A rule you keep only in your head is not in it.
- Monitor only does nothing: every rule alerts once a day per rule and trade, and nothing is closed, cut, refused or locked. The checklist on the panel still asks.
- Phone notifications hold 255 characters (MQL5 documentation): a longer daily summary or weekly report is sent in parts of whole sentences. Not tested with a real phone.
- Hidden pending orders live in TradeWarden, not at the broker: while MetaTrader is closed or not connected, a hidden order is not sent when the price reaches it. Use real pending orders when you cannot keep MetaTrader running.
- At a terminal start no rule is checked until the account's data is there (OFFLINE on the panel), usually a few seconds after the connection; a trade opened in those seconds is judged when the guard starts.
- This is version 1.20 with no users yet.
Not covered by tests yet
These work in the code but no test exercised them; treat them as untested: - Telegram to a real chat: the message format was checked against Telegram's API with a fake chat ("chat not found"), and the blocked-address hint live; no message was delivered to a real chat in these tests. MT5 phone push: no MetaQuotes ID is set on the test terminal. - Windows display scaling of 125 % / 150 %: only the panel's own size buttons (90–175 %) were tested; the code scales by the screen's DPI. - A trial that expires while it runs: the date is checked when TradeWarden starts, so a running guard is never switched off in the middle of a trade; it stops at its next start. Only "expired at start" was tested live. - Position sizing settings: risk as "% of equity", and a non-zero commission per lot. - News filter: the 30-second retry when the calendar is not loaded yet. - Pending-order trailing skipping straddle orders. - Close-all retry with a real closed market (tested with refusals simulated in the Strategy Tester, S41); OCO pairs with a broker that really rewrites comments (tested in the Strategy Tester, S40). - Symbols and currencies: indices (MetaQuotes-Demo has them with trading disabled), crypto (not offered there), platinum (see the runs that did not pass, if any), and account currencies other than USD and EUR. - Failover by heartbeat: a chart that stops responding without closing (the 15-second path). - Third-round rules on a live account: trading hours, days and direction, the spacing and trades per hour, the max lot, the per-symbol loss cap, the time stop, fixed lots, the ATR stop, pending expiry, the journal, the weekly report and the discipline score were tested in the Strategy Tester (S60–S68, hedging and netting). Live, on the demo account: the checklist with real clicks, the GUARD rows, monitor-only mode, a dragged planning line, a start without a connection, the chart vault (another EA's chart closed while locked and opened again, with its EA) and the light theme (screenshots). Stop-limit, hidden and grid orders and the lock password: in the Strategy Tester only (S69–S72, hedging and netting; the password on hedging). - Second-round rules on a live account: a break for the rest of the day across a real daily reset, protect today's profit, the symbol list and FundedNext's 3 % rule were tested in the Strategy Tester (S56–S59, hedging and netting, three market weeks and real ticks); live, only the 15-minute break was taken (with real clicks).
Against the market (product pages read 2026-10-05 to 2026-10-07)
The side-by-side table of 16 tools is in COMPARISON.md: 58 rows of what a trade manager and a prop-firm guard do (the 51 rival features TradeWarden has and 7 only TradeWarden has), then the 3 features of the table it does not have and, beyond the table, what Trade Assistant 38 in 1's page lists that TradeWarden does not have (one-click copy or reverse, close by, price alerts, scheduled orders, chart tools) and the finer steps on Forex Trade Manager's page (break-even and trailing in up to 4 levels, limit pullback orders, splitting a large trade). A summary:
| Capability | Forex Trade Manager ($99, 766 reviews) | Yeti RiskManager Pro ($99, 0) | Prop Firm Risk Guardian ($99 or $30/mo, 0) | DisciplineGuard Pro ($40, 0) | Meridian (NinjaTrader, $49.99–69.99/mo) | TradeWarden 1.20 |
|---|---|---|---|---|---|---|
| Lot from risk, lines with money on the chart | ✓ | – | – | – | – | ✓ (zones, $ and % on each line) |
| Daily / max loss guard with prop presets | Equity Protect | ✓ (6 presets) | ✓ | – | – | ✓ (7 presets, rules shown before you start) |
| Weekly / monthly loss cap | – | ✓ | – | – | – | ✓ (trades only, deposits ignored) |
| Pause after a loss | – | cooldown | – | ✓ | – | ✓ (to the millisecond, panel and guard agree) |
| No bigger trade after a loss | – | – | – | – | – | ✓ (cut to the losing trade's risk) |
| No adding to a losing trade | – | – | – | – | – | ✓ |
| Stepped response (warn → pause → stop) | – | – | two-stage stop with a countdown | – | warning, typed confirmation, countdown, entries blocked | ✓ (strikes 1 / 2 / 3, full-chart pause screen) |
| Looser settings start tomorrow | – | – | – | – | – | ✓ |
| Accountability partner alerts | – | – | – | – | – | ✓ (Telegram) |
| Challenge board (target, days, best-day rule) | – | – | – | – | – | ✓ (FTMO 1-Step 50 % rule) |
| Hidden stops, OCO, trailing, partial closes | ✓ | – | – | – | – | ✓ (and hotkeys) |
| Published test report with every run | – | – | – | – | – | ✓ (this file) |
| A simple view, every tool one click away | – | – | – | – | – | ✓ (simple by default, remembered per chart) |
| A break you set yourself, with no undo | – | BLOCK / UNBLOCK buttons (can be undone) | HALT NOW (flattens the account) | – | – | ✓ (15 min / 1 h / rest of day) |
| Stop for the day after giving back part of the day's profit | – | Profit Lock | – | – | – | ✓ (from a start level, a share of the day's best) |
| Trade only listed symbols | – | – | – | – | – | ✓ |
From each product's own page; a "–" means the page does not list it. Meridian is for NinjaTrader, not MetaTrader; its row is from its announcement post, which names a 0–100 score from 7 behaviour signs without listing them one by one.
Second round of research (2026-10-07). The guard with the most reviews on MQL5 is DrawDown Limiter ($99, 25 reviews, 5.0), whose panel adapts between wide, standard, dense and minimal layouts. Among the 70 newest MT5 utilities, about 25 were prop or risk guards, none with a review yet. We read 687 reviews of 18 MT5 trade managers and guards (every low-star review and the newest ones): in the 518 good reviews, support was praised most (154), then a tool that is easy or simple (96); in the 61 bad ones, a panel that freezes or lags MetaTrader (14) and a seller with no answer or no manual (14) were the top complaints, and one guard "didn't work with the limit I have set. I lost a 540 euros FTMO test". On TopstepX (futures), "More Trader Configurable Risk Tools" (daily limits, lockouts, a trade clock, a trailing daily limit, symbol blocks) had 641 votes on its feature board; MT5 has none of these built in.