Image source: iStock/Thinkstock.

It's been a tough year for all bank stocks, including Bank of America (BAC 3.35%). Shares of the nation's second biggest bank by assets are off 0.62% since the start of 2016. What's behind the fall? There are three culprits.

BAC Chart

BAC data by YCharts.

1. Energy prices

Bank of America's stock fell sharply at the beginning of the year, bottoming out around $11 per share in February. The problem at the time was that low energy prices were fueling higher default rates in its energy portfolio.

As the bank noted in its first-quarter earnings release, its provision for credit losses in its global banking unit leapt by $457 million in the quarter, "driven primarily by increases in energy-related reserves."

Oil prices at the time at time had dropped to the lowest point in more than a decade, dipping below $30 a barrel. This made it difficult for Bank of America's customers in the energy industry to service their loans.

Brent Crude Oil Spot Price Chart

Brent Crude Oil Spot Price data by YCharts.

The good news is that oil prices have since rebounded and are now around $50 a barrel, relieving the pressure on banks to aggressively provision for future loan losses from the sector.

2. Brexit

At roughly the same time that energy prices were dipping below $30 a barrel, it was announced that the United Kingdom would hold a referendum in June over whether to remain in the European Union.

The news sent financial markets into a tailspin. No one knew then, or now, what an eventual separation would mean in terms of global markets. In addition, for banks with a substantial presence in London, like Bank of America, there's reason to believe that they'll have to relocate a portion of their European operations to the continent.

One side-effect of the uncertainty was that Bank of America's institutional investor clients stepped back from the markets. This drove down the bank's trading revenue for the first quarter by 16% on a year-over-year basis.

As time passed, and confidence built that the U.K. wouldn't exit the EU, Bank of America's stock mounted a new ascent. But this climb was brought to a screeching halt in June, when voters in the U.K. voted in favor of leaving the union. The result sent Bank of America's stock tumbling again.

3. Interest rates

Finally, while the two preceding issues served as isolated shocks, the persistently low interest-rate environment has weighed on bank profits throughout the year.

At the end of 2015, the Federal Reserve boosted the benchmark Fed Funds rate by 0.25%, leading analysts and commentators to expect more rate hikes in the near future. But the uncertainty caused by low energy prices and the U.K.'s decision to leave the EU, persuaded the Fed to stand pat.

Effective Federal Funds Rate Chart

Effective Federal Funds Rate data by YCharts.

This is bad news for banks, and Bank of America in particular. To put it in perspective, if the central bank were to raise rates by only 100 basis points, or 1 percentage point, the Charlotte, N.C.-based bank would earn $7.5 billion more in net interest income a year. That's a lot of money when you consider that it currently earns less than $5 billion a quarter.

In sum, it's been a tough year for bank stocks. But the good news is that, given Bank of America's bargain-basement valuation, trading as it does for 30% below book value, there's every reason to believe that its shares have a lot of room to grow from here.