Meet the team behind each decision.
A price falls, slows, then starts to climb. Is a recovery beginning, or will the price fall again?
MULLINER studies that question with a team of forecasting programs. You can see their votes, follow the shared decision, and check what happened next.
One price. Two possible directions.
Forex means trading currencies. MULLINER studies USD/CAD: how many Canadian dollars one US dollar buys. A price of 1.35 means US$1 buys C$1.35.
A long position gains when that price rises. A short position gains when it falls. Either can lose when price moves the other way. Flat means no open position.
The aim is to find moves large enough to cover trading costs and leave a profit. An edge is a repeatable advantage after those costs. The current research has not established a durable edge.
Why turns?
At any moment there are three groups in the market: people betting the price rises, people betting it falls, and people waiting to commit.
When the price climbs away from a level and then comes back, all three groups act at once, for completely different reasons. The people who bought there want to buy more at the same price. The people who bet against it are now losing, and want out at the level where they'd break even. The people waiting see momentum and want in.
Three groups, three motives, one price. They buy at the same moment and the price bounces. Sellers produce the mirror image above.
This isn't a theory about chart patterns. Studies of actual currency orders find them clustered at exactly these prices — take-profits at round numbers, protective stops just beyond. The orders are really there. A confirmed turn is what it looks like when that cluster gets used up.
MULLINER's question is whether the conditions around one of those moments — which levels it formed against, how price approached, how volatile the session was, what every other measurable clue was doing — say anything useful about what happens next.
These motives are an explanatory hypothesis, not something the candles identify. Price data alone cannot recover the orders or prove that a particular turn exhausted an order cluster.
Order-flow evidence: Carol L. Osler, Currency Orders and Exchange-Rate Dynamics (2001), examines stop-loss and take-profit orders at a foreign-exchange bank and their clustering around round numbers. Stop-Loss Orders and Price Cascades (2002) distinguishes trend-amplifying stops from take-profits that can oppose a move. This evidence motivates the test; it does not establish MULLINER’s edge.
A machine with a legible record.
The vehicular names express the author's approach to markets: a machine with carefully fitted parts, a legible instrument panel and a record of how it was built. The luxury is in the workmanship — clear interfaces, reproducible models, controlled changes and details that remain accessible without crowding the driver.
The team, from clue to result.
- COMPRESSOR · Find the turns
- Price changes constantly. COMPRESSOR picks out turns after price moves back far enough to confirm them. A smaller scale reveals smaller turns, like adding detail to a map. A confirmed turn describes what happened; it does not guarantee the next move.
- Models · Make the forecasts
- A model is a program that estimates what might happen next. The active team learns from examples with neural networks, a linear classifier and a tree ensemble. Archived rules retain their earlier descriptions and votes. Each model can vote long, short, or flat.
- CONSENSUS · Choose one target
- The models form an ensemble: a team. CONSENSUS combines their votes into a direction. In experimental mode, that target stays in force until an opposite decision. Neutral votes keep the last target. Each model has a weight, meaning a share of influence. Measured results can change that share. New models first run in shadow: they make forecasts with zero trading influence. They must pass historical and later-outcome tests before joining the live vote. Losing or persistently inactive models retire with zero influence. If all supporting models retire, the old target is cleared.
- OANDA · Carry out the trades
- OANDA is the broker: the service that executes orders and holds the trading account. When execution is enabled, MULLINER uses its target to manage the position. The broker panel shows what the account actually holds.
- The ledger · Keep score
- A forecast is recorded first. Later prices show how a simulated trade would have performed after estimated costs. Pending means the system is waiting for enough later prices. Broker trades have separate records.
- The workshop · Test the next team
- A neural model’s DNA is its recipe. Genes are individual settings. New candidates inherit settings from parent models, with occasional changes. The workshop trains and tests the candidates, then selects a team. One selection round is a generation. The timer checks every five minutes, but replacement waits for four new resolved outcomes per model or a completed retirement review. An outcome is resolved when the later prices needed to score it are available. Overlapping trades do not count twice. The workshop shows the count and each model’s state.
Neuro-evolution is the name for combining neural models with this evolutionary search over their recipes. The models are not conscious. A new generation is a new test, not a promise of improvement.
What are the models looking for?
- Swing rejection
- Price turns near an earlier level and moves away.
- SMA21 bounce
- Price returns to its recent average, then resumes its earlier direction. SMA 21 means the simple average of 21 closing prices.
- Level breakout
- Price moves beyond yesterday’s high or low and continues.
- Neural models
- Examples help the model learn how turns, nearby levels, and other market clues relate to later moves. Some models focus on rising prices; others focus on falling prices.
Each idea is a hypothesis to test. The team can disagree, and every model can be wrong.
Try it in one minute.
- Read Model target. This is the position the models want.
- Read Broker exposure. This is what the account holds. Open Position details for the amount, entry price, and current gain or loss.
- Open Model record and select a model. Its votes stand out on the chart. The inspector explains its idea.
- Open Research and select a candidate. See its settings and which earlier models supplied them.
- Open Forecast ledger and select a result. Return to the forecast that came before it.
Green means long or rising. Red means short or falling. Colour alone does not mean profit or loss.
Read the chart marks and controls
- Price bars, also called candles
- Each bar covers five minutes. It shows the opening price, high, low, and closing price.
- Target markers and broker fills
- Dots mark CONSENSUS target changes; the latest reference label shows the source candle time and close. The target summary shows the retained model direction and whether the verified broker position matches it. The decision column shows raw price movement from its reference, not account profit. Enable all decisions and fills in Layers to see the complete record. Squares show broker-confirmed trades.
- COMPRESSOR diamonds
- Hollow diamonds show turns reconstructed from historical data. Solid diamonds show confirmations stored during model runs. The scale selector changes the display; models have their own settings.
- Levels and SMA 21
- Levels are reference prices from earlier days and weeks. SMA 21 follows the average of the last 21 closing prices.
- Model vote rows
- Enable Votes in Chart layers to show the vote history. Each row follows a recorded slot; its model can change. Green means long, red means short, grey means flat, and blank means no recorded vote. Select a cell to see its model ID and time.
- Hold a time
- Click a price bar to keep that time selected. Select Latest to return. On a keyboard, use the left and right arrows, then Escape.
- Price level reference
- Open the list below the ledger to see the dates behind the chart lines. It uses twenty prior UTC days and four prior weeks. The latest set spans the view; it does not establish what a model knew at every earlier bar.
Read the scores and trading status
- Influence
- A model’s share of the CONSENSUS vote. It is not a chance of winning.
- Avg. sim.
- The average scored forecast result in pips after estimated costs. A simulation calculates a possible outcome; it does not require an actual trade.
- Confidence
- A score supplied by a model. It is not a measured probability of winning.
- Historical test and test score
- Results from trying a candidate on earlier prices. The workshop uses these to compare models. They are not broker profits.
- Signal mode · orders disabled
- The system is observing without placing orders. A connected fxTrade account does not by itself mean trading is enabled.
- Missed entry
- With fresh data, the runner checks the target against the actual position each minute. It can catch up after a confirmed rejection. A stop-out needs a fresh signal before another entry. An uncertain order must first be reconciled.
- OANDA entry lock
- OANDA can block new positions even when account reads work. Contact OANDA to remove that restriction. Confirmed locked entries retry after 15 minutes.
- Account record
- The broker panel shows entry, units, open P/L, and recent executions. Open Position & account record for balance, equity, fill totals, history, and diagnostics. Equity includes open profit or loss. Deposits and withdrawals also change the account; this is not a strategy-return chart.
- Connection details
- Open the account record for the last successful read, failed step, next retry and action. Brief failures retry automatically. Old values remain labeled as last known. Access restrictions or a stopped server service can require your action.
- Broker fill
- Confirmation that an order actually became a trade.
- Stale record
- The latest stored data is older than expected. Check the timestamp before treating the display as current.
- Scheduled market pause
- The system waits through the daily or weekend fxTrade closure. It resumes when new bars arrive. Unexpected missing data stops the forecast cycle.
Execution and consensus policy
Live mode can place orders on the real account. Practice mode uses the broker’s practice account. Signal mode records decisions without placing orders. A live broker connection alone does not enable trading.
Experimental policy gives admitted models positive prior influence; shadow models still have zero influence. This is not the stronger evidence-gated qualified policy. Four resolved outcomes trigger a review; they do not establish an edge. Qualified policy additionally requires sufficient development and prospective evidence before a model receives positive influence.
Translate a term.
Price, trades, and costs
- Position
- An open trade that gains or loses value as price changes. Units tell you its size.
- Support and resistance
- Price areas where a fall or rise might pause, potentially because clustered orders and converging motives bring trading interest to the same level. Why turns? Support is below; resistance is above. Price can pass through either.
- Pivot or swing
- A point where price changes direction. Confirmation comes later, after a sufficient move away.
- Confluence
- Several clues occur near the same price or time. Related clues are not necessarily independent evidence.
- Velocity
- How quickly price moves over a chosen interval.
- Pip
- A small unit of price movement. For USD/CAD, one pip is 0.0001. A move from 1.3500 to 1.3510 is ten pips.
- Spread
- The difference between the broker’s buy and sell prices. This adds to trading costs.
- Stop
- An instruction to close a trade if price reaches a specified level. The actual exit can differ if price jumps.
- Unrealized profit or loss
- The current gain or loss on an open position. It can change before the trade closes.
- Net result
- A result after the costs included in that calculation. Simulations use estimates; actual account costs can differ.
- UTC
- A shared time standard used to date the reference levels. It can differ from your local time.
Neural settings, in ordinary words
- Input or feature
- A piece of information given to a model, such as distance from an earlier price level.
- Binary flag
- A yes/no clue, stored as 1 or 0. For example: is price above its average?
- Layer sizes
- The number of calculation units in each internal stage of a neural network.
- Activation
- The mathematical rule that changes a layer’s output before the next stage uses it.
- Learning rate
- A setting that controls training updates.
- Regularization
- A training penalty that limits the size of fitted parameters. It can help reduce overfitting.
- Overfitting
- Learning details of old examples that do not help on new examples.
- Input sampling
- Choosing a share of the available clues for a model to use.
- Entry gate
- The minimum score required for an active vote. Classifier scores use 0.55; this is not a calibrated win rate. A matching confirmed-turn setup is also required.
- Parents and mutation
- Parents supply settings to a new model. Mutation introduces an alternative setting.
Ready to look? Return to the dashboard →
Server commands and maintenance are in README.md in the repository.
The learned team and its next test
The current team uses learned models: Intraday and Micro neural networks, a linear classifier and a tree ensemble. Each has a long and short specialist. A score of 0.55 is a screening score, not a 55% win rate. New models first make forecasts with no influence over trades; resolved results determine admission. Archived models retain their name, approach and recorded votes. HOMOLOGATION is a separate frozen experiment with a public result, including failure; it does not change the live team.