← Back to Blog
2026-09-28 Crypto

Crypto Trading Journal: What to Track When the Market Never Closes

A stock journal has to deal with the overnight gap. Crypto mostly does not have one, because the market never closes. It has three other problems instead, and each of them makes a journal that records only dollar P&L tell you something that is not true.

No Gap, Different Risk

In our stock trading journal piece, the central problem was that a stop loss on a stock only fires while the market is open, so an earnings report after the close can turn a planned 1R loss into 2.6R by the next morning. Crypto trades around the clock, seven days a week, so a stop resting on an exchange can trigger at 3am on a Sunday. The stock-style gap, where price jumps from one session's close to the next session's open with nothing in between, mostly does not happen.

That does not make crypto risk simpler. It moves it. Three things take the gap's place, and none of them shows up in a trade log that records only what you made or lost in dollars:

Fees in the Coin: Why Your Position Is Smaller Than You Think

On many exchanges, and depending on the order type and your settings, the trading fee on a buy is taken out of the coin you receive rather than charged separately in dollars. The order says one quantity; the wallet holds a slightly smaller one. Here is a round trip at an illustrative 0.1% fee per side. Fee levels vary widely by exchange, account tier and whether you take or provide liquidity, so treat 0.1% as a round number, not a quote:

Step SOL Dollars
Buy $10,000 of SOL at $150.00 66.6667 ordered -$10,000.00
0.1% fee taken in SOL -0.0667 (worth $10.00)
Received 66.6000 -
Sell all of it at $165.00, 0.1% fee in dollars -66.6000 +$10,989.00 - $10.99
Actual profit - +$978.01

A journal that records the order as placed, 66.6667 SOL from $150 to $165 with no fees, shows +$1,000.00. That is $21.99 too high, which is small on one trade, and it creates a second problem that is not small: the journal now believes you still hold 0.0667 SOL. Anything that matches buys against sells by quantity, whether that is your spreadsheet or an importer, will carry that sliver as an open position indefinitely. Across a few hundred trades those slivers become a phantom portfolio.

The correct record is the quantity you received, 66.60 SOL, with the coin fee converted to dollars at the fill price, $10.00, as the entry fee, and $10.99 as the exit fee. That reproduces the cash result exactly: (165 - 150) x 66.60 = $999.00, minus $20.99 in fees, is $978.01.

The bigger reason to get fees right is what they do to your edge. A round-trip fee is a fixed percentage of the position, and one R is also a percentage of the position: the distance to your stop. So the cost of fees in R is simply the round-trip fee divided by the stop distance:

Stop distance Typical style 0.2% round-trip fee, in R
10% Position trade 0.02R
5% Swing trade 0.04R
3% Short swing 0.07R
1.5% Intraday 0.13R
0.75% Scalp 0.27R

A position trader can round fees away. An intraday trader with 1.5% stops and an expectancy of +0.20R before fees keeps about +0.07R after them, so two-thirds of the edge goes to the exchange. That is why fees belong in the journal as numbers, not as a line in your head that says "fees are small". If you trade perpetual futures, funding payments are a second recurring cost of the same kind, and they belong in the record for the same reason.

Thin Hours

A market that never closes is not equally liquid at every hour. Depth on most pairs is commonly thinner at weekends and in the hours when the major financial centres are all quiet, and a stop that triggers into a thin book fills wherever the next resting orders are. On a stock, the gap is the loss beyond your stop. On crypto, this slippage is, and it concentrates in exactly the hours when you are least likely to be watching.

How much this costs you depends on the pairs you trade and the size you trade them in, and the honest answer is to measure it rather than assume it. Two fields make that possible:

After a couple of months, compare average R on weekend trades with weekday trades, and average stop-out slippage by hour. If the weekend trades are worse, you have a rule to consider, such as smaller size, wider stops sized down to match, or no new positions after Friday. If they are not, you can stop worrying about it. Either way it is a number rather than folklore.

One Journal, Twenty Volatilities: Why Dollars Can't Compare Coins

The problem that breaks the most crypto journals is the one that looks least like a problem. Bitcoin and a small altcoin can differ several times over in how far they typically move in a day, so a sensible stop on one is a meaningless stop on the other. If you size by dollars, putting the same $5,000 into each trade, the risk you actually take varies with the coin:

BTC Altcoin
Entry / stop $60,000 / $58,200 (3%) $2.00 / $1.70 (15%)
Position for $5,000 0.0833 BTC 2,500 coins
Risk if stopped (1R) $150 $750
A 2R winner pays +$300 +$1,500

Now run ten trades of each. Every winner is +2R and every loser is -1R. The bitcoin trades win six times out of ten; the altcoin trades win four:

10 trades each Wins / losses Net in R Expectancy Net in dollars
BTC 6 / 4 +8.0R +0.80R +$1,200
Altcoin 4 / 6 +2.0R +0.20R +$1,500

In dollars, the altcoin trades made more money, and a trader reading a P&L column would conclude that altcoins are where their edge is. In R-multiples, the bitcoin trades are four times better per trade. The altcoin trades only made more because each one carried five times the risk. Put the same five-times risk behind the bitcoin setup and it would have made $6,000.

Ten trades is far too few to conclude anything about a real strategy, and the point here is not that bitcoin beats altcoins. It is that dollar P&L cannot answer the question at all, because it mixes the quality of the trade with the size of the bet. The R-multiple separates them, which is what normalising gold against EURUSD does for forex traders, and it points to the fix on the sizing side as well: size every trade to the same dollar risk, so a 15% stop gets a position one-fifth the size of a 3% stop.

