Logs
Every closed position on your bots, in patches you judge together - with the columns, the stats and how each one is worked out.
Logs is a journal of every closed position on each of your bots, on the website. That means every position on the exchange account connected to a bot, including ones you opened by hand on Bybit, outside Risbot. Each row shows what the exchange did, what Risbot planned, and two columns you fill in yourself. The trades are grouped into patches, and each patch gets its own stats and chart.
Where Performance reports on a period you pick in Telegram, Logs keeps a row for every trade and lets you mark each one: did it follow your rules, and what kind of trade was it.
Getting there
- Logs in the sidebar of your account on the website, or in the tab row on a phone. It opens on your first bot.
- Trade logs on a bot's card on the Bots page (see Seeing your bots). It opens Logs on that bot.
The bot picker at the top of the page switches between your bots, and shows how many visible patches each one has. It lists every bot that has an exchange key connected, plus any bot that already has trades logged. Revoking a key does not take a bot's history off the list.
If you have no bots yet, the page says No bots yet and links to Bots. A bot with no key and nothing logged says Nothing logged for this bot and links to Connections.
What gets logged
One row per position. A position opens when that coin's size on the account moves away from zero, long or short, and closes when it is back at zero. However many orders went into it or took it out, it is one row. A position that is still open has no row yet.
Only positions opened after the account was connected to this bot. Logs starts from the first time that exchange account was connected to that bot. If you revoke the key and later reconnect the same account, the gap is filled in, because it is the same trading history. A different account connected later counts only from its own connection onwards. Positions opened before the connection are not logged.
A row is written once. When a trade is first logged, its prices, PnL and Risk are stored and are not worked out again later. After that, only its Rules and Tag can change.
Fetching new trades
Logs reads your exchange account when you open the page and every time you switch bot. Fetch latest, in the page heading, reads it again. The line beside it says when the bot was last read, like Updated 12 minutes ago, or Not fetched yet for a bot that has not been read.
When you press the button, a message says what it found:
2 new trades added to Patch 2
Up to date — nothing closed since the last fetchThe bot server also fetches every hour, for every bot with a key connected, whether or not you open the page. Your trades are logged either way. The page is only a way to bring it up to date sooner.
The first fetch for a bot reads its whole history since the account was connected, so it can take a while. If it takes too long, the page shows what is already saved and the fetch keeps running. The next time you open the page, or press the button, the rest is there:
Still fetching from Bybit. Showing what's already saved.If Bybit cannot be reached, nothing already logged is lost:
Couldn't reach Bybit. Showing what's already saved.If Bybit refuses the server's address, the message says so and, where it can, names the address to add to your key's whitelist. See If Bybit refuses the server's address later.
Bybit rejected the request because this server's IP isn't on the API key's IP whitelist.A bot with no key keeps every trade it already has, but Fetch latest is turned off and the heading points to Connections:
Changing or revoking a key first tries one last quick fetch with the old key, to pick up anything that closed since the last one.
Patches
The New patch dialog puts it this way: "A patch is a run of trades you want to judge together — say your next 100 under one set of rules." The patch bar along the bottom of the page has one tab per patch.
- Every bot always has one. The first time a bot is read, it gets Patch 1, which holds 100 trades and is active.
- Exactly one patch per bot is active, marked active on its tab. New trades go into it, numbered in order, the oldest close first.
- A tab shows how full the patch is. You see the trade count and the size, like 6/100, until the patch is complete, and then just the size, like (100). The ring beside it fills up as trades come in. It is green when the patch's PnL is zero or above, red when it is below zero, and grey while the patch is empty.
Size
A patch holds 1 to 1,000 trades. New patches hold 100 unless you choose otherwise. The quick picks are 30, 50 and 100, or you can type any number in that range. A patch cannot be made smaller than the number of trades it already has. A size outside the range is refused with the smallest size allowed:
Pick a size between 6 and 1,000 trades.When the active patch fills
When the active patch is full, it is complete, and another patch becomes active:
- Of your other visible patches that still have room, the one that was made active most recently takes over. Patches that have never been active come after those, highest number first.
- If none has room, a new patch is opened, named for its number, with 100 trades.
Trades from the same fetch that do not fit carry on into the next patch. The page says what happened:
Patch 2 is complete. London session is now active.The tab menu
The arrow on each tab opens its menu:
| Item | What it does |
|---|---|
| Activate | Makes this patch the active one. Only shown for a patch that is visible, not complete and not already active. |
| Rename | Changes the name, up to 40 characters. Trades and tags stay as they are. |
| Edit trade count | Changes the size. Setting it to exactly the number of trades the patch holds completes it, and if it was active, the next patch takes over as described above. Raising a complete patch's size makes it incomplete again, so you can activate it again. |
| Hide | Takes the patch off the bar. If it was active, the next patch takes over, the same as when it fills. Not allowed for your last visible patch. |
| Delete | Only shown for a patch with no trades that is not active. |
Hiding does not delete anything. A hidden patch is still listed under All patches, the menu at the left end of the bar, with every patch and its count. Pick a hidden patch there to show it again.
Only an empty patch can be deleted, and nothing is lost when you do. A patch with trades can only be hidden. Logs never deletes a trade, and patch numbers are not reused.
Drag the tabs to put your patches in a different order.
New patch
+ at the right end of the bar opens New patch. It asks for a name (Patch and the next number unless you change it), how many trades, and whether to Make it the active patch, which is on by default. If the current active patch is not complete yet, the dialog says what happens to it:
Patch 2 still has 94 trades to go. It stops taking new trades and keeps the 6 it has.Starting balance
ROI, Max drawdown %, Sharpe, Sortino and the percentages beside Avg. gain and Avg. risk are measured against the patch's starting balance: your wallet plus your Collateral Balance.
- A patch you create reads it from the exchange as you create it.
- A patch Risbot opens, or one where that read did not work, takes the balance Risbot recorded with the first trade Risbot placed into it.
A patch with neither has no starting balance. It shows this, and those figures read —:
No starting balance — this patch has no trade placed through Risbot yet.Overview
All patches
3 patches · 21 trades from Sep 5, 2026 to Oct 4, 2026
Overview is the first tab in the patch bar, and it always stays first: it cannot be dragged, sorted or hidden. Its count is every trade in every patch of the bot. It adds up every patch of the bot, hidden ones included, over a range you pick, so you can see how the bot has done across patches rather than one patch at a time.
Overview is on Pro and Max. On Free you can open the tab, move the range and switch bots, but the figures and charts stay blurred under Overview is on Pro and Max. What sits under the blur are sample figures, not your own trades. See Plans.
The range
Pick All time, 30D, 90D or YTD, or set From and To yourself. A trade is in the range when it closed on one of those days, in your time zone, the same day rule as the patch card's trading days. Clear a date with its ✕. Clearing both goes back to All time. A range with nothing in it says No trades in this range, with Show all time to widen it.
One starting balance
Overview's ROI, Max drawdown %, Risk % and every figure in brackets use one starting balance: the starting balance of the earliest patch with a trade in the range. The ROI note names that patch. If no patch in the range has a starting balance, those figures read — with no starting balance in this range.
The figures
The six figures at the top, Sharpe, Sortino, Avg. gain / trade and Avg. risk / trade are worked out exactly as on the patch card, over the range instead of one patch. Sharpe and Sortino use each trade's PnL, so they need no starting balance. Overview adds:
| Figure | Formula | Notes |
|---|---|---|
| Profit factor | total won ÷ total lost | 1.00 breaks even, and the bar under it marks that point. ∞ when the range has wins and no losses. |
| Win R ÷ loss R | avg. winning R ÷ avg. losing R | How many times bigger the average win is than the average loss, in R. |
| Losses past 1R | losses with R below −1 | Losses that ran past their stop. Avg. deviation past 1R is their average Deviation, in red above 10%. The ring shows the share of losses held at 1R or better. |
| Recovery factor | PnL ÷ max drawdown $ | How much the range earned for the deepest fall it took. — with no drawdown. |
| Longest time underwater | longest stretch below a peak | From the trade that set a peak in running PnL to the trade that got back to it. Underwater now counts from the last peak if you are still below it. |
| Best day / Worst day | highest / lowest day's PnL | By close day. |
| Streaks | runs of wins or losses in a row | Max and average, in close order. |
| Avg. hold | close − open, averaged | For winners and for losers separately. |
| Avg. trades / day | trades ÷ days in the range | Every calendar day counts. The trading day figures count only days with a close. |
The charts
- Equity curve: running PnL, or running R with $ / R, with the drawdown from its peak below it and the longest time underwater shaded. Click a key above it to hide or show it.
- PnL by patch, By coin: each one's PnL in the range.
- Risk per trade: each trade's Risk, coloured by patch, with Risk as a share of the starting balance as a line.
- Rules · win rate, Rules · avg. R, Rules · total PnL: each figure for trades you marked Yes under Rules (Followed) against No (Not followed).
- Rolling 20-trade win rate and EV: both over the last 20 trades at each point, so a slump shows as a dip.
- R distribution: how many trades landed in each half-R step, with everything below −1R in one bar.
- PnL over time: by day, by week once the range is longer than 90 days, and by month once it is longer than a year.
- By weekday and By hour opened: PnL by when each trade opened, in your time zone.
- Performance by tag: wins and losses per tag.
- Long vs short, Trade mix: how each side and each order type did, and how many trades you have checked against your rules.
- Win/loss sequence: one bar per trade, up for a win, down for a loss.
- PnL calendar: every day's PnL, trades and win rate, tinted green or red, with each week's total at the side. Monthly shows the year by month, with each quarter's total. Click a month to open it day by day.
Hover over any bar or day to see its PnL, how many trades it holds and their win rate.
Summary report
Generate summary report reads the range you have picked and writes up what it shows. It needs at least 100 trades in the range. With fewer it says so straight away - The sample is too small to measure against - and tells you how many you have, because a handful of trades cannot tell a pattern from luck. Widen the range, or come back after more trades. On Free the button is off, like the rest of Overview.
It is for reading in a minute rather than going through every chart: what you are good at, what is costing you, and what to change next. Everything in it comes from the same trades as the figures above it.
- Your edge: what made you money, strongest first. Your best weekday and hour (by when trades opened, in your time zone), best coin and best tag, the stronger side and entry type, following your Rules when it pays, and Your R sweet spot: the bar of R distribution where most of your winners close.
- What's costing you: what lost you money, costliest first. Your worst weekday, hour, coin and tag, a side or entry type that lost while the other made money, breaking your rules, losses running past your stop (Avg. deviation past 1R above 10%), holding losers longer than winners, and losing runs longer than your longest winning one. With none of these it says No clear weak spot in this range.
- Your habits: average win and loss streak, and average hold for winners and losers.
- Focus next: the three things to change first - the costliest weaknesses, then your edge if there are fewer than three.
A weekday, hour, coin, tag or R band needs at least 5 trades before the report names it, so two lucky trades on a coin are never your "best coin". A best has to have made money and a worst to have lost it. The report is worked out from your trades by fixed rules, so the same range always gives the same report.
The patch card
Trade risk allocation
risk per trade against running PnL, in USDRisk & drawdown
Trading frequency
Every figure on the card is worked out over every trade in the patch, tagged or not. A figure that cannot be worked out - no trades yet, no starting balance, nothing to divide by - reads — rather than a made-up zero.
Most of them use R, a trade's result as a multiple of what it risked: PnL ÷ Risk. A
trade has no R when it has no Risk - every trade Risbot did not place (see
below) - or when it was changed on Bybit. Figures in R leave
those trades out. Everything else counts them.
The headline figures
| Figure | Formula | Notes |
|---|---|---|
| Win rate | wins ÷ trades × 100% | A win is a trade with PnL above 0, so one that closed at exactly zero counts as a loss. Rounded to a whole percent. The note counts wins and losses, and the ring shows the split. |
| Avg. winning R | average R of winning trades | The note, avg. losing, is the average R of trades with PnL of 0 or below. Only trades with an R count. |
| PnL | sum of every trade's PnL | The note, avg … a trade, is PnL ÷ trades. |
| ROI | PnL ÷ starting balance × 100% | Needs a starting balance. The note says which balance it was. |
| EV | average R × 100% | Over every trade with an R. The note gives the same average in R. +5% means each trade made 0.05R on average, measured in what it risked. Below zero, the patch lost more than it won per unit of risk. |
| Total duration | last trade's close − first trade's open | In whole days, at least one, with every 30 days written as a month - 1 mo 10 days. |
| about … days to fill | total duration ÷ trades × (patch size − trades) | The note under Total duration. Shown from two trades, rounded to whole days. A full patch says patch complete instead. |
Risk & drawdown
Each of these measures a trade against the patch's starting balance. A
trade's return is PnL ÷ starting balance, and its balance after a trade is
starting balance + Cum. PnL at that trade.
| Figure | Formula | Notes |
|---|---|---|
| Sharpe ratio | average return ÷ standard deviation of returns | The sample standard deviation, per trade, over the whole patch - not annualised. Needs a starting balance and at least two trades, and reads — when every trade returned the same. |
| Sortino ratio | average return ÷ √(sum of losing returns² ÷ trades) | Sharpe with only the losses counted as risk: winning returns add nothing to the sum, but every trade counts in the division. Same requirements, and — with no losing trade. |
| Avg. gain / trade | PnL ÷ trades | In brackets: avg. gain ÷ starting balance × 100%. |
| Avg. risk / trade | average Risk of trades that have one | In brackets: avg. risk ÷ starting balance × 100%. |
| Max drawdown $ | lowest (balance − peak) | The peak is the highest balance so far, the starting balance included. With no starting balance it walks from zero, so it is still the biggest fall in your running PnL. |
| Max drawdown % | lowest (balance − peak) ÷ peak × 100% | Needs a starting balance. |
Trading frequency
| Figure | Formula |
|---|---|
| Avg. trades / trading day | trades ÷ trading days |
| Avg. wins / trading day | wins ÷ trading days |
| Avg. losses / trading day | losses ÷ trading days |
A trading day is a day on which at least one trade closed, in your time zone, so a quiet week does not pull these down. Losses include trades that closed at exactly zero, as in the win rate.
Trade risk allocation, the chart, shows each trade's Risk as a bar (left axis) and Cum. PnL as a line (right axis), by trade number. Click Risk or Cum. PnL above it to hide or show either one. Before the patch has a trade it says The chart draws once the patch has a trade.
The Trades table
Trades
6Filled in from Bybit and Risbot. Some values are yours to add.
2 trades still need a tag and a rules check.
The table lists the patch's trades oldest first, and opens scrolled down to the latest. Most column headers have a ? that explains the column. Those explanations are quoted below.
| Column | What it shows | Where it comes from |
|---|---|---|
| # | The trade's number in the patch. | Logs |
| Date, Time | When the position opened, in your time zone. | The exchange's fills |
| Duration | Open to close. | The exchange's fills |
| Coin | The coin traded, like BTC for BTCUSDT. | The exchange's fills |
| Direction | Long or Short. | The exchange's fills |
| Entry | The first order's type, Limit or Market, even if you added to it later with a different type. | Risbot |
| Avg entry | Entry price, or the average entry if you scaled in with several orders. | The exchange's fills |
| Stop loss | Where your first stop was set when the position opened. Moving it to breakeven later doesn’t change this. | Risbot |
| Avg exit | Final average price you exited at, win or loss. | The exchange's fills |
| Risk | Dollars at risk across every entry if each stop is hit, including fees. | Risbot |
| PnL | Realised profit or loss in USD after fees. | Bybit's closed PnL |
| Deviation | See Deviation. | Worked out |
| R | Profit or loss as a multiple of the risk. The worst loss should be −1R. PnL ÷ Risk, blank with no Risk or for a trade changed on Bybit. | Worked out |
| Cum. PnL | Running profit or loss in USD across this patch. sum of PnL from #1 to this row. | Worked out |
| Cum. R | Running total in R across this patch. sum of R from #1 to this row. A row with no R leaves this blank, and the total carries on past it. | Worked out |
| Rules | Yours to fill in. See Rules and tags. | You |
| Tag | Yours to fill in. | You |
| Notes | Your own thoughts on the trade. Click one to read it in full. Add note writes one. See Notes and templates. | You |
PnL is Bybit's own closed profit and loss for the orders that closed the position. If Bybit's record for one of those orders is still missing once a fetch has reached an hour past the close, PnL is worked out from the fills instead: the difference between the average exit and the average entry, times the size, minus fees. For a bot with no key it is worked out that way straight away, because no fetch will bring that record.
Deviation
Deviation is how far a loss ran past 1R. Risk already includes fees, so a stop-out that loses more than 1R lost the difference to slippage when the stop was filled.
| Figure | Formula | Notes |
|---|---|---|
| Deviation | (−R − 1) × 100% | Only when R is below −1. |
A trade with an R of −1.25 shows 25.00%. It is blank for every other trade: every win, every loss that stayed within 1R, and every trade with no R. The column's own explanation:
Slippage when the stop is hit: how far the loss ran past 1R, in %. Green up to 10%, red above it. Blank when the loss stayed within 1R.
So 10% exactly is still green. Anything over it is red.
Rules and tags
Rules and Tag are the two columns you fill in. Their headers are in the accent colour so you can tell them apart from the rest.
Rules - Did you follow your rules exactly? If not, the trade broke your system. Pick Yes or No. Picking the answer that is already set clears it, back to Select.
Tag - A label for the trade, like its strategy — breakout, pull-back. Add your own. Each trade has one tag or none. Everyone starts with four:
- Trend Following
- Pull-back
- Trend Reversal
- Breakout
Your tags are shared by all your bots. They belong to you, not to one bot, so a tag added, renamed or deleted from any row changes the list everywhere.
-
Adding. Type a name in the box at the bottom of the menu (Add a tag, press Enter). It is added to your list and put on that trade. A name can be up to 40 characters, and capitals don't count: you cannot have both "Breakout" and "breakout".
-
Renaming. The pencil beside a tag renames it on every trade that has it.
-
Deleting. The bin beside a tag asks first, then takes it off your list:
It comes off your list, so you can’t pick it for new trades. Trades already tagged keep it. Nothing in your logs changes.Adding the same name again later brings the tag back, still on every trade that had it.
Needs tagging, above the table, shows only the trades still missing a tag or a rules answer. Those rows have their number highlighted, and a line above the table counts them:
2 trades still need a tag and a rules check.It is only a reminder. The stats always count every trade, tagged or not.
Notes and templates
Notes is the third column you fill in. A trade with a note shows the start of it; click that to read it in full. A trade without one shows Add note.
Waited for the retest, then entered on the second touch.
- Stop below the wick
- Took profit early
A note opens in read mode, with Delete and Edit note, and ✕ to close it. On Free there is no Edit note (see Plans).
- Edit note opens the editor. Save note keeps what you wrote and Cancel drops it.
- Add note opens the editor straight away, and saving a new note closes the dialog.
- Delete asks first: Delete this note? — It can’t be brought back. Keep it leaves the note alone; Delete note removes it.
- Saving a note with nothing in it removes it.
A note holds up to 2,000 characters. The count is of the text, so formatting does not use any of it. Paste brings plain text only, with no formatting from wherever it was copied.
The toolbar above the editor offers bold, italic, underline, strikethrough, bulleted and numbered lists, and clear formatting.
Templates
Templates in the toolbar is a list of notes you keep to start from. Everyone starts with three: Trade review, Mistake breakdown and Mindset check.
- Load into this note replaces what the note holds with the template.
- Make default stars a template. The starred one fills every new note. Remove as default takes the star off, and new notes start empty again.
- Delete template removes it from the list.
- Save this note as a template keeps what is in the note now, under a name you give it (up to 60 characters). Same name replaces the old one.
Your templates are shared by all your bots, like your tags.
Plans
Adding and editing notes, saving templates and starring one are on Pro and Max.
On Free you can still open a note, type in one and load a template into it, but not keep it. Save note is disabled, and above the toolbar is the line:
Notes and templates are on Pro and Max. Upgrade to save this note.with an Upgrade button beside it, which takes you to your plans. A note you already have opens in read mode without Edit note, under the line:
Notes and templates are on Pro and Max. Upgrade to edit this note.Delete still works. In Templates, Save this note as a template and Make default are disabled, while loading, deleting and Remove as default still work.
If your plan ends while the page is open, the next save is refused with:
Notes and templates are on Pro and Max.and the dialog turns to the Free state.
Nothing is lost when a plan ends. The notes and templates you made stay, you can still read and delete them, and loading a template into a note still works. Saving a note, saving a template and starring one return with an upgrade.
Trades Risbot did not place
A position you opened by hand on Bybit is logged like any other, with a hand mark beside its number:
Placed outside Risbot, so there is no stop or risk to measure against.
Entry, Stop loss and Risk are blank, because those come from Risbot. So R, Deviation and Cum. R are blank too. The trade still counts in win rate, PnL, ROI, drawdown, Sharpe, Sortino and trading frequency. It is left out of avg. winning r, ev and Avg. risk / trade, which need a Risk. These values cannot be filled in by hand.
A trade Risbot opened, that you added to by hand on Bybit, has a pen mark:
Added to on Bybit outside Risbot, so its risk is incomplete. Left out of R stats.
Its Risk only counts the orders Risbot placed, so its R would not be a true multiple of what was at risk. R, Deviation and Cum. R are blank, and it is left out of the figures in R. Entry and Stop loss still show Risbot's first order. Closing a position by hand is normal and is not marked.