Kom igångKom igång gratis

Hitta de bästa Sharpe-kvoterna

Vi behöver hitta de "ideala" portföljerna för varje datum så att vi kan använda dem som mål för maskininlärning. Vi loopar igenom varje datum i portfolio_returns och sedan igenom de portföljer vi genererat med portfolio_returns[date]. Därefter beräknar vi Sharpe-kvoten, som är avkastningen dividerad med volatiliteten (under antagandet att riskfri avkastning är 0).

Vi använder enumerate() för att loopa igenom avkastningarna för det aktuella datumet (portfolio_returns[date]) och hålla reda på indexet med i. Sedan använder vi det aktuella datumet och det aktuella indexet för att hämta volatiliteten för varje portfölj med portfolio_volatility[date][i]. Slutligen hämtar vi indexet för den bästa Sharpe-kvoten för varje datum med hjälp av np.argmax(). Det indexet använder vi sedan för att hämta de ideala portföljvikterna.

Den här övningen är en del av kursen

Maskininlärning för finans i Python

Visa kurs

Övningsinstruktioner

  • Använd enumerate() för att iterera över portfolio_returns för varje date i loopen.
  • För det aktuella date i loopen, lägg till i ordboksposten sharpe_ratio med avkastningen (ret) dividerad med portfolio_volatility för det aktuella datumet och det aktuella i i looparna.
  • Sätt värdet för det aktuella date:s max_sharpe_idxs till indexet för den maximala Sharpe-kvoten med hjälp av np.argmax().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Empty dictionaries for sharpe ratios and best sharpe indexes by date
sharpe_ratio, max_sharpe_idxs = {}, {}

# Loop through dates and get sharpe ratio for each portfolio
for date in portfolio_returns.keys():
    for i, ret in enumerate(portfolio_returns[____]):
    
        # Divide returns by the volatility for the date and index, i
        sharpe_ratio.setdefault(date, []).append(____ / portfolio_volatility[date][____])

    # Get the index of the best sharpe ratio for each date
    max_sharpe_idxs[date] = np.argmax(sharpe_ratio[____])

print(portfolio_returns[date][max_sharpe_idxs[date]])
Redigera och kör kod