Home / Indicators / Automated Strategies / OFS F2 FiboFade
SUBSCRIPTION OFS F2 FiboFade

OFS F2 FiboFade

A fully automated fade strategy for 1-minute charts. It draws the fibonacci levels of yesterday's daily candle, waits for price to touch one of them, and takes the trade AGAINST the approach - but only when the footprint of that single candle shows buyers running out of steam and the last three days have been calm. Fixed stop, a target on the next fibonacci level or a fixed distance, a time stop, flat before the daily break - and a built-in auto backtest that finds the best setup on the chart you give it.

Current version2.6.6 · 2026-09-15
CompatibilityATAS 8.0.14+ and ATAS X 8.0.14+
RequirementsWindows 10/11 with classic ATAS or ATAS X, or macOS Tahoe and newer on Apple Silicon with ATAS X (the platform brings its own .NET 10 runtime), a 1-minute chart with cluster (footprint) data
UpdatesAll future updates included
DeliveryATAS catalog (automatic) + download in your account
Choose your license VAT included
✔ Activates on your ATAS e-mail automatically after payment — the indicator appears directly in your ATAS catalog.

Description

OFS F2 FiboFade trades one specific moment: the instant an extended move meets a level that was drawn before the day even started - and the aggressive buyers pushing it there run out.

The map, drawn from yesterday

Every day the indicator measures yesterday's daily candle and stretches eight fibonacci levels across its range. After a red day the levels count down from the high; after a green day they count up from the low. That map is fixed for the whole day - no repainting, no adjusting, nothing that moves once the day begins. Days with almost no volume (weekends, holidays, half sessions) are not stored, so a Monday always trades against a real Friday.

The touch, and why the entry is against it

When a 1-minute candle touches a level, the direction is decided by where price came FROM: arriving from above means the trade is a long, arriving from below means a short. The strategy is fading the approach - it is not a breakout system. After a level is touched it goes quiet until price has clearly moved away from it, so one level cannot fire again and again inside the same drift.

The evidence: buyers running out

A touch alone is worthless, and this is the part that makes the strategy what it is. The footprint of the touching candle has to show it: the delta at the top of the candle, a run of buy imbalances up the price ladder and the candle's own delta each have a measured threshold in the active setup - three separate conditions, each of them a row in TUNE. Note what that means - the evidence is BUY-side for both directions. The strategy hunts exhausted buying, so a short is taken exactly where buyers push hardest into the level and stall. That asymmetry is not an oversight; it is the edge, and it is preserved bit for bit from the original research.

The brake

One more gate decides whether the day is traded at all: if the market has risen more than the setup's 3-day limit, the day is skipped. Fading a market in an established climb is what kills fade strategies - in the five-month test that single filter cut a population of 124 trades that lost 4,489 ticks between them.

The trade

Entry is a market order on the close of the signal candle. The bracket is deliberately simple: a fixed stop, and either a fixed target or - with the level target on, as in every supplied setup - the nearest fibonacci level of the day in the trade direction that is far enough away, so the target knows where the next obstacle is. Everything is in ticks and editable in TUNE. There is no partial exit, no scaling, no trailing - so ANY quantity works, and the default is 1 contract. A trade that reaches neither side within the time stop (90 minutes in the supplied setups; adjustable, or off) is closed at market, everything is flat by 22:58 Bratislava, entries are taken only between 00:05 and 22:45, and never more than one position at a time.

The measured result

The shipped default is the PF21 setup, measured on 19 months of MNQ tick tape (every exchange trade from March 2025 to September 2026, 1 contract, after 2 ticks of cost per trade): 283 trades, 50.2% win rate, +22,490 ticks, profit factor 2.10, deepest equity dip 956 ticks, 17 of 19 months profitable. About 0.7 trades per trading day: this is a patient system, not a scalper.

Honest about its own limits: the setup was found on the same tape it is measured on - positive on both halves of the tape separately, but not a clean holdout - and the calibration is frozen exactly as it was validated - the thresholds above are settings you CAN change, but the published numbers belong to these values.

The control panel

