Mulai sekarangMulai gratis

Dapatkan rasio Sharpe terbaik

Kita perlu menemukan portofolio "ideal" untuk setiap tanggal agar dapat menggunakannya sebagai target untuk Machine Learning. Kita akan melakukan loop melalui setiap tanggal di portfolio_returns, lalu melakukan loop melalui portofolio yang kita hasilkan dengan portfolio_returns[date]. Selanjutnya, kita akan menghitung rasio Sharpe, yaitu imbal hasil dibagi volatilitas (dengan asumsi imbal hasil bebas risiko 0).

Kita menggunakan enumerate() untuk melakukan loop melalui imbal hasil pada tanggal saat ini (portfolio_returns[date]) dan melacak indeks dengan i. Lalu kita gunakan tanggal saat ini dan indeks saat ini untuk mendapatkan volatilitas setiap portofolio dengan portfolio_volatility[date][i]. Terakhir, kita mendapatkan indeks rasio Sharpe terbaik untuk setiap tanggal menggunakan np.argmax(). Kita akan segera menggunakan indeks ini untuk memperoleh bobot portofolio ideal.

Latihan ini merupakan bagian dari kursus

Machine Learning untuk Keuangan dengan Python

Lihat Kursus

Instruksi latihan

  • Dengan menggunakan enumerate(), enumerasikan portfolio_returns untuk setiap date dalam loop.
  • Untuk date saat ini dalam loop, tambahkan ke entri kamus sharpe_ratio dengan imbal hasil (ret) dibagi portfolio_volatility untuk tanggal saat ini dan i saat ini dalam loop.
  • Tetapkan nilai max_sharpe_idxs untuk date saat ini sebagai indeks dari rasio Sharpe maksimum menggunakan np.argmax().

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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]])
Edit dan Jalankan Kode