自己相関を使った有名な戦略
株式でよく見られる不思議なアノマリーのひとつは、投資家がニュースに過剰反応しがちだという点です。大きく上昇または下落した直後に、株価は反転する傾向があります。これは株価の平均回帰と呼ばれます。大きく動いた後に、株価が元の水準へ戻る(回帰する)動きが見られ、典型的には約1週間の期間で観察されます。より数学的には、株式リターンが負の自己相関を持つ、と表現できます。
このシンプルな発想は、実は有名なヘッジファンド戦略の土台になっています。もしこの戦略について詳しく知りたい場合は(本コースの後続内容には必須ではありません)、こちらをご覧ください。
ここでは、2012年から2017年のMSFTの週次リターンの自己相関を確認します。はじめに、日次株価を格納した DataFrame MSFT が与えられます。.resample() メソッドで週次価格に変換し、そこからリターンを計算してください。pandas の .autocorr() メソッドで自己相関を求め、自己相関が負であることを確認します。なお、.autocorr() は Series に対してのみ動作します(1列だけの DataFrame でも不可)ので、DataFrame から該当の列を選択する必要があります。
この演習はコースの一部です
Pythonで学ぶ時系列解析
演習の手順
.resample()メソッドにrule='W'を指定し、続けて.last()を適用して、日次データを週次データに変換します。.pct_change()メソッドを使って週次価格の変化率を計算し、新しい DataFramereturnsを作成します。- DataFrame
returnsの終値列(列名'Adj Close')の Series に対して.autocorr()メソッドを用い、自己相関を計算します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Convert the daily data to weekly data
MSFT = MSFT.resample(___).___
# Compute the percentage change of prices
returns = MSFT.___
# Compute and print the autocorrelation of returns
autocorrelation = returns[___].___
print("The autocorrelation of weekly returns is %4.2f" %(autocorrelation))