Content
Quizzes and Answers
Quiz 1: Calculate the daily returns for the following five assets, TSLA, WMT, SPY, AGG, and BTC-USD, then use the Python function we created in this chapter and calculate the co-movement for all asset pairs. Compare the co-movement values with the ones from pandas DataFrame method corr().
>>> assets = [ "TSLA", "WMT", "SPY", "AGG", "BTC-USD" ]
>>> asset_prices = yfinance.download(assets, start="2017-01-03", end="2021-12-30")["Adj Close"].dropna()
[ 0% ]
[ 0% ]
[ 0% ]
[ 0% ]
[*********************100%***********************] 5 of 5 completed
>>> asset_returns = (asset_prices / asset_prices.shift(1) - 1).dropna()[assets]
Co-movement
>>> comove5 = MyModule.comovement_of_returns_multi_assets(asset_returns)
>>> from pprint import pprint
>>> pprint(comove5)
{'AGG ~ AGG': 1.0,
'AGG ~ BTC-USD': 0.5143312101910829,
'AGG ~ SPY': 0.47770700636942676,
'AGG ~ TSLA': 0.5039808917197452,
'AGG ~ WMT': 0.4928343949044586,
'BTC-USD ~ AGG': 0.5143312101910829,
'BTC-USD ~ BTC-USD': 1.0,
'BTC-USD ~ SPY': 0.5549363057324841,
'BTC-USD ~ TSLA': 0.5055732484076433,
'BTC-USD ~ WMT': 0.5246815286624203,
'SPY ~ AGG': 0.47770700636942676,
'SPY ~ BTC-USD': 0.5549363057324841,
'SPY ~ SPY': 1.0,
'SPY ~ TSLA': 0.6218152866242038,
'SPY ~ WMT': 0.6202229299363057,
'TSLA ~ AGG': 0.5039808917197452,
'TSLA ~ BTC-USD': 0.5055732484076433,
'TSLA ~ SPY': 0.6218152866242038,
'TSLA ~ TSLA': 1.0,
'TSLA ~ WMT': 0.5318471337579618,
'WMT ~ AGG': 0.4928343949044586,
'WMT ~ BTC-USD': 0.5246815286624203,
'WMT ~ SPY': 0.6202229299363057,
'WMT ~ TSLA': 0.5318471337579618,
'WMT ~ WMT': 1.0}
Correlations
>>> asset_returns.corr()
TSLA WMT SPY AGG BTC-USD
TSLA 1.000000 0.146697 0.424378 0.097764 0.095487
WMT 0.146697 1.000000 0.471559 -0.041312 0.098328
SPY 0.424378 0.471559 1.000000 0.040324 0.181513
AGG 0.097764 -0.041312 0.040324 1.000000 0.109132
BTC-USD 0.095487 0.098328 0.181513 0.109132 1.000000