A panel at the bottom center of the chart is the cockpit, and it keeps a constant size instead of growing with its own text: a click-able ON/OFF button, the state of the incoming data (cluster data present, time and age of the last processed bar), the state of the level map (how many daily candles are loaded, today's 3-day move against the brake and whether today is tradeable at all), the live position, today's trades with their running result, and the built-in backtest - every signal the strategy would have taken on the loaded history is drawn on the chart with its full bracket, so you watch the strategy work before you ever switch it on.

Next to the title sit nine small buttons of equal width: NET23, PF21 and WR55 (the supplied setups), NET, WR and PF (the setups saved from the auto backtest, dim until something is saved), then FIBO (shows or hides the fibonacci levels), TUNE and ON/OFF. TUNE is a built-in strategy lab. It hard-disables trading and shows every rule of the strategy as a row of buttons, in two columns so the whole window fits a 1080-pixel screen: on the left the signal and the filters - ENTRIES for the quantity, TOP DELTA, IMB RUN, MAX DELTA, BAR DELTA, 3-DAY BRAKE, CALM, RUN SKIP, SPARSE, HISTORY, TOUCH, Y-RANGE and SIDE; on the right the exits - TARGET, STOP, TIME STOP and LEVEL - then a SWITCHES row with the five on/off rules (LOCK, SWEEP, SIEVE, DAY STOP, MAX LOSSES; blue = on) and the auto backtest. A click changes the live setting, the loaded history is replayed at once, and the STATISTICS block (three columns) sums it up over the whole loaded history: Total Trades (TT), Trading Days (TD), Gross Profit (GP), Net PnL, Long and Short with their win rates, Win Rate (WR), Profit Factor (PF), Max Drawdown (DIP), Worst Trade, Worst Day and Worst Run - all in ticks per contract, after costs. Three setup buttons sit in the header next to the title, as in the panel bar: NET23, PF21 and WR55 - complete packages found on the 19-month tick tape, named after what they measured (1 contract, after costs): NET23 the most net under a 1 300-tick drawdown, +23 261 ticks; PF21 the best profit-to-drawdown ratio, profit factor 2.10 with a 956-tick drawdown; WR55 a 55% win rate with all 19 months positive. Each button applies its WHOLE measured package - every row at once, including the level target where the setup uses it - and DEFAULT restores PF21 in one click.

AUTO BACKTEST

In the right column, below the exits and the switches, sits the AUTO row with RUN, X and GRID. RUN replays every combination of the selected values on the bars loaded in the chart - one contract, 2 ticks of cost per trade, the whole loaded history - in the background on all CPU cores but two, and finds the best setup for three goals at once: the highest net ticks, the highest win rate and the highest profit factor. GRID chooses what the run tries: press it and every row switches meaning - a click puts a value into the grid (blue) or leaves it out (dark), a switch in the SWITCHES row cycles off, on and both (half blue = both states go into the run), and NET23, PF21 or WR55 preset the grid to that setup, so you start from something proven and add only what you want to test. The default grid is 2 211 840 combinations. The AUTO row shows the percent while a run is on, and RUN INFO under the results table shows the grid size, the time left, the elapsed time and the combinations done, so you know what you commit to: every value you add multiplies the run, and a few extra rows turn minutes into hours or days - the auto backtest is meant for a powerful computer. X cancels at any moment and keeps the best result so far. MIN TRADES sets how many trades a winner must have: ANY picks the absolute best whatever the count, and a winner below your floor is marked BELOW MIN.

The results table on the right of TUNE compares the three winners side by side - NET, WR and PF: total trades, trading days, net, win rate, profit factor and drawdown (the best value in each row is green). Which value each winner uses is shown right on the buttons: every value in the rows carries small coloured marks - green for NET, amber for WR, blue for PF - and the table headers are underlined in the same colours. SAVE stores a winner as a saved setup; the NET, WR and PF buttons - in the TUNE header and on the panel - apply the saved setups through the same guard as the supplied ones (never during a live trade). Saved setups survive a restart and stay in the table (marked *) until the next run. Every RUN also performs a self-check: the live setup is replayed through the same path as the grid and compared with the live engine, and RUN INFO reports MATCH or MISMATCH - so the backtest is proven to count exactly what you see on the chart. A setup found on a few days is measured on the days it was found on: load months of history, set a sensible MIN TRADES, and judge a winner by its trade count and drawdown before you trust it.

What it does NOT do

It does not split the position, scale in, average down, trail the stop or reverse. It does not read any external data feed, and it needs no subscription beyond ATAS itself - everything it uses is read from the chart in front of it. It does not repaint: levels are fixed when the day starts, and a signal is decided on a CLOSED candle and never moves afterwards. It does not hold overnight. And it does not trade at all while the TUNE window is open - that is a hard block, not a convention.

Execution: what happens on the account

The entry is a market order. The moment it fills, a stop and a target are placed from the REAL fill price, held as a manual OCO pair - the first to fill cancels the other. Beyond that, the execution layer carries a set of safeguards, each written after a specific incident on our earlier live relay: an order is recognised through three independent channels (our own reference, a registry keyed by order id, and the platform's own order list) because any one of them can be lost on its own; a modified order is re-bound, because ATAS replaces rather than edits it; stop prices are snapped to the tick grid AWAY from the entry so the broker cannot reject them asynchronously; the same fill is never counted twice after a reconnect; cancel requests are spaced and limited instead of repeated every tick; the stop size is kept equal to the position as the broker reports it; the stop and target carry the reduce-only flag where the broker supports it, so a forgotten bracket can only ever reduce a position, never open one; and an independent guard asks once per tick whether there is a real position with no stop on it. Nothing survives a finished trade - every leg is cancelled and kept under watch until it is really dead. Any position left on the account after a trade ends is reported in red on the panel. A stop or target you move by hand is respected and adopted, and a manual close or a flatten from the platform ends the trade - the model follows the account, so the drawn trade, the TODAY row and the next signal line up with what really happened.

Every execution event is written to the ATAS log AND to the strategy's own file, %APPDATA%\OrderFlowSmith\logs\F2_<instance>_<date> (on macOS: ~/Library/Application Support/OrderFlowSmith/logs).log, so two charts running the strategy keep two separate files. Entries, stops, targets, fills, the end of the trade and every error state are recorded. Nothing is logged from the calculation path.

The license is re-checked once a minute while the chart runs, not only when the indicator loads, so a key that expires with the chart left open stops the strategy rather than trading on.

THE SETTINGS, GROUP BY GROUP

01 - License. Recommended Chart (read-only, states the timeframe: 1 minute). License Key - paste the key from orderflowsmith.com here.

05 - Session & Time. Time Zone - how times are shown and entered: UTC by default, a list of zones with summer time, or a Manual Offset. It never changes when the strategy trades - the strategy is anchored to the market's own hours - it only changes how times read, and the DATA row on the panel says 'check Time Zone' when the bar time does not fit. Entry Window with its from and to times, Close At (the daily flat), Day Volume Min (a day below it is not stored as history, which keeps weekends and half sessions out of the level map), History Days Required, and the switches for the night cut and the 0.618 short cut.

06 - Trading. Autopilot ON (default OFF - the strategy never trades until you switch it on, on the panel or here). Trade Quantity (default 1; any number works because the position is never split). Daily Loss Limit in ticks per contract and Max Losing Trades Per Day - the supplied setups carry their measured values, 0 disables either guard.

07 - Strategy. Stop Loss, Take Profit, Time Stop (bars; 0 = off), Re-Arm Distance, Level Target Min Distance and the sweep exit - all in ticks, all pre-set by the active setup.

08 - Filters. The exhaustion thresholds (top delta, imbalance run and ratio, max delta, bar delta), the 3-day brake, calm candle, sparse grid, run skip, lock level after stop and the Entry Sieve. Every one of them is also a row in TUNE, and each supplied setup applies its own complete measured values.

09 - Display. Show Fibo Levels, level and key-level colors, line width, level labels with their position and pixel offsets - the line is drawn in two segments around the label so it never runs through the number. Today's Levels Only. Long and Short colors, entry, stop and target line colors, bracket line width, arrow size, and Show Historical Trades - the drawn backtest.

10 - Panel. Show Panel, position and pixel offsets, font size, Panel Background, TUNE Background and border - all colors with transparency.

11 - Alerts. Alert On Signal (default OFF) and the alert sound.

12 - Telegram. Bot Token, Chat ID, the test message and a switch for each event type - everything off by default.

13 - Auto Backtest. Min Trades For A Winner, Grid Values (the selection made in GRID, stored as text so it survives a restart), Saved NET / WR / PF Setup (the setups stored with SAVE, one line of text each - clear a field to free its button) and Grid (information only).

WHAT WE RECOMMEND

Chart: 1-minute MNQ with cluster (footprint) data and at least two weeks of loaded history. The supplied setups use a one-stored-day minimum gate, and the drawn backtest still needs enough loaded history to show you a meaningful sample. Without cluster data it refuses to trade and says so on the panel, because it cannot read buyer exhaustion.

Check the DATA row on the panel: it shows the time and the age of the last processed bar in your chosen Time Zone. If it says 'check Time Zone', pick your zone in group 05.

Leave groups 07 and 08 alone if you want the published numbers - that calibration is frozen exactly as it was validated. The thresholds are settings you CAN change, and TUNE exists so you can explore them, but every published figure belongs to these values and DEFAULT puts them back in one click.

Keep the complete PF21 filter package if you want its measured configuration; use TUNE deliberately when studying alternatives. Leave alerts OFF unless you want them; they are off by design so the strategy is silent.

Start at quantity 1 and watch the drawn backtest and the panel for a few days before switching the autopilot on. Set the Daily Loss Limit to a number you can accept losing in one day.

Expect roughly 0.8 trades per trading day on MNQ, and expect quiet stretches: the strategy is deliberately selective, and days with no setup are normal, not a fault.

HOW MUCH TO TRUST THE NUMBERS

Everything published here is reproduced by the shipped engine, not copied from a research note. A parity test replays the full five-month dataset through the same engine on every release and must return exactly 75 trades and 6,669.5 ticks, trade by trade; the engine was also checked against the original research implementation and matched 72 of 72 trades on the overlapping data. More than five hundred and sixty automated checks run on every release, covering the state machine, the order register, the close coordinator, the live session layers, the research filters and the auto backtest (its configuration of every combination equals the product's own settings path, trade by trade), and every backtest run performs a self-check against the live engine.

What the numbers cannot tell you is the future. A setup found on the tape it is measured on is not a holdout, and a five-month parity sample is modest. It is a fade strategy, so a strong trend is its natural enemy - that is what the 3-day brake is for, and it cannot catch every case. We searched hundreds of candidate rules across dozens of measurable properties of the entry for a way to recognise a losing trade in advance; the few that held on both halves of the sample became the entry sieve. The rest of the losses are the cost of the entry, not a fault to be filtered out.

Everything - the thresholds, the distances in ticks, the session times, the colors with transparency, line widths, font sizes and panel position - is editable.

Telegram notifications

Both automated strategies can report to your phone. Turn on the Telegram group in the settings and every REAL execution event lands in your Telegram within a second: the entry with the side, quantity and the ACTUAL fill price (never the drawn history), the live stop-loss and target prices from your account, every close with its reason and the result in ticks - and, most valuable of all, execution errors (a rejected order, a hanging bracket), so a problem finds you even when you are away from the screen. The same error repeats at most once per 10 minutes, and a Telegram outage can never delay or block a trade - sending runs in the background, fire-and-forget.

Activation takes two minutes: open @BotFather in Telegram, send /newbot and paste the token it gives you into Bot Token; write any message to your new bot; click Get Chat ID Now - the Chat ID fills itself; click Send Test Message. Done - notifications are off by default and each event type (entries, exits, errors) has its own switch.

Installation guide
1. Create or sign in to your OrderFlowSmith account with the same e-mail address used by your ATAS account. When access to OFS F2 FiboFade is activated and the e-mails match, ATAS delivers the indicator automatically; do not install a DLL manually.
2. Open or fully restart ATAS so the automatically delivered indicator becomes available in the indicator catalogue. Whenever an update is released through ATAS, fully restart the platform; ATAS downloads and loads the new version automatically.
3. Only if the OrderFlowSmith and ATAS e-mails are different, download OFS.F2FiboFade.dll from your OrderFlowSmith account and install it manually: %APPDATA%\ATAS\Indicators for classic ATAS, %APPDATA%\ATAS X\Indicators for ATAS X on Windows, or ~/Library/Application Support/ATAS/Indicators for ATAS X on macOS - or, simplest on both systems, click Add custom indicator at the bottom left of the indicators window and pick the DLL. ATAS X loads a new or replaced file at once; classic ATAS needs a full restart. After every update, download and replace the DLL the same way. If Windows blocked the file, open DLL Properties and select Unblock.
4. Add OFS F2 FiboFade to a 1-MINUTE MNQ chart with cluster (footprint) data and a connected trading account. Load at least two weeks of history so the drawn backtest shows a meaningful sample; the supplied setups themselves use a one-stored-day minimum gate.
5. Open settings, group 01 - License, and paste your key from orderflowsmith.com.
6. Group 05 - Session & Time: pick your Time Zone (UTC is the default; the list includes zones with summer time). It only changes how times are shown and entered - the strategy is anchored to the market's own hours. If the DATA row on the panel says 'check Time Zone', the bar time does not fit the chosen zone.
7. Look at the chart. The fibonacci levels of every loaded day are drawn, and so is every trade the strategy would have taken, with its stop, target and outcome. Open TUNE for the statistics of the loaded history.
8. Before you switch ON: in the Chart Trader panel (classic ATAS and ATAS X) turn the ATAS SL/TP OFF - the indicator places its own stop and target on every fill, and with the platform SL/TP on ATAS would attach a second stop and target from the panel settings to the same fill. When you are ready: set your quantity (any number - the position is never split; default 1) and click ON on the panel. The indicator then places the entry, the stop and the target itself, closes on the time stop and flattens before the daily break.
9. OPTIONAL - Telegram notifications: in Telegram open @BotFather, send /newbot and paste the token into the Telegram group of the settings; write any message to your new bot, click Get Chat ID Now and then Send Test Message. Real entries, exits and execution errors then arrive on your phone; everything is off by default.
Changelog — version 2.6.6
2.6.6 - TUNE WINDOW FITS THE SCREEN.

The TUNE window is about half as tall, so it fits a 1080-pixel monitor with room to spare. The strategy rows now sit in two columns - the signal and the filters on the left, the exits, the day rules and the auto backtest on the right - and the five on/off rules (LOCK, SWEEP, SIEVE, DAY STOP, MAX LOSSES) share one SWITCHES row: blue = on, one click toggles. The statistics use three columns. The values of the NET, WR and PF setups are no longer listed in the results table: every value button carries small coloured marks (green NET, amber WR, blue PF) showing which value each setup uses, and the table headers are underlined in the same colours; the table keeps the results only. In GRID mode a switch cycles off, on and both - half blue means both states go into the backtest. Every row, value, button and metric is still there; the window is wider than the panel. Nothing changed in the strategy, the setups, the grid or the execution.

2.6.5 - MANUAL UPDATE CHECK.

Check For Updates: unticking it and ticking it again now runs the version check immediately and shows the new-version card again, even if you had closed it for that version. Nothing else changed.

2.6.4 - PRODUCT ROW SHOWS THE NAME ONLY.

The Product row in 01 - License now shows the product name only. No internal code is displayed anywhere in the settings. Nothing else changed.

2.6.3 - SETTINGS TEMPLATE: LICENSE HEADER, ALERTS FOR EVERY EVENT, TELEGRAM IN ONE FORM, AUTO BACKTEST GROUP HIDDEN, DIAGNOSTICS. STRATEGY LOGIC, ENGINE AND THE THREE SETUPS UNCHANGED.

Group 01 - License now reads Product, License Key, Website, Version and Check For Updates (Recommended Chart moved to 06 - Trading). 11 - Alerts has a master switch, off by default, with the same four events Telegram can send - On Signal, On Entry, On Exit, On Error - and 12 - Telegram gained Notify Signals, so every event is optional on both channels; the error alert repeats at most once per 10 minutes. The five Telegram rows carry the same names, order and help as every other OFS indicator. 13 - Auto Backtest is no longer shown in the settings window - the saved setups and grid values keep working through TUNE and survive restarts. New 14 - Diagnostics with Diagnostic Log (off by default): one DIAG line per closed live bar in the strategy log. Six duplicate positions in 08 - Filters and three misplaced label settings in 09 - Display were corrected.

2.6.2 - TUNE AND AUTO BACKTEST ALIGNED WITH OFS F4 WAVEFADE; SETUP BUTTON CAPTIONS EDITABLE. STRATEGY LOGIC, ENGINE AND THE THREE SETUPS UNCHANGED.

Same look and feel as F4: the RUN, X and GRID buttons on the AUTO row carry their colours (green, red, blue); the click confirmation frame follows the button even when the panel re-flows and disappears after 40 ms instead of 350; DEFAULT in GRID mode lights only while the grid is the default selection and restores it; RUN INFO under the results table now also reports the state of Backtest From Prints. The Auto Backtest settings (group 13) are ordered as in F4 - Backtest From Prints and Prints History Days first, then Min Trades, Grid Values, the three saved setups and the Grid summary; two settings shared one position before.

GRID workflow: with GRID on, click NET23, PF21 or WR55 to preset the grid to exactly that setup, add the values you want to try and press RUN - the run keeps its own copy of the grid, so you can keep switching setups while it works. This path is now covered by tests.

Button captions: the six setup buttons (NET23, PF21, WR55 and NET, WR, PF) can be renamed in group 10 - Panel, up to 8 characters; empty restores the original name. Only the caption changes - the setup, the saved AUTO setup and every gate behind the button stay the same; the new caption is used on the panel bar, in the TUNE header, in the SAVE rows and in the results table.

2.6.1 - THREE NEW SUPPLIED SETUPS FROM THE TICK TAPE: NET23, PF21 (DEFAULT) AND WR55. STRATEGY LOGIC UNCHANGED.

The supplied setups NET62, WIN30 and WR56 were retired. They came from a 33-month bar tape; replayed on the 19-month MNQ tick tape (every trade print, March 2025 to September 2026) none of them kept its drawdown under 2 000 ticks. The product's own grid was then run on that tick tape - 1 105 920 combinations of every TUNE axis, one contract, after costs - and three setups were chosen. NET23: the most profit under a 1 300-tick drawdown (+23 261 ticks, 340 trades, 17 of 19 months positive). PF21: the best profit-to-drawdown ratio and the new DEFAULT (+22 490 ticks, drawdown 956 ticks, profit factor 2.10, 283 trades, 17 of 19 months). WR55: the calmest (+14 448 ticks, win rate 55 %, drawdown 1 042 ticks, all 19 months positive). The extended filters LOCK, SPARSE, SWEEP, TOUCH, Y-RANGE and SIDE improved none of them and stay off; none of the three uses the daily loss limit or the max-losses guard, both remain available. The buttons on the panel and in TUNE carry the new names; DEFAULT restores PF21. Honest note: like every setup before them, these were found on the same tape they are measured on - the live model on your chart is the real test.

2.6.0 - LIVE = VIRTUAL, THE ORDER OF PRICES INSIDE THE BAR, AND NOTHING HOLDS THE BOT BACK. STRATEGY LOGIC AND THE THREE SETUPS UNCHANGED.

Order of prices inside the bar. The live bar now collects every tick, so when a stop and a target both fall inside one candle the model decides them in the order the exchange did: the stop fills at the print that triggered it (a gap through the stop costs the real gap), the target fills by touch. History can be replayed the same way from the platform's own trade prints: Backtest From Prints (group 13, off by default) asks the platform for the last Prints History Days one day at a time and replays the model with the real order of prices; the DATA row shows PRINTS n/N days while it runs. Measured on a 19-month MNQ tick tape (March 2025 - September 2026, 526 689 one-minute bars, every trade print): the bar-based backtest and the tick-based one agree for this strategy - WIN30 and WR56 are identical trade by trade, NET62 differs by -48 ticks on 1 243 trades - because a 240-480 tick stop and target rarely fit into one 1-minute candle. One tick of slippage on the entry, the stop and the exit costs about 1.5 ticks per trade.

LIVE = VIRTUAL. The account mirrors the model, never the other way round. A stop or target you move by hand stays on the account; the model keeps its own trade, and the chart and the panel show the model only. If the account holds a trade the model does not have, or is flat while the model holds a trade opened on the live edge of this chart, the difference is reconciled at market within a second. A target that was touched but not filled (queue at the exchange) closes at market straight from the tick, not at the end of the bar.

Nothing holds the bot back. The broker is the truth: the position snapshot is taken from the trading manager directly, the order register is closed by the broker's order list, sticky 'unresolved' flags clear themselves on a flat account, restart recovery no longer waits for a previous instance's heartbeat (the leaving instance writes a dead heartbeat), leftovers of the previous trade are cancelled on the way to the next entry instead of blocking it, and the platform never asks a human (order state check dialog off). A temporary rejection of a leg resize while the exchange is still processing the order no longer cancels the target; a missing stop is re-placed only when the broker, the fill counter and the position snapshot agree; a leg is changed only when the broker confirms it active.

Panel. The 'unresolved order state' note disappears as soon as the state is resolved. No change to the entry conditions, the exits, the costs or the three supplied setups; 689 tests pass, the parity replay still returns 75 trades and 6 759 ticks.

2.5.4 - WARNING IN FOUR PLACES: ATAS SL/TP IN THE CHART TRADER PANEL MUST BE OFF. NO CHANGE TO THE STRATEGY, THE ENGINE OR LIVE EXECUTION.

The indicator places its own stop and target on every fill. If the platform's own SL/TP (the SL/TP button in the Chart Trader panel, classic ATAS and ATAS X) is on, ATAS attaches a second stop and target from the panel settings to the same fill and the trade is managed by two sets of exits. The indicator cannot read that switch through the ATAS API (ATAS.Indicators exposes nothing of the ATM layer), so it now warns: in the description of Autopilot ON, with an amber CHECK row on the panel for three minutes after every switch-on and after every platform start with the autopilot on, in both PDF manuals (Quick start step, warning card, Good to know) and in the install guide. Nothing else changed - strategy, engine, backtest and live trading are identical to 2.5.3.

2.5.3 - SETTING TEXTS BROUGHT UP TO DATE; NEW PDF MANUALS.

Three setting descriptions were stale: Grid and Grid Values now list the TOUCH, Y-RANGE and SIDE rows and the real size of the full grid (about 321 billion combinations), and Recommended Chart says plainly that the 1-minute MNQ footprint chart is a recommendation, not a condition - the chart and the instrument are your choice, verify them in TUNE first. No change to the strategy or the engine. The product now ships with a Slovak and an English PDF manual in the OrderFlowSmith design; both are regenerated from the indicator's own settings with every release, so the manual can never describe a setting that is not there.

2.5.2 - TUNE BACK TO THE TEMPLATE: PANEL BAR IN THE HEADER, TEMPLATE WIDTH, SAVE-ONLY ROWS.

The TUNE header now carries exactly the bar of the small panel: NET62, WIN30, WR56 | NET, WR, PF | DEFAULT, BACK - same button size, same order, one line, vertically centred. NET, WR and PF apply the SAVED auto setups through the same guard as on the panel and are dimmed until a setup is saved. The window is back to the template width: no row has more than five buttons, so TARGET, STOP and TIME STOP are two rows each again (2.5.0 and 2.5.1 widened the window - a mistake). Below the grid rows the winners are three plain rows NET, WR and PF with a single SAVE button each (lit when the saved setup equals the found one; note saved / saved (older)); the USE buttons are gone, applying a setup is the header button, exactly as on the panel. AUTO keeps RUN, X, GRID, LOAD and MIN TRADES is its own row. The window is still lower than 2.4.0 (twelve statistics instead of twenty-two, no subtitle line).

2.5.1 - TUNE HEADER IS ONE LINE; AUTO, MIN TRADES, USE AND SAVE ROWS TIDIED.

The TUNE header now follows the panel bar template: the title, the NET62 / WIN30 / WR56 buttons and DEFAULT / BACK sit on one line, vertically centred, with the same button size as the panel bar. The subtitle line that used to sit under the title and collided with the buttons is gone. What it used to say lives elsewhere: a refused setup switch (and its reason) is shown in RUN INFO for ten seconds and on the panel, GRID mode is shown by the lit GRID button, and the active setup by the lit buttons in the header and in the USE row.

The crowded AUTO and SETUPS rows of 2.5.0 are gone. AUTO has only RUN, X, GRID and LOAD; MIN TRADES is its own row again (ANY, -, value, +); the found winners are two plain rows shaped like the rest of TUNE: USE with NET, WR and PF buttons (the lit one is the setup currently applied; a click applies the found setup, or the saved one when nothing was found) and SAVE with NET, WR and PF buttons (lit when the saved setup equals the found one; the note names saved setups older than the last run).

2.5.0 - THREE NEW ENTRY FILTERS AND A LEANER TUNE WINDOW.

Three filters the engine already had the data for, now switchable and measurable. TOUCH trades a fibo line only on its first touch of the day, or on the first two: the first touch is usually the cleanest bounce, by the third the market is often grinding through the line. Y-RANGE trades only days whose yesterday range - the range the lines are built from - is Small, Mid or Large: after a tiny day the lines sit packed together and a fixed target is bigger than the whole structure, after a huge day one touch is a 200-tick move; the band limits are settings, preset from the measured distribution of daily ranges on the 33-month tape (note that ranges have grown year by year, so fixed limits also separate periods, not only day sizes - adjust them to your market). SIDE trades Both, Long Only or Short Only, because long and short are measured separately and a setup can earn on one side only. All three are OFF by default, so the three supplied setups and the parity stay exactly as before (75/75 reference trades, the three setups to the tick on 33 months). Each filter is a row in TUNE, an axis of the auto backtest grid (the default grid keeps only the live value, so it stays at 2 211 840 combinations until you enable more values in GRID) and a line of the results table. Setups saved by earlier versions load with the filters off.

TUNE was tidied so the window fits again: the NET62, WIN30 and WR56 buttons moved into the header next to the title, as in the panel bar; TARGET, STOP and TIME STOP are one row each; AUTO and MIN TRADES share one row; the three AUTO NET / WR / PF rows became one SETUPS row where the goal label lights up when that setup is active; and the 3-day move is shown in RUN INFO instead of beside 3-DAY BRAKE. The STATISTICS block keeps twelve figures: Total Trades, Trading Days, Gross Profit, Net PnL, Long, Short, Win Rate, Profit Factor, Max Drawdown, Worst Trade, Worst Day and Worst Run. 18 new tests cover the filters (each side alone, first and second touch, the three bands adding up exactly to the unfiltered run, grid axes, saving and loading, the touch cache with filters on); 623 tests in total.

2.4.0 - AUTO BACKTEST GRID FASTER AGAIN; WINNERS REPRODUCIBLE RUN TO RUN.

The fibo-line touches that every combination of the grid used to re-evaluate bar by bar are now computed once per run for each enabled HISTORY value and handed to the combinations read-only. The touch logic itself is untouched: the precomputed record is produced by the very same engine code, every record is checked against the bar it was made from (index and close) and against the settings it depends on, and any mismatch stops the run with an error instead of producing a different number. The live trading engine does not use the cache at all. Measured side by side with 2.3.0 on the 5-month test tape (146 224 bars) with 14 threads: 540-600 -> 710-760 combinations per second on a loaded machine (about 1.3x) and 410-480 -> 760-780 on a quiet one (about 1.7x); the full default grid of 2.2 million combinations takes about 50 minutes on that tape instead of 60-90. Compared with 2.2.22 the grid is now close to 3x faster. The self-check on every RUN compares three paths - the live engine, a plain replay and the grid path with both caches - and writes CACHE MATCH or MISMATCH to the log.

Winners of the auto backtest are now the same on every repetition and with any number of CPU threads: when two combinations are exactly tied on every criterion of a goal (NET, PF and drawdown for NET; win rate, NET and trade count for WR and PF), the one with the lower grid number wins. Before, an exact tie went to whichever thread finished first, so the next run could show a different, equally good winner. 24 new tests: the cached path equals the inline path trade by trade and signal by signal for every HISTORY value, for 300 random combinations of the full grid, for other touch-related settings and for a foreign tape (which must stop with an error); the grid winners equal a plain replay; and 1, 2 and 4 threads pick the same winner. The three shipped setups keep their numbers to the tick on the full 33-month tape.

2.3.0 - FASTER AUTO BACKTEST WITH IDENTICAL RESULTS; READY FOR ATAS X ON MACOS AND FOR CLASSIC ATAS.

The engine behind the auto backtest and the drawn history was tuned without touching the strategy: the 60-bar context window no longer shifts memory on every bar, bars are handed to the engine by reference instead of being copied, and the VWAP inputs of the entry sieve are computed once per run instead of once per combination. Measured on the 5-month test tape (146 224 bars) with the old and the new engine side by side on the same computer: the grid runs 2.1x more combinations per second on 14 threads (about 270 -> 570 per second), a single replay of the history takes 2.1x less time without the sieve and 1.7x less with it. Every result is identical: 75/75 trade parity, the three shipped setups keep their numbers to the tick on the full 33-month tape, and eight new tests compare the new window and the new cache against a naive reference bar by bar and bit by bit.

Cross-platform: the DLL again references the lowest common ATAS API (8.0.14.397), so the one file that ATAS delivers binds directly on classic ATAS as well as on ATAS X (a newer platform accepts an older reference; the reverse only works through the platform's own fallback resolver). Time zones fall back to IANA names when the Windows name is not available (macOS), the panel uses the Menlo font on macOS (Consolas is Windows-only), and the day key of every bar uses the Gregorian calendar regardless of the computer's locale. The installation guide now lists the macOS folders.

2.2.22 - CODE AUDIT OF THE DAY'S CHANGES.

New automated checks cover the riskiest parts of the new auto backtest: every one of the 18 grid rows lands in its own field of the setup for 400 random combinations, the winners picked for any MIN TRADES floor equal a brute-force search over all results, and a time stop of 0 disables the countdown. The results table now tolerates a damaged saved setup in the settings (it shows a dash instead of failing). No behaviour change otherwise.

2.2.21 - NO TIMEFRAME BLOCK.

The strategy no longer refuses to trade on a chart other than 1 minute. It is validated on a 1-minute footprint chart and that remains the recommended chart, but the choice is yours: the time stop counts bars, the footprint conditions read whatever candle the chart gives, and the built-in backtest and TUNE show you the result on your chart before you switch it on.

2.2.20 - LOAD: THE LIVE SETTINGS INTO THE GRID.

The AUTO row has a fourth button, LOAD. It switches GRID mode on and sets the grid to exactly what is set in TUNE right now - one combination - so you start the backtest from your own current settings and add the values you want to try, the same way NET62, WIN30 and WR56 preset the grid to a supplied setup.

2.2.19 - CHANGE MIN TRADES AFTER A RUN, WITHOUT RUNNING AGAIN.

A run now remembers the best combination for each goal at every trade count, so moving MIN TRADES (ANY, -, +) after the run re-picks the NET, WR and PF winners at once - exactly the winners a new run with that floor would find - and the results table updates immediately. Use it to look for better-confirmed setups: raise the floor and watch which winners survive. The candidates live in memory until the next run or an ATAS restart; SAVE keeps a winner permanently.

2.2.18 - PRODUCT PAGE BROUGHT UP TO DATE.

The description, the settings overview, the install guide and the FAQ now describe the current TUNE (every rule as a row, the results table, GRID, MIN TRADES, TIME STOP, RUN INFO and the self-check), the Time Zone setting that replaced the bar time offset, and the real group numbers. Exact rule values and thresholds are no longer listed on the public page - they remain in the product, in the settings and in TUNE, where every buyer can see and change them.

2.2.17 - RUN INFO LINES NO LONGER CUT OFF.

The lines under the results table were longer than the table and ended in an ellipsis. They are shorter now (grid size and min trades, running with time left and elapsed, combos done on its own line, last run on two lines, self-check on one line with the detail on a second line when it mismatches), and the

Frequently asked questions

Which chart should I use?
A 1-MINUTE chart with cluster (footprint) data - that is what the strategy was validated on, and the footprint is not optional: all three entry conditions are measured inside the touching candle's price ladder. Load at least two weeks of history so the daily levels and the drawn backtest have something to work with. Best measured results are on MNQ; other instruments are untested territory (see the next question).
Can I use it on other instruments than MNQ?
It will run on anything with footprint data, but be honest with yourself about what is tested: MNQ 1-minute is the validated setup. The distances (stop, target, re-arm, the 3-day brake) are expressed in TICKS, so they carry over to another instrument mechanically - not sensibly. A market with a different tick value or a different daily range needs its own numbers. Use the TUNE window on your own chart history first, and treat anything other than MNQ as unexplored.
Why is the entry AGAINST the move?
Because that is the whole idea. The strategy waits for aggressive buyers to push price into a level that was drawn before the day started, and enters when the footprint of that candle shows them running out of steam. It is a fade - a bet on exhaustion, not on continuation. This also means the evidence is deliberately BUY-side for both directions: for a short it is the buyers stalling, and that asymmetry is preserved exactly as validated.
Does it need GEXBot or any other subscription?
No. Nothing beyond ATAS with footprint data and your broker connection. Every input - the daily candles, the fibonacci levels, the footprint metrics, the 3-day move - is read from the chart itself.
Why do I sometimes see no trades for days?
Because the strategy is patient: about 0.7 trades per trading day in the backtest, and some days are skipped entirely. Three things quiet it down: the 3-day brake (a market that rose more than the setup's 3-day limit is not faded at all - the panel says so), the footprint conditions (most touches simply do not show exhaustion), and the one-position rule. A quiet chart is the system working, not the system broken - the panel's LEVELS row always tells you which of the three is holding it back.
How does it manage a running trade?
Simply, which is the point. Right after the entry fills it places a stop and a target from the actual fill price, held as a manual OCO pair - whichever fills first cancels the other. The stop is a fixed distance of the setup; the target is either a fixed distance or, with the level target on (as in NET23 and PF21), the nearest fibonacci level of the day in the trade direction that is far enough away. The position is never split, so any quantity works. A trade that reaches neither side within the time stop (90 minutes in the supplied setups, adjustable or off) is closed at market, and any position still open at 22:58 Bratislava is flattened - this is an intraday system and it ends every day flat. If you move the stop or the target by hand, the moved order stays on the account and is respected; the model keeps its own trade unchanged, and the chart and the panel keep showing the model. The account is reconciled to the model within a second whenever they differ (LIVE = VIRTUAL).
What about the 240/360 target I read about?
It is the strongest alternative we have measured, and it is still not the shipped default. Replayed through the shipped engine on the same five-month tape, a 360-tick target gives 68 trades and +8,321 ticks against 75 trades and +6,670 - but the deepest dip grows from 499 to 596 ticks, the win rate falls from 69 to 66 percent, and one of the five months turns negative. Normalised to the same risk the gain is about 4.5 percent, not the 25 percent the raw tick figure suggests. What does stand out is that it holds up in the SECOND half of the sample as well as the first, which the 240 default does not, and that it wins at every setting of the imbalance gate rather than at one lucky point. Against it: just above 360 the figures fall off a cliff, so the peak is narrow, and 328 to 344 gives nearly the same result with more room. 240 remains the validated, published configuration; both are one click apart in the TUNE window and the setting accepts any value.
Can I see what the strategy would have done before switching it on?
Yes - that is the built-in backtest. The engine replays the whole loaded history on every recalculation, draws every signal with its complete bracket and outcome dot, and the TUNE window sums it up: trades, days, win rate, ticks, profit factor, long/short split, worst trade, worst streak, deepest dip. Switch the autopilot ON only after you like what you see. Since 2.6.0 the live bar also carries the order of ticks inside it, and Backtest From Prints (group 13) can replay the loaded history from the platform's own trade prints, so a stop and a target inside one candle are counted in the order the exchange would fill them.
Does it repaint?
No. The levels come from the PREVIOUS day and never move. The engine processes only closed bars and never looks ahead. A placed trade is managed by real orders on the broker, not by drawings. Reloading the chart reproduces the same historical signals.
Is there a daily stop?
Two guards exist - a Daily Loss Limit in ticks per contract and Max Losing Trades Per Day - and a running trade always finishes normally. The three setups shipped since 2.6.1 leave both at 0: on the tick tape the daily limit never changed a result of the chosen setups and ending the day after three losses only cost profit. Switch either one on if you want a hard daily cap; the model respects it, so the panel statistics move with it.
How trustworthy are the published numbers?
They are reproduced by the product's own engine, not copied from a research note: a parity test replays the full five-month MNQ dataset through the shipped engine on every release and must return exactly 75 trades and 6,669.5 ticks, trade by trade. The same engine was independently checked against the original research implementation and matched 72 out of 72 trades on the overlapping data. What the numbers cannot tell you is the future: the shipped setups were found on the same 19-month MNQ tick tape they are measured on (every trade print, March 2025 to September 2026, one contract, after costs), and it is a fade strategy. On that tape the bar-based backtest and the tick backtest with the real order of prices inside each bar come out identical trade by trade for the supplied setups, and a one-tick slip on entry, stop and market exit costs about 1.5 ticks per trade.
What are the CALM CANDLE and SPARSE GRID buttons in TUNE?
CALM CANDLE skips the entry when the candle before the touching one has a body larger than the selected size; WR56 and WIN30 use the measured 40-tick value, while NET62 uses 80. SPARSE GRID trades only when the nearest neighbouring fibonacci line is at least the selected distance away; all three supplied setups leave it off. Each setup applies its whole measured package, and DEFAULT restores WR56 rather than a generic all-filters-off state.
Which settings should I change, and which should I leave alone?
Change: the license key (group 01), Time Zone (group 05) so times read the way you expect, your quantity and daily loss limit (group 06), and anything in groups 09 to 12 - colors, line widths, panel position, alerts, Telegram. Leave alone: groups 07 and 08. That is the calibration, frozen exactly as it was validated, and every published figure belongs to those values. You can absolutely explore them in the TUNE window - that is what it is for, and trading is hard-disabled while it is open - but DEFAULT is one click away and puts everything back.
Does it write a log?
Yes, two of them. Every execution event goes to the ATAS log and to the strategy's own file at %APPDATA%\OrderFlowSmith\logs\F2_<instance>_<date>.log, so two charts running the strategy keep two separate files and nothing has to be filtered out of the platform log. The entry with its side, size and level, the stop and target with their prices, every fill with the resulting position, the end of the trade and every error state are all recorded. A message that repeats is written at most once every five seconds and the file size is capped. Nothing is logged from the calculation path, because logging on every tick fills the file.
How many trades should I expect?
About 0.7 per trading day on MNQ - 283 trades in 19 months (391 trading days) with the shipped PF21 setup; NET23 takes 340, WR55 311. Quiet stretches are normal: the strategy needs a level touch, three separate footprint conditions on that one candle and a calm three-day background all at once, and on many days that never lines up. The LEVELS row on the panel tells you whether today is tradeable at all, and the HISTORY row tells you how many days the drawn trades span, so 'no setup' can be told apart from 'something is wrong' at a glance.
Can the indicator send notifications to my phone?
Yes - built-in Telegram notifications. Create a bot with @BotFather (2 minutes, free), paste its token into the settings, write the bot one message and click Get Chat ID Now, then Send Test Message. From then on every REAL entry (side, quantity, actual fill price, live SL/TP prices), every close with its reason and result in ticks, and every execution error arrives in your Telegram within a second. The messages always carry the real account numbers - never the drawn backtest history. Sending is fire-and-forget in the background, so a Telegram outage can never delay a trade. Everything is off by default.
How do I use the auto backtest, and does it count the same as the chart?
Load months of history on the chart, open TUNE and press GRID on the AUTO row: click a setup button (NET23, PF21 or WR55 - or whatever you renamed them to in group 10) to preset the grid to that setup, then click the values you want to try - blue goes into the backtest, dark stays out; a switch in the SWITCHES row cycles off, on and both - half blue means both states go into the backtest. Set MIN TRADES (ANY = absolute winners, or your own floor) and press RUN. The percent shows on the AUTO row, RUN INFO under the results table shows the time left, and X cancels at any moment. When it finishes, the table compares the NET, WR and PF winners side by side (trades, days, net, win rate, profit factor, drawdown) and coloured marks under the value buttons show which value each winner uses - green NET, amber WR, blue PF; SAVE puts it on the NET / WR / PF buttons on the panel and in the TUNE header, and those buttons apply it. Every run also performs a self-check - the live setup replayed through the same path as the grid, compared with the live engine - and reports MATCH or MISMATCH, so the backtest counts exactly what the chart shows. Mind the size: every value you add multiplies the run, and the backtest uses all CPU cores but two.
What are the CALM and SPARSE rows in TUNE?
CALM skips the entry when the candle before the touching one has a body larger than the selected size; all three supplied setups use the measured 80-tick value. SPARSE trades only when the nearest neighbouring fibonacci line is at least the selected distance away; all three supplied setups leave it off. Each setup applies its whole measured package, and DEFAULT restores PF21 rather than a generic all-filters-off state.
Does OFS F2 FiboFade run on a Mac?
Yes, in ATAS X for macOS (Apple Silicon, macOS Tahoe or newer). ATAS delivers the same DLL as on Windows and adapts it at load time; the indicator uses no Windows-only interface. It uses IANA time zone names when the Windows names are not available and the Menlo font for its panel. Logs and the trade memory live in ~/Library/Application Support/OrderFlowSmith. Classic ATAS itself is Windows-only.
Are the live trades the same as the backtest?
By construction, yes. The model decides on closed bars and the account mirrors it: the entry is a market order right after the signal candle closes, the stop and the target are resting orders at the model's prices, a time stop or the end of day closes at market when the model closes, and every second the account is compared with the model - a position the model does not hold is closed, a model trade the account missed is entered at market. The only differences left are fill slippage (the market entry fills at the ask or bid, a stop can fill a tick through its price) and the exchange queue at the target, which the bot resolves by closing at market once the target was touched and not filled. Measured on the 19-month MNQ tick tape, one tick of slippage on entry, stop and exit costs about 1.5 ticks per trade. The panel and the chart always show the pure model - what the strategy did - while the account is shown by ATAS itself.
⚠ This indicator places REAL orders on your connected trading account. Automated execution can lose money quickly. The published statistics come from backtests on MNQ 1-minute footprint data - the shipped PF21 setup: 283 trades over 19 months of tick data - and the auto backtest measures a setup on the very days it was found on; none of it is a promise of future results. It is a fade strategy: it deliberately trades against the immediate move, so a strong trending market is its natural enemy - that is exactly what the 3-day brake is there for, and it cannot catch every case. Always start with the smallest quantity, supervise the autopilot while it runs, and never leave it unattended on an account you cannot afford to draw down. The ON/OFF button and the platform's own flatten remain under your control at all times. Trading futures, forex and crypto carries a substantial risk of loss and is not suitable for everyone. This product places real orders on your own account - it is not financial, investment or trading advice, and it cannot guarantee any profit. Every decision stays with you: whether to trade at all, position size, stop-loss and when to walk away. Any performance figures we publish come from historical testing; hypothetical and back-tested results have inherent limitations and never guarantee future results. To the maximum extent permitted by law, OrderFlowSmith is not liable for trading losses, missed opportunities or other damage arising from the use of this software. Never trade with money you cannot afford to lose.

Reviews

No reviews yet — be the first verified buyer to share your experience.