What's the best-performing big bank stock so far in 2017? The answer is: Bank of America (BAC 2.99%).

Shares of the nation's second-biggest bank by assets are up 21% since the beginning of the year. That handily outperforms the KBW Bank Index, which tracks shares of two dozen blue-chip bank stocks and is up 8% year to date.

The exterior of a Bank of America branch.

Image source: Getty Images.

Bank of America's stock has been propelled by four factors, the most significant of which was last year's presidential election. The surprise outcome sent bank stocks up across the board, as investors wagered that the then-president-elect would follow through on his campaign vow to "dismantle" the Dodd-Frank Act of 2010 and lower the corporate tax rate.

Both of these would bolster banks' bottom lines. Easing the regulatory burden would free banks to reduce their compliance costs, which have climbed significantly since the financial crisis. This would translate into more net income. Meanwhile, a lower tax rate would allow banks to keep more of that income for their shareholders as opposed to remitting it to the government.

BAC Chart

BAC data by YCharts.

The second factor that has pushed Bank of America's shares up this year are higher interest rates. As a general rule, banks make more money when interest rates are high rather than when they're low. In Bank of America's latest quarterly report with the Securities and Exchange Commission, the bank discloses that a 100-basis-point increase in short- and long-term rates will translate into $3.2 billion more net interest income -- i.e., revenue from loans and other interest-earning assets less funding costs.

Interest rates are still low right now, with the fed funds rate at between 1% and 1.25%, but they're on the way up. Since this time last year, the Federal Reserve has raised the fed funds rate three times, in December, March, and June. The impact from this was apparent in Bank of America's latest quarterly earnings, which showed that the bank's net interest income rose $960 million, or 9.4%, compared to the year-ago period.

The third factor at play in Bank of America's stock performance this year has been its low valuation, which gives shares of the Charlotte, North Carolina-based bank more upside than banks that already trade at high valuations. Twelve months ago, Bank of America's stock traded for a nearly 30% discount to book value. Today, it trades for a 12% premium.

Fueling this rally is the fourth factor: Bank of America's improving fundamental performance. It has slashed expenses relentlessly, most recently as part of a still-ongoing effort announced in 2016 to reduce its annual operating expenses $3 billion by next year. The impact of this and other expense initiatives can be seen on Bank of America's efficiency ratio, the percent of revenue spent on operating expenses, which has dipped below 60% for two consecutive quarters.

The net result is that Bank of America has seen its profitability climb to within reach of the bank's own stated goal of generating a 1% return on assets -- net income as a percent of total assets. It came in just under that in the latest quarter, reporting a 0.98% return on assets. Bank of America still has ground to cover, in other words, but that amounted to an improvement over the same quarter last year, when it reported a 0.90% return on assets.

In sum, if you're wondering why Bank of America's stock is up so far this year, these four factors go a long way toward providing an answer. And the best part yet is that all four of them continue to move in Bank of America's favor, providing an auspicious sign for the future.