Trading is taxed just like capital gains, and mining as income. For small investments with few trades, it's straightforward and you can likely use a free service. Beyond a certain threshold (like 200 trades), it's probably worth using something like https://bitcoin.tax/ or https://cointracking.info/ which will create your forms for you after you import (and painstakingly correct) trades, at a rather steep price ($120/mo) though cointracking has a lifetime buy for $380...
One big factor: traditional brokerage/investment accounts provide records of all stock transactions, including the cost basis and precise gain or loss. This typically comes via the 1099-B. It's straightforward to report and file taxes in this manner (relatively speaking).
Even the more legitimate exchanges in the US (ex: Coinbase) aren't currently providing these types of records. You may be able to export a list of trades, but often cost basis is missing. Or if, for example, you've moved coins through various exchanges, or traded one coin for another coin (say BTC to ETH), before converting back to fiat currency, it's very difficult to figure out how to report everything. There's no 1099-B.