En populär strategi med autokorrelation
En intressant anomali på aktiemarknaden är att investerare tenderar att överreagera på nyheter. Efter stora kursrörelser – uppåt eller nedåt – brukar aktiekurserna vända tillbaka. Det kallas för mean reversion: kurserna tenderar att studsa tillbaka mot tidigare nivåer efter stora rörelser, något som brukar observeras över en tidshorisont på ungefär en vecka. Ett mer matematiskt sätt att beskriva mean reversion är att säga att aktieavkastningar är negativt autokorrelerade.
Denna enkla idé ligger faktiskt till grund för en populär hedgefondsstrategier. Om du vill läsa mer om den strategin (det krävs dock inte för resten av kursen) kan du se här.
Du ska undersöka autokorrelationen för MicrosoftsJ veckavisa avkastningar för MSFT-aktien från 2012 till 2017. Du börjar med en DataFrame MSFT med dagspriser. Använd metoden .resample() för att hämta veckopriser och beräkna sedan avkastningar utifrån priserna. Använd pandas-metoden .autocorr() för att beräkna autokorrelationen och visa att den är negativ. Observera att .autocorr() bara fungerar på en Series, inte på DataFrames (inte ens DataFrames med en enda kolumn), så du behöver välja ut kolumnen från DataFrame:n.
Den här övningen är en del av kursen
Tidsserieanalys i Python
Övningsinstruktioner
- Använd metoden
.resample()medrule='W'följt av funktionen.last()för att konvertera dagsdata till veckadata. - Skapa en ny DataFrame,
returns, med procentuella förändringar i veckopriser med hjälp av metoden.pct_change(). - Beräkna autokorrelationen med metoden
.autocorr()på serien med justerade stängningskurser, det vill säga kolumnen'Adj Close'i DataFrame:nreturns.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))