Expert Advisor for MetaTrader 5 · version 9.00 · User manual
Actual Algos · seller AnActualBanana on MQL5
Contents
The idea behind the strategy
1. What the EA does
2. Installation
3. Entry and exit times, daylight saving (new in version 5)
4. News filter (rebuilt in version 7)
5. Position sizing
6. Quick start
7. Built-in safeguards
8. Lot sizes and cent accounts (new in version 8)
9. Input reference
10. Backtesting and optimisation
11. Support
12. Risk notice
Example settings (not optimised, for testing only)
The idea behind the strategy
Ultimate Weekday Reversal is built on one of the oldest calendar patterns in stock-market research. In 1980 Kenneth French reported in the Journal of Financial Economics that S&P 500 returns from Friday's close to Monday's close were negative on average from 1953 to 1977, which he called the "weekend effect". Abraham and Ikenberry (1994) added detail: Monday weakness was concentrated after a down Friday, and they traced part of it to individual investors, who sold more on Mondays, especially after bad news. Traders turned this into a simple rule known as "Turnaround Tuesday": when an index starts the week weak, buy the Monday dip, expect the selling to run out, and sell into the bounce a day later.
The pattern has not stood still. Studies of data after 1987 found that the classic weak Monday faded, and on some large US indices even reversed. That is why this EA does not hard-code one rule. It treats the weekday pattern as a framework: you choose the entry weekday and time, the exit weekday and time, and whether a daily moving average defines "weak" (dip mode buys below it) or whether you trade with the trend instead. That lets you test the classic Monday-to-Tuesday setup on your own broker's index CFDs, and check whether a similar reversal shows up on other days or markets. Like every calendar pattern it can weaken or stop working, so treat it as an idea to test on your own data, not a promise.
Further reading: K. French, "Stock returns and the weekend effect", Journal of Financial Economics 8 (1980) 55-69; R. Abraham and D. Ikenberry, "The individual investor and the weekend effect", Journal of Financial and Quantitative Analysis 29 (1994) 263-277; P. Fortune, "Weekends can be rough: revisiting the weekend effect in stock prices", Federal Reserve Bank of Boston working paper 98-6 (1998); S. Mehdian and M. Perry, "The reversal of the Monday effect: new evidence from US equity markets", Journal of Business Finance and Accounting 28 (2001) 1043-1065.
1. What the EA does
Ultimate Weekday Reversal trades at set times on set weekdays. Its starting point is the weekly pattern some traders call "Turnaround Tuesday": an index dips into the start of the week and recovers soon after. Patterns like this can fade or stop working, so treat it as an idea to test, not a promise. The classic form buys on Monday when price is below a daily moving average and closes that long trade (sells it) on Tuesday.
Entry weekday at the entry time (server clock)
MA filter: dip (long below the MA / short above) or trend (long above / short below)
optional: wait up to N minutes for a new day high (long) / low (short) vs yesterday
│
▼
Hold → exit at the exit time on the exit weekday, or after N days held
(stop / target / break-even / trailing can end it earlier;
optional: flat on Friday, max hold days)
The defaults reproduce the classic strategy: entry Monday, exit Tuesday, dip mode on the daily MA. The short side is the mirror image: in dip mode, when price is above the MA at the entry time, the EA sells instead (fading the rally) and closes that short, buying it back, at the exit time. Shorts are allowed by default; switch off Allow short trades to trade only the long side.
2. Installation
- Buy or download the product on the MQL5 Market, or from the Market tab inside MetaTrader 5 (you must be logged in to your MQL5 account there). It installs itself into Navigator → Expert Advisors → Market.
- Open a chart of the symbol and timeframe you want, drag the EA onto it, set the inputs and tick Allow Algo Trading.
- Switch on the Algo Trading button in the terminal toolbar. The Experts tab shows the EA's start-up messages, including its version.
- The free demo runs in the Strategy Tester only. Test there, then on a demo account, before any real account.
The Market version has no licence key. Each purchase includes a fixed number of activations (installations on different computers); reinstalling on the same computer does not use a new one.
3. Entry and exit times, daylight saving (new in version 5)
Times are on the broker's server clock. Daylight saving shift moves the entry and exit times by N minutes while the chosen region's daylight saving is on. From V5 a time the shift pushes past midnight (for example a 23:30 exit + 60 minutes) fires at 00:30 on the next day; earlier versions never reached it, so the trade only closed on its stop, target or the max-hold limit.
4. News filter (rebuilt in version 7)
The news filter keeps the EA from trading around scheduled economic releases (interest-rate decisions, inflation and jobs reports and similar). It is off by default (News filter: on): with it off nothing is read and the EA trades as if the filter did not exist. The same filter, with the same inputs and the same wording, is built into every Actual Algos EA.
Switching the filter on is not enough on its own: all three impact levels start on Ignore, so you also choose an action for the levels you care about.
What each action does
| Action | What happens while a news window is active |
|---|---|
| Ignore (default) | Nothing. Events of this impact level are not used. |
| Manage only | No new trades. Trades that are already open are managed as usual. |
| Skip | No new trades, and when the window starts the EA closes its open trades and deletes its pending orders. |
A window runs from the chosen number of minutes before an event until the chosen number of minutes after it. Skip only closes this EA's own trades on the chart symbol (matched by its magic number), never other EAs' or manual trades. Closing a trade costs the spread and books whatever result it has at that moment.
In this EA:
Manage only
- No new entry inside the window. The entry stays armed for the length of the entry window (Entry stays armed for N minutes), so it can still enter once the news window is over, if the entry window is still open.
- Open trades are managed as usual (time exit, stop, break-even, trailing).
Skip
- Everything Manage only does, and at the start of the window the EA closes its own open trade on the symbol. The EA only uses market orders, so there are no pending orders to delete. One line is written to the Experts tab per window.
- This EA can hold a trade for a day or more, so a Skip window can close a trade long before its normal exit time.
The three impact levels
| Level | Settings | Default when you switch it on |
|---|---|---|
| High impact (importance 3) | Action, minutes before, minutes after | 30 before, 30 after |
| Medium impact (importance 2) | Action, minutes before, minutes after | 15 before, 15 after |
| Low impact (importance 1) | Action, minutes before, minutes after | 5 before, 5 after |
The level of an event is the importance given to it in the news file or by the MetaTrader calendar. Each level has its own action, so you can, for example, skip high-impact events and ignore the rest. All three actions are Ignore until you change them. If windows of several levels overlap, the strongest action wins (Skip over Manage only over Ignore).
Which events affect which symbol
An event only affects the symbols it should. The EA works out the currencies that move the chart symbol from its name:
| Symbol | Events that count |
|---|---|
| Forex pairs (for example EURUSD, GBPJPY) | Both currencies of the pair, every impact level. |
| US indices (S&P 500, Nasdaq 100, Dow Jones, Russell: names starting SP500, US500, SPX, NDX, NAS, US100, USTEC, WS30, US30, DJ, US2000) | USD, every impact level. |
| Gold, silver, oil and the main crypto CFDs (XAU, XAG, GOLD, SILVER, OIL, WTI, BRENT, BTC, ETH) | USD, every impact level. |
| DAX and other euro-area indices (GDAXI, DAX, GER, DE40, STOXX, EU50, FRA40, CAC) | EUR at every impact level, plus USD high impact only. |
| UK 100 (UK100, FTSE) | GBP at every impact level, plus USD high impact only. |
| Japan 225 (JP225, JPN225, NIKKEI) | JPY at every impact level, plus USD high impact only. |
| Anything else | The base and profit currency MetaTrader reports for the symbol. |
Names are matched by their start, and anything after an underscore (for example _Darwinex) is ignored. If your broker names a symbol differently, or you want other currencies, fill in News currencies with a comma-separated list such as USD,EUR: the EA then uses exactly those currencies, at every impact level, instead of the automatic list. News categories narrows the events further (empty means all categories; categories exist only in the news file).
Getting news into the EA
| News source | What the EA uses |
|---|---|
| Auto (default) | The news file AA_News.csv if it can be opened; otherwise the live MetaTrader economic calendar. Note that a file, once found, is used instead of the calendar, also on a live chart. |
| CSV file only | Only the news file. If it cannot be opened the EA does not start. |
| Live MT5 calendar only | Only the economic calendar built into MetaTrader. Works on live and demo charts only. |
- Live and demo charts: with Auto and no news file, nothing needs to be installed; the EA uses the MetaTrader economic calendar and the Experts tab says [News] using the live MT5 economic calendar. Whether the calendar has data depends on your broker.
- Strategy Tester: MetaTrader gives the tester no economic calendar, so without a news file no news window is applied in the test and the Experts tab says so ([News] no news CSV and the MT5 calendar is empty in the Strategy Tester ...). To test the news filter, put AA_News.csv in the shared Common\Files folder before you start the test.
The news file AA_News.csv
Events are read from a plain CSV file (AA_News.csv unless you change News CSV: file name) in the terminal's shared Common\Files folder (in MetaTrader: File → Open Common Data Folder, then the Files folder). All Actual Algos EAs on that terminal read the same file. The first line is a header; every other line is one event:
time,currency,importance,category,event
1796398200,USD,3,employment,Example event (2026.12.04 15:30 on the server clock)
time is the number of seconds since 1 January 1970 counted on the broker's server clock, the clock of the chart and of the Strategy Tester, not UTC. currency is the currency code the event belongs to (USD, EUR, GBP …). importance is 1 (low), 2 (medium) or 3 (high). category is only used when you list categories in News categories (for example employment,inflation,rate_decision; empty means every event). event is a name that appears in the Experts tab. The lines must be in time order, oldest first: the EA does not sort them, and a file that is out of order can make events be missed.
- The file is not part of the product. A Market product is a single program file, so no data file comes with it, and a file is not promised with the purchase. Build one in this format from a calendar source you trust, or ask support whether a ready-made file is available. A file made by Actual Algos uses the Darwinex server clock (GMT+2, GMT+3 during US summer time); it only fits brokers on that same clock.
- The Strategy Tester and live charts use the same file, so a news test and live trading see the same events. MetaTrader gives the tester no economic calendar of its own.
- The file is read once, when the EA starts. After you replace it, remove the EA from the chart and attach it again (or restart MetaTrader). Events that are not in the file are not blocked, and a file that ends in the past gives no protection after its last line.
- Only events that matter to the chart symbol and belong to an impact level whose action is not Ignore are kept. The Experts tab shows how many when the EA starts: [News] AA_News.csv: N events kept for SYMBOL. If N is 0, check the symbol's currencies, the actions, the categories and the file's time range.
- With News source set to CSV file only, the EA does not start when the file cannot be opened and the Experts tab says so, so a test is never run with a filter you believed was on.
Manual times
This EA also has News: manual times: dates and times you type in, separated by semicolons, for example 2026.11.04 15:30;2026.12.16 21:00 (server clock). Each time counts as a high-impact event: it uses the high-impact action and the high-impact minutes before and after. Manual times work in live trading and in the Strategy Tester, need no news file, and do nothing while the filter is off or while the high-impact action is Ignore.
A recommended starting point
This is a place to start experimenting, not an optimised or recommended setting, and it carries no promise about results:
- Switch News filter: on to true.
- Set News, high impact: action to Manage only, and leave its 30 minutes before and after. Leave medium and low impact on Ignore.
- Leave News source on Auto and the currencies empty.
- On a demo chart, check the Experts tab for the [News] line at start. To see what the filter changes, run the same test twice (filter off, filter on) over the same dates.
- Try Skip only if you want open trades closed before events, and keep in mind that closing has a cost.
Versions 5 and 6 had their own filters (the MT5 calendar, manual times and, from version 6, the news file, with one importance threshold and one pair of minutes). Version 7 replaces them with this shared filter. Settings saved with version 5 or 6 that used the old news inputs do not carry over: switch the new filter on and choose an action per impact level. With the filter off, version 7 trades like version 5 and 6.
5. Position sizing
Sizing can be fixed lots, managed lots (fixed lots scaled by the balance), risk as a % of the balance (the default), a fixed amount of money, or risk as a % of a fixed reference account size. The three risk modes divide the amount at risk by the stop distance, so they need a stop: with the stop loss switched off, the EA uses the Fixed lots input instead (0.10 by default), whatever the risk setting says.
There is no input to cap the lot size. The size is limited only by the broker's minimum, maximum and lot step and by the free margin (see Built-in safeguards).
6. Quick start
- Attach to an index CFD (S&P 500, Nasdaq, DAX).
- Set the entry and exit times for your broker's server clock (the cash session is typical).
- Keep the MA filter in dip mode; choose the stop (a % of price is typical) and usually no target.
- Backtest over many years: a weekly strategy makes few trades per year.
7. Built-in safeguards
- If the free margin cannot carry a trade's size, the lots are reduced to what it can carry (the trade is skipped when not even the minimum lot fits), so the broker never rejects an order for lack of money.
8. Lot sizes and cent accounts (new in version 8)
The EA sizes every trade to what your broker allows, so the same settings work on accounts with different lot rules.
- Minimum lot and lot step. The EA follows the symbol's own minimum lot, maximum lot and lot step: 0.01 on most forex symbols, 0.001 on nano-lot accounts, 1 on some CFDs. It never sends a size the broker would reject, and a trade whose size would be below the broker's minimum is skipped (or, where the EA has the input, raised to the minimum).
- Cent accounts. If the account currency is a cent currency (USC, USX, EUC, GBC), money amounts are in cents. By default (Cent accounts: money inputs are in USD = off) the EA reads every money input in the account currency, that is in cents: the fixed risk per trade (Fixed risk per trade (account currency)) and Managed sizing: balance per lot. A value of 100 then means 100 cents, or 1 USD. Balance-based percentages are not affected.
- Money inputs in USD. Switch Cent accounts: money inputs are in USD on if you would rather type the amounts in US dollars. On a cent account the EA then multiplies them by 100 to get cents. On an ordinary account the switch changes nothing.
- Other cent codes. Cent accounts: account currency codes treated as cent lists the currency codes the EA treats as cent accounts (default USC,USX,EUC,GBC, separated by commas). If your broker uses a different code, add it to the list.
Changes in this version (8). Lot rounding now follows the broker's lot step exactly. Earlier versions rounded down through a small tolerance, so a fixed lot that is not a clean multiple in floating-point arithmetic (for example 0.29) could trade one step smaller than you set (0.28). It is now traded as set. For the same reason a trade sized from risk can come out one step larger than before in rare cases. Settings that use clean lot sizes behave as before. The two new inputs default to off and to the list above, so existing settings keep working.
9. Input reference
Every input with its default, in the order of the Inputs tab.
1. General
| Input | Default |
|---|---|
| Magic number | 27052001 |
| Order comment | Ultimate Weekday Reversal |
| Allow long trades | true |
| Allow short trades | true |
| One position at a time (false = allow several) | true |
| At most one new trade per day | true |
| Max spread to enter (points, 0 = no limit) | 50 |
| Max slippage (points) | 20 |
| After a failed entry, wait this many seconds before trying again (0 = every tick, as V8) | 60 |
2. Entry timing
| Input | Default |
|---|---|
| Entry weekday (Any = every trading day) | Monday |
| Entry time: hour (server) | 9 |
| Entry time: minute | 5 |
| Entry stays armed for N minutes | 120 |
| Enter only on a new day high (long) / low (short) vs yesterday | false |
3. Exit timing
| Input | Default |
|---|---|
| Time exit: schedule | On the exit weekday at the exit time |
| Time exit: weekday | Tuesday |
| Time exit: hour (server) | 19 |
| Time exit: minute | 0 |
| Time exit: days held (hold-days schedule) | 1 |
| Time exit may fire on the entry date | false |
| Always flat by the exit time on Friday | false |
| Max hold (calendar days, 0 = off) | 0 |
4. Filter: moving average
| Input | Default |
|---|---|
| MA filter: on | true |
| MA filter: buy the dip or trade with the trend | Buy the dip: long below the MA, short above |
| MA: timeframe | PERIOD_D1 |
| MA: period | 40 |
| MA: method | MODE_SMA |
| MA: price | PRICE_CLOSE |
| MA: bar to read (1 = last closed, 0 = forming) | 1 |
5. ATR
| Input | Default |
|---|---|
| ATR period (ATR-based distances) | 14 |
| ATR timeframe | PERIOD_D1 |
6. Position sizing
| Input | Default |
|---|---|
| Position sizing | Risk % of balance (needs a stop) |
| Fixed lots (fixed and managed sizing) | 0.10 |
| Managed sizing: lots = fixed lots x balance / this | 1000.0 |
| Risk % of balance per trade | 1.0 |
| Fixed risk per trade (account currency) | 100.0 |
| Reference account size (non-compounding sizing) | 10000.0 |
| Risk % of the reference account size | 1.0 |
| Skip a trade whose risk is below the minimum lot | true |
| Cent accounts: money inputs are in USD (x100 on a cent account) | false |
| Cent accounts: account currency codes treated as cent | USC,USX,EUC,GBC |
7. Stop loss
| Input | Default |
|---|---|
| Stop loss: basis | % of the entry price |
| Stop loss: value | 2.0 |
8. Take profit
| Input | Default |
|---|---|
| Take profit: basis | No take profit |
| Take profit: value | 3.0 |
9. Break-even
| Input | Default |
|---|---|
| Break-even: on | false |
| Break-even: trigger basis | % of the entry price |
| Break-even: profit needed to trigger | 1.0 |
| Break-even: lock beyond entry (points) | 0.0 |
10. Trailing stop
| Input | Default |
|---|---|
| Trailing stop: on | false |
| Trailing: start basis | % of the entry price |
| Trailing: start when in profit by | 1.0 |
| Trailing: distance basis | % of the entry price |
| Trailing: distance behind price | 1.0 |
| Trailing: step basis | Points |
| Trailing: minimum improvement before the stop moves | 50.0 |
11. Daily stop
| Input | Default |
|---|---|
| Daily stop: on | false |
| Daily stop: equity drawdown % (0 = off) | 3.0 |
| Daily stop: losing trades (0 = off) | 3 |
| Daily stop: also close open positions | false |
12. Days (when the entry weekday is Any)
| Input | Default |
|---|---|
| Trade Monday | true |
| Trade Tuesday | true |
| Trade Wednesday | true |
| Trade Thursday | true |
| Trade Friday | true |
13. News filter
| Input | Default |
|---|---|
| News filter: on | false |
| News, high impact: action | Ignore (trade as normal) |
| News, high impact: minutes before | 30 |
| News, high impact: minutes after | 30 |
| News, medium impact: action | Ignore (trade as normal) |
| News, medium impact: minutes before | 15 |
| News, medium impact: minutes after | 15 |
| News, low impact: action | Ignore (trade as normal) |
| News, low impact: minutes before | 5 |
| News, low impact: minutes after | 5 |
| News source | Auto: CSV if present, else live MT5 calendar |
| News CSV: file name in the terminals' Common\Files folder | AA_News.csv |
| News currencies (empty = automatic for the symbol) | |
| News categories, comma separated (empty = all) | |
| News: manual times, work in the tester, count as HIGH-impact events (YYYY.MM.DD HH:MM or daily HH:MM, ; separated) |
14. Daylight saving
| Input | Default |
|---|---|
| Daylight saving shift | No DST adjustment |
| Daylight saving shift (minutes) | 60 |
15. Chart
| Input | Default |
|---|---|
| Status panel on the chart | true |
| Entry / stop / target lines | true |
| Entry line colour | clrYellow |
| Stop loss colour | clrCrimson |
| Take profit colour | clrLimeGreen |
16. Misc
| Input | Default |
|---|---|
| Detailed log | false |
| Optimisation: custom criterion (OnTester) | Off (return 0; no extra computation) |
10. Backtesting and optimisation
- Model: 1 minute OHLC is fast and fine for bar-close logic; use Every tick based on real ticks for tick triggers, pending orders and tight stops.
- All times are broker server time; test on the broker and server clock you will trade.
- The custom optimisation criteria (Misc group) work with the tester's Custom max criterion.
- Keep part of the history out of the optimisation to check the result.
11. Support
Use the product comments or a private message on MQL5 to the seller (AnActualBanana). Please include the product version, broker, symbol, timeframe, your settings (a screenshot of the Inputs tab helps) and the Experts-tab lines around the problem. No custom coding and no individual trading advice.
12. Risk notice
Trading leveraged products such as CFDs, forex and crypto carries a high risk of loss and is not suitable for everyone. You can lose all of the money you trade with.
Nothing in this manual or in the EA's default settings is a promise, forecast or guarantee of profit. Backtested and past results do not guarantee future results, and results will differ between brokers, symbols, periods and account types. Stops, filters and safeguards can fail to limit a loss, for example in fast markets, on gaps or when the broker's spread or execution changes.
The EA and its settings are tools, not financial advice. Test on a demo account first and only trade money you can afford to lose.
Example settings (not optimised, for testing only)
These are examples for testing, not recommendations. They are not optimised and are not advice. Test them on a demo account and in the Strategy Tester (“Every tick based on real ticks”) before anything else. Convert the times if your broker's server clock is different: the server times below assume New York time + 7 hours all year (GMT+2 in winter, GMT+3 in summer).
All three examples buy only (shorts off), use the “buy the dip” mode of the moving-average filter on daily bars, enter on Monday and exit on Tuesday (the defaults), and use fixed lots with no stop loss and no take profit. A position held without a stop can lose much more than normal in a gap, so choose a lot size you can afford to lose with.
Example A: S&P 500 index CFD, M5 chart (“Turnaround Tuesday”)
- Buy on Monday at 22:50 server time (15:50 New York time) if the price is below Monday's daily open (a 1-period average on the daily open, dip mode). Sell on Tuesday at 22:50 server time.
| Input | Example value | EA default |
|---|---|---|
| Entry time (InpEntryHour / InpEntryMinute) and window (InpEntryWindowMinutes) | 22:50, 9 minutes | 09:05, 120 minutes |
| Exit time on Tuesday (InpExitHour / InpExitMinute) | 22:50 | 19:00 |
| MA period (InpMAPeriod) | 1 | 40 |
| MA price (InpMAPrice) | Open | Close |
| MA bar to read (InpMABarShift) | 0 (the forming daily bar) | 1 (last closed bar) |
| Allow shorts (InpAllowShorts) | off (buy only) | on |
| Sizing (InpSizingMode / InpFixedLots) | Fixed lots (set the size yourself) | Risk % of balance |
| Stop loss (InpStopMode) | Off (no stop loss, no take profit) | % of price (2 %) |
Example B: Nasdaq 100 index CFD, M1 chart
- Buy on Monday at 01:05 server time (Sunday 18:05 New York time) if the price is below the 9-day average (dip mode). Sell on Tuesday at 23:50 server time (16:50 New York time).
| Input | Example value | EA default |
|---|---|---|
| Entry time (InpEntryHour / InpEntryMinute) | 01:05 (window 120 minutes, default) | 09:05 |
| Exit time on Tuesday (InpExitHour / InpExitMinute) | 23:50 | 19:00 |
| MA period (InpMAPeriod) | 9 | 40 |
| One position at a time (InpOnePositionAtATime) | off | on |
| Max spread / slippage (InpMaxSpreadPoints / InpSlippagePoints) | 99999 / 99999 (no limits) | 50 / 20 |
| Always flat on Friday (InpFlatOnFriday) | on | off |
| Allow shorts (InpAllowShorts) | off (buy only) | on |
| Sizing (InpSizingMode / InpFixedLots) | Fixed lots (set the size yourself) | Risk % of balance |
| Stop loss (InpStopMode) | Off (no stop loss, no take profit) | % of price (2 %) |
Example C: DAX (GER40 / GDAXI), M1 chart
- Buy on Monday at 08:05 server time (01:05 New York time) with the same dip filter (the default 40-day average). Sell on Tuesday at 21:55 server time (14:55 New York time).
| Input | Example value | EA default |
|---|---|---|
| Entry time (InpEntryHour / InpEntryMinute) | 08:05 (window 120 minutes, default) | 09:05 |
| Exit time on Tuesday (InpExitHour / InpExitMinute) | 21:55 | 19:00 |
| MA period (InpMAPeriod) | 40 (the default, 40-day average) | 40 |
| One position at a time (InpOnePositionAtATime) | off | on |
| Max spread / slippage (InpMaxSpreadPoints / InpSlippagePoints) | 99999 / 99999 (no limits) | 50 / 20 |
| Always flat on Friday (InpFlatOnFriday) | on | off |
| Allow shorts (InpAllowShorts) | off (buy only) | on |
| Sizing (InpSizingMode / InpFixedLots) | Fixed lots (set the size yourself) | Risk % of balance |
| Stop loss (InpStopMode) | Off (no stop loss, no take profit) | % of price (2 %) |
The weekday switches Trade Wednesday to Trade Friday are off in the Nasdaq and DAX example sets; they only matter when the entry weekday is set to “Any”. Everything not listed keeps its default. The “try again after a failed entry” wait (InpEntryRetrySeconds) is 60 seconds in all three.
Ultimate Weekday Reversal 9.00 · © 2026 Logan McClain / Actual Algos


