Winkler Trading Station

Free

WTS Analytics

Standalone appfree

A standalone program for analysing recorded market data — order flow, order book, statistics, and a search for relationships that says how often it guessed.

WTS-Analytics-Setup-1.0.0.exe · 127.3 MB · Windows, no admin rights, no Python needed

Overview: candles and volume profile with POC (yellow) and value area (blue). At the top, the quality of the classification — here every trade could be assigned a side.
Overview: candles and volume profile with POC (yellow) and value area (blue). At the top, the quality of the classification — here every trade could be assigned a side.

What it does

The Trading Station shows the market while it runs. WTS Analytics takes the same data apart afterwards: one day, one month, several markets side by side.

The path of the data is short. NinjaTrader records market replay as .nrd — a binary, undocumented format. The bundled AddOn WTS NRDtoCSV converts it to CSV. Analytics reads the CSV and stores it column-wise as Parquet; a daily file of several hundred megabytes becomes a fraction of that, and an analysis across a whole month reads only the columns it actually needs.

The aggressor side

The recording is missing one field everything else hangs on: who was the aggressor? It is reconstructed — for each trade, the most recently reported quote, then price against bid and ask.

Three cases stay uncertain: a trade exactly at the mid, a quote that is too old, and the first trade of a day. They count as unclear and are kept out of the delta, not counted as balanced. How many there were stands above every analysis. A delta that rests on guessed sides for a third of its trades is not a measurement — and then it should say so.

What is in it

  • Bars by time, ticks, volume or range — all four on the same event stream
  • Order flow: delta, cumulative delta, footprint, diagonal imbalance, absorption, large trades, tape speed
  • Order book as a heatmap over time, plus resting liquidity per side
  • Statistics: distributions, quantiles, skew, kurtosis, autocorrelation with its significance bound, intraday profile, volume profile with POC and value area
  • Replay of a time window from a quarter to a hundred times real speed
  • AI connection through Ollama, the Claude CLI or the Codex CLI — the same three paths as in the Trading Station

A program that tests a hundred signals against five horizons always finds something. With 500 hypotheses and a five percent threshold, twenty-five hits are to be expected even when not one is real. That is exactly where most tools of this kind fail: they show the best find and keep quiet about how many they looked at.

Six things stand against that — all visible in the output:

  1. The number of hypotheses tested appears in every result, alongside the number that would look remarkable by chance alone.
  2. What is measured is the excess, not the return: bars with the signal against bars without. "Does it rise afterwards?" gets a yes from every signal in a period that rose anyway. The right question is whether it rises differently than usual.
  3. The calculation runs on the mid price. The last traded price always sits on bid or ask, so it bounces by the spread — and any signal correlated with that predicts a reversion of half a spread. Real, highly significant, and not tradeable.
  4. The p-value comes from a circular shift test, not a t-test. Forward returns overlap; a t-test still counts every row as independent and turns that into a certainty the data does not have.
  5. Benjamini-Hochberg corrects to the chosen false discovery rate. What does not survive is marked, not dropped.
  6. Out-of-sample: the last stretch in time is left untouched by the search.

Where those six points come from

Not from a textbook, but from the project's own random data set — data in which there was guaranteed nothing to find. Three faults turned up there, and each one would have reported advantages in production that were not advantages at all:

  • the bid-ask bounce made 17 of 30 hypotheses look like an edge,
  • a degenerate bootstrap made every p-value tiny, because the block length reached the sample size and every draw returned the identical series,
  • testing against zero instead of against the base rate let every signal "work", because the path happened to rise.

After the corrections the search finds nothing in the random data set — and it still finds a deliberately planted relationship. Both are pinned as tests and run with every build.

That is the claim for this program: a tool that stays quiet in noise.

Limits

Costs are not deducted. Spread, fees and slippage are not accounted for; an excess of 0.3 ticks is a loss when the spread is one tick. The figures are given in ticks so that comparison is possible.

Executability is not checked. Whether the size was available at the wanted price is not in the data.

A relationship is not a strategy. What stands out in past data is a hypothesis.

Technical

A standalone Windows application with no Python installation. It computes locally, requires no account and sends nothing outward — except the AI connection, which can be switched off and runs entirely on your own machine with Ollama.

Screenshots

Order flow: delta per bar, below it cumulative delta, below that the most recent large trades with price, size and side.
Order flow: delta per bar, below it cumulative delta, below that the most recent large trades with price, size and side.
Edge search: 40 hypotheses tested, none survived the correction. The notes above name the benchmark, the price the calculation ran on, and that no costs are deducted.
Edge search: 40 hypotheses tested, none survived the correction. The notes above name the benchmark, the price the calculation ran on, and that no costs are deducted.

Ready for the order flow?

An account takes a minute. Then 14 days of the whole station: footprint, delta, order book, tape – no payment details.

Afterwards from €49.99 / month or €999.00 once · books from €9.99 · final prices