Product Overview
Lexicon is a Strategy Research Platform.
You describe your setup the way you'd describe it to another trader. Price breaks the previous day's high. Then volume expands. Then price holds above that level for three bars — and you're in. First this, then this, then this. Lexicon turns that into a definition and runs it against years of history. Sequence, timing, higher timeframes, cross-market. It runs in your browser. No code, nothing to install.
Chart at the top, equity curve below. The Logic Composer is where you build, trade management underneath, statistics and filtering down the right side. Nothing is buried behind menus or tabs — no wizards, no settings screens. The only things that open over the interface are your saved strategies, your run history, and the Full Report. Change one condition and run it again in seconds.
THE LOGIC COMPOSER
You already know how to describe your setup.
Each row is used to construct sentence fragments. Select your indicator, anchor or price on the left, how you're comparing in the middle, and what you're comparing it to on the right. Then choose how to connect the next fragment — AND, OR, THEN, FOR, WITHIN — and a new row appears for the next part of the strategy.
Above the rows, your entire idea assembles into a sentence as you build. Read it back before you run the backtest. It's in the same words you'd use to explain the setup to another trader — if it doesn't say what you meant, you can see that immediately.
The composer only offers what makes sense. Select a Bollinger Band and the comparator list narrows to the handful that apply to bands. Select RSI and a value box appears on the right, because comparing RSI to another indicator isn't a meaningful expression. Select price_below_lower_band and the right side disappears entirely — the condition is already complete.
You can't build an expression that doesn't mean anything.
ANCHORS AND INDICATORS
The levels you actually watch, as first-class conditions.
Prior day high and low. The opening print. The first fifteen minutes. Session highs and lows for Asia, London and New York — and for the New York morning and afternoon separately. Ninety-minute cycle levels. Weekly, monthly and yearly extremes.
And custom windows. Name any time range and Lexicon gives you its high and its low as levels you can reference. What was the high of the first ten minutes? The last forty-five before the close? Whatever range you name, that level becomes a condition you can build on.
They're selectable exactly the way an indicator is. A rule can compare price to a level as easily as it compares price to a moving average, and a level can sit on either side of the comparison. You're not limited to crossing or exceeding one either — WITHIN_DISTANCE fires when price comes near a level, like within five points of the 0.618 retracement of last week's range.
Fibonacci and pivots work here for the same reason. A Fib level only means something relative to the swing it's drawn from — choose the anchors and the levels follow. Most tools can't test either one properly because they never gave you the anchors to begin with.
The indicator library is here too. Ninety-four of them across trend, momentum, volatility, bands and channels, volume and structure. Type the first few letters and it's there.
Most platforms give you indicators. The levels you trade around are left for you to draw.
SEQUENCE AND TIMING
A setup develops. It doesn't happen all at once.
Most backtesters ask one question: were all of these conditions true on the same bar? That's a snapshot, and it's not how a setup works. Something forms first. Something else confirms it. The confirmation has to arrive in time, and then it has to hold.
THEN starts a new stage in a sequence. Everything before it has already happened; everything after it is what you're now waiting for. Each stage carries a deadline in bars — if the next condition doesn't arrive in time, the setup expires and the engine stops waiting. A confirmation that shows up twenty bars late isn't a confirmation.
FOR requires a condition to hold. Price below a level for five bars is a different claim than price touching it once, and the difference is usually the whole trade.
WITHIN restricts a condition to a clock window — the first thirty minutes, the London open, whatever range you name. Stages can each carry their own window, so one part of the setup can be required in the morning and the next in the afternoon.
AND and OR combine conditions inside a single stage, so a stage can require three things at once or accept any one of several. Stack the stages however the idea actually runs. ENTER closes the sentence and opens trade management.
Sequence, order, timing, and duration are part of your setup. They should be part of the backtest.
Higher Timeframe and Cross-Market
Trade the 5-minute with the daily's permission.
A condition can reference a timeframe you aren't trading. Set the leftmost box to a higher timeframe and that row is evaluated on the HTF while everything else stays on your master chart. One definition, not two strategies stitched together.
Here's the same EMA cross on ES, run twice over the same two years. On its own it fires 960 times, and most of those crosses are noise — a 1.03 profit factor and a 27% drawdown to earn $10,620.
Without the filter 960 trades· every cross taken
Add one row. A daily SMA sloping up, which is just a plain description of a bullish regime. Now the same cross fires 43 times, earns $9,735, and the drawdown is 3%. Nearly the same money from 4% of the trades, because a strong bullish trend was required and everything outside it is gone.
With a daily trend filter 43 trades· one added row, evaluated on the 1d chart
The same box also allows you to select another instrument instead of another timeframe. Require ES above its weekly high while NQ sits below its own, and you've expressed a divergence — lead-lag, confirmation or disagreement, from inside the same definition.
Context isn't a separate strategy. It's a row.
TRADE MANAGEMENT
Getting in is half the definition.
How you manage the position is part of the strategy, not an afterthought.
Fixed targets and stops in ticks, or ATR multiples if you'd rather they scale with volatility. Exit before session close with a buffer you set, so a position isn't carried through the maintenance break by accident.
Trailing stops work two ways. Trail from the moment you're filled and it replaces your static stop. Or set an activation level — the trail engages only once the trade has moved that far in your favour, and from then on it's what closes the position.
Indicator exits are built in the same composer as your entry, and they're how you express invalidation. You entered because a fast average crossed up through a slow one and held. If it turns around and crosses back down, the idea is dead — close it. By default an indicator exit runs alongside your take profit, whichever comes first. Or set it to replace the take profit entirely and let the exit condition decide.
Split the position across multiple legs, each with its own quantity, target and stop, so you can scale out at one level while the rest runs.
Two fill methods: close fill, or exact bracket. Both use pessimistic assumptions — if a bar crosses both your target and your stop, it records the stop, because there's no way to know which came first. Commission and slippage are configurable per side and included in every result.
What you see is what the strategy would have cost you.
The Chart
Every trade it took, where it happened.
The chart is TradingView, with your strategy's indicators drawn on it and every entry and exit marked. Toggle the indicators off when you want to see price alone.
It's navigable from the results. Click any trade in the ledger and the chart jumps to it. Click anywhere on the equity curve and it jumps to that point in the run. When you're looking at a string of losses in the trade list, you're one click away from seeing what the market was doing while they happened — and that's usually where the next revision comes from. Low range, fading volume, a trend that turned. Whatever it is, you're looking at it rather than guessing.
Jump to any date directly, or to the beginning or end of the run. Read the chart in UTC, exchange time, New York time, or your own. Sort the trade ledger by entry time, PnL, or exit reason.
A statistic tells you something went wrong. The chart tells you what.
Results
A number for the whole run tells you almost nothing.
Every backtest gives you a P&L and a win rate. Both are averages, and averages hide the thing you need to know — an edge is almost never spread evenly across the market. It lives somewhere specific.
The panel gives you the run. Total P&L, trades, win rate, profit factor, expectancy, average win and loss, longest winning and losing streaks. Maximum drawdown in dollars, as a percentage of peak, and as a percentage of your initial capital — that last one because how far you fell from a high matters less than how much of your stake was at risk.
Underneath it is the filter. Session, a window inside a session, days of the week, regime. Apply one and every statistic above recalculates against what's left. A strategy that looks flat overall can be carrying New York on its back while London bleeds it out, and a blended number will never show you that.
Some of what you'll find here doesn't exist elsewhere. Regime and session breakdowns tell you which market conditions your edge actually lives in. Efficiency measures how much you risked to earn what you earned. PLV weighs profit against loss on a per-trade basis. And fitness combines accuracy, PLV, drawdown and efficiency into one score out of a hundred — built for the question a trader is actually asking, which is not the question Sharpe was designed to answer.
The full report opens over the top and breaks the run apart properly. Equity curve. Hold duration split by winners and losers, mean and median, so you can see whether you're cutting gains short and letting losses run. Breakdowns by session, regime, day of week, week, month and year. Best and worst slices called out by name.
Regimes are derived from the daily chart, not guessed at — a smoothed daily average, the change from one day to the next, and thresholds set as a percentage of the instrument's own price, so a strong trend means the same thing on gold as it does on the E-mini.
Then you change one thing and run it again.
History and Saved Strategies
Every test you've ever run, still there.
Every run is recorded. Open your history, click any entry, and the interface repopulates with that strategy and its results — the definition, the chart, the statistics, the full report. Change one thing and run it again.
Save a strategy under a name and attach notes to it. What you were testing, what you suspected, what you meant to try next. Three weeks later that's the difference between picking up where you left off and starting over.
It accumulates. Six months in you're not looking at a backtest, you're looking at a record of everything you've tried and what each attempt showed — which ideas held, which fell apart, and under what conditions. That's a different asset from any single result, and it's the one that gets more valuable the longer you use it.
Nothing you test is thrown away.
THE ENGINE
Your sentence, compiled.
What you build in the composer isn't interpreted loosely. It's compiled into executable logic and run the same way every time — same definition, same data, same result, whether you run it today or in a year. Every strategy is stored with a version signature, so any run can be reproduced exactly.
That's the part code can't give you. Generated code has to be read, checked and trusted before you can believe a result. Here the definition is the thing that runs, and you already read it back in plain English before you pressed the button.
Two evaluation modes. Candle close evaluates every condition at the close of each bar on your master timeframe — the way an algo acting on completed bars would see it.
One-minute granularity walks the bar as it forms. Indicators are still calculated only on master-bar close and then projected forward while the bar builds; the one-minute bars are used solely to check price against those projected values, never to recompute the indicators themselves. When the bar closes, the indicators recalculate and it starts again. That's closer to what a discretionary trader watching a chart would experience — and it's stated plainly here because how a backtester handles intrabar behaviour changes what its results mean.
Same definition, same data, same answer. Every time.
Coverage
What you can test.
Markets
Futures at launch: indices, energy, metals, agriculture, FX and rates, across every major exchange. Crypto, equities and indices to follow.
Timeframes
1-minute, 5-minute, 15-minute, 30-minute, 1-hour, 4-hour, daily and weekly. A higher-timeframe or cross-market condition can reference any of them from inside a single definition.
History
Futures history reaching back to 2008, depending on the contract. Run the full available range in seconds.
Sessions
CME Globex session boundaries, the daily maintenance break, and DST transitions are all handled in anchor computation and timing logic. A session high means the session's high, not an approximation of it.
Lexicon is a research tool. Nothing it produces is investment advice. Past performance does not indicate future results.
WHY THIS EXISTS
The answer was always “learn Python.”
I wasn't trying to become a programmer. I was trying to learn to trade. I'd found patterns I wanted to test, and every answer to 'how do I test this' came back the same way — learn to code first. That's a strange toll to pay when what you're trying to learn is trading. Most people don't pay it. They give up on testing and trade the idea on faith instead.
That's the gap. Not a missing feature — a missing tool for people who think in setups and don't write software.
So Lexicon is built around one idea: the distance between having a thought about the market and knowing whether it held up should be minutes, not months. One screen. Dropdowns instead of syntax. A sentence you can read back before you run it. Results broken apart far enough that you can see where the edge actually lives, then change one thing and go again.
Where there's no industry standard for how something is calculated — and for a lot of indicators and statistics there isn't — we pick a convention and publish it, so you know what the number in front of you means.
Built because it should have existed.
