Buat fitur dan target
Untuk menggunakan Machine Learning dalam memilih portofolio terbaik, kita perlu membuat fitur dan target. Fitur kita baru saja dibuat pada latihan sebelumnya – exponentially weighted moving averages dari harga. Target kita adalah portofolio terbaik yang ditemukan dari Sharpe ratio tertinggi.
Kita akan menggunakan metode .iterrows() milik pandas untuk mendapatkan pasangan index, value dari DataFrame ewma_monthly. Kita akan menetapkan nilai ewma_monthly saat ini di dalam loop sebagai fitur. Lalu kita akan menggunakan indeks dari Sharpe ratio terbaik (dari max_sharpe_idxs) untuk mendapatkan portfolio_weights terbaik untuk setiap bulan dan menetapkannya sebagai target.
Latihan ini merupakan bagian dari kursus
Machine Learning untuk Keuangan dengan Python
Instruksi latihan
- Gunakan metode
.iterrows()denganewma_monthlyuntuk melakukan iterasi melaluiindex, valuedi dalam loop. - Gunakan
datedalam loop danbest_idxuntuk mengindeksportfolio_weightsguna memperoleh bobot portofolio ideal berdasarkan Sharpe ratio terbaik. - Tambahkan
ewmake dalam fitur.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
targets, features = [], []
# Create features from price history and targets as ideal portfolio
for date, ewma in ewma_monthly.____:
# Get the index of the best sharpe ratio
best_idx = max_sharpe_idxs[date]
targets.append(portfolio_weights[____][____])
features.append(____) # add ewma to features
targets = np.array(targets)
features = np.array(features)
print(targets[-5:])