Why your journal is your edge
Most traders keep a journal the way most people keep a gym membership. The problem is not discipline — it is that a journal split across a spreadsheet, an exchange export and a bot dashboard cannot answer the only question worth asking.
Here is a question that sounds simple and almost nobody can answer: which of your strategies actually makes money, and how do you know?
Not which one feels good. Not which one had the best week. Which one, across every fill you have ever taken, has a positive expectancy you could defend to someone who does not like you.
The reason it is hard is rarely discipline. It is that the evidence lives in three places. The discretionary trades are in a spreadsheet. The bot fills are in an exchange export, in the exchange's format, with the exchange's timestamps. And the reasoning — why you took the trade — is in your head, or in a note app, unlinked to either. Three sources that never meet cannot be averaged.
One table, or you are guessing
Nexlot stores every trade in one place regardless of who pulled the trigger. A manual entry and a bot fill are the same row in the same table, distinguished only by a source column:
source text not null default 'manual'
check (source in ('manual', 'nexalgo'))That is a small piece of schema doing a lot of work. Because both kinds of fill land in the same table with the same shape, a per-strategy statistic is a single query rather than a reconciliation project. When a NexAlgo bot executes a signal, the fill is written back into the journal automatically — you do not export anything, and there is no moment where the two records can drift apart.
It also makes an uncomfortable comparison possible: how your manual execution of a strategy compares to the bot's execution of the same strategy. Those numbers are often not the same, and the difference is usually you.
R is the unit that survives
Currency P&L is a bad measure of a decision. A €900 win on a position four times your normal size is not four times better than a €225 win — it is the same trade with more risk on it. Comparing them in euros compares your position sizing, not your edge.
The unit that survives across position sizes is R: profit or loss expressed as a multiple of what you risked. Risk €100 to make €250 and that is +2.5R whether the €100 was one percent of your account or ten.
R only exists if you recorded a stop. That is why the journal stores stop_price alongside entry and exit, and computes r_multiple only when it is present. Which leads to a decision worth explaining, because it looks like a bug until you think about it.
Trades without a stop are excluded, not zeroed
When the Strategy Lab computes expectancy, it averages R across your trades. A trade with no stop has no R. The obvious thing to do is treat it as zero and move on.
That would be wrong, and quietly so. A stopless trade is not a trade that made no risk-adjusted return — it is a trade whose risk-adjusted return is unknown. Averaging it in as zero drags every strategy's expectancy toward nothing, in proportion to how sloppy your record-keeping was. The worse your journalling, the better a bad strategy looks.
avg(r_multiple) as expectancy
-- null r_multiple rows are skipped by avg(), not counted as 0The comparison that matters
A journal that only tells you what happened is a diary. The reason to keep one is to check a claim.
Every strategy in Nexlot carries a hypothesis — one sentence, written before the code exists, saying what edge you think you have found. Then a backtest produces an expected win rate and expectancy. Then real fills accumulate against it. The Strategy Lab puts those side by side and tells you which of five things is true:
- there is no backtest, so there is nothing to compare;
- there is a backtest but no live fills, so the strategy is unproven;
- there are live fills but fewer than twenty, so the sample is too thin to read;
- live is tracking the backtest within noise, so the edge holds;
- live expectancy has fallen well below the backtest over a real sample, so it is decaying.
Note what is missing from that list: any branch that congratulates you. A profitable backtest with no live trades returns “unproven”, not “good”. Eight losing trades returns “too early to tell”, not “broken”. The screen is built to refuse conclusions the data cannot support in either direction, because a tool that flatters you is worse than no tool — it launders a guess into a number.
Decay shows up before the P&L admits it
Cumulative P&L is a lagging indicator of a dying strategy. A run that made money for six months and has been bleeding for six weeks still shows a green total, and will keep showing one for a while yet.
So the journal also compares the first twenty trades of a strategy against the most recent twenty. When those two numbers separate, something changed — the regime, the spread, the crowding, your execution. The total has not caught up yet. That gap is the earliest honest warning available from your own record.
What this does not do
A journal does not give you an edge. It tells you whether you have one, which is a different and less comfortable service. Most traders who start measuring properly discover that one of their strategies carried everything and the rest were noise with good stories attached.
That is the point. You cannot cut what you cannot see, and you cannot size up what you were never sure about. Everything else Nexlot does — the backtester, the bots — exists to feed this record and be judged by it.
Trading carries a high risk of loss, and none of this reduces it. Measuring an edge is not the same as having one.
Nexlot is in construction and testing — no public sign-ups, nothing for sale, and every bot on testnet. Join the waitlist to hear when that changes.