Moving from Google Finance to Yahoo Finance
Perhaps you should use your own tracking software, such as GnuCash, Quicken, Mint, or even Excel.  The latter would work given you say you're manually putting in your transactions.   There's lots of pre-done spreadsheets for tracking investments if you look around.    I'm hoping that a web search gets you help on migrating transaction data, but I've yet to run into any tools to do the export and import beyond a manual effort.  Then again, I haven't checked for this lately. Not sure about your other questions, but I'd recommend you edit the question to only contain what you're asking about in the subject.
I agree that a random page on the internet is not always a good source, but at the same time I will use Google or Yahoo Finance to look up US/EU equities, even though those sites are not authoritative and offer zero guarantees as to the accuracy of their data. In the same vein you could try a website devoted to warrants in your market.  For example, I Googled toronto stock exchange warrants and the very first link took me to a site with all the information you mentioned.  The authoritative source for the information would be the listing exchange, but I've spent five minutes on the TSX website and couldn't find even a fraction of the information about that warrant that I found on the non-authoritative site. The GuruFocus Link is just reporting the high and low price of the quarter.  Price Range (Average) – The estimated trade prices. The average price   is calculated from the time weighted average during the period. If no   price range is shown, the trade prices are estimated trade prices,   which are more accurate estimates. AAPL: $420.05 - $549.03 ($467.26) The numbers for the high and low match what I found for AAPL on Yahoo Finance. Keep in mind their definition uses estimate 3 times. "Assuming that no one else has hit the ask, and the asks are still there, yes, you will fill $54.55 as long as you didn't exhaust that ask. Actually, there is no ""current price at which the stock is exchanging hands""; in reality, it is ""the last price traded"". The somebody who negotiated prices between buyers & sellers is the exchange through their handling of bids & asks.  The real negotiation comes between bids & asks, and if they meet or cross, a trade occurs. It's not that both bid & ask should be $54.55, it's that they were. To answer the title, the reasons why the bid and ask (even their midpoint) move away from the last price are largely unknown, but at least for the market makers, if their sell inventory is going away (people are buying heavily and they're running out of inventory) they will start to hike up their asks a lot and their bids a little because market makers try to stay market neutral, having no opinion on whether an asset will rise or fall, so with stocks, that means having a balanced inventory of longs & shorts.  They want to (sometimes have to depending on the exchange) accommodate the buying pressure, but they don't want to lose money, so they simply raise the ask and then raise the bid as people hit their asks since their average cost basis has risen. In fact (yahoo finance is great about showing this), there's rarely 1 bid and 1 ask.  Take a look at BAC's limit book: http://finance.yahoo.com/q/ecn?s=BAC+Order+Book You can see that there are many bids and many asks.  If one ask is exhausted, the next in line is now the highest.  The market maker who just sold at X will certainly step over the highest bid to bid at X*0.9 to get an 11% return on investment." tl;dr: The CNN Money and Yahoo Finance charts are wildly inaccurate. The TD Ameritrade chart appears to be accurate and shows returns with reinvested dividends. Ignoring buggy data, CNN most likely shows reinvested dividends for quoted securities but not for the S&P 500 index. Yahoo most likely shows all returns without reinvested dividends. Thanks to a tip from Grade Eh Bacon, I was able to determine that TD Ameritrade reports returns with reinvested dividends (as it claims to do). Eyeballing the chart, it appears that S&P 500 grew by ~90% over the five year period the chart covers. Meanwhile, according to this S&P 500 return estimator, the five year return of S&P 500, with reinvested dividends, was 97.1% between July 2012 to July 2017 (vs. 78.4% raw returns). I have no idea what numbers CNN Money is working from, because it claims S&P 500 only grew about 35% over the last five years, which is less than half of the raw return. Ditto for Yahoo, which claims 45% growth. Even stranger still, the CNN chart for VFINX (an S&P 500 index fund) clearly shows the correct market growth (without reinvesting dividends from the S&P 500 index), so whatever problem exists is inconsistent:  Yahoo also agrees with itself for VFINX, but comes in a bit low even if your assume no reinvestment of dividends (68% vs. 78% expected); I'm not sure if it's ever right.  By way of comparison, TD's chart for VFINX seems to be consistent with its ABALX chart and with reality:  As a final sanity check, I pulled historical ^GSPC prices from Yahoo Finance. It closed at $1406.58 on 27 Aug 2012 and $2477.55 on 28 Aug 2017, or 76.1% growth overall. That agrees with TD and the return calculator above, and disagrees with CNN Money (on ABALX). Worse, Yahoo's own charts (both ABALX and VFINX) disagree with Yahoo's own historical data. This is going to be a bit of a shameless plug, but I've build a portfolio tracking website to track your portfolio and be able to share it (in read-only mode) as  well. It is at http://frano.carelessmusings.com and currently in beta. Most portfolio trackers are behind a login wall and thus will lack the sharing function you are looking for. Examples of these are: Yahoo Finance, Google Finance, Reuters Portfolios, MorningStart Portfolios, and many others. Another very quick and easy solution (if you are not trading too often) is a shared google docs spreadsheet. Gdocs has integration with google finance and can retrieve prices for stocks by symbol. A spreadsheet can contain the following: Symbol, Quantity, Avg. Buy Price, Price, P/L, P/L% and so on. The current price and P/L data can be functions that use the google finance API. Hope this helps, and if you check out my site please let me know what you think and what I could change. "Google Docs spreadsheets have a function for filling in stock and fund prices.  You can use that data to graph (fund1 / fund2) over some time period. Syntax: =GoogleFinance(""symbol"", ""attribute"", ""start_date"", ""num_days|end_date"", ""interval"") where: This analysis won’t include dividends or distributions. Yahoo provides adjusted data, if you want to include that." You can easily build a Google Sheet spreadsheet to track what you want as Sheet has a 'googlefinance()' function to look-up the same prices and data you can enter and track in a Google Finance portfolio, except you can use it in ways you want. For example, you can track your purchase price at a fixed exchange rate, track the current market value as the product of the stock's price times the floating exchange rate, and then record your realized profit and loss using another fixed exchange rate.  You don't have to record the rates either, as googlefinance() func is able to lookup prices as of a particular date. You can access Google Sheet through a web browser or Android app. "For any accounts where you have a wish to keep track of dividends, gains and losses, etc., you will have to set up a an account to hold the separately listed securities.  It looks like you already know how to do this.  Here the trading accounts will help you, especially if you have Finance:Quote set up (to pull security prices from the internet). For the actively-managed accounts, you can just create each managed account and NOT fill it with the separate securities.  You can record the changes in that account in summary each month/year as you prefer. So, you might set up your chart of accounts to include these assets: And this income: The actively-managed accounts will each get set up as Type ""Stock.""  You will create one fake security for each account, which will get your unrealized gains/losses on active accounts showing up in your trading accounts.  The fake securities will NOT be pulling prices from the internet.  Go to     Tools -> Securities Editor -> Add and type in a name such as ""Merrill Lynch Brokerage,"" a symbol such as ""ML1,"" and in the ""Type"" field input something like ""Actively Managed."" In your self-managed accounts, you will record dividends and sales as they occur, and your securities will be set to get quotes online.  You can follow the general GnuCash guides for this.   In your too-many-transactions actively traded accounts, maybe once a month you will gather up your statements and enter the activity in summary to tie the changes in cost basis.  I would suggest making each fake ""share"" equal $1, so if you have a $505 dividend, you buy 505 ""shares"" with it.  So, you might have these transactions for your brokerage account with Merrill Lynch (for example): When you have finished making your period-end summary entries for all the actively-managed accounts, double-check that the share balances of your actively-managed accounts match the cost basis amounts on your statements.  Remember that each fake ""share"" is worth $1 when you enter it.  Once the cost basis is tied, you can go into the price editor (Tools -> Price Editor) and enter a new ""price"" as of the period-end date for each actively-managed account.  The price will be ""Value of Active Acct at Period-End/Cost of Active Acct at Period-End.""  So, if your account was worth $1908 but had a cost basis of $505 on Jan. 31, you would type ""1908/505"" in the price field and Jan. 31, 2017 in the date field. When you run your reports, you will want to choose the price source as ""Nearest in Time"" so that GnuCash grabs the correct quotes. This should make your actively-managed accounts have the correct activity in summary in your GnuCash income accounts and let them work well with the Trading Accounts feature."