What's the best online tool that can track my entire portfolio including gains/losses?
You can use a tool like WikiInvest the advantage being it can pull data from most brokerages and you don't have to enter them manually. I do not know how well it handles dividends though. "Mint.com does this quite well. The graph views of your budgets, investments, debts, and other aspects of your financial life can be shown in gestalt, or on a per-account basis (at least, it does for me). See the investment ""how it works"" page for more information.  ""Find out whether you're beating the market–or it's beating you. Compare your portfolio to market benchmarks, and instantly see your asset allocation across all your investment accounts: 401k, mutual funds, brokerage accounts, even IRAs.""" Google Portfolio does the job: https://www.google.com/finance/portfolio You can add transaction data, view fundamentals and much more.
I have ScottradeElite on my desktop. I have played around with it but no longer use it. The transactions that I make through Scottrade are more dependent on my goals for the securities than what the market is doing at the moment.  Keep in mind that there will always be others out there with better access to price changes than you. They also will have better hardware. We cannot beat them at their game. "Yes, there is a very good Return vs Risk graph put out at riskgrades.com.  Look at it soon, because it will be unavailable after 6-30-11.  The RA (return analysis) graph is what I think you are looking for. The first graph shown is an ""Average Return"", which I was told was for a 3 year period.  Three period returns of 3, 6 and 12 months, are also available.  You can specify the ticker symbols of funds or stocks you want a display of.  For funds, the return includes price and distributions (total return), but only price movement for stocks - per site webmaster. I've used the graphs for a few years, since Forbes identified it as a ""Best of the Web"" site.  Initially, I found numerous problems with some of the data and was able to work with the webmaster to correct them.  Lately though, they have NOT been correcting problems that I bring to their attention.  For example, try the symbols MUTHX, EDITX, AWSHX and you'll see that the Risk Grades on the graphs are seriously in error, and compress the graph results and cause overwriting and poor readability. If anyone knows of a similar product, I'd like to know about it.  Thanks,  George" Take a look at this: http://code.google.com/p/stock-portfolio-manager/ It is an open source project aimed to manage your stock portfolio. "Back-testing itself is flawed. ""Past performance is no guarantee of future results"" is an important lesson to understand. Market strategies of one kind or another work until they don't.  Edited in -- AssetPlay.net provides a tool that's halfway to what you are looking for. It only goes back to 1972, however. Just to try it, I compared 100% S&P to a 60/40 blend of S&P with 5 yr t-bills (a misnamed asset, 5 yr treasuries are 'notes' not 'bills') I found the mix actually had a better return with lower volatility.  Now, can I count on that to work moving forward? Rates fell during most of this entire period so bonds/notes both looked pretty good. This is my point regarding the backtest concept.  GeniusTrader appears more sophisticated, but command line work on PCs is beyond me. It may be worth a look for you, JP. ETF Replay appears to be another backtest tool. It has its drawbacks, however, (ETFs only)" I've looked into Thinkorswim; my father uses it. Although better than eTrade, it wasn't quite what I was looking for. Interactive Brokers is a name I had heard a long time ago but forgotten. Thank you for that, it seems to be just what I need. "My answer is Microsoft Excel.  Google ""VBA for dummies"" (seriously) and find out if your brokerage offers an 'API'.  With a brief understanding of coding you can get a spreadsheet that is live connected to your brokers data stream.  Say you have a spreadsheet with the 1990 value of each in the first two columns (cells a1 and b1).  Maybe this formula could be the third column, it'll tell you how much to buy or sell to rebalance them.   then to iterate the rebalance, set both a2 and b2 to =C1 and drag the formula through row 25, one row for each year.  It'll probably be a little more work than that, but you get the idea." Yup. What I wanted to know was where they are pulling it up from. Have casually used Google finance for personal investments, but they suck at corp actions. Not sure if they provide free APIs, but that would probably suck too! :D I am mostly interested in day to day records, and would like the data to contain information such as dividend payouts, and other parameters commonly available, such as on : http://finviz.com/screener.ashx ... but the kind of queries you can do is limited. For instance you can only go back two years. "You don't need to use a real stock like GLD.  You can just create a ""stock"" called something like ""1 oz Gold"" and buy and sell them as if they were shares.  It won't auto-update the price like GLD, but that's not a big deal to update manually once a month or so. I prefer to have accurate data that is correct at a particular point in time to having data that is 2-3% off, or that requires entering the ounces as 10x reality.  YMMV. This is very similar to how you track US Savings Bonds in Quicken (and might be described in the help under that topic.)" I use the following method. For each stock I hold long term, I have an individual table which records dates, purchases, sales, returns of cash, dividends, and way at the bottom, current value of the holding. Since I am not taking the income, and reinvesting across the portfolio, and XIRR won't take that into account, I build an additional column where I 'gross up' the future value up to today() of that dividend by the portfolio average yield at the date the dividend is received. The grossing up formula is divi*(1+portfolio average return%)^((today-dividend date-suitable delay to reinvest)/365.25) This is equivalent to a complex XMIRR computation but much simpler, and produces very accurate views of return.  The 'weighted combined' XIRR calculated across all holdings then agrees very nearly with the overall portfolio XIRR. I have done this for very along time.  TR1933 Yes, 1933 is my year of birth and still re investing divis! "My broker (thinkorswim) offers this from the platform's trade tab.  I believe this feature isn't crippled in the PaperMoney version which is effectively a ""free online service.""" I'm using iBank on my Mac here and that definitely supports different currencies and is also supposed to be able to track investments (I haven't used it to track investments yet, hence the 'supposed to' caveat). "Answering this question is weird, because it is not really precise in what you mean. Do you want all stocks in the US? Do you want a selection of stocks according to parameters?  Do you just want a cool looking graph? However, your possible misuse of the word derivative piqued my interest. Your reference to  gold and silver seems to indicate that you do not know what a derivative actually is. Or what it would do in a portfolio.  The straightforward way to ""see"" an efficient frontier is to do the following. For a set of stocks (in this case six ""randomly"" selected ones):      library(quantmod)  library(fPortfolio)  library(PerformanceAnalytics)     getSymbols(c(""STZ"", ""RAI"", ""AMZN"", ""MSFT"", ""TWX"", ""RHT""), from = ""2012-06-01"", to = ""2017-06-01"")     returns &lt;- NULL  tickerlist &lt;- c(""STZ"", ""RAI"", ""AMZN"", ""MSFT"", ""TWX"", ""RHT"")  for (ticker in tickerlist){   returns &lt;- cbind(returns, monthlyReturn(Ad(eval(as.symbol(ticker)))))  }  colnames(returns) &lt;- tickerlist  returns &lt;- as.timeSeries(returns)    frontier &lt;- portfolioFrontier(returns)  png(""frontier.png"", width = 800, height = 600)  plot(frontier, which = ""all"")  dev.off()    minvariancePortfolio(returns, constraints = ""LongOnly"")    Portfolio Weights:    STZ    RAI   AMZN   MSFT    TWX    RHT   0.1140 0.3912 0.0000 0.1421 0.1476 0.2051     Covariance Risk Budgets:    STZ    RAI   AMZN   MSFT    TWX    RHT   0.1140 0.3912 0.0000 0.1421 0.1476 0.2051     Target Returns and Risks:   mean    Cov   CVaR    VaR   0.0232 0.0354 0.0455 0.0360    https://imgur.com/QIxDdEI  The minimum variance portfolio of these six assets has a mean return is 0.0232 and variance is 0.0360. AMZN does not get any weight in the portfolio.  It kind of means that the other assets span it and it does not provide any additional diversification benefit.   Let us add two ETFs that track gold and silver to the mix, and see how little difference it makes:    getSymbols(c(""GLD"", ""SLV""), from = ""2012-06-01"", to = ""2017-06-01"")    returns &lt;- NULL  tickerlist &lt;- c(""STZ"", ""RAI"", ""AMZN"", ""MSFT"", ""TWX"", ""RHT"", ""GLD"", ""SLV"")  for (ticker in tickerlist){   returns &lt;- cbind(returns, monthlyReturn(Ad(eval(as.symbol(ticker)))))  }  colnames(returns) &lt;- tickerlist  returns &lt;- as.timeSeries(returns)   frontier &lt;- portfolioFrontier(returns)    png(""weights.png"", width = 800, height = 600)  weightsPlot(frontier)  dev.off()    # Optimal weights  out &lt;- minvariancePortfolio(returns, constraints = ""LongOnly"")  wghts &lt;- getWeights(out)  portret1 &lt;- returns%*%wghts  portret1 &lt;- cbind(monthprc, portret1)[,3]  colnames(portret1) &lt;- ""Optimal portfolio""    # Equal weights  wghts &lt;- rep(1/8, 8)  portret2 &lt;- returns%*%wghts  portret2 &lt;- cbind(monthprc, portret2)[,3]  colnames(portret2) &lt;- ""Equal weights portfolio""   png(""performance_both.png"", width = 800, height = 600)  par(mfrow=c(2,2))  chart.CumReturns(portret1, ylim = c(0, 2))  chart.CumReturns(portret2, ylim = c(0, 2))  chart.Drawdown(portret1, main = ""Drawdown"", ylim = c(-0.06, 0))  chart.Drawdown(portret2, main = ""Drawdown"", ylim = c(-0.06, 0))  dev.off()   https://imgur.com/sBHGz7s   Adding gold changes the minimum variance mean return to 0.0116 and the variance stays about the same 0.0332. You can see how the weights change at different return and variance profiles in the picture.  The takeaway is that adding gold decreases the return but does not do a lot for the risk of the portfolio.  You also notice that silver does not get included in the minimum variance efficient portfolio (and neither does AMZN).  https://imgur.com/rXPbXau  We can also compare the optimal weights to an equally weighted portfolio and see that the latter would have performed better but had much  larger drawdowns. Which is because it has a higher volatility, which might be undesirable.  ---  Everything below here is false, but illustrative.  So what about the derivative part? Let us assume you bought an out of the money call option with a strike of 50 on MSFT at the beginning of the  time series and held it to the end.  We need to decide on the the annualized cost-of-carry rate, the annualized rate of interest, the time to maturity is measured in years, the annualized  volatility of the underlying security is proxied by the historical volatility.   library(fOptions)   monthprc &lt;- Ad(MSFT)[endpoints(MSFT, ""months"")]  T &lt;- length(monthprc) # 60 months, 5 years  vol &lt;- sd(returns$MSFT)*sqrt(12) # annualized volatility    optprc &lt;- matrix(NA, 60, 1)  for (t in 1:60) {   s &lt;- as.numeric(monthprc[t])   optval &lt;- GBSOption(TypeFlag = ""c"", S = s, X = 50, Time = (T - t) / 12, r = 0.001, b = 0.001, sigma = vol)   optprc[t] &lt;- optval@price  }    monthprc &lt;- cbind(monthprc, optprc)  colnames(monthprc) &lt;- c(""MSFT"", ""MSFTCall50"")    MSFTCall50rets &lt;- monthlyReturn(monthprc[,2])  colnames(MSFTCall50rets) &lt;- ""MSFTCall50rets""    returns &lt;- merge(returns, MSFTCall50rets)    wghts &lt;- rep(1/9, 9)    portret3 &lt;- returns%*%wghts  portret3 &lt;- cbind(monthprc, portret3)[,3]  colnames(portret3) &lt;- ""Equal weights derivative portfolio""    png(""performance_deriv.png"", width = 800, height = 600)  par(mfrow=c(2,2))  chart.CumReturns(portret2, ylim = c(0, 4.5))  chart.CumReturns(portret3, ylim = c(0, 4.5))  chart.Drawdown(portret2, main = ""Drawdown"", ylim = c(-0.09, 0))  chart.Drawdown(portret3, main = ""Drawdown"", ylim = c(-0.09, 0))  dev.off()  https://imgur.com/SZ1xrYx   Even though we have a massively profitable instrument in the derivative. The portfolio analysis does not include it  because of the high volatility. However, if we just use equal weighting and essentially take a massive position in  the out of the money call (which would not be possible in real life), we get huge drawdowns and volatility, but  the returns are almost two fold. But nobody will sell you a five year call.  Others can correct any mistakes or misunderstandings in the above. It hopefully gives a starting point.  Read more at:   https://en.wikipedia.org/wiki/Modern_portfolio_theory https://en.wikipedia.org/wiki/Option_(finance)  The imgur album:  https://imgur.com/a/LoBEY" "It's easy for me to look at an IRA, no deposits or withdrawal in a year, and compare the return to some index. Once you start adding transactions, not so easy. Here's a method that answers your goal as closely as I can offer: SPY goes back to 1993. It's the most quoted EFT that replicates the S&P 500, and you specifically asked to compare how the investment would have gone if you were in such a fund. This is an important distinction, as I don't have to adjust for its .09% expense, as you would have been subject to it in this fund. Simply go to Yahoo, and start with the historical prices. Easy to do this on a spreadsheet. I'll assume you can find all your purchases inc dates & dollars invested. Look these up and treat those dollars as purchases of SPY. Once the list is done, go back and look up the dividends, issues quarterly, and on the dividend date, add the shares it would purchase based on that day's price. Of course, any withdrawals get accounted for the same way, take out the number of SPY shares it would have bought. Remember to include the commission on SPY, whatever your broker charges.  If I've missed something, I'm sure we'll see someone point that out, I'd be happy to edit that in, to make this wiki-worthy.  Edit - due to the nature of comments and the inability to edit, I'm adding this here. Perhaps I'm reading the question too pedantically, perhaps not. I'm reading it as ""if instead of doing whatever I did, I invested in an S&P index fund, how would I have performed?"" To measure one's return against a benchmark, the mechanics of the benchmarks calculation are not needed. In a comment I offer an example - if there were an ETF based on some type of black-box investing for which the investments were not disclosed at all, only day's end pricing, my answer above still applies exactly. The validity of such comparisons is a different question, but the fact that the formulation of the EFT doesn't come into play remains. In my comment below which I removed I hypothesized an ETF name, not intending it to come off as sarcastic. For the record, if one wishes to start JoesETF, I'm ok with it." I'm responsible for all our hedging.  Since we sell the energy to end users we do mostly fixed buys, swaps and calls.  I'm a excel guru and dabble a little in SQL.  we have Crystal Ball as well but i have no idea how to use it.  I guess I'm trying to figure out if there is a tool that people use to help me analyze the spreads. or perhaps some reading material to help me through this. This is what i've been working towards for so long and i really don't want to fuck this up