Historical Graphs for Stocks/ETFs/Mutual Funds
READ THIS FIRST
Type a character string similar to one of the EXAMPLES below and click "Plot".
You can also click any example shown in blue to run it directly.
(Return History for an investment in Stocks, ETFs, Indices, or Mutual Funds)
Disclaimer: All results are based on approximate historical data and are provided for informational purposes only. No guarantee is made regarding the accuracy, completeness, or applicability of the results. Use at your own risk. This is not financial advice.
In most cases, adding _CPI to a ticker adjusts the results for inflation.
Example: SPY_CPI
Exceptions include bonds and certain calculations using "/" or "*".
EXAMPLES
years,ticker(s) — Plots the selected ticker(s) over the specified period.
(See Notes below for other ways to specify a time period.)
3,QQQ — Plots the value of $100 invested in QQQ over the past 3 years.
3,QQQ_CPI — Same as above, adjusted for inflation using CPI.
3,AAPL,NVDA — Plots the value of $100 invested in each of AAPL and NVDA over the past 3 years.
You can compare any number of tickers. For example:
2,AAPL,NVDA,MAGS,FPURX
2.5-3,AAPL,NVDA — Plots returns from 3 years ago to 2.5 years ago (a backward-looking window).
3,AAPL,NVDA,@100 — Plots the 100-day moving correlation between AAPL and NVDA over 3 years.
3,AAPL,10 Yr,% — Plots AAPL and the 10-Year Treasury yield on the same chart using dual Y-axes.
You may use other Treasury maturities, such as 3 Mo, 6 Mo, 5 Yr, etc.
In most cases, adding % causes the plot to show actual values rather than normalizing the series to 100.
3,AAPL,30 Yr — Plots AAPL and the 30-Year Treasury yield as two separate graphs on the same page.
When including Treasuries, only one other ticker—not more—can be plotted.
5,SPY,DXY,% — Compares SPY with the Dollar Index.
The ticker DOLLAR may be used to represent cash with no interest return.
1-3,AAPL,NVDA,5000 — Uses $5,000 instead of $100 as the initial investment and plots returns from 3 years ago to 1 year ago.
If an investment amount other than 100 is specified, securities—including indices—are treated as cash investments for the calculation.
3,BSE500/USDINR — Plots a ratio, such as a currency-adjusted index.
This can be useful for applying foreign-exchange adjustments.
3,SPY*DXY — Plots the product of two series, such as an index adjusted using another market series.
Add vertical lines - add a prefix like 1Y|, 2Y| or 3M| etc ( works in most cases)
1m|ytd,spy,qqq will show vertical lines at 1 month intervala
4Y|27,SPY will show vertical lines at 4 Year intervala
CR:
Creates a Cross-Correlation matrix for a list of tickers.
CR,5,x_SAMPLE — Creates a cross-correlation matrix using 5 years of returns data for the tickers represented by X_SAMPLE. See Notes below for the X_SAMPLE ticker list.
CR,YTD,QQQ,SPY,BND,AGG,RSP — Creates a cross-correlation matrix using year-to-date data.
RP:
Plots Risk Premiums for the selected tickers relative to the 1-Month Treasury.
RP,5,SPY,QQQ — Plots the risk premiums of SPY and QQQ over 5 years.
MULT:
Displays multiple graphs as separate plots on the same page, up to a maximum of 12.
MULT,2,SPY,QQQ,10 Yr — Displays three separate graphs—SPY, QQQ, and the 10-Year Treasury—for 2 years.
MULT,2,SPY,QQQ,10 Yr,% — Same as above, but displays actual prices or yields rather than normalized values.
After the ticker list:
,100 or ,1000 scales the plots to 100 or 1000.
,% avoids scaling and shows actual values where applicable.
Optional plot titles can be added after a vertical bar |, with individual titles separated by commas.
Example:
mult,40,usdebt,hsdebt,budebt+sbudebt,localdebt,usdebt+budebt+hsdebt+sbudebt+localdebt,uswealth,usdebt+budebt+hsdebt+sbudebt+localdebt/uswealth,uswealth/population,usdebt+budebt+hsdebt+sbudebt+localdebt/population|,,Business Debt,,Total Debt=National+local+Household+Business,,Debt divided by US Wealth,Total Wealth/Person 1000-s,Total Debt Per Person 1000-s
Selected plots can also be displayed as bar charts by adding a time-period code followed by # before the ticker:
w# = weekly
m# = monthly
q# = quarterly
y# = yearly
Example:
MULT,2,q#10 Yr,q#SPY,QQQ,RSP
The 10-Year Treasury and SPY are shown as quarterly bar charts, while QQQ and RSP use the normal plot format.
When you plot indices, it will not show Annual returns in mult,2,x_frgn . To get annual reurtns (cagr) add a 100 - like mult,2,x_frgn,100
MCOR:
Plots moving pairwise correlations as separate graphs.
MCOR,1,22,SPY,GLD,BND,GBTC — Uses 1 year of data and plots the 22-day moving pairwise correlations among SPY, GLD, BND, and GBTC.
BAAR:
Creates horizontal bar charts together with a risk/return profile for each ticker.
2,BAAR,NVDA,META,MSFT,GOOG,AMZN,TSLA,AAPL,MAGS — Compares these tickers using 2 years of data.
With Baar, (instead of BAAR) total returns rather than annualized returns are displayed.
Treasuries may also be included:
5,BAAR,10 Yr,SPY
For Treasuries, BAAR uses estimated Treasury price returns—not Treasury yields.
BARC:
New feature based on BAAR — currently being tested.
Example:
BARC,4,20251231-20260227,20260227,YTD,0.98,x_etfs|2026-Till-War,2026-After-War,2026-Year-to-Date,One-Year
For MULT and BAAR, the ticker list may also be X_SAMPLE, X_MAG7, X_METALS, or X_BONDS. These represent predefined groups of tickers listed in the Notes below.
MACD:
2M,MACD,SPY — Shows MACD (12,26) and Signal (9) for SPY over 2 months.
You may specify another period or ticker. Available for stocks and ETFs only.
RSI:
1,RSI,QQQ — Shows RSI (14) for QQQ over 1 year.
You may specify another period or ticker. Available for stocks and ETFs only.
BOL:
3M,BOL,AAPL — Shows the upper and lower Bollinger Bands (20,2) for AAPL over 3 months.
You may specify another period or ticker. Available for stocks and ETFs only.
ADX:
4M,ADX,TSLA — Shows ADX (14), including the positive and negative directional lines, for TSLA over 4 months.
You may specify another period or ticker. Available for stocks and ETFs only.
Notes:
In most cases, adding _CPI to a ticker adjusts the plot for inflation.
Example:
3,SPY,SPY_CPI
This compares SPY over 3 years with and without CPI adjustment.
Exceptions include bonds and calculations using "/" or "*".
A "/" contained within an actual ticker must be replaced by "-".
For example, BRK/B must be entered as BRK-B.
Mutual Fund data before 2019 reflect price changes only, not true total returns.
For Mutual Funds, data after 2019 are extrapolated from NPORT returns data where available.
The following substitution strings may be used in place of multiple tickers:
X_BONDS For 1 MO,3 MO,6 MO,1 YR,2 YR,3 YR,5 YR,7 YR,10 YR,20 YR,30 YR
X_CURR For USDINR,USDCNY,USDGBP,USDEUR,USDJPY,USDCAD,USDAUD,USDCHF,USDBRL,USDNZD,USDSEK
X_MAG7 For META,NVDA,AMZN,GOOGL,AAPL,TSLA,MSFT,GSPC
X_METALS For BCOMALTR,BCOMHGTR,BCOMGCTR,BCOMNITR,BCOMSITR,BCOMZSTR,BCOMPA,BCOMPL,BCOMPR
X_SAMPLE For META,NVDA,AMZN,GOOGL,AAPL,TSLA,MSFT,GLD,SLV,BND,BTCUSD,10 Yr
(foreign markets)
X_FRGN For N225,FCHI,GDAXI,HSI,SSEC,NSEI,AXJO,BUK100P,KS11
(sectors)
X_SPE For SIXM,SIXR,SIXE,SIXV,SIXB,SIXRE,SIXT,SIXU
X_SECS For XLC,XLY,XLP,XLE,XLF,XLV,XLI,XLB,XLRE,XLK,XLU
X_SPSEC For SP500-40,SP500-35,SP500-20,SP500-15,SP500-60,SP500-55,NDXT,GSPE
X_BIG For VFIAX,VTIAX,QQQ,VBTLX,VMFXX,ABALX,VVIAX,PONCX,VIMAX,GLD,ANWPX,VSMAX,FEUPX,IEMG,CWGIX,VTIBX
Examples of using substitution strings:
YTD,BAAR,X_CURR
MULT,5Y,X_SAMPLE
Other ways to specify the time period:
Year:
2022 — Uses data from 1/1/2022 through 12/31/2022.
Year Range:
2021-2023 or 2021-23 — Uses data from 1/1/2021 through 12/31/2023.
YTD:
Uses data from the beginning of the current year through today.
Years:
2 — Starts 2 years ago.
2.3 — Starts 2.3 years ago.
3.5-6 — Uses data from 6 years ago through 3.5 years ago.
Months:
3M — Starts 3 months ago.
3M-7M — Uses data from 7 months ago through 3 months ago.
Date Range:
20210912 — Uses data from 9/12/2021 through today.
20210912-20231231 — Uses data from 9/12/2021 through 12/31/2023.