The Fields, and Which Ones an Export Can Give You Back

Exchanges keep good records of what happened. They keep no record of what you meant to happen. That is the dividing line between what a crypto journal can import later and what it has to capture at the time:

Field Why it matters on crypto In an exchange export later?
Entry, exit, quantity, time The P&L itself, and the weekend and hour-of-day splits Yes
Fees Can cost a third of the edge or more on tight stops Yes, but possibly in the coin
Planned stop Defines 1R; the only way to compare BTC with an altcoin No
Intended price Slippage in thin hours No - fills only
Setup / strategy Expectancy per setup, not per coin or per account No
Buy and sell on different exchanges One trade split across two records Each side only, never paired

The three "no" rows are the case for journaling at the moment of the trade. If you only have time for a few fields, the minimum viable journal is the right starting set, and on crypto the planned stop is the one never to skip, because without it nothing you trade can be compared with anything else you trade.

Getting Crypto Trades In

For the mechanical fields, import rather than type. SignalDeck connects to Coinbase, along with Robinhood, Schwab and other brokers, through SnapTrade. The connection is read-only: it reads your account activity and never places orders. Because an exchange reports individual buys and sells rather than trades, the importer rebuilds completed round trips from them, averaging the entry price when you scaled in and attaching fees to the entry and the exit. Activity refreshes roughly once a day, not in real time. For any exchange SnapTrade does not cover, the generic CSV importer takes an export of trades or fills and walks you through mapping the columns. Moving coins between exchanges is the one case an importer cannot pair for you: a buy on one venue and a sell on another arrive as two unrelated halves, so log those trades by hand. What connects live and what imports from a file across every platform is in our platform support write-up.

What SignalDeck Does for Crypto Traders, and What It Does Not

What it does. Crypto is its own instrument type, with pair search, and quantities and prices recorded to eight decimal places, so fractional positions and sub-cent coins are stored exactly. Results are measured in R-multiples against the stop recorded at entry, so a bitcoin trade and an altcoin trade land on the same scale. Dollar P&L is recorded net of entry and exit fees, long and short. There are no market-hours restrictions on logging, and open crypto positions are re-priced by a background worker around the clock, weekends included, so unrealised P&L stays current, and price alerts on open positions work at any hour. Maximum favourable and adverse excursion are computed when a trade closes.

Limits worth knowing before you rely on it:

For what the crypto side of the product looks like overall, see the crypto trading journal overview.

What to Do With This

Starting with your next trade, write down the stop you planned before you enter, record the quantity you actually received, and put every fee in dollars. Those three habits fix the phantom-position problem, make fees visible in R, and let you compare every coin you trade on one scale. None of it needs new software.

After a couple of months, run three comparisons: expectancy in R by coin or by setup, rather than P&L by coin; weekend against weekday; and your average R before and after fees. Each one answers a question that a dollar P&L column cannot, and at least one of them is likely to change how you trade.

Frequently Asked Questions

What should I track in a crypto trading journal?

Beyond entry, exit, quantity and fees, which an exchange export already contains, record what only exists at the moment of entry: the planned stop, so every result can be measured in R-multiples; the setup or strategy the trade belongs to; the price you intended to get, so slippage can be measured; and the entry time in a fixed timezone, so you can compare weekend and weekday or thin-hour and busy-hour results. Record the quantity you actually received rather than the quantity you ordered, because many exchanges take the fee out of the coin, and record every fee in one currency. The R-multiple matters more on crypto than on most markets, because coins differ so much in volatility that dollar P&L cannot compare a bitcoin trade with an altcoin trade.

Do I need a trading journal if I only hold crypto?

You need less of one, but not none. A long-term holder does not need entry-time or slippage fields. What a holder does need is the reason for each buy and the condition that would make them sell, written down at the time of purchase, because after a large drawdown it is very hard to remember honestly why a position was bought. A record of each buy, its fees, and that one-line thesis is enough, and it is also the record that tells you later whether your buying and selling added anything compared with simply holding.

How do I record fees paid in crypto?

Convert the fee into your account currency at the price of the fill it was charged on, and record the quantity you actually received after the fee. For example, if you buy 10,000 dollars of SOL at 150 and the exchange takes a 0.1% fee in SOL, you receive 66.60 SOL rather than 66.67. Record the position as 66.60 SOL with a 10.00 dollar entry fee. Logging the 66.67 you ordered overstates the profit on the trade and leaves a small quantity of coin that can never be closed, which will sit in your records as an open position.

Can I import crypto trades from Coinbase?

Yes. SignalDeck connects to Coinbase, along with Robinhood, Schwab and other brokers, through SnapTrade, which reads your account activity and rebuilds completed trades from the individual buys and sells, with the fees attached to the entry and the exit. The connection is read-only and SignalDeck never places orders. Account activity refreshes about once a day rather than in real time. For exchanges that SnapTrade does not cover, a generic CSV importer takes any export that lists trades or fills. Imported trades still need a planned stop added, because no exchange export contains one, and without it results cannot be expressed in R-multiples.

Put every coin on the same scale

Import your crypto trades, add the stop you planned, and every result is measured in R, so a bitcoin trade and an altcoin trade can finally be compared. Free during beta; Pro is $30/mo and Elite $50/mo when billing launches